{"version":3,"sources":["webpack:///Client/Generated/v4/all_370071ace459ca055ce8.js","webpack:///webpack/bootstrap 370071ace459ca055ce8","webpack:///external \"React\"","webpack:///./~/recharts/~/prop-types/index.js","webpack:///./~/recharts/es6/util/ReactUtils.js","webpack:///./~/recharts/es6/util/PureRender.js","webpack:///./~/classnames/index.js","webpack:///external \"ReactDOM\"","webpack:///./~/process/browser.js","webpack:///./Client/Generated/RestClient.ts","webpack:///./Client/Models/ClientAppSettings.ts","webpack:///./~/lodash/isFunction.js","webpack:///./~/recharts/~/core-js/modules/_export.js","webpack:///./~/recharts/es6/util/DataUtils.js","webpack:///./~/lodash/isArray.js","webpack:///./~/recharts/es6/container/Layer.js","webpack:///./../Intercom.ReactUI/Views/index.ts","webpack:///./Client/Resources/Intercom.Resources.DevPortal.ts","webpack:///./~/recharts/es6/util/ChartUtils.js","webpack:///./../Intercom.ReactUI/Views/Strings.ts","webpack:///./~/d3-time/src/interval.js","webpack:///./../Intercom.ReactUI/Utils/InFrame.ts","webpack:///./~/d3-scale/src/init.js","webpack:///./~/lodash/isObject.js","webpack:///./~/lodash/isEqual.js","webpack:///./~/lodash/isNil.js","webpack:///./~/lodash/_baseIteratee.js","webpack:///./~/react-smooth/es6/index.js","webpack:///./../Intercom.ReactUI/Utils/Environment.ts","webpack:///./Client/Dialogs/MessageBox.ts","webpack:///./~/lodash/_root.js","webpack:///./~/lodash/isObjectLike.js","webpack:///./~/recharts/es6/util/PolarUtils.js","webpack:///./Client/v4/Controllers/ControllerBase.ts","webpack:///./~/react-is/index.js","webpack:///./Client/Utils/BotUtils.ts","webpack:///./~/d3-time/src/duration.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/utils/getPrefixedValue.js","webpack:///./~/recharts/es6/chart/generateCategoricalChart.js","webpack:///./~/recharts/es6/component/LabelList.js","webpack:///./~/recharts/~/core-js/modules/_global.js","webpack:///./Client/Utils/Links.ts","webpack:///./~/d3-scale/src/continuous.js","webpack:///./~/lodash/_baseGetTag.js","webpack:///./~/lodash/keys.js","webpack:///./~/recharts/es6/component/Label.js","webpack:///./~/recharts/es6/util/CartesianUtils.js","webpack:///./~/recharts/~/core-js/modules/_fails.js","webpack:///(webpack)/buildin/global.js","webpack:///./../Intercom.ReactUI/Utils/Url.ts","webpack:///./~/d3-scale/src/array.js","webpack:///./~/d3-scale/src/linear.js","webpack:///./~/d3-shape/src/constant.js","webpack:///./~/lodash/_getNative.js","webpack:///./~/lodash/identity.js","webpack:///./~/lodash/isArrayLike.js","webpack:///./~/recharts/es6/component/Text.js","webpack:///./~/recharts/es6/shape/Dot.js","webpack:///external \"jQuery\"","webpack:///./Client/v4/Utility/HeaderKind.ts","webpack:///./Client/v4/Services/azurePortalLinks.ts","webpack:///./Client/v4/Views/index.ts","webpack:///./../Intercom.ReactUI/Utils/logger.ts","webpack:///./../Intercom.ReactUI/Views/ProgressRingControl.tsx","webpack:///./~/d3-array/src/ascending.js","webpack:///./~/d3-interpolate/src/color.js","webpack:///./~/lodash/_Symbol.js","webpack:///./~/lodash/_arrayMap.js","webpack:///./~/lodash/_copyObject.js","webpack:///./~/lodash/get.js","webpack:///./~/lodash/isSymbol.js","webpack:///./~/recharts/es6/cartesian/XAxis.js","webpack:///./~/recharts/es6/cartesian/YAxis.js","webpack:///./~/recharts/es6/component/Cell.js","webpack:///./~/recharts/es6/shape/Curve.js","webpack:///./~/recharts/es6/shape/Rectangle.js","webpack:///./~/recharts/es6/util/LogUtils.js","webpack:///./~/recharts/~/core-js/modules/_descriptors.js","webpack:///./~/recharts/~/core-js/modules/_is-object.js","webpack:///./Client/Utils/ReactUtils.ts","webpack:///./Client/Views/Shared/BlockRowInputLabel.tsx","webpack:///./Client/v4/Views/BotPage.tsx","webpack:///./../Intercom.ReactUI/Views/BotImageControl.tsx","webpack:///./~/babel-runtime/~/core-js/library/modules/$.core.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.js","webpack:///./~/d3-array/src/number.js","webpack:///./~/d3-shape/src/math.js","webpack:///./~/d3-shape/src/offset/none.js","webpack:///./~/d3-shape/src/order/none.js","webpack:///./~/lodash/_baseEach.js","webpack:///./~/lodash/_baseUnary.js","webpack:///./~/lodash/_isIterateeCall.js","webpack:///./~/lodash/_toKey.js","webpack:///./~/object-assign/index.js","webpack:///./~/react-transition-group/~/prop-types/index.js","webpack:///./~/recharts/es6/cartesian/ErrorBar.js","webpack:///./~/recharts/es6/container/Surface.js","webpack:///./~/recharts/~/core-js/modules/_core.js","webpack:///./Client/v4/Utility/SupportedFeatureUtility.ts","webpack:///./Client/Decorators/index.ts","webpack:///./Client/Dialogs/DialogBase.ts","webpack:///./Client/Dialogs/GenericDialog.ts","webpack:///./Client/Dialogs/ProgressDialog.ts","webpack:///./Client/Models/PollingModel.ts","webpack:///./Client/Resources/Culture.ts","webpack:///./Client/Resources/CultureUtility.ts","webpack:///./Client/Services/HttpMethods.ts","webpack:///./Client/v4/Services/downloadBotSrc.ts","webpack:///./Client/v4/Services/openTab.ts","webpack:///./Client/v4/Views/BotAppContinuousIntegration.tsx","webpack:///./~/babel-runtime/helpers/class-call-check.js","webpack:///./~/babel-runtime/helpers/create-class.js","webpack:///./~/babel-runtime/helpers/get.js","webpack:///./~/babel-runtime/helpers/inherits.js","webpack:///./~/babel-runtime/helpers/interop-require-default.js","webpack:///./~/d3-format/src/exponent.js","webpack:///./~/d3-interpolate/src/number.js","webpack:///./~/d3-shape/src/curve/basis.js","webpack:///./~/d3-shape/src/curve/cardinal.js","webpack:///./~/d3-shape/src/curve/linear.js","webpack:///./~/d3-shape/src/noop.js","webpack:///./~/lodash/_ListCache.js","webpack:///./~/lodash/_assocIndexOf.js","webpack:///./~/lodash/_baseExtremum.js","webpack:///./~/lodash/_baseGet.js","webpack:///./~/lodash/_castPath.js","webpack:///./~/lodash/_getMapData.js","webpack:///./~/lodash/_getTag.js","webpack:///./~/lodash/_nativeCreate.js","webpack:///./~/lodash/eq.js","webpack:///./~/lodash/isNaN.js","webpack:///./~/lodash/isNumber.js","webpack:///./~/lodash/isPlainObject.js","webpack:///./~/lodash/isString.js","webpack:///./~/lodash/keysIn.js","webpack:///./~/lodash/omit.js","webpack:///./~/react-smooth/es6/util.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/utils/joinPrefixedValue.js","webpack:///./~/recharts/es6/cartesian/ZAxis.js","webpack:///./~/recharts/es6/component/Tooltip.js","webpack:///./~/recharts/es6/polar/PolarAngleAxis.js","webpack:///./~/recharts/es6/polar/PolarRadiusAxis.js","webpack:///./~/recharts/es6/shape/Polygon.js","webpack:///./~/recharts/es6/shape/Sector.js","webpack:///./~/recharts/es6/util/DOMUtils.js","webpack:///./~/recharts/~/core-js/modules/_an-object.js","webpack:///./~/recharts/~/core-js/modules/_has.js","webpack:///./~/recharts/~/core-js/modules/_to-integer.js","webpack:///(webpack)/buildin/module.js","webpack:///./Client/Controllers/ControllerBase.ts","webpack:///./Client/Dialogs/InputDialogBase.ts","webpack:///./Client/Services/ArmApi.ts","webpack:///./Client/Services/KuduApi.ts","webpack:///./Client/Services/index.ts","webpack:///./Client/Utils/Environment.ts","webpack:///./Client/Utils/FlightUtils.ts","webpack:///./Client/v4/ComponentDataModels/IPageStatus.ts","webpack:///./Client/v4/Services/botResourceId.ts","webpack:///./Client/v4/Utility/AuthenticationUtility.ts","webpack:///./Client/v4/Views/BotAppSettings.tsx","webpack:///./Client/v4/Views/BotChannels.tsx","webpack:///./Client/v4/Views/BotEditor.tsx","webpack:///./Client/v4/Views/MasterPageHeader.tsx","webpack:///./Client/v4/Views/WebChat.tsx","webpack:///./Client/v4/Views/status/index.ts","webpack:///./../Intercom.ReactUI/Utils/Cookies.ts","webpack:///./../Intercom.ReactUI/Views/JumboHeadControl.tsx","webpack:///./../Intercom.ReactUI/Views/ProgressBarControl.tsx","webpack:///./../Intercom.ReactUI/Views/v4/RuntimeConnectedShade.tsx","webpack:///./~/babel-runtime/core-js/object/assign.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.export.js","webpack:///./~/d3-array/src/quantile.js","webpack:///./~/d3-collection/src/map.js","webpack:///./~/d3-color/src/color.js","webpack:///./~/d3-color/src/define.js","webpack:///./~/d3-format/src/formatDecimal.js","webpack:///./~/d3-interpolate/src/basis.js","webpack:///./~/d3-interpolate/src/value.js","webpack:///./~/d3-scale/src/log.js","webpack:///./~/d3-scale/src/pow.js","webpack:///./~/d3-scale/src/symlog.js","webpack:///./~/d3-shape/src/curve/catmullRom.js","webpack:///./~/d3-shape/src/line.js","webpack:///./~/d3-shape/src/order/ascending.js","webpack:///./~/d3-shape/src/point.js","webpack:///./~/d3-time-format/src/defaultLocale.js","webpack:///./~/lodash/_Map.js","webpack:///./~/lodash/_MapCache.js","webpack:///./~/lodash/_SetCache.js","webpack:///./~/lodash/_Stack.js","webpack:///./~/lodash/_arrayPush.js","webpack:///./~/lodash/_baseAssignValue.js","webpack:///./~/lodash/_baseFlatten.js","webpack:///./~/lodash/_baseIsEqual.js","webpack:///./~/lodash/_baseRest.js","webpack:///./~/lodash/_cacheHas.js","webpack:///./~/lodash/_cloneArrayBuffer.js","webpack:///./~/lodash/_getPrototype.js","webpack:///./~/lodash/_getSymbols.js","webpack:///./~/lodash/_isIndex.js","webpack:///./~/lodash/_isKey.js","webpack:///./~/lodash/_isPrototype.js","webpack:///./~/lodash/_nodeUtil.js","webpack:///./~/lodash/_setToArray.js","webpack:///./~/lodash/forEach.js","webpack:///./~/lodash/isArguments.js","webpack:///./~/lodash/isBuffer.js","webpack:///./~/lodash/isLength.js","webpack:///./~/lodash/sortBy.js","webpack:///./~/prop-types/index.js","webpack:///./~/prop-types/lib/ReactPropTypesSecret.js","webpack:///./~/react-resize-detector/~/prop-types/lib/ReactPropTypesSecret.js","webpack:///./~/react-smooth/~/prop-types/index.js","webpack:///./~/react-smooth/~/prop-types/lib/ReactPropTypesSecret.js","webpack:///./~/react-transition-group/Transition.js","webpack:///./~/react-transition-group/TransitionGroup.js","webpack:///./~/react-transition-group/~/prop-types/lib/ReactPropTypesSecret.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/utils/capitalizeString.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/utils/isPrefixedValue.js","webpack:///./~/react-treebeard/~/radium/lib/css-rule-set-to-string.js","webpack:///./~/react-treebeard/~/radium/lib/prefixer.js","webpack:///./~/react-treebeard/~/radium/lib/style-keeper.js","webpack:///./~/recharts/es6/cartesian/Area.js","webpack:///./~/recharts/es6/cartesian/Bar.js","webpack:///./~/recharts/es6/cartesian/Line.js","webpack:///./~/recharts/es6/cartesian/Scatter.js","webpack:///./~/recharts/es6/component/Legend.js","webpack:///./~/recharts/es6/shape/Symbols.js","webpack:///./~/recharts/~/core-js/modules/_cof.js","webpack:///./~/recharts/~/core-js/modules/_defined.js","webpack:///./~/recharts/~/core-js/modules/_enum-bug-keys.js","webpack:///./~/recharts/~/core-js/modules/_math-expm1.js","webpack:///./~/recharts/~/core-js/modules/_math-sign.js","webpack:///./~/recharts/~/core-js/modules/_object-dp.js","webpack:///./~/recharts/~/core-js/modules/_string-trim.js","webpack:///./~/recharts/~/core-js/modules/_string-ws.js","webpack:///./~/recharts/~/core-js/modules/_to-iobject.js","webpack:///./~/recharts/~/core-js/modules/_to-primitive.js","webpack:///./~/recharts/~/prop-types/lib/ReactPropTypesSecret.js","webpack:///./~/velocity-react/lib/velocity-animate-shim.js","webpack:///./Client/v4/Controllers/AzurePortalPageController.ts","webpack:///./Client/v4/Controllers/BotController.ts","webpack:///./Client/v4/Controllers/BotEditController.ts","webpack:///./Client/v4/Controllers/WebChatController.ts","webpack:///./Client/Controllers/EmailSubscriptionConsent.ts","webpack:///./Client/Dialogs/KeyCodes.ts","webpack:///./Client/Views/BotTabPage.tsx","webpack:///./Client/Views/BotVersionEditor.tsx","webpack:///./Client/Views/DropdownMenu.tsx","webpack:///./Client/Views/LogoutPanel.tsx","webpack:///./Client/Views/Shared/IBotEditor.ts","webpack:///./Client/Views/UserAgreementConsentFormFields.tsx","webpack:///./Client/v4/Controllers/BotControllerBase.ts","webpack:///./Client/v4/Services/parseApiError.ts","webpack:///./Client/v4/Utility/AzurePortalMessenger.ts","webpack:///./Client/v4/Utility/FlagUtility.ts","webpack:///./Client/v4/Views/AnalyticsDashboard.tsx","webpack:///./Client/v4/Views/BotChannelConfig.tsx","webpack:///./Client/v4/Views/BotCodeEditor.tsx","webpack:///./Client/v4/Views/BotCodeSetup.tsx","webpack:///./Client/v4/Views/BotCreateSwitch.tsx","webpack:///./Client/v4/Views/BotEditorRow.tsx","webpack:///./Client/v4/Views/BotPageBody.tsx","webpack:///./Client/v4/Views/BotPageHeader.tsx","webpack:///./Client/v4/Views/BotsPage.tsx","webpack:///./Client/v4/Views/ChevronDropdownControl.tsx","webpack:///./Client/v4/Views/CompactDropdownControl.tsx","webpack:///./Client/v4/Views/EmbedCodePanel.tsx","webpack:///./Client/v4/Views/MasterPage.tsx","webpack:///./Client/v4/Views/RejectionDetailsPanel.tsx","webpack:///./Client/v4/Views/TabControl.tsx","webpack:///./Client/v4/Views/status/BotProgress.tsx","webpack:///./../Intercom.ReactUI/Utils/NameReflector.ts","webpack:///./../Intercom.ReactUI/Utils/Path.ts","webpack:///./../Intercom.ReactUI/Utils/RuntimeConnectedShadeUtils.ts","webpack:///./../Intercom.ReactUI/Utils/browserCaps.ts","webpack:///./../Intercom.ReactUI/Utils/clacky.ts","webpack:///./../Intercom.ReactUI/Views/PinToBottom.ts","webpack:///./../Intercom.ReactUI/Views/SearchControl.tsx","webpack:///./../Intercom.ReactUI/Views/TooltipControl.tsx","webpack:///./~/babel-runtime/~/core-js/library/modules/$.ctx.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.defined.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.fails.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.iobject.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.is-object.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.object-sap.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.to-object.js","webpack:///./~/brace/worker/javascript.js","webpack:///./~/d3-array/src/array.js","webpack:///./~/d3-array/src/bisect.js","webpack:///./~/d3-array/src/bisector.js","webpack:///./~/d3-array/src/deviation.js","webpack:///./~/d3-array/src/extent.js","webpack:///./~/d3-array/src/min.js","webpack:///./~/d3-array/src/pairs.js","webpack:///./~/d3-array/src/range.js","webpack:///./~/d3-array/src/threshold/sturges.js","webpack:///./~/d3-array/src/ticks.js","webpack:///./~/d3-array/src/transpose.js","webpack:///./~/d3-array/src/variance.js","webpack:///./~/d3-color/src/math.js","webpack:///./~/d3-format/src/formatPrefixAuto.js","webpack:///./~/d3-format/src/formatSpecifier.js","webpack:///./~/d3-format/src/locale.js","webpack:///./~/d3-interpolate/src/array.js","webpack:///./~/d3-interpolate/src/basisClosed.js","webpack:///./~/d3-interpolate/src/constant.js","webpack:///./~/d3-interpolate/src/date.js","webpack:///./~/d3-interpolate/src/object.js","webpack:///./~/d3-interpolate/src/rgb.js","webpack:///./~/d3-interpolate/src/string.js","webpack:///./~/d3-scale/src/nice.js","webpack:///./~/d3-scale/src/number.js","webpack:///./~/d3-scale/src/ordinal.js","webpack:///./~/d3-scale/src/sequential.js","webpack:///./~/d3-scale/src/tickFormat.js","webpack:///./~/d3-scale/src/time.js","webpack:///./~/d3-shape/src/area.js","webpack:///./~/d3-shape/src/array.js","webpack:///./~/d3-shape/src/curve/cardinalClosed.js","webpack:///./~/d3-shape/src/curve/cardinalOpen.js","webpack:///./~/d3-shape/src/curve/radial.js","webpack:///./~/d3-shape/src/lineRadial.js","webpack:///./~/d3-shape/src/order/appearance.js","webpack:///./~/d3-shape/src/pointRadial.js","webpack:///./~/d3-shape/src/symbol/circle.js","webpack:///./~/d3-shape/src/symbol/cross.js","webpack:///./~/d3-shape/src/symbol/diamond.js","webpack:///./~/d3-shape/src/symbol/square.js","webpack:///./~/d3-shape/src/symbol/star.js","webpack:///./~/d3-shape/src/symbol/triangle.js","webpack:///./~/d3-shape/src/symbol/wye.js","webpack:///./~/d3-time-format/src/isoFormat.js","webpack:///./~/d3-time-format/src/locale.js","webpack:///./~/decimal.js-light/decimal.js","webpack:///./~/hyphenate-style-name/index.js","webpack:///./~/lodash/_Set.js","webpack:///./~/lodash/_Uint8Array.js","webpack:///./~/lodash/_arrayEach.js","webpack:///./~/lodash/_arrayFilter.js","webpack:///./~/lodash/_arrayIncludes.js","webpack:///./~/lodash/_arrayIncludesWith.js","webpack:///./~/lodash/_arrayLikeKeys.js","webpack:///./~/lodash/_arraySome.js","webpack:///./~/lodash/_assignValue.js","webpack:///./~/lodash/_baseFindIndex.js","webpack:///./~/lodash/_baseForOwn.js","webpack:///./~/lodash/_baseGetAllKeys.js","webpack:///./~/lodash/_baseGt.js","webpack:///./~/lodash/_baseLt.js","webpack:///./~/lodash/_baseMap.js","webpack:///./~/lodash/_defineProperty.js","webpack:///./~/lodash/_equalArrays.js","webpack:///./~/lodash/_freeGlobal.js","webpack:///./~/lodash/_getAllKeys.js","webpack:///./~/lodash/_getAllKeysIn.js","webpack:///./~/lodash/_getSymbolsIn.js","webpack:///./~/lodash/_isStrictComparable.js","webpack:///./~/lodash/_matchesStrictComparable.js","webpack:///./~/lodash/_overArg.js","webpack:///./~/lodash/_overRest.js","webpack:///./~/lodash/_setToString.js","webpack:///./~/lodash/_toSource.js","webpack:///./~/lodash/debounce.js","webpack:///./~/lodash/every.js","webpack:///./~/lodash/isTypedArray.js","webpack:///./~/lodash/last.js","webpack:///./~/lodash/map.js","webpack:///./~/lodash/max.js","webpack:///./~/lodash/maxBy.js","webpack:///./~/lodash/min.js","webpack:///./~/lodash/range.js","webpack:///./~/lodash/stubArray.js","webpack:///./~/lodash/toFinite.js","webpack:///./~/lodash/toNumber.js","webpack:///./~/lodash/uniqBy.js","webpack:///./~/raf/index.js","webpack:///./~/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack:///./~/react-smooth/es6/Animate.js","webpack:///./~/react-smooth/es6/easing.js","webpack:///./~/react-transition-group/index.js","webpack:///./~/react-transition-group/utils/PropTypes.js","webpack:///./~/react-treebeard/index.js","webpack:///./~/react-treebeard/lib/components/decorators.js","webpack:///./~/react-treebeard/lib/themes/animations.js","webpack:///./~/react-treebeard/lib/themes/default.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/static/prefixProps.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/utils/sortPrefixedStyle.js","webpack:///./~/react-treebeard/~/radium/lib/append-px-if-needed.js","webpack:///./~/react-treebeard/~/radium/lib/enhancer.js","webpack:///./~/react-treebeard/~/radium/lib/get-state-key.js","webpack:///./~/react-treebeard/~/radium/lib/get-state.js","webpack:///./~/react-treebeard/~/radium/lib/hash.js","webpack:///./~/react-treebeard/~/radium/lib/map-object.js","webpack:///./~/react-treebeard/~/radium/lib/plugins/index.js","webpack:///./~/react-treebeard/~/radium/lib/resolve-styles.js","webpack:///./~/recharts-scale/lib/util/utils.js","webpack:///./~/recharts/es6/cartesian/Brush.js","webpack:///./~/recharts/es6/cartesian/CartesianAxis.js","webpack:///./~/recharts/es6/cartesian/ReferenceArea.js","webpack:///./~/recharts/es6/cartesian/ReferenceDot.js","webpack:///./~/recharts/es6/cartesian/ReferenceLine.js","webpack:///./~/recharts/es6/numberAxis/Funnel.js","webpack:///./~/recharts/es6/polar/Pie.js","webpack:///./~/recharts/es6/polar/Radar.js","webpack:///./~/recharts/es6/polar/RadialBar.js","webpack:///./~/recharts/es6/shape/Cross.js","webpack:///./~/recharts/es6/shape/Trapezoid.js","webpack:///./~/recharts/~/core-js/modules/_a-number-value.js","webpack:///./~/recharts/~/core-js/modules/_ctx.js","webpack:///./~/recharts/~/core-js/modules/_dom-create.js","webpack:///./~/recharts/~/core-js/modules/_hide.js","webpack:///./~/recharts/~/core-js/modules/_ie8-dom-define.js","webpack:///./~/recharts/~/core-js/modules/_is-integer.js","webpack:///./~/recharts/~/core-js/modules/_math-log1p.js","webpack:///./~/recharts/~/core-js/modules/_object-gopd.js","webpack:///./~/recharts/~/core-js/modules/_object-keys-internal.js","webpack:///./~/recharts/~/core-js/modules/_property-desc.js","webpack:///./~/recharts/~/core-js/modules/_redefine.js","webpack:///./~/recharts/~/core-js/modules/_shared-key.js","webpack:///./~/recharts/~/core-js/modules/_shared.js","webpack:///./~/recharts/~/core-js/modules/_uid.js","webpack:///./~/velocity-react/index.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///./Client/Controllers/FlightController.ts","webpack:///./Client/Controllers/RedirectController.ts","webpack:///./Client/DevPortalAppBase.ts","webpack:///./Client/v4/Controllers/AccountSettingsController.ts","webpack:///./Client/v4/Controllers/BotCreateSwitchController.ts","webpack:///./Client/v4/Controllers/BotOpenComposerController.ts","webpack:///./Client/v4/Controllers/BotsController.ts","webpack:///./Client/v4/Controllers/SignOut.ts","webpack:///./Client/Decorators/lazy.ts","webpack:///./Client/Dialogs/TermsOfServiceDialog.ts","webpack:///./Client/Services/GithubApi.ts","webpack:///./Client/Services/GraphApi.ts","webpack:///./Client/Services/VsoApi.ts","webpack:///./Client/Utils/ImageUtils.ts","webpack:///./Client/Utils/LocalizationUtils.ts","webpack:///./Client/Utils/PromotionEmailUtils.ts","webpack:///./Client/Utils/TrackingCookieConsent.ts","webpack:///./Client/Views/BotMsaEditor.tsx","webpack:///./Client/Views/ChannelEnabledPanel.tsx","webpack:///./Client/Views/ChannelLogPanel.tsx","webpack:///./Client/Views/EmailSubscriptionConsentForm.tsx","webpack:///./Client/Views/EmailSubscriptionConsentFormFields.tsx","webpack:///./Client/Views/LogStream.tsx","webpack:///./Client/Views/LogoutPage.tsx","webpack:///./Client/Views/MasterPage.tsx","webpack:///./Client/Views/MessageBox.tsx","webpack:///./Client/Views/ProgressPanel.tsx","webpack:///./Client/Views/SecretControl.tsx","webpack:///./Client/Views/Shared/BlockRowInputField.tsx","webpack:///./Client/Views/TreeStyle.ts","webpack:///./Client/v4/Controllers/BotCodeEditorController.ts","webpack:///./Client/v4/Controllers/BotCodeSetupController.ts","webpack:///./Client/v4/DevPortalApp.ts","webpack:///./Client/v4/Reducers/Reducers.tsx","webpack:///./Client/v4/Services/setupRemoteRepo.ts","webpack:///./Client/v4/Store/StateStoreUtility.ts","webpack:///./Client/v4/Views/AbsCodeCIEnablePanel.tsx","webpack:///./Client/v4/Views/AbsCodeChoicePanel.tsx","webpack:///./Client/v4/Views/AccountSettingsPage.tsx","webpack:///./Client/v4/Views/AzurePortalPage.tsx","webpack:///./Client/v4/Views/BotIconControl.tsx","webpack:///./Client/v4/Views/BotMigrationDialog.tsx","webpack:///./Client/v4/Views/BotOpenComposer.tsx","webpack:///./Client/v4/Views/BotSettingsTab.tsx","webpack:///./Client/v4/Views/BotsPageRow.tsx","webpack:///./Client/v4/Views/EmptyBotPage.tsx","webpack:///./Client/v4/Views/FullPageErrorComponent.tsx","webpack:///./Client/v4/Views/FullPageStatusComponent.tsx","webpack:///./Client/v4/Views/IbizaWebChatPage.tsx","webpack:///./Client/v4/Views/TermsOfServiceDialog.tsx","webpack:///./Client/v4/Views/WebChatPage.tsx","webpack:///./Client/v4/Views/status/CookieInform.tsx","webpack:///./Client/v4/Views/status/DialogStatus.tsx","webpack:///./Client/v4/Views/status/ExpiredSubscription.tsx","webpack:///./Client/v4/Views/status/V3Update.tsx","webpack:///./../Intercom.ReactUI/Generated/ReactUI.ts","webpack:///./../Intercom.ReactUI/Utils/downloadBlob.ts","webpack:///./../Intercom.ReactUI/Utils/timestamp.ts","webpack:///./../Intercom.ReactUI/Utils/userAgent.ts","webpack:///./../Intercom.ReactUI/Views/AutoResizeTextAreaControl.tsx","webpack:///./../Intercom.ReactUI/Views/BotGalleryControl.tsx","webpack:///./../Intercom.ReactUI/Views/BotHeaderCard.tsx","webpack:///./../Intercom.ReactUI/Views/DownloadLinkControl.tsx","webpack:///./../Intercom.ReactUI/Views/ExpandableTextControl.tsx","webpack:///./../Intercom.ReactUI/Views/FooterControl.tsx","webpack:///./../Intercom.ReactUI/Views/FormattedMessage.tsx","webpack:///./../Intercom.ReactUI/Views/HeaderControl.tsx","webpack:///./../Intercom.ReactUI/Views/SiteStatusControl.tsx","webpack:///./../Intercom.ReactUI/Views/SortableListControl.tsx","webpack:///./../Intercom.ReactUI/Views/TimestampControl.tsx","webpack:///./../Intercom.ReactUI/Views/v4/FooterControl.tsx","webpack:///./../Intercom.ReactUI/Views/v4/HeaderControl.tsx","webpack:///./../Intercom.ReactUI/Views/v4/JumboHeadControl.tsx","webpack:///./../Intercom.ReactUI/Views/v4/TooltipParagraph.tsx","webpack:///./../Intercom.ReactUI/Views/v4/index.ts","webpack:///./~/@babel/runtime/helpers/interopRequireDefault.js","webpack:///./~/babel-runtime/core-js/object/create.js","webpack:///./~/babel-runtime/core-js/object/define-property.js","webpack:///./~/babel-runtime/core-js/object/get-own-property-descriptor.js","webpack:///./~/babel-runtime/core-js/object/keys.js","webpack:///./~/babel-runtime/core-js/object/set-prototype-of.js","webpack:///./~/babel-runtime/helpers/extends.js","webpack:///./~/babel-runtime/~/core-js/library/fn/object/assign.js","webpack:///./~/babel-runtime/~/core-js/library/fn/object/create.js","webpack:///./~/babel-runtime/~/core-js/library/fn/object/define-property.js","webpack:///./~/babel-runtime/~/core-js/library/fn/object/get-own-property-descriptor.js","webpack:///./~/babel-runtime/~/core-js/library/fn/object/keys.js","webpack:///./~/babel-runtime/~/core-js/library/fn/object/set-prototype-of.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.a-function.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.an-object.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.cof.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.global.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.object-assign.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.set-proto.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.to-iobject.js","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.object.assign.js","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.object.get-own-property-descriptor.js","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.object.keys.js","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.object.set-prototype-of.js","webpack:///./~/bowser/src/bowser.js","webpack:///./~/brace/index.js","webpack:///./~/brace/mode/csharp.js","webpack:///./~/brace/mode/javascript.js","webpack:///./~/brace/mode/json.js","webpack:///./~/brace/mode/typescript.js","webpack:///./~/brace/mode/xml.js","webpack:///./~/brace/theme/github.js","webpack:///./~/brace/worker/json.js","webpack:///./~/brace/worker/xml.js","webpack:///./~/d3-array/src/constant.js","webpack:///./~/d3-array/src/identity.js","webpack:///./~/d3-collection/src/set.js","webpack:///./~/d3-color/src/cubehelix.js","webpack:///./~/d3-color/src/lab.js","webpack:///./~/d3-format/src/defaultLocale.js","webpack:///./~/d3-format/src/formatGroup.js","webpack:///./~/d3-format/src/formatNumerals.js","webpack:///./~/d3-format/src/formatRounded.js","webpack:///./~/d3-format/src/formatTrim.js","webpack:///./~/d3-format/src/formatTypes.js","webpack:///./~/d3-format/src/identity.js","webpack:///./~/d3-format/src/precisionFixed.js","webpack:///./~/d3-format/src/precisionPrefix.js","webpack:///./~/d3-format/src/precisionRound.js","webpack:///./~/d3-interpolate/src/cubehelix.js","webpack:///./~/d3-interpolate/src/hcl.js","webpack:///./~/d3-interpolate/src/hsl.js","webpack:///./~/d3-interpolate/src/round.js","webpack:///./~/d3-interpolate/src/transform/decompose.js","webpack:///./~/d3-interpolate/src/transform/index.js","webpack:///./~/d3-interpolate/src/transform/parse.js","webpack:///./~/d3-interpolate/src/zoom.js","webpack:///./~/d3-path/src/path.js","webpack:///./~/d3-scale/src/band.js","webpack:///./~/d3-scale/src/constant.js","webpack:///./~/d3-scale/src/diverging.js","webpack:///./~/d3-scale/src/identity.js","webpack:///./~/d3-scale/src/quantile.js","webpack:///./~/d3-scale/src/quantize.js","webpack:///./~/d3-scale/src/sequentialQuantile.js","webpack:///./~/d3-scale/src/threshold.js","webpack:///./~/d3-scale/src/utcTime.js","webpack:///./~/d3-shape/src/curve/basisClosed.js","webpack:///./~/d3-shape/src/curve/basisOpen.js","webpack:///./~/d3-shape/src/curve/bundle.js","webpack:///./~/d3-shape/src/curve/catmullRomClosed.js","webpack:///./~/d3-shape/src/curve/catmullRomOpen.js","webpack:///./~/d3-shape/src/curve/linearClosed.js","webpack:///./~/d3-shape/src/curve/monotone.js","webpack:///./~/d3-shape/src/curve/natural.js","webpack:///./~/d3-shape/src/curve/step.js","webpack:///./~/d3-shape/src/descending.js","webpack:///./~/d3-shape/src/identity.js","webpack:///./~/d3-shape/src/offset/expand.js","webpack:///./~/d3-shape/src/offset/silhouette.js","webpack:///./~/d3-shape/src/offset/wiggle.js","webpack:///./~/d3-shape/src/stack.js","webpack:///./~/d3-shape/src/symbol.js","webpack:///./~/d3-time-format/src/isoParse.js","webpack:///./~/d3-time/src/day.js","webpack:///./~/d3-time/src/hour.js","webpack:///./~/d3-time/src/millisecond.js","webpack:///./~/d3-time/src/minute.js","webpack:///./~/d3-time/src/month.js","webpack:///./~/d3-time/src/second.js","webpack:///./~/d3-time/src/utcDay.js","webpack:///./~/d3-time/src/utcHour.js","webpack:///./~/d3-time/src/utcMinute.js","webpack:///./~/d3-time/src/utcMonth.js","webpack:///./~/d3-time/src/utcWeek.js","webpack:///./~/d3-time/src/utcYear.js","webpack:///./~/d3-time/src/week.js","webpack:///./~/d3-time/src/year.js","webpack:///./~/deep-equal/index.js","webpack:///./~/deep-equal/lib/is_arguments.js","webpack:///./~/deep-equal/lib/keys.js","webpack:///./~/dom-helpers/class/addClass.js","webpack:///./~/dom-helpers/class/hasClass.js","webpack:///./~/dom-helpers/class/removeClass.js","webpack:///./~/events/events.js","webpack:///./~/exenv/index.js","webpack:///./~/lodash._getnative/index.js","webpack:///./~/lodash.debounce/index.js","webpack:///./~/lodash.isarguments/index.js","webpack:///./~/lodash.isarray/index.js","webpack:///./~/lodash.isequal/index.js","webpack:///./~/lodash.keys/index.js","webpack:///./~/lodash.throttle/index.js","webpack:///./~/lodash/_DataView.js","webpack:///./~/lodash/_Hash.js","webpack:///./~/lodash/_Promise.js","webpack:///./~/lodash/_WeakMap.js","webpack:///./~/lodash/_apply.js","webpack:///./~/lodash/_arrayEvery.js","webpack:///./~/lodash/_baseAssign.js","webpack:///./~/lodash/_baseAssignIn.js","webpack:///./~/lodash/_baseClone.js","webpack:///./~/lodash/_baseCreate.js","webpack:///./~/lodash/_baseEvery.js","webpack:///./~/lodash/_baseFilter.js","webpack:///./~/lodash/_baseFor.js","webpack:///./~/lodash/_baseHasIn.js","webpack:///./~/lodash/_baseIndexOf.js","webpack:///./~/lodash/_baseIntersection.js","webpack:///./~/lodash/_baseIsArguments.js","webpack:///./~/lodash/_baseIsEqualDeep.js","webpack:///./~/lodash/_baseIsMap.js","webpack:///./~/lodash/_baseIsMatch.js","webpack:///./~/lodash/_baseIsNaN.js","webpack:///./~/lodash/_baseIsNative.js","webpack:///./~/lodash/_baseIsSet.js","webpack:///./~/lodash/_baseIsTypedArray.js","webpack:///./~/lodash/_baseKeys.js","webpack:///./~/lodash/_baseKeysIn.js","webpack:///./~/lodash/_baseMatches.js","webpack:///./~/lodash/_baseMatchesProperty.js","webpack:///./~/lodash/_baseOrderBy.js","webpack:///./~/lodash/_baseProperty.js","webpack:///./~/lodash/_basePropertyDeep.js","webpack:///./~/lodash/_baseRange.js","webpack:///./~/lodash/_baseSetToString.js","webpack:///./~/lodash/_baseSlice.js","webpack:///./~/lodash/_baseSome.js","webpack:///./~/lodash/_baseSortBy.js","webpack:///./~/lodash/_baseSum.js","webpack:///./~/lodash/_baseTimes.js","webpack:///./~/lodash/_baseToString.js","webpack:///./~/lodash/_baseTrim.js","webpack:///./~/lodash/_baseUniq.js","webpack:///./~/lodash/_baseUnset.js","webpack:///./~/lodash/_castArrayLikeObject.js","webpack:///./~/lodash/_castFunction.js","webpack:///./~/lodash/_cloneBuffer.js","webpack:///./~/lodash/_cloneDataView.js","webpack:///./~/lodash/_cloneRegExp.js","webpack:///./~/lodash/_cloneSymbol.js","webpack:///./~/lodash/_cloneTypedArray.js","webpack:///./~/lodash/_compareAscending.js","webpack:///./~/lodash/_compareMultiple.js","webpack:///./~/lodash/_copyArray.js","webpack:///./~/lodash/_copySymbols.js","webpack:///./~/lodash/_copySymbolsIn.js","webpack:///./~/lodash/_coreJsData.js","webpack:///./~/lodash/_createAssigner.js","webpack:///./~/lodash/_createBaseEach.js","webpack:///./~/lodash/_createBaseFor.js","webpack:///./~/lodash/_createFind.js","webpack:///./~/lodash/_createRange.js","webpack:///./~/lodash/_createSet.js","webpack:///./~/lodash/_customOmitClone.js","webpack:///./~/lodash/_equalByTag.js","webpack:///./~/lodash/_equalObjects.js","webpack:///./~/lodash/_flatRest.js","webpack:///./~/lodash/_getMatchData.js","webpack:///./~/lodash/_getRawTag.js","webpack:///./~/lodash/_getValue.js","webpack:///./~/lodash/_hasPath.js","webpack:///./~/lodash/_hashClear.js","webpack:///./~/lodash/_hashDelete.js","webpack:///./~/lodash/_hashGet.js","webpack:///./~/lodash/_hashHas.js","webpack:///./~/lodash/_hashSet.js","webpack:///./~/lodash/_initCloneArray.js","webpack:///./~/lodash/_initCloneByTag.js","webpack:///./~/lodash/_initCloneObject.js","webpack:///./~/lodash/_isFlattenable.js","webpack:///./~/lodash/_isKeyable.js","webpack:///./~/lodash/_isMasked.js","webpack:///./~/lodash/_listCacheClear.js","webpack:///./~/lodash/_listCacheDelete.js","webpack:///./~/lodash/_listCacheGet.js","webpack:///./~/lodash/_listCacheHas.js","webpack:///./~/lodash/_listCacheSet.js","webpack:///./~/lodash/_mapCacheClear.js","webpack:///./~/lodash/_mapCacheDelete.js","webpack:///./~/lodash/_mapCacheGet.js","webpack:///./~/lodash/_mapCacheHas.js","webpack:///./~/lodash/_mapCacheSet.js","webpack:///./~/lodash/_mapToArray.js","webpack:///./~/lodash/_memoizeCapped.js","webpack:///./~/lodash/_nativeKeys.js","webpack:///./~/lodash/_nativeKeysIn.js","webpack:///./~/lodash/_objectToString.js","webpack:///./~/lodash/_parent.js","webpack:///./~/lodash/_setCacheAdd.js","webpack:///./~/lodash/_setCacheHas.js","webpack:///./~/lodash/_shortOut.js","webpack:///./~/lodash/_stackClear.js","webpack:///./~/lodash/_stackDelete.js","webpack:///./~/lodash/_stackGet.js","webpack:///./~/lodash/_stackHas.js","webpack:///./~/lodash/_stackSet.js","webpack:///./~/lodash/_strictIndexOf.js","webpack:///./~/lodash/_stringToPath.js","webpack:///./~/lodash/_trimmedEndIndex.js","webpack:///./~/lodash/assignIn.js","webpack:///./~/lodash/constant.js","webpack:///./~/lodash/each.js","webpack:///./~/lodash/extend.js","webpack:///./~/lodash/filter.js","webpack:///./~/lodash/find.js","webpack:///./~/lodash/findIndex.js","webpack:///./~/lodash/flatMap.js","webpack:///./~/lodash/flatten.js","webpack:///./~/lodash/hasIn.js","webpack:///./~/lodash/intersection.js","webpack:///./~/lodash/isArrayLikeObject.js","webpack:///./~/lodash/isMap.js","webpack:///./~/lodash/isSet.js","webpack:///./~/lodash/mapValues.js","webpack:///./~/lodash/memoize.js","webpack:///./~/lodash/minBy.js","webpack:///./~/lodash/noop.js","webpack:///./~/lodash/now.js","webpack:///./~/lodash/property.js","webpack:///./~/lodash/some.js","webpack:///./~/lodash/stubFalse.js","webpack:///./~/lodash/sumBy.js","webpack:///./~/lodash/throttle.js","webpack:///./~/lodash/toInteger.js","webpack:///./~/lodash/toString.js","webpack:///./~/math-expression-evaluator/src/formula_evaluator.js","webpack:///./~/math-expression-evaluator/src/lexer.js","webpack:///./~/math-expression-evaluator/src/math_function.js","webpack:///./~/math-expression-evaluator/src/postfix.js","webpack:///./~/math-expression-evaluator/src/postfix_evaluator.js","webpack:///./~/performance-now/src/performance-now.coffee","webpack:///./~/prop-types/checkPropTypes.js","webpack:///./~/prop-types/factoryWithThrowingShims.js","webpack:///./~/prop-types/factoryWithTypeCheckers.js","webpack:///./~/react-ace/lib/ace.js","webpack:///webpack:///webpack/universalModuleDefinition","webpack:///webpack:/webpack/bootstrap 94061f0f903741766228","webpack:///webpack:///src/index.js","webpack:///webpack:///~/process/browser.js","webpack:///webpack:/external \"react\"","webpack:///webpack:/external \"prop-types\"","webpack:///webpack:///~/attr-accept/dist/index.js","webpack:///webpack:///src/getDataTransferItems.js","webpack:///./~/react-is/cjs/react-is.development.js","webpack:///./~/react-is/cjs/react-is.production.min.js","webpack:///./~/react-resize-detector/lib/components/ResizeDetector.js","webpack:///./~/react-resize-detector/lib/index.js","webpack:///./~/react-resize-detector/~/prop-types/checkPropTypes.js","webpack:///./~/react-resize-detector/~/prop-types/factoryWithThrowingShims.js","webpack:///./~/react-resize-detector/~/prop-types/factoryWithTypeCheckers.js","webpack:///./~/react-resize-detector/~/prop-types/index.js","webpack:///./~/react-smooth/es6/AnimateGroup.js","webpack:///./~/react-smooth/es6/AnimateGroupChild.js","webpack:///./~/react-smooth/es6/AnimateManager.js","webpack:///./~/react-smooth/es6/PureRender.js","webpack:///./~/react-smooth/es6/configUpdate.js","webpack:///./~/react-smooth/es6/setRafTimeout.js","webpack:///./~/react-smooth/~/prop-types/checkPropTypes.js","webpack:///./~/react-smooth/~/prop-types/factoryWithThrowingShims.js","webpack:///./~/react-smooth/~/prop-types/factoryWithTypeCheckers.js","webpack:///./~/react-transition-group/CSSTransition.js","webpack:///./~/react-transition-group/ReplaceTransition.js","webpack:///./~/react-transition-group/~/prop-types/checkPropTypes.js","webpack:///./~/react-transition-group/~/prop-types/factoryWithThrowingShims.js","webpack:///./~/react-transition-group/~/prop-types/factoryWithTypeCheckers.js","webpack:///./~/react-transition-group/utils/ChildMapping.js","webpack:///./~/react-treebeard/lib/components/header.js","webpack:///./~/react-treebeard/lib/components/node.js","webpack:///./~/react-treebeard/lib/components/treebeard.js","webpack:///./~/react-treebeard/lib/index.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/Prefixer.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/plugins/calc.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/plugins/flex.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/plugins/flexboxIE.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/plugins/flexboxOld.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/plugins/grabCursor.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/plugins/gradient.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/plugins/position.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/plugins/sizing.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/plugins/transition.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/plugins/zoomCursor.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/prefixProps.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/static/plugins/calc.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/static/plugins/cursor.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/static/plugins/flex.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/static/plugins/flexboxIE.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/static/plugins/flexboxOld.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/static/plugins/gradient.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/static/plugins/position.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/static/plugins/sizing.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/static/plugins/transition.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/static/prefixAll.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/utils/getBrowserInformation.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/utils/getPrefixedKeyframes.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/utils/isPrefixedProperty.js","webpack:///./~/react-treebeard/~/inline-style-prefixer/lib/utils/unprefixProperty.js","webpack:///./~/react-treebeard/~/radium/lib/append-important-to-each-value.js","webpack:///./~/react-treebeard/~/radium/lib/camel-case-props-to-dash-case.js","webpack:///./~/react-treebeard/~/radium/lib/components/style-root.js","webpack:///./~/react-treebeard/~/radium/lib/components/style-sheet.js","webpack:///./~/react-treebeard/~/radium/lib/components/style.js","webpack:///./~/react-treebeard/~/radium/lib/index.js","webpack:///./~/react-treebeard/~/radium/lib/keyframes.js","webpack:///./~/react-treebeard/~/radium/lib/merge-styles.js","webpack:///./~/react-treebeard/~/radium/lib/plugins/check-props-plugin.js","webpack:///./~/react-treebeard/~/radium/lib/plugins/keyframes-plugin.js","webpack:///./~/react-treebeard/~/radium/lib/plugins/merge-style-array-plugin.js","webpack:///./~/react-treebeard/~/radium/lib/plugins/mouse-up-listener.js","webpack:///./~/react-treebeard/~/radium/lib/plugins/prefix-plugin.js","webpack:///./~/react-treebeard/~/radium/lib/plugins/remove-nested-styles-plugin.js","webpack:///./~/react-treebeard/~/radium/lib/plugins/resolve-interaction-styles-plugin.js","webpack:///./~/react-treebeard/~/radium/lib/plugins/resolve-media-queries-plugin.js","webpack:///./~/react-treebeard/~/radium/lib/plugins/visited-plugin.js","webpack:///./~/recharts-scale/lib/getNiceTickValues.js","webpack:///./~/recharts-scale/lib/index.js","webpack:///./~/recharts-scale/lib/util/arithmetic.js","webpack:///./~/recharts/es6/cartesian/CartesianGrid.js","webpack:///./~/recharts/es6/chart/AreaChart.js","webpack:///./~/recharts/es6/chart/BarChart.js","webpack:///./~/recharts/es6/chart/ComposedChart.js","webpack:///./~/recharts/es6/chart/FunnelChart.js","webpack:///./~/recharts/es6/chart/LineChart.js","webpack:///./~/recharts/es6/chart/PieChart.js","webpack:///./~/recharts/es6/chart/RadarChart.js","webpack:///./~/recharts/es6/chart/RadialBarChart.js","webpack:///./~/recharts/es6/chart/Sankey.js","webpack:///./~/recharts/es6/chart/ScatterChart.js","webpack:///./~/recharts/es6/chart/Treemap.js","webpack:///./~/recharts/es6/component/Customized.js","webpack:///./~/recharts/es6/component/DefaultLegendContent.js","webpack:///./~/recharts/es6/component/DefaultTooltipContent.js","webpack:///./~/recharts/es6/component/ResponsiveContainer.js","webpack:///./~/recharts/es6/polar/PolarGrid.js","webpack:///./~/recharts/es6/polyfill.js","webpack:///./~/recharts/es6/util/Constants.js","webpack:///./~/recharts/es6/util/CssPrefixUtils.js","webpack:///./~/recharts/es6/util/Events.js","webpack:///./~/recharts/~/core-js/es6/math.js","webpack:///./~/recharts/~/core-js/es6/number.js","webpack:///./~/recharts/~/core-js/modules/_a-function.js","webpack:///./~/recharts/~/core-js/modules/_array-includes.js","webpack:///./~/recharts/~/core-js/modules/_function-to-string.js","webpack:///./~/recharts/~/core-js/modules/_html.js","webpack:///./~/recharts/~/core-js/modules/_inherit-if-required.js","webpack:///./~/recharts/~/core-js/modules/_iobject.js","webpack:///./~/recharts/~/core-js/modules/_library.js","webpack:///./~/recharts/~/core-js/modules/_math-fround.js","webpack:///./~/recharts/~/core-js/modules/_object-create.js","webpack:///./~/recharts/~/core-js/modules/_object-dps.js","webpack:///./~/recharts/~/core-js/modules/_object-gopn.js","webpack:///./~/recharts/~/core-js/modules/_object-keys.js","webpack:///./~/recharts/~/core-js/modules/_object-pie.js","webpack:///./~/recharts/~/core-js/modules/_parse-float.js","webpack:///./~/recharts/~/core-js/modules/_parse-int.js","webpack:///./~/recharts/~/core-js/modules/_set-proto.js","webpack:///./~/recharts/~/core-js/modules/_string-repeat.js","webpack:///./~/recharts/~/core-js/modules/_to-absolute-index.js","webpack:///./~/recharts/~/core-js/modules/_to-length.js","webpack:///./~/recharts/~/core-js/modules/es6.math.acosh.js","webpack:///./~/recharts/~/core-js/modules/es6.math.asinh.js","webpack:///./~/recharts/~/core-js/modules/es6.math.atanh.js","webpack:///./~/recharts/~/core-js/modules/es6.math.cbrt.js","webpack:///./~/recharts/~/core-js/modules/es6.math.clz32.js","webpack:///./~/recharts/~/core-js/modules/es6.math.cosh.js","webpack:///./~/recharts/~/core-js/modules/es6.math.expm1.js","webpack:///./~/recharts/~/core-js/modules/es6.math.fround.js","webpack:///./~/recharts/~/core-js/modules/es6.math.hypot.js","webpack:///./~/recharts/~/core-js/modules/es6.math.imul.js","webpack:///./~/recharts/~/core-js/modules/es6.math.log10.js","webpack:///./~/recharts/~/core-js/modules/es6.math.log1p.js","webpack:///./~/recharts/~/core-js/modules/es6.math.log2.js","webpack:///./~/recharts/~/core-js/modules/es6.math.sign.js","webpack:///./~/recharts/~/core-js/modules/es6.math.sinh.js","webpack:///./~/recharts/~/core-js/modules/es6.math.tanh.js","webpack:///./~/recharts/~/core-js/modules/es6.math.trunc.js","webpack:///./~/recharts/~/core-js/modules/es6.number.constructor.js","webpack:///./~/recharts/~/core-js/modules/es6.number.epsilon.js","webpack:///./~/recharts/~/core-js/modules/es6.number.is-finite.js","webpack:///./~/recharts/~/core-js/modules/es6.number.is-integer.js","webpack:///./~/recharts/~/core-js/modules/es6.number.is-nan.js","webpack:///./~/recharts/~/core-js/modules/es6.number.is-safe-integer.js","webpack:///./~/recharts/~/core-js/modules/es6.number.max-safe-integer.js","webpack:///./~/recharts/~/core-js/modules/es6.number.min-safe-integer.js","webpack:///./~/recharts/~/core-js/modules/es6.number.parse-float.js","webpack:///./~/recharts/~/core-js/modules/es6.number.parse-int.js","webpack:///./~/recharts/~/core-js/modules/es6.number.to-fixed.js","webpack:///./~/recharts/~/core-js/modules/es6.number.to-precision.js","webpack:///./~/recharts/~/prop-types/checkPropTypes.js","webpack:///./~/recharts/~/prop-types/factoryWithThrowingShims.js","webpack:///./~/recharts/~/prop-types/factoryWithTypeCheckers.js","webpack:///./~/reduce-css-calc/index.js","webpack:///./~/reduce-css-calc/~/balanced-match/index.js","webpack:///./~/reduce-function-call/index.js","webpack:///./~/reduce-function-call/~/balanced-match/index.js","webpack:///./~/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./~/shallowequal/modules/index.js","webpack:///./~/velocity-animate/velocity.js","webpack:///./~/velocity-react/velocity-component.js","webpack:///./~/velocity-react/velocity-helpers.js","webpack:///./~/velocity-react/velocity-transition-group.js","webpack:///./~/w3c-blob/browser.js"],"names":["DevPortal","modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","React","process","env","NODE_ENV","ReactIs","isElement","__webpack_exports__","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","TypeError","iter","Symbol","iterator","toString","Array","from","isArray","arr2","length","_objectWithoutProperties","source","excluded","key","target","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","PRESENTATION_ATTRIBUTES","EVENT_ATTRIBUTES","SCALE_TYPES","LEGEND_TYPES","TOOLTIP_TYPES","getDisplayName","findAllByType","findChildByType","getPresentationAttributes","filterEventAttributes","filterEventsOfChild","validateWidthHeight","isSsr","filterSvgElements","isChildrenEqual","renderByOrder","getReactEventByType","parseChildIndex","__WEBPACK_IMPORTED_MODULE_0_lodash_isNil__","__WEBPACK_IMPORTED_MODULE_0_lodash_isNil___default","__WEBPACK_IMPORTED_MODULE_1_lodash_isString__","__WEBPACK_IMPORTED_MODULE_1_lodash_isString___default","__WEBPACK_IMPORTED_MODULE_2_lodash_isObject__","__WEBPACK_IMPORTED_MODULE_2_lodash_isObject___default","__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction__","__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default","__WEBPACK_IMPORTED_MODULE_4_lodash_isArray__","__WEBPACK_IMPORTED_MODULE_4_lodash_isArray___default","__WEBPACK_IMPORTED_MODULE_5_react__","__WEBPACK_IMPORTED_MODULE_5_react___default","__WEBPACK_IMPORTED_MODULE_6_prop_types__","__WEBPACK_IMPORTED_MODULE_6_prop_types___default","__WEBPACK_IMPORTED_MODULE_7__DataUtils__","__WEBPACK_IMPORTED_MODULE_8__PureRender__","aria-current","a","string","aria-details","any","aria-disabled","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-roledescription","aria-autocomplete","aria-checked","aria-expanded","aria-haspopup","aria-level","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-placeholder","aria-pressed","aria-readonly","aria-required","aria-selected","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","aria-atomic","aria-busy","aria-live","aria-relevant","aria-dropeffect","aria-grabbed","aria-activedescendant","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-describedby","aria-errormessage","aria-flowto","aria-labelledby","aria-owns","aria-posinset","aria-rowcount","aria-rowindex","aria-rowspan","aria-setsize","alignmentBaseline","angle","number","baselineShift","clip","clipPath","clipRule","color","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","cursor","direction","oneOf","display","dominantBaseline","enableBackground","fill","fillOpacity","oneOfType","fillRule","filter","floodColor","floodOpacity","font","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphOrientationHorizontal","glyphOrientationVertical","imageRendering","kerning","letterSpacing","lightingColor","lineHeight","markerEnd","markerMid","markerStart","mask","opacity","overflow","pointerEvents","shapeRendering","stopColor","stopOpacity","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","unicodeBidi","visibility","wordSpacing","writingMode","transform","role","focusable","tabIndex","style","width","height","dx","dy","x","y","r","radius","array","onClick","func","onMouseDown","onMouseUp","onMouseOver","onMouseMove","onMouseOut","onMouseEnter","onMouseLeave","onTouchEnd","onTouchMove","onTouchStart","onTouchCancel","REACT_BROWSER_EVENT_MAP","click","mousedown","mouseup","mouseover","mousemove","mouseout","mouseenter","mouseleave","touchcancel","touchend","touchmove","touchstart","Comp","displayName","children","type","result","types","map","t","Children","forEach","child","childType","push","el","props","isValidElement","out","getEventHandlerOfElement","originalHandler","e","newHandler","wrapCallback","arguments","undefined","getEventHandlerOfChild","data","index","_el$props","window","document","createElement","setTimeout","SVG_TAGS","isSvgElement","svgElements","entry","isSingleChildEqual","nextChild","prevChild","_ref","nextChildren","nextProps","_ref2","prevChildren","prevProps","count","renderMap","elements","record","_renderMap$displayNam","handler","once","results","concat","shallowEqual","b","_key","shouldComponentUpdate","state","this","pureRenderDecorator","component","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","arg","argType","inner","apply","hasOwn","join","default","ReactDOM","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","timeout","len","run","Item","noop","nextTick","args","title","browser","argv","version","versions","on","addListener","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","require","$","_ajax","settings_","settings","extend","url","urlPrefix","contentType","ajaxHeaders","headers","showNetworkIcon","innerAjax","always","ajax","show","ConnectionSettingsClient","getServiceProviders","botId","dataType","param","getConnectionSettingItems","getFullConnectionSettingEx","id","checkConnectionSettingName","addConnection","properties","JSON","stringify","updateConnectionEx","deleteConnectionEx","getTestConnectionUrl","connectionName","HomeClient","warmUp","AccountClient","getClientSettings","delete","addUserToWaitlist","exchangeGraphToken","tenantId","exchangeArmToken","getSignedInUser","AnnouncementsClient","announcements","BotManagerClient","getPage","pageSize","continuationToken","searchBotsPage","search","getById","getWebChatToken","create","bot","enableChannelForBot","channelId","enable","listChannelForBot","listed","update","forPublishing","getBotLogs","deleteBotLogs","getPublishSettings","getConfigSettings","getProgress","checkingMigration","deleteChannelConfig","ensureDirectlineSettings","addPublishEvent","publishEvent","comment","showInAllDirectories","channel","getLastPublishEvent","getPublishHistory","getAvailableChannels","regenerateSubscriptionKey","primary","getBotContactCard","testBot","testInput","createLuisAppUsingKey","luisAppName","luisKey","region","modelName","setBotIcon","dataUrl","migrateBot","getAvailableSchemaTransformationVersionList","CodeClient","list","path","zip","fileName","getByBotIdAndPath","content","remove","getScmAuthz","requestDevInfo","fetchBotId","resourceId","accessToken","provisionConvergedApp","provisionSingleTenantConvergedApp","checkBotNameAvailability","botName","checkFeatureEnabled","featureId","EmailSubscriptionClient","getUserAgreement","updateAgreement","enabled","subscribe","unsubscribe","userId","token","AnalyticsClient","getUsers","analyticsRequest","getMessages","getUserRetention","MiscClient","getBotFileEncryptionKey","checkMsaAppIdInUse","msaAppId","getIsMSAApp","appId","getBotTemplatesRoot","absWebAspSku","subscriptionId","SearchAssistantBotV2Client","userFilter","getUserInfoByEmail","email","getUserInfoById","createDeployment","manifest","updateDeployment","SpeechPartnersClient","getBotForSpeech","PublishEvent","LuisRegions","DevPortalFeatureFlags","AnnouncementSeverity","BotAppType","TenantAccess","SeverityType","EmailOptingOptions","UserAgreementConsentVersion","AnswerStatus","UriHostNameType","DayOfWeek","ReviewStatus","HostingEnvironment","ContactType","ApsDeploymentEnvironment","EmailSubscriptionTermsAndConditions","clientAppSettings","isFunction","isObject","tag","baseGetTag","funcTag","genTag","asyncTag","proxyTag","global","core","hide","redefine","ctx","$export","own","exp","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","expProto","Function","U","W","R","mathSign","isPercent","isNumber","isNumOrStr","uniqueId","getPercentValue","getAnyElementOfObject","hasDuplicate","interpolateNumber","findEntryInArray","getLinearRegression","__WEBPACK_IMPORTED_MODULE_0_lodash_get__","__WEBPACK_IMPORTED_MODULE_0_lodash_get___default","__WEBPACK_IMPORTED_MODULE_1_lodash_isArray__","__WEBPACK_IMPORTED_MODULE_1_lodash_isArray___default","__WEBPACK_IMPORTED_MODULE_2_lodash_isNaN__","__WEBPACK_IMPORTED_MODULE_2_lodash_isNaN___default","__WEBPACK_IMPORTED_MODULE_3_lodash_isNumber__","__WEBPACK_IMPORTED_MODULE_3_lodash_isNumber___default","__WEBPACK_IMPORTED_MODULE_4_lodash_isString__","__WEBPACK_IMPORTED_MODULE_4_lodash_isString___default","idCounter","prefix","percent","totalValue","defaultValue","validate","parseFloat","slice","obj","ary","cache","numberA","numberB","specifiedKey","specifiedValue","find","xsum","ysum","xysum","xxsum","xmin","Infinity","xmax","cx","cy","Math","min","max","_extends","assign","Layer","className","others","layerClass","__WEBPACK_IMPORTED_MODULE_2_classnames___default","__WEBPACK_IMPORTED_MODULE_0_react___default","__WEBPACK_IMPORTED_MODULE_0_react__","__WEBPACK_IMPORTED_MODULE_1_prop_types__","__WEBPACK_IMPORTED_MODULE_1_prop_types___default","__WEBPACK_IMPORTED_MODULE_2_classnames__","propTypes","arrayOf","node","AutoResizeTextAreaControl_1","BotGalleryControl_1","BotHeaderCard_1","BotImageControl_1","DownloadLinkControl_1","ExpandableTextControl_1","PinToBottom_1","ProgressBarControl_1","ProgressRingControl_1","SearchControl_1","SiteStatusControl_1","SortableListControl_1","Strings_1","TimestampControl_1","TooltipControl_1","index_1","__export","Culture_1","Resources","_getResourceString","_loadResourcesIfNeeded","_currentCultureName","localizedResource","_currentResources","Resources_en","cultureName","Culture","Lang","resources","ResourcesMap","toLowerCase","unsupportedBrowser_Azure","unsupportedBrowser","botKindRegistration","botKindSdk","botKindFunctions","botKindConversationDesigner","loggingIn","loadingBot","botIsNotReady","analyticsNotReady","authorizingWebChat","signInFailure","getChatTokenFailure","refreshSignInFailure","xhrResponse_400","xhrResponse_403","xhrResponse_404","xhrResponse_500","xhrResponse_501","xhrResponse_Message","xhrResponse_Unknown","AddAFeaturedChannelTitle","ConnectToChannelsTitle","NoChannelsConfigured","MoreChannelsTitle","test","startOver","retentionTitle","retentionDescription","retentionHeader","retentionDate","retentionUsers","undetermined","loading","noAnalyticsData","timespanLastHour","timespanLastDay","timespanLastWeek","timespanLastMonth","timespanLast90Days","timespanUnknown","timelineCardUsersTitle","timelineCardMessagesTitle","totalsCardTitle","analyticsNotConfigured","analyticsNotConfiguredAction","analyticsNotConfiguredActionIbiza","learnMore","cardTitleLoading","cardTitleError","timelineTableLabel","timelineChartLabel","published","health","actions","channelname","edit","running","issuesTemplate","warningTemplate","channelPublished","tryOnCortana","tryOnChannel","manageInCortana","channelRejected","channelMoreDetails","channelResubmit","channelGetEmbedCodes","channelConfigDeleteMessage","channelConfigDeleteHeader","channelConfigDeleteOk","channelConfigDeleteCancel","channelConfigLeaveMessage","channelConfigLeaveHeader","channelConfigLeaveOk","channelConfigLeaveCancel","channelEdit","dialogPleaseWait","embedPanelTitle","embedPanelDescription","embedPanelFacebookFooter","embedPanelLearnMore","embedPanelChannelMovedHeader","embedPanelChannelMovedInstructions","embedPanelEmbedcodeForChannelLabel","embedPanelGettingCodes","embedPanelNoCodeAvailable","channelIssuesPanelSubtitle","channelIssuesPanelClearall","channelIssuesPanelTimeColumnLabel","channelIssuesPanelMessageColumnLabel","channelIssuesPanelCorrelationIdColumnLabel","unsavedChangesWillBeLost","altImageChannel","Bing","Cortana","MicrosoftSearch","DirectLine","Email","FacebookMessenger","GroupMe","Kaizala","Kik","MicrosoftTeams","Skype","SkypeforBusiness","_SkypeforBusiness","Slack","Telegram","Twilio","migrationBannerCTAMigrateBot","migrationBannerCTAStartMigrating","migrationBannerBlurb1","migrationBannerBlurb2","migrationBannerSuggestedBlurb","migrationBannerPostDeadlineBlurb","migrationBannerBlockedBlurb","migrationWillBeRequiredDialogMessage","channelRequiresMigrationDialogMessage","channelRequiresABSBot","botRequiresMigrationDialogHeader","botRequiresMigrationDialogMessage","yesMigrateThisBot","myBotsMigrationStatusMigrated","myBotsMigrationStatusNotMigrated","myBotsMigrationStatusOptionalMigration","myBotsMigrationButtonMigrate","myBotsMigrationButtonRollback","deleteBotDialogDeleteButtonText","cancelButtonText","deleteBotDialogTitleText","deleteBotDialogBodyText","deleteBotDialogStatusDeleting","deleteBotDialogStatusDeleted","rollbackBotDialogRollbackButtonText","rollbackBotDialogTitleText","rollbackBotDialogBodyText","rollbackBotDialogErrorInfo","rollbackBotDialogErrorNoEndpoint","rollbackBotDialogErrorNoAzureToken","rollbackBotDialogStatusGettingInfo","rollbackBotDialogStatusPreparing","rollbackBotDialogStatusReverting","rollbackBotDialogStatusDeletingApp","rollbackBotDialogStatusDeletingDeployment","rollbackBotDialogConfirmationTitleText","rollbackBotDialogConfirmationBodyText","okButtonText","errorMessageErrorOccurred","migrationDialogStatusGettingBotInfo","migrationDialogStatusGettingAzureInfo","migrationDialogStatusGettingAppSettings","migrationDialogStatusDeployingMigrationBot","migrationDialogStatusRegisteringWithAzure","migrationDialogStatusUpdatingBotRecord","migrationDialogStatusCreatingRG","migrationDialogStatusMigratingFiles","migrationDialogStatusWrappingUp","migrationDialogStatusDeployingStorage","migrationDialogStatusDeployingSite","migrationDialogStatusConfiguringSite","migrationDialogStatusDeploying","migrationDialogStatusFunctionCredentials","migrationDialogErrorNoSubs","migrationDialogErrorNoAzureToken","migrationDialogErrorNoLocations","migrationDialogErrorNoAzureStorage","migrationDialogErrorAppNameUnavailable","migrationDialogErrorAppNameInvalid","migrationDialogErrorNoBotType","migrationDialogErrorBotInvalid","migrationDialogErrorEndpointMissing","migrationDialogErrorProvisionInfoMissing","migrationDialogErrorResourceGroupNameMissing","migrationDialogErrorSubscriptionIdMissing","migrationDialogErrorSiteNameMissing","migrationDialogABSv2TitleText","migrationDialogABSv2BodyText","migrationDialogRegistrationBodyText","migrationDialogFailedTokenRefresh","migrationDialogRefreshPage","migrationSubscriptionDisabled","migrationTenantHasNoSubscriptions","migrationDialogFuncPackBotTitle","migrationDialogFuncPackBotMessage","migrationDialogFuncPackBotLinkText","tosDialog_Header","tosDialog_AgreeButton","tosDialog_MessageChannels","tosDialog_MessageMigration","tosDialog_AzureTermsCheckbox","tosDialog_CortanaTermsCheckbox","tosDialog_CombinedTermsCheckboxOneChannel","tosDialog_CombinedTermsCheckboxMultiChannels","tosDialog_ABSTerms","tosDialog_MSKnowledgeGraphTerms","tosDialog_MSPublicationTerms","tosDialog_MSPrivacyStatement","notice","listElem","andListEnd","analyticsChannelsDropdown","analyticsPeriodDropdown","deprecatedChannel","openInComposer","downloadComposer","deprecatedWarning","warningText","Resources_de","Resources_es","Resources_fr","Resources_it","Resources_ja","Resources_ko","Resources_ru","Resources_cs","Resources_nl","Resources_hu","Resources_pl","Resources_sv","Resources_tr","Resources_pt_br","Resources_pt_pt","Resources_zh_hans","Resources_zh_hant","Resources_id","de","es","fr","it","ja","ko","ru","cs","nl","hu","pl","sv","tr","pt-br","pt-pt","zh-hans","zh-hant","_objectSpread","ownKeys","sym","getOwnPropertyDescriptor","_defineProperty","writable","getValueByDataKey","getDomainOfDataByKey","calculateActiveTickIndex","getMainColorOfGraphicItem","getLegendProps","getBarSizeList","getBarPosition","appendOffsetOfLegend","parseErrorBarsOfAxis","getDomainOfItemsWithSameAxis","isCategorialAxis","getCoordinatesOfGrid","getTicksOfAxis","combineEventHandlers","parseScale","checkDomainOfScale","findPositionOfBar","truncateByDomain","getStackGroupsByAxisId","getTicksOfScale","getCateCoordinateOfLine","getCateCoordinateOfBar","getBaseValueOfBar","ifOverflowMatches","detectReferenceElementsDomain","getStackedDataOfItem","getDomainOfStackGroups","parseSpecifiedDomain","getBandSizeOfAxis","parseDomainOfCategoryAxis","__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__","__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default","__WEBPACK_IMPORTED_MODULE_1_lodash_sortBy__","__WEBPACK_IMPORTED_MODULE_1_lodash_sortBy___default","__WEBPACK_IMPORTED_MODULE_3_lodash_isString__","__WEBPACK_IMPORTED_MODULE_3_lodash_isString___default","__WEBPACK_IMPORTED_MODULE_5_lodash_max__","__WEBPACK_IMPORTED_MODULE_5_lodash_max___default","__WEBPACK_IMPORTED_MODULE_6_lodash_min__","__WEBPACK_IMPORTED_MODULE_6_lodash_min___default","__WEBPACK_IMPORTED_MODULE_7_lodash_flatMap__","__WEBPACK_IMPORTED_MODULE_7_lodash_flatMap___default","__WEBPACK_IMPORTED_MODULE_8_lodash_isFunction__","__WEBPACK_IMPORTED_MODULE_8_lodash_isFunction___default","__WEBPACK_IMPORTED_MODULE_9_lodash_get__","__WEBPACK_IMPORTED_MODULE_9_lodash_get___default","__WEBPACK_IMPORTED_MODULE_10_lodash_isNil__","__WEBPACK_IMPORTED_MODULE_10_lodash_isNil___default","__WEBPACK_IMPORTED_MODULE_11_recharts_scale__","__WEBPACK_IMPORTED_MODULE_12_d3_scale__","__WEBPACK_IMPORTED_MODULE_13_d3_shape__","__WEBPACK_IMPORTED_MODULE_14__DataUtils__","__WEBPACK_IMPORTED_MODULE_15__cartesian_ReferenceDot__","__WEBPACK_IMPORTED_MODULE_16__cartesian_ReferenceLine__","__WEBPACK_IMPORTED_MODULE_17__cartesian_ReferenceArea__","__WEBPACK_IMPORTED_MODULE_18__cartesian_ErrorBar__","__WEBPACK_IMPORTED_MODULE_19__component_Legend__","__WEBPACK_IMPORTED_MODULE_20__ReactUtils__","dataKey","filterNil","flattenData","domain","coordinate","ticks","unsortedTicks","axis","axisType","abs","range","before","cur","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","_i","item","formatedGraphicalItems","legendWidth","legendContent","legendItem","legendData","payload","reduce","sectors","iconType","legendType","_ref3","_item$props","inactive","getWithHeight","_ref4","globalSize","barSize","_ref4$stackGroups","stackGroups","numericAxisIds","sgs","stackIds","j","sLen","_sgs$stackIds$j","items","cateAxisId","barItems","selfSize","cateId","stackList","_ref5","barGap","barCategoryGap","bandSize","_ref5$sizeList","sizeList","maxBarSize","realBarGap","useFull","fullBarSize","sum","res","offset","prev","size","newRes","position","_offset","originalSize","legendBox","margin","left","right","legendHeight","top","bottom","legendProps","newOffset","box","align","verticalAlign","layout","getDomainOfErrorBars","errorBars","errorBarChild","entryValue","mainValue","errorDomain","prevErrorArr","k","errorValue","lowerValue","upperValue","domains","hasMin","hasMax","values","isGrid","isAll","scale","duplicateDomain","bandwidth","niceTicks","scaleContent","isCategorial","categoricalDomain","tickCount","defaultHandler","parentHandler","childHandler","customizedHandler","arg1","arg2","arg3","arg4","chartType","realScaleType","toUpperCase","first","last","barPosition","offsetSign","series","positive","negative","STACK_OFFSET_MAP","sign","expand","none","silhouette","wiggle","getStackedData","stackItems","offsetType","dataKeys","order","_items","numericAxisId","reverseStackOrder","reverse","_item$props2","stackId","axisId","parentGroup","hasStack","childGroup","group","g","stackedData","calculateDomainOfTicks","opts","originalDomain","allowDecimals","scaleType","tickValues","_domain","_ref6","allowDuplicatedCategory","matchedTick","_ref7","_ref8","numericAxis","alwaysShow","ifOverflow","specifiedTicks","lines","dots","areas","idKey","valueKey","finalDomain","key1","key2","value1","value2","tick","itemIndex","getDomainOfSingle","startIndex","endIndex","MIN_VALUE_REG","MAX_VALUE_REG","specifiedDomain","dataDomain","allowDataOverflow","exec","_value","orderedTicks","calculatedDomain","axisChild","resourceStrings","featuredBotsTitle","directoryHeroTitle","directoryHeroText","botBuilder","botConnector","botDirectory","botEndpoint","botEnableStreamingEndpoint","botSchemaTransformationVersion","botEndpointBlank","botFramework","botFrameworkExtended","maximize","minimize","cancel","register","deleteBot","channelTestLink","channelLog","channelEnabled","readMore","readLess","buttonOk","buttonCancel","buttonNo","buttonYes","botDisclaimer","v3LandingTitle","v3LandingTexts","sdk","text","channels","directory","congnitive","skype","teams","v3Update","v3Warning","tooltips","channelConfig","errors","noMarketsSelected","agreementNotChecked","botPageTabs","initializing","loadingBotApp","deployingBotApp","botEditorUpdated","botSettingsUpdated","msaAppSecret","msaDescription","msaLabelRegister","msaLearnMore","msaLabelPasteAppId","msaLabelPasteAppIdAndPwd","loadingBotWebChat","subscriptionConsentDialog","description","selectCountryLabel","agreementHeading","agreementDescription","allowPromotionalEmailLabelHtml","countrySpecificPromotionalEmailLablesHtml","CA","agreementLabelHtml","luisAgreementLabelHtml","saveButtonLabel","cancelButtonLabel","updateErrorMessage","iframeTitleLuis","iframeTitleQna","v4","nobotsPrompt","newBotPrompt","createBotSDKLink","createBotLabel","configure","embedPanel","facebookFooter","deleteMessage","deleteHeader","deleteOk","deleteCancel","leaveMessage","leaveHeader","leaveOk","leaveCancel","expiredAzureSubscription","error","good","info","warn","ok","productArea","link","newInterval","floori","offseti","field","interval","date","Date","floor","ceil","round","d0","d1","step","start","stop","previous","setTime","end","t0","t1","every","isFinite","isInFrame","parent","initRange","initInterpolator","interpolator","isEqual","other","baseIsEqual","isNil","baseIteratee","identity","baseMatchesProperty","baseMatches","__WEBPACK_IMPORTED_MODULE_0__Animate__","__WEBPACK_IMPORTED_MODULE_2__util__","Environment","isInBotFrameworkAzureExtension","isInAzurePortal","__extends","__","constructor","DialogBase_1","Views","MessageBox","_super","options","_this","DefaultMessageBoxOptions","render","okButtonClass","okButtonLabel","hideCancelButton","message","header","element","MessageBoxPanel","$el","init","mb","showDialog","ask","DialogBase","freeGlobal","freeSelf","self","root","isObjectLike","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arr","_n","_d","_e","_s","next","done","err","RADIAN","polarToCartesian","getMaxRadius","formatAxisMap","inRangeOfSector","__WEBPACK_IMPORTED_MODULE_1__DataUtils__","__WEBPACK_IMPORTED_MODULE_2__ChartUtils__","PI","radianToDegree","angleInRadian","cos","sin","axisMap","chartName","startAngle","endAngle","maxRadius","innerRadius","outerRadius","reversed","_range","_range2","_parseScale","distanceBetweenPoints","point","anotherPoint","x1","y1","x2","y2","sqrt","pow","getAngleOfPoint","acos","formatAngleOfSector","startCnt","endCnt","reverseFormatAngleOfSetor","sector","_getAngleOfPoint","inRange","_formatAngleOfSector","formatAngle","Rest","Dialogs","Intercom_Resources_DevPortal_1","ClientAppSettings_1","index_2","InFrame_1","Environment_1","Links_1","SupportedFeatureUtility_1","logger_1","FlightUtils_1","parseApiError_1","HeaderKind_1","Environment_2","AuthenticationUtility_1","AzurePortalMessenger_1","isBrowserSupported","refreshClientAppSettings","_","pick","PageStatusFlags","ControllerBase","app","headerKind","HeaderKind","Small","handlersAttached","activeDropdownMenu","_pageStatus","Ready","IsUserMSA","signedInUser","IdentityProvider","setPageStatusFlag","flag","hasFlag","hasPageStatusFlag","clearPageStatusFlag","setBotAppSettings","containerController","isLoaded","pageContent","masterPage","hideActiveDropdownMenu","isAdminOrSupport","portalEnvironment","Roles","isReviewer","setSearchState","searchOpened","setState","masterPageState","searchString","expandSearch","setAnnouncementState","load","params","detachHandlers","setEnvironment","_initializeForAzure","pageRequiresSignIn","LoggingIn","renderCommon","updateState","user","needSignInAndCanRedirect","signinUri","getSignInUrl","location","replace","debug","AuthenticationUtility","setRequestVerificationHeader","then","fail","showProgressMask","addRemoveCssClass","trackingCookieConsent","loadPageTrackingIfInformed","canRedirect","needSignIn","FlightUtils","IsFirstPartyAuthFlighted","FlightedFeatures","isBfAppId","bfAppId","AppId","encodeURIComponent","relativeUrl","unload","_appInsightsStatusTimer","_onReceiveInfo","_azurePortalMessenger","unlistenForInfo","_onReceiveAzureToken","unlistenForAuthenticationTokens","_onReceiveEndpointStatus","unlistenForEndpointStatus","_onReceiveAppInsightsStatus","unlistenForAppInsightsStatus","statusBar","markAsInformed","add","cssClass","getCssClass","$appBody","getAppBody","addClass","removeClass","refreshSignedInUser","checkBrowserSupport","controller","isAdmin","signInRequired","onSearch","handleSearch","onSignOutClicked","onUserAccountClicked","isRoutableUrl","MasterPage","attachHandlers","statusMessage","_getStatusBarMessageFromPageStatus","BotProgress","progress","LoadingBot","WaitingForBotReady","WaitingForAppInsightsReady","set","bar","statusBarScrolls","updateTitle","toggleClass","signInInProgress","signInError","callback","curActiveLink","activeLink","NavLinks","signInState","setActiveJumboActiveLink","trim","navigate","searchRoute","AzureToken","host","sessionStorage","getItem","onSignedInUserClicked","onAnnouncementsClicked","onWaitListButtonClicked","extractErrorFromXHR","xhr","apiErr","parseApiError","responseText","parseJSON","Errors","Message","ex","handleHttpResponseError","promise","errorMessage","status","deferred_1","Deferred","resolve","statusText","redirectIfNeeded","href","ret","substr","decodeURIComponent","userMenu","pageHeader","refs","wasThisMenu","visible","displayBelow","announcementsMenu","addShown","cleanupErrorMessage","handleIntercomLoginError","responseJSON","applicationPath","SupportedFeatureUtility","isSupported","SupportNonAzureUsers","scrollToTop","scrollTop","hasUnsavedChanges","queryParams","isWebChatRoute","_isAnalyticsRoute","None","matches","match","trustedAuthority","signatureMatches","signature","DefaultPortalSignature","AzurePortalMessenger","blockUIUntilBotReady","getCurrentPagePath","_refreshViewBasedOnEndpointStatus","bind","listenForEndpointStatus","blockUIUntilAppInsightsReady","_refreshViewBasedOnAppInsightsStatus","listenForAppInsightsStatus","_onReceiveInfoFromIFrame","listenForInfo","_refreshAuthenticationTokens","listenForAuthenticationTokens","postReady","initializationComplete","requestInfo","requestAuthenticationTokens","requestEndpointStatus","requestAppInsightsStatus","_handleRefreshAuthenticationFailure","tokens","armToken","selfToken","useSelfToken","flightedFeatures","csrfToken","getCsrfToken","__RequestVerificationToken","Authorization","authData","bindAzureAccessToken","stateChanged","SimpleMvc","Controller","__WEBPACK_IMPORTED_MODULE_0__bisect__","__WEBPACK_IMPORTED_MODULE_1__ascending__","__WEBPACK_IMPORTED_MODULE_2__bisector__","__WEBPACK_IMPORTED_MODULE_18__quantile__","__WEBPACK_IMPORTED_MODULE_19__range__","__WEBPACK_IMPORTED_MODULE_23__ticks__","getDeploymentState","deployment","ProvisionInfo","Deployment","provisioningState","BotTypes","RollbackEndpointVersionName","BotUtilsV2","isRegistrationBot","_isBotKind","isFunctionsBot","isSdkBot","isConversationDesignerBot","isMigratedBot","Kind","Endpoints","some","ep","Version","needsMigration","BotServiceRuntimeVersion","isMigratedBotDocument","endpoints","parse","isAzureIbizaBot","isMigrationOptional","ConfiguredChannels","SystemHashtags","hasAtLeastOne","migrationOptionalChannels","kind","BotUtils","isABSv1Bot","BotRunTimeVersion","isABSv2Bot","isABSBot","isSDKBot","isABSCodeBot","AzureWebApp","getBotType","SDK","ABSCode","ABSv1","ABSv2","isDeploymentFinished","Endpoint","intercom_pending_function_url","durationSecond","durationMinute","durationHour","durationDay","durationWeek","prefixedValue","keepUnprefixed","_typeof","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_possibleConstructorReturn","_assertThisInitialized","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_inherits","subClass","superClass","_setPrototypeOf","ReferenceError","__WEBPACK_IMPORTED_MODULE_0_lodash_every__","__WEBPACK_IMPORTED_MODULE_0_lodash_every___default","__WEBPACK_IMPORTED_MODULE_1_lodash_find__","__WEBPACK_IMPORTED_MODULE_1_lodash_find___default","__WEBPACK_IMPORTED_MODULE_2_lodash_sortBy__","__WEBPACK_IMPORTED_MODULE_2_lodash_sortBy___default","__WEBPACK_IMPORTED_MODULE_4_lodash_range__","__WEBPACK_IMPORTED_MODULE_4_lodash_range___default","__WEBPACK_IMPORTED_MODULE_5_lodash_throttle__","__WEBPACK_IMPORTED_MODULE_5_lodash_throttle___default","__WEBPACK_IMPORTED_MODULE_6_lodash_isNil__","__WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default","__WEBPACK_IMPORTED_MODULE_7_react__","__WEBPACK_IMPORTED_MODULE_7_react___default","__WEBPACK_IMPORTED_MODULE_8_prop_types__","__WEBPACK_IMPORTED_MODULE_8_prop_types___default","__WEBPACK_IMPORTED_MODULE_9_classnames__","__WEBPACK_IMPORTED_MODULE_9_classnames___default","__WEBPACK_IMPORTED_MODULE_10__container_Surface__","__WEBPACK_IMPORTED_MODULE_11__container_Layer__","__WEBPACK_IMPORTED_MODULE_12__component_Tooltip__","__WEBPACK_IMPORTED_MODULE_13__component_Legend__","__WEBPACK_IMPORTED_MODULE_14__shape_Curve__","__WEBPACK_IMPORTED_MODULE_15__shape_Cross__","__WEBPACK_IMPORTED_MODULE_16__shape_Sector__","__WEBPACK_IMPORTED_MODULE_17__shape_Dot__","__WEBPACK_IMPORTED_MODULE_18__shape_Rectangle__","__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__","__WEBPACK_IMPORTED_MODULE_20__cartesian_CartesianAxis__","__WEBPACK_IMPORTED_MODULE_21__cartesian_Brush__","__WEBPACK_IMPORTED_MODULE_22__util_DOMUtils__","__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__","__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__","__WEBPACK_IMPORTED_MODULE_25__util_PolarUtils__","__WEBPACK_IMPORTED_MODULE_26__util_PureRender__","__WEBPACK_IMPORTED_MODULE_27__util_Events__","ORIENT_MAP","xAxis","yAxis","originCoordinate","generateCategoricalChart","GraphicalChild","_ref$eventType","eventType","axisComponents","defaultProps","CategoricalChartWrapper","_Component","_props","handleLegendBBoxUpdate","legendInstance","_this$state","dataStartIndex","dataEndIndex","updateId","updateStateOfAxisMapsOffsetAndStackGroups","handleReceiveSyncEvent","cId","chartId","_this$props","syncId","uniqueChartId","activeTooltipIndex","chartX","chartY","_this$state2","tooltipTicks","viewBox","validateChartX","validateChartY","activeLabel","activePayload","getTooltipContent","activeCoordinate","handleBrushChange","triggerSyncEvent","handleMouseEnter","mouse","getMouseInfo","nextState","isTooltipActive","triggeredAfterMouseMove","handleItemMouseEnter","activeItem","tooltipPayload","tooltipPosition","handleItemMouseLeave","handleMouseMove","persist","handleMouseLeave","handleOuterEvent","eventName","handleClick","handleMouseDown","handleMouseUp","handleTouchMove","changedTouches","handleTouchStart","handleTouchEnd","verticalCoordinatesGenerator","getTicks","horizontalCoordinatesGenerator","axesTicksGenerator","tooltipTicksGenerator","orderedTooltipTicks","tooltipAxis","tooltipAxisBandSize","renderCursor","_this$state3","restProps","cursorComp","getCursorRectangle","_this$getCursorPoints","getCursorPoints","points","cursorProps","renderPolarAxis","axisOption","renderXAxis","xAxisMap","axisObj","xAxisId","renderAxis","renderYAxis","yAxisMap","yAxisId","renderGrid","_this$state4","_this$props2","yAxisWithFiniteDomain","Number","chartWidth","chartHeight","renderPolarGrid","_this$state5","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","polarAngles","polarRadius","renderBrush","_this$props3","_this$state6","onChange","brushBottom","renderReferenceElement","_assertThisInitialize","clipPathId","_this$state7","_element$props","renderGraphicChild","filterFormatItem","graphicalItem","_this$state8","tooltipItem","isRange","baseLine","_item$item$props","activeDot","activePoint","basePoint","renderActivePoints","childIndex","renderCustomized","defaultState","createDefaultState","throttleDelay","_this2","_this$props4","stackOffset","hasGlobalData","newUpdateId","prevState","_ref5$axisType","AxisComp","graphicalItems","axisIdKey","axes","getAxisMapByAxes","getAxisMapByItems","Axis","_this3","_child$props","displayedData","getDisplayedData","duplicate","errorBarsDomain","orientation","activeIndex","rangeObj","_angle","_radius","event","container","containerOffset","_this$state9","xScale","yScale","xValue","invert","yValue","_this$state10","pos","calculateTooltipPos","getActiveCoordinate","_this$state11","_child$props2","unit","formatter","tooltipType","currentState","_this4","globalMaxBarSize","_this$constructor$get","getAxisNameByLayout","numericAxisName","cateAxisName","hasBar","formatedItems","childMaxBarSize","_objectSpread4","cateAxis","cateTicks","componsedFn","getComposedData","_objectSpread5","onItemMouseLeave","onItemMouseEnter","_this$state12","halfSize","_this$state13","_cx","_cy","startPoint","endPoint","innerPoint","outerPoint","_this$state14","tooltipEvents","_this5","_this$constructor$get2","getAxisMap","calculateOffset","cateAxisMap","ticksObj","getFormatItems","setMaxListeners","_maxListeners","_ref9","_ref9$xAxisMap","_ref9$yAxisMap","brushItem","offsetH","mirror","offsetV","getBBox","axisOptions","_this$props5","ticksGenerator","_this6","_this$props6","otherProps","ref","legend","onBBoxUpdate","_this$state15","active","label","_ref10","_item$item$props2","dotProps","renderActiveDot","_this$state$offset","_this7","_this$props7","compact","attrs","CartesianGrid","ReferenceArea","ReferenceLine","ReferenceDot","XAxis","YAxis","Brush","Bar","Line","Area","Radar","RadialBar","Scatter","Pie","Funnel","Tooltip","PolarGrid","PolarAngleAxis","PolarRadiusAxis","Customized","renderClipPath","events","parseEventsOfWrapper","renderLegend","renderTooltip","option","dot","bool","shape","defaultShowTooltip","_ref11","itemsData","itemData","LabelList","valueAccessor","clockWise","__WEBPACK_IMPORTED_MODULE_8__container_Layer__","__WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default","__WEBPACK_IMPORTED_MODULE_10__util_ChartUtils__","idProps","__WEBPACK_IMPORTED_MODULE_7__Label__","__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__","parseViewBox","__WEBPACK_IMPORTED_MODULE_0_lodash_isObject__","__WEBPACK_IMPORTED_MODULE_0_lodash_isObject___default","__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__","__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default","__WEBPACK_IMPORTED_MODULE_2_lodash_isNil__","__WEBPACK_IMPORTED_MODULE_3_lodash_last__","__WEBPACK_IMPORTED_MODULE_3_lodash_last___default","parseLabelList","renderCallByParent","parentProps","ckeckPropsLabel","explicitChilren","__g","botDirectoryLink","botEditLink","Id","botViewLink","getAzureIbizaBotUrl","resourceGroupName","azurePortalUrl","envQSParams","getAzureIbizaBotEnvironmentQSParameters","pathname","normalize","__WEBPACK_IMPORTED_MODULE_3__constant__","isNaN","NaN","clamper","bimap","interpolate","r0","r1","polymap","__WEBPACK_IMPORTED_MODULE_0_d3_array__","copy","clamp","unknown","transformer","rescale","piecewise","output","input","untransform","__WEBPACK_IMPORTED_MODULE_1_d3_interpolate__","__WEBPACK_IMPORTED_MODULE_2__array__","__WEBPACK_IMPORTED_MODULE_4__number__","rangeRound","u","continuous","undefinedTag","nullTag","symToStringTag","getRawTag","objectToString","toStringTag","isArrayLike","arrayLikeKeys","baseKeys","Label","_props$className","__WEBPACK_IMPORTED_MODULE_3_react__","getLabel","isPolarLabel","isPolar","__WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__","renderRadialLabel","positionAttrs","getAttrsOfPolarLabel","getAttrsOfCartesianLabel","__WEBPACK_IMPORTED_MODULE_3_react___default","__WEBPACK_IMPORTED_MODULE_6__Text__","__WEBPACK_IMPORTED_MODULE_5_classnames___default","__WEBPACK_IMPORTED_MODULE_4_prop_types__","__WEBPACK_IMPORTED_MODULE_4_prop_types___default","__WEBPACK_IMPORTED_MODULE_5_classnames__","__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__","__WEBPACK_IMPORTED_MODULE_9__util_PolarUtils__","cartesianViewBoxShape","polarViewBoxShape","getDeltaAngle","labelProps","labelAngle","deltaAngle","xlinkHref","midAngle","_polarToCartesian","_x","verticalAnchor","_polarToCartesian2","parseLabel","parentViewBox","rectWithPoints","rectWithCoords","LabeledScaleHelper","__WEBPACK_IMPORTED_MODULE_1_lodash_mapValues__","__WEBPACK_IMPORTED_MODULE_1_lodash_mapValues___default","ids","steps","leftMirror","rightMirror","topMirror","bottomMirror","needSpace","_axis$padding","padding","offsetKey","finalAxis","ScaleHelper","bandAware","EPS","scales","coords","isInRange","eval","parseUrl","urlregex","schemestring","scheme","Scheme","hostname","port","parseInt","query","parseQuery","format","formatUrl","split","v","querystring","isString","val","isUndefined","linearish","tickFormat","specifier","__WEBPACK_IMPORTED_MODULE_3__tickFormat__","nice","i0","i1","linear","__WEBPACK_IMPORTED_MODULE_1__continuous__","__WEBPACK_IMPORTED_MODULE_2__init__","getNative","getValue","baseIsNative","isLength","__WEBPACK_IMPORTED_MODULE_1_react__","__WEBPACK_IMPORTED_MODULE_1_react___default","__WEBPACK_IMPORTED_MODULE_2_prop_types__","__WEBPACK_IMPORTED_MODULE_2_prop_types___default","__WEBPACK_IMPORTED_MODULE_3_reduce_css_calc__","__WEBPACK_IMPORTED_MODULE_3_reduce_css_calc___default","__WEBPACK_IMPORTED_MODULE_4_classnames__","__WEBPACK_IMPORTED_MODULE_4_classnames___default","__WEBPACK_IMPORTED_MODULE_5__util_DataUtils__","__WEBPACK_IMPORTED_MODULE_6__util_ReactUtils__","__WEBPACK_IMPORTED_MODULE_7__util_DOMUtils__","BREAKING_SPACES","calculateWordWidths","wordsWithComputedWidth","word","spaceWidth","Text","_getPrototypeOf2","_len","wordsByLines","updateWordsByLines","needCalculate","scaleToFit","updateWordsWithoutCalculate","wordWidths","calculateWordsByLines","words","lineWidth","currentLine","newLine","capHeight","textProps","startDy","transforms","line","_class","_class2","_temp","__WEBPACK_IMPORTED_MODULE_3__util_PureRender__","__WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__","Dot","jQuery","botResourceId_1","getEnvQuery","environment","getAzurePortalBladeUrl","domainName","bladType","portalHostName","azureDomainRoot","siteBladeUrl","BladeType","continuousIntegration","webConfig","createAbs","appSettings","AnalyticsDashboard_1","AzurePortalPage_1","BotAppContinuousIntegration_1","BotAppSettings_1","BotChannelConfig_1","BotChannels_1","BotCodeEditor_1","BotCreateSwitch_1","BotEditor_1","BotEditorRow_1","BotPage_1","BotPageBody_1","BotPageHeader_1","BotSettingsTab_1","BotsPage_1","ChevronDropdownControl_1","CompactDropdownControl_1","EmptyBotPage_1","MasterPage_1","MasterPageHeader_1","RejectionDetailsPanel_1","TabControl_1","WebChat_1","BotCodeSetup_1","BotMigrationDialog_1","BotsPageRow_1","BotOpenComposer_1","Logger","console","log","ignored","_logger","ProgressRingControl","componentDidMount","onMounted","div","componentWillUnmount","onUnmount","Component","__WEBPACK_IMPORTED_MODULE_0__color__","__WEBPACK_IMPORTED_MODULE_1__lab__","__WEBPACK_IMPORTED_MODULE_2__cubehelix__","exponential","hue","__WEBPACK_IMPORTED_MODULE_0__constant__","gamma","nogamma","arrayMap","iteratee","copyObject","customizer","isNew","newValue","baseAssignValue","assignValue","baseGet","isSymbol","symbolTag","__WEBPACK_IMPORTED_MODULE_2__util_PureRender__","__WEBPACK_IMPORTED_MODULE_3__util_ReactUtils__","tickFormatter","axisLine","tickLine","minTickGap","tickSize","Cell","__WEBPACK_IMPORTED_MODULE_0__util_ReactUtils__","__WEBPACK_IMPORTED_MODULE_0_lodash_isArray__","__WEBPACK_IMPORTED_MODULE_0_lodash_isArray___default","__WEBPACK_IMPORTED_MODULE_2_react__","__WEBPACK_IMPORTED_MODULE_2_react___default","__WEBPACK_IMPORTED_MODULE_3_prop_types__","__WEBPACK_IMPORTED_MODULE_3_prop_types___default","__WEBPACK_IMPORTED_MODULE_4_d3_shape__","__WEBPACK_IMPORTED_MODULE_6__util_PureRender__","CURVE_FACTORIES","curveBasisClosed","curveBasisOpen","curveBasis","curveLinearClosed","curveLinear","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","defined","getX","getY","getCurveFactory","Curve","lineFunction","connectNulls","curveFactory","formatPoints","formatBaseLine","base","areaPoints","x0","y0","curve","pathRef","realPath","getPath","__WEBPACK_IMPORTED_MODULE_3_react_smooth__","__WEBPACK_IMPORTED_MODULE_4__util_PureRender__","__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__","getRectangePath","ySign","xSign","newRadius","_newRadius","Rectangle","totalLength","getTotalLength","animationEasing","animationDuration","animationBegin","isAnimationActive","isUpdateAnimationActive","canBegin","to","duration","isActive","currWidth","currHeight","currX","currY","attributeName","begin","easing","isDev","condition","f","argIndex","combineClassNames","BlockRowInputLabel","onHideToolTip","_setTooltipVisibility","_onWindowClickHandler","_onWindowClick","showTooltip","removeEventListener","notifyTooltipVisibilityChanged","onTooltipVisibilityChanged","shouldNotifyChanged","toolTipControl","anchorTo","addEventListener","tipText","tip","tipContent","tipAsHtml","dangerouslySetInnerHTML","__html","TooltipControl","tipId","anchorBorder","Borders","Left","htmlFor","for","debounce","onFocus","onBlur","required","isStillDeploying","BotTabs","BotPage","context","initialBot","subscriptionKeys","initialSubkeys","selectedTab","initialSelectedTab","showWebChat","initialShowWebChat","initialChannel","authoringDirty","initialAuthoringDirty","authoringError","initialAuthoringError","renderWebChat","BotPageHeader","routes","authoringToolDirty","botSettingsTabProps","tabClickHandler","testClickHandler","importBotHandler","BotPageBody","botEditorProps","botCodeEditorProps","botCodeSetupProps","showWebChatPending","onSetBotAppSettings","channelConfigClickHandler","channelConfigInterface","azureToken","canWriteToBot","BotImageControl","hashString","hash","charCodeAt","isDefaultIcon","IconUrl","defaultIconUrl","lastIndexOf","mapColorClassName","colorClass","paletteIndex","skipConflictingColorClasses","classIndex","classNum","DefaultIconColorHash","hashDefaultIconFileName","imageClass","transparentBackground","alt","src","__e","$Object","getProto","isEnum","getDesc","setDesc","setDescs","defineProperties","getKeys","getNames","getOwnPropertyNames","getSymbols","each","__WEBPACK_IMPORTED_MODULE_0__path__","pi","asin","halfPi","atan2","epsilon","tau","s0","s1","baseForOwn","createBaseEach","baseEach","baseUnary","isIterateeCall","isIndex","eq","toKey","INFINITY","toObject","propIsEnumerable","test1","String","test2","fromCharCode","test3","letter","symbols","__WEBPACK_IMPORTED_MODULE_2__container_Layer__","ErrorBar","dataPointFormatter","_dataPointFormatter","errorVal","xMid","yMid","xMin","yMin","xMax","yMax","coordsTop","coordsMid","coordsBot","lowBound","highBound","_errorVal","renderErrorBars","isRequired","Surface","svgView","FlagUtility_1","feature","FlagUtility","enabledFeatures","lazy_1","KeyCodes","dfd","$mask","appendTo","body","$statusPane","$okButton","$cancelButton","$dialogCloseButton","centerDialog","handleEvents","focus","onOK","onCancel","keydown","ev","onKeyDown","which","Enter","onEnterKeyPressed","preventDefault","Escape","is","onEscapeKeyPressed","outerHeight","outerWidth","css","_lastParentFocus","lastParentFocus","closeDialog","returnFocusToParent","lastParentFocusElement","findDOMNode","showStatus","hasClass","DialogStatus","showing","hideStatus","reject","GenericDialog","componentClass","DefaultGenericDialogOptions","dialogClass","panel","ProgressDialog","DefaultProgressDialogOptions","ProgressPanel","dialog","pollerPromise","maxDuration","deferred","getTime","action","now","defaultPollingModel","defaultInterval","maxPendingPollRequests","Poller","model","poll","onResult","subscribers","pending","currentInterval","stopped","getCurrentInterval","invokePoll","cur_1","fn","isStopped","onStop","_lang","lang","_cutlureCode","cultureCode","supportedLanguages","CultureUtility","_rawLocale","_displayLanguage","_cultureCode","setLocale","rawLocale","toSupportedDisplayLanguage","toCultureCode","langCode","displayLanguage","parts","Method","Url_1","browserCaps_1","downloadBotSource","kuduClient","client","kc","uri","scmUri","cmd","command","publishPassword","download","needZipProxy","debugZipProxy","navigator","msSaveBlob","getBotZipBlobUrl","openTab","tab","open","azurePortalLinks_1","setupRemoteRepo_1","openTab_1","AbsCodeCIEnablePanel_1","InputDialogBase_1","MessageBox_1","renderIconForScmType","scmType","iconName","ScmTypeToIconNames","toggleContinuousIntegrationSettings","$config","scrollIntoView","bitbucketgit","bitbuckethg","dropbox","externalgit","externalhg","github","localgit","onedrive","tfs","vso","vstsrm","BotAppContinuousIntegration","_canSetupRepos","configBladeUrl","defaultCIState","fetchCanSetupRepos","files","setupScripts","file","found","forceUpdate","hasRepoInfoForVso","hasRepoInfoForGithub","repoProvider","hostUrl","repoToken","resolveScmType","resolveConfigBladeUrl","bladeUrl","renderDownloadLink","botDeploymentLogFound","DownloadLinkControl","asButton","downloadBlob","downloadZip","setBlobUrl","blobUrl","onZipDownloaded","zipBlobUrl","pendingDownload","changeField","fld","repoUserName","GithubApi","setupRepos","success","InputDialogBase","AbsCodeCIEnablePanel","pendingEnabling","when","armClient","botRsrcId","ac","rsrcId","msg","onRepoSetup","fetchRepo","getSourceControl","sc","repoUrl","renderVsoSetup","placeholder","vsoSiteRootUrl","renderGithubSetup","renderCustomSetup","renderGenericCISetup","renderSetupReposFromBlank","disabled","hasRepoInfo","srcChecked","expandoOpenedAlways","openCIConfigBlade","openBlade","renderSetupRepos","canOpenConfigBlade","downloadLink","TooltipParagrah","toggleTip","checked","showRepoUrl","componentDidUpdate","githubClient","gc","login","vsoClient","vc","accounts","AccountName","scm","scmInfo","linkText","hideTitle","currentTarget","_Object$defineProperty","_Object$getOwnPropertyDescriptor","_x2","_x3","_again","receiver","desc","_Object$create","_Object$setPrototypeOf","__WEBPACK_IMPORTED_MODULE_0__formatDecimal__","that","_context","bezierCurveTo","_x0","_x1","_y0","_y1","Basis","areaStart","_line","areaEnd","lineStart","_point","lineEnd","lineTo","closePath","moveTo","_k","_y2","Cardinal","tension","custom","cardinal","Linear","ListCache","entries","clear","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","has","assocIndexOf","baseExtremum","comparator","current","computed","castPath","isKey","stringToPath","getMapData","__data__","isKeyable","DataView","Map","Promise","Set","WeakMap","toSource","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ArrayBuffer","Ctor","ctorString","nativeCreate","numberTag","isPlainObject","objectTag","proto","getPrototype","funcToString","objectCtorString","funcProto","objectProto","stringTag","keysIn","baseKeysIn","baseClone","baseUnset","customOmitClone","flatRest","getAllKeysIn","omit","paths","isDeep","CLONE_DEEP_FLAG","getIntersectionKeys","mapObject","translateStyle","getTransitionVal","__WEBPACK_IMPORTED_MODULE_0_lodash_intersection__","__WEBPACK_IMPORTED_MODULE_0_lodash_intersection___default","PREFIX_LIST","IN_LINE_PREFIX_LIST","IN_COMPATIBLE_PROPERTY","preObj","nextObj","getDashCase","generatePrefixStyle","isTransition","camelName","styleVal","prop","replacer","ZAxis","zAxisId","__WEBPACK_IMPORTED_MODULE_2_lodash_uniqBy__","__WEBPACK_IMPORTED_MODULE_2_lodash_uniqBy___default","__WEBPACK_IMPORTED_MODULE_5_react_smooth__","__WEBPACK_IMPORTED_MODULE_6_classnames__","__WEBPACK_IMPORTED_MODULE_6_classnames___default","__WEBPACK_IMPORTED_MODULE_7__DefaultTooltipContent__","__WEBPACK_IMPORTED_MODULE_8__util_ReactUtils__","__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__","__WEBPACK_IMPORTED_MODULE_10__util_PureRender__","CLS_PREFIX","defaultUniqBy","getUniqPaylod","separator","itemStyle","labelStyle","wrapperStyle","contentStyle","paylodUniqBy","itemSorter","filterNull","useTranslate3d","cursorStyle","renderContent","cloneElement","boxWidth","boxHeight","updateBBox","wrapperNode","getBoundingClientRect","_classNames","translateX","translateY","finalPayload","hasPayload","outerStyle","transition","cls","__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__","__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default","__WEBPACK_IMPORTED_MODULE_4__container_Layer__","__WEBPACK_IMPORTED_MODULE_6__shape_Dot__","__WEBPACK_IMPORTED_MODULE_7__shape_Polygon__","__WEBPACK_IMPORTED_MODULE_8__component_Text__","tickLineSize","p1","p2","axisLineType","axisProps","customTickProps","tickLineProps","lineCoord","getTickLineCoord","getTickTextAnchor","tickProps","renderTickItem","renderAxisLine","renderTicks","angleAxisId","__WEBPACK_IMPORTED_MODULE_1_lodash_minBy__","__WEBPACK_IMPORTED_MODULE_1_lodash_minBy___default","__WEBPACK_IMPORTED_MODULE_2_lodash_maxBy__","__WEBPACK_IMPORTED_MODULE_2_lodash_maxBy___default","__WEBPACK_IMPORTED_MODULE_5__util_PureRender__","__WEBPACK_IMPORTED_MODULE_6__component_Text__","__WEBPACK_IMPORTED_MODULE_7__component_Label__","__WEBPACK_IMPORTED_MODULE_10__util_PolarUtils__","maxRadiusTick","extent","point0","point1","coord","getTickValueCoord","getViewBox","radiusAxisId","getPolygonPoints","Polygon","__WEBPACK_IMPORTED_MODULE_5__util_PolarUtils__","__WEBPACK_IMPORTED_MODULE_6__util_DataUtils__","getTangentCircle","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","centerAngle","center","circleTangency","lineTangencyAngle","lineTangency","getSectorPath","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","getSectorWithCorner","forceCornerRadius","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","Sector","deltaRadius","cr","autoCompleteStyle","STYLE_LIST","camelToMiddleLine","getStringSize","getOffset","calculateChartCoordinate","__WEBPACK_IMPORTED_MODULE_0__ReactUtils__","stringCache","widthCache","cacheCount","SPAN_STYLE","border","whiteSpace","getStyleString","str","styleString","cacheKey","measurementSpan","getElementById","setAttribute","appendChild","measurementSpanStyle","styleKey","textContent","rect","html","ownerDocument","documentElement","pageYOffset","clientTop","pageXOffset","clientLeft","pageX","pageY","webpackPolyfill","deprecate","JumboHeadControl_1","masterPageComponent","getAppPath","requestVerificationToken","readCookie","X-Csrf-Token","nameEquals","cookies","cookie","substring","scrollTo","GenericDialog_1","setPanelState","HttpMethods_1","PollingModel_1","ArmClient","armRoot","request","GET","post","POST","patch","PATCH","DELETE","put","includeIfMatch","PUT","head","HEAD","getSubscriptions","getSubscription","getRegions","getAppServicePlans","getResourceGroups","getWebAppService","getWebAppSettings","subId","rgName","getAppInsights","insightsName","updateAppInsightsTags","tags","isAppNameAvailable","appName","deleteDeployment","deploymentId","requestVoidResult","deleteWebApp","createResourceGroup","locationName","checkResourceGroupExists","$deferred","checkDeploymentResult","curState","putBotService","deploymentName","newDeployment","deploymentResult","botResourceId","outputResources","botResourceUrl","setupContinuousIntegration","sourceControl","method","valideUrl","reqHeaders","getAuthHeader","If-Match","Accept","beforeSend","downloadBlob_1","RepositoryType","KuduClient","createFromScmAuthorization","authz","Url","createFromArmToken","kuduUri","getKuduSiteName","siteUrl","script","folder","rootUri","isFolder","del","logStream","functionName","onData","logstreamUri","XMLHttpRequest","setRequestHeader","send","prevLength","poller","curLength","readyState","DONE","statusPoller","pingHostStatus","Password","getFunctionToken","tokenUri","getMasterKey","masterKey","keyUrl","keyInfo","statusUri","Content-Type","x-functions-key","validateUrl","postingData","authText","UserName","btoa","ArmApi_1","KuduApi_1","GraphApi_1","GithubApi_1","VsoApi_1","azureCreateBotUrl","features","contains","getAzureResourceId","SubscriptionId","ResourceGroupName","SiteName","Cookies_1","authenticationToken","fixTenantId","X-BF-OAUTH-TOKEN","X-BF-TenantId","TenantId","BotUtils_1","downloadBotSrc_1","BotAppSettings","showFunctionEditor","debugContinuousIntegration","setBotId","setBot","closer","prevToolTipCloser","componentWillUpdate","_scmType","botCI","renderAzureSettings","blade","pendingZipDownload","functionEditor","RejectionDetailsView","hiddenChannels","hiddenChannelsForNew","BotChannels","statusClassNameForSeverity","sev","Warning","getChannelLogEntries","channelDataHandlers","channelLogs","ChannelId","isChannelEnabled","EnabledChannels","_issuePrompt","issues","template","issueTemplate","getChannelLogDisplay","channelName","statusClassName","maxSeverityLogEntry","curr","Severity","issueTemplateName","issuePrompt","channelLogChangeHandler","refreshChannelLogs","getChannelLog","channelLogDisplay","data-channel-name","channelLogDisplayHandler","data-status-classname","getContact","contacts","Contacts","getConfigUrl","getConfigLink","innerElement","labelledby","configUrl","handle","DeveloperConfigurationUrl","disabled_1","userCanWriteBot","data-channel-link-id","renderChannelPublishStatus","reviewStatus","getChannelPublishStatus","InReview","Rejected","NotSubmitted","Approved","togglePublishPopoutVisibility","showRejectionComments","Comment","RejectionDetailsPanel","_tryOn","channelTemplate","renderConfiguredChannels","configuredChannels","contact","contactHref","getContactHref","channelDisplayName","Name","anchorTitle","tryOn","configuredChannelMobile","data-channel-id","getChannelIconUrl","IsIsolated","renderUnconfiguredChannels","featuredChannelsNames","featuredChannels","otherChannels","iconLabelName","tile","addLink","featuredChannelsHeader","featuredChannelsElement","otherChannelsHeader","otherChannelsElement","_tempDOMElement","getContactHtml","HtmlLink","tempDOMElement","innerHTML","aa","getElementsByTagName","attr","allChannels","configuredChannelIds","configuredChannelInfos","unconfiguredChannelInfos","embedCodeLink","lastFocus","showEmbedHandler","__assign","BotVersionEditor_1","BotIconControl_1","Editor","BlockRowInputLabel_1","UserAgreementConsentFormFields_1","BotEditor","onTooltipVisiblityChanged","disposer","previousTooltipDisposer","handleChange","fieldName","handleArrayChange","onAgreementChanged","mutatedState","termAcknowledged","createNewState","handleArrayIndexedObjectChange","childFieldName","handleCheckboxChange","buttons","renderButtons","inCreateMode","renderFields","FooterControl","hasVersionEndpoint","renderAppInsightsDashboardFields","reflectedName","BotEditorRow","editor","inputId","DeveloperAppInsightsAPIKey","inputTip","inputPlaceholder","password","DeveloperAppInsightsApplicationId","behavior","agentDescError","Description","agentDescErrorClass","behaviorDisabled","behaviorNote","azureSettings","BotIconControl","onDropIcon","inputMaxlen","MAX_NAME_LEN","inputMinlen","MIN_NAME_LEN","MAX_ID_LEN","MIN_ID_LEN","inputReadonly","AutoResizeTextArea","placeHolder","maxLength","MAX_DESC_LEN","BotVersionEditor","v1Secret","isAppTypeFlighted","isFeatureFlighted","DeveloperAppInsightKey","OwnerIds","inputIsArray","renderAdminTile","botAppSettingsProps","renderBlockedRow","renderSystemTagsEditor","renderSystemTagAsCheckbox","prompt","syncSystemTag","onSystemTagsChange","getSystemTags","$tags","$checkbox","cancelButton","onClickButton","UserAgreementConsentFormFields","onAgreeToTermsChanged","isBusy","deleteButton","actionButton","DropdownMenu_1","ControllerBase_1","SeverityEnumToIcon","Good","Information","SeverityEnumToText","MasterPageHeader","smallHeaderNavClick","SmallHeaderNavLinks","mybots","documentation","blog","toggleSearch","opened","navLinks","bell","userInfo","searchControl","all","announcementsIdCounts","shownIdCount","showLinks","homeUrl","showUserMenu","FirstName","EmailAddress","data-test-id","evt","stopPropagation","renderHiddenFrameToCheckAzureSingleSignOn","hasUnreadAnnouncements","accumulator","bellIconId","showSearch","SearchControl","promptText","searchPrompt","toggleSearchOpen","DropdownMenu","DropdownMenuItem","ariaLabel","onSelected","onAccountClicked","LastName","announcementsMenuItem","LinkUrl","notSelectable","ProductArea","showJumboHeader","jumboHeader","JumboHeadControl","rootUrl","defaultLink","hideDirectory","isRoutable","skipToMainClick","HeaderControl","smallHeader","showMainNavLink","smallHeaderNavHandler","CultureUtility_1","WebChat","retrieveWebChatToken","frameSrc","webChatUrl","renderUnsavedWarnings","renderError","BotProgress_1","CookieInform_1","ExpiredSubscription_1","V3Update_1","DialogStatus_1","setCookie","expires","toUTCString","secure","sameSite","getLinkDisplayText","navLink","navLinkNames","normalizeExternalRouteUrl","route","charAt","toggleNavList","showFrame","rootUrlClassName","linkEnum","linkClassName","ProgressBarControl","RuntimeConnectedShadeUtils_1","RuntimeConnectedShade","onChildMessage","visibleData","RuntimeConnectedShadeUtils","initialize","componentWillMount","ModalVisibleEventName","IS_WRAP","C","__WEBPACK_IMPORTED_MODULE_0__number__","valueof","value0","empty","Color","reHex3","Rgb","reHex6","rgbn","reRgbInteger","reRgbPercent","reRgbaInteger","rgba","reRgbaPercent","reHslPercent","hsla","reHslaPercent","named","rgbConvert","rgb","hex","h","Hsl","hslConvert","hsl","hsl2rgb","m1","m2","darker","brighter","__WEBPACK_IMPORTED_MODULE_0__define__","reI","reN","reP","RegExp","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","displayable","definition","factory","toExponential","coefficient","basis","v0","v1","v2","v3","t2","t3","__WEBPACK_IMPORTED_MODULE_0_d3_color__","__WEBPACK_IMPORTED_MODULE_1__rgb__","__WEBPACK_IMPORTED_MODULE_3__date__","__WEBPACK_IMPORTED_MODULE_5__object__","__WEBPACK_IMPORTED_MODULE_6__string__","__WEBPACK_IMPORTED_MODULE_7__constant__","valueOf","transformLog","transformExp","transformLogn","transformExpn","pow10","powp","E","logp","log10","log2","reflect","loggish","logs","pows","z","__WEBPACK_IMPORTED_MODULE_1_d3_format__","__WEBPACK_IMPORTED_MODULE_2__nice__","__WEBPACK_IMPORTED_MODULE_3__continuous__","__WEBPACK_IMPORTED_MODULE_4__init__","transformPow","exponent","transformSqrt","transformSquare","powish","__WEBPACK_IMPORTED_MODULE_0__linear__","transformSymlog","log1p","transformSymexp","expm1","symlogish","constant","symlog","_l01_a","__WEBPACK_IMPORTED_MODULE_0__math__","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","alpha","_alpha","__WEBPACK_IMPORTED_MODULE_1__cardinal__","x23","y23","catmullRom","__WEBPACK_IMPORTED_MODULE_1__area__","__WEBPACK_IMPORTED_MODULE_2__line__","__WEBPACK_IMPORTED_MODULE_8__symbol__","__WEBPACK_IMPORTED_MODULE_9__symbol_circle__","__WEBPACK_IMPORTED_MODULE_10__symbol_cross__","__WEBPACK_IMPORTED_MODULE_11__symbol_diamond__","__WEBPACK_IMPORTED_MODULE_12__symbol_square__","__WEBPACK_IMPORTED_MODULE_13__symbol_star__","__WEBPACK_IMPORTED_MODULE_14__symbol_triangle__","__WEBPACK_IMPORTED_MODULE_15__symbol_wye__","__WEBPACK_IMPORTED_MODULE_16__curve_basisClosed__","__WEBPACK_IMPORTED_MODULE_17__curve_basisOpen__","__WEBPACK_IMPORTED_MODULE_18__curve_basis__","__WEBPACK_IMPORTED_MODULE_26__curve_linearClosed__","__WEBPACK_IMPORTED_MODULE_27__curve_linear__","__WEBPACK_IMPORTED_MODULE_28__curve_monotone__","__WEBPACK_IMPORTED_MODULE_29__curve_natural__","__WEBPACK_IMPORTED_MODULE_30__curve_step__","__WEBPACK_IMPORTED_MODULE_31__stack__","__WEBPACK_IMPORTED_MODULE_32__offset_expand__","__WEBPACK_IMPORTED_MODULE_34__offset_none__","__WEBPACK_IMPORTED_MODULE_35__offset_silhouette__","__WEBPACK_IMPORTED_MODULE_36__offset_wiggle__","__WEBPACK_IMPORTED_MODULE_41__order_none__","__WEBPACK_IMPORTED_MODULE_0_d3_path__","__WEBPACK_IMPORTED_MODULE_1__constant__","__WEBPACK_IMPORTED_MODULE_2__curve_linear__","__WEBPACK_IMPORTED_MODULE_3__point__","buffer","defined0","__WEBPACK_IMPORTED_MODULE_0__none__","sums","sort","timeFormat","utcFormat","utcParse","locale","timeParse","__WEBPACK_IMPORTED_MODULE_0__locale__","dateTime","time","periods","days","shortDays","months","shortMonths","__WEBPACK_IMPORTED_MODULE_1__millisecond__","__WEBPACK_IMPORTED_MODULE_2__second__","__WEBPACK_IMPORTED_MODULE_3__minute__","__WEBPACK_IMPORTED_MODULE_4__hour__","__WEBPACK_IMPORTED_MODULE_5__day__","__WEBPACK_IMPORTED_MODULE_6__week__","__WEBPACK_IMPORTED_MODULE_7__month__","__WEBPACK_IMPORTED_MODULE_8__year__","__WEBPACK_IMPORTED_MODULE_9__utcMinute__","__WEBPACK_IMPORTED_MODULE_10__utcHour__","__WEBPACK_IMPORTED_MODULE_11__utcDay__","__WEBPACK_IMPORTED_MODULE_12__utcWeek__","__WEBPACK_IMPORTED_MODULE_13__utcMonth__","__WEBPACK_IMPORTED_MODULE_14__utcYear__","MapCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","SetCache","setCacheAdd","setCacheHas","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","arrayPush","baseFlatten","depth","predicate","isStrict","isFlattenable","bitmask","stack","baseIsEqualDeep","baseRest","setToString","overRest","cacheHas","cloneArrayBuffer","arrayBuffer","byteLength","Uint8Array","overArg","arrayFilter","stubArray","nativeGetSymbols","symbol","MAX_SAFE_INTEGER","reIsUint","reIsPlainProp","reIsDeepProp","isPrototype","freeExports","nodeType","freeModule","moduleExports","freeProcess","nodeUtil","setToArray","collection","arrayEach","castFunction","baseIsArguments","isArguments","stubFalse","Buffer","nativeIsBuffer","isBuffer","baseOrderBy","sortBy","iteratees","_interopRequireDefault","_inheritsLoose","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","PropTypes","newObj","_react","_reactDom","_reactLifecyclesCompat","_PropTypes","Transition","_React$Component","initialStatus","transitionGroup","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","nextCallback","_proto","getChildContext","getDerivedStateFromProps","updateStatus","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","performEnter","performExit","appearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","onExited","onExit","onExiting","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","childProps","only","contextTypes","childContextTypes","pt","timeoutsShape","_default","polyfill","_propTypes","_ChildMapping","childFactory","TransitionGroup","handleExited","firstRender","appeared","mounted","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","createMarkupForStyles","cssRuleSetToString","selector","rules","userAgent","rulesWithPx","_mapObject2","_appendPxIfNeeded2","prefixedRules","_prefixer","getPrefixedStyle","_camelCasePropsToDashCase2","_appendPxIfNeeded","_camelCasePropsToDashCase","_mapObject","transformValues","newStyle","getPrefixer","actualUserAgent","_hasWarnedAboutUserAgent","_cachedPrefixer","_lastUserAgent","_inlineStylePrefixer2","prefixAll","prefixedKeyframes","getPrefixedKeyframes","styleWithFallbacks","_inlineStylePrefixer","StyleKeeper","_userAgent","_listeners","_cssSet","listener","listenerIndex","splice","addCSS","_emitChange","getCSS","__WEBPACK_IMPORTED_MODULE_1_lodash_isNaN__","__WEBPACK_IMPORTED_MODULE_1_lodash_isNaN___default","__WEBPACK_IMPORTED_MODULE_2_lodash_max__","__WEBPACK_IMPORTED_MODULE_2_lodash_max___default","__WEBPACK_IMPORTED_MODULE_4_lodash_get__","__WEBPACK_IMPORTED_MODULE_4_lodash_get___default","__WEBPACK_IMPORTED_MODULE_5_lodash_isNil__","__WEBPACK_IMPORTED_MODULE_5_lodash_isNil___default","__WEBPACK_IMPORTED_MODULE_6_lodash_isArray__","__WEBPACK_IMPORTED_MODULE_6_lodash_isArray___default","__WEBPACK_IMPORTED_MODULE_10_react_smooth__","__WEBPACK_IMPORTED_MODULE_11__shape_Curve__","__WEBPACK_IMPORTED_MODULE_12__shape_Dot__","__WEBPACK_IMPORTED_MODULE_13__container_Layer__","__WEBPACK_IMPORTED_MODULE_14__component_LabelList__","__WEBPACK_IMPORTED_MODULE_15__util_PureRender__","__WEBPACK_IMPORTED_MODULE_16__util_ReactUtils__","__WEBPACK_IMPORTED_MODULE_17__util_DataUtils__","__WEBPACK_IMPORTED_MODULE_18__util_ChartUtils__","isAnimationFinished","cachePrevData","prevPoints","prevBaseLine","handleAnimationEnd","onAnimationEnd","handleAnimationStart","onAnimationStart","animationId","needClip","areaProps","customDotProps","dotEvents","renderDotItem","dotsProps","startX","endX","maxY","startY","endY","maxX","renderVerticalRect","renderHorizontalRect","stepBaseLine","prevPointsDiffFactor","stepPoints","prevPointIndex","interpolatorX","interpolatorY","_interpolator","renderAreaStatically","renderClipRect","renderAreaWithAnimation","_this$props8","hasSinglePoint","renderArea","renderDots","getBaseValue","baseValue","xAxisTicks","yAxisTicks","__WEBPACK_IMPORTED_MODULE_1_lodash_isEqual__","__WEBPACK_IMPORTED_MODULE_1_lodash_isEqual___default","__WEBPACK_IMPORTED_MODULE_2_lodash_isFunction__","__WEBPACK_IMPORTED_MODULE_2_lodash_isFunction___default","__WEBPACK_IMPORTED_MODULE_3_lodash_isArray__","__WEBPACK_IMPORTED_MODULE_3_lodash_isArray___default","__WEBPACK_IMPORTED_MODULE_4_react__","__WEBPACK_IMPORTED_MODULE_4_react___default","__WEBPACK_IMPORTED_MODULE_5_prop_types__","__WEBPACK_IMPORTED_MODULE_5_prop_types___default","__WEBPACK_IMPORTED_MODULE_7_react_smooth__","__WEBPACK_IMPORTED_MODULE_8__shape_Rectangle__","__WEBPACK_IMPORTED_MODULE_9__container_Layer__","__WEBPACK_IMPORTED_MODULE_10__ErrorBar__","__WEBPACK_IMPORTED_MODULE_11__component_Cell__","__WEBPACK_IMPORTED_MODULE_12__component_LabelList__","__WEBPACK_IMPORTED_MODULE_13__util_PureRender__","__WEBPACK_IMPORTED_MODULE_14__util_DataUtils__","__WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__","__WEBPACK_IMPORTED_MODULE_16__util_ChartUtils__","prevData","baseProps","renderRectangle","stepData","interpolatorWidth","interpolatorHeight","_interpolatorHeight","renderRectanglesStatically","renderRectanglesWithAnimation","backgroundProps","background","rest","dataPoint","errorBarItems","renderBackground","renderRectangles","renderErrorBar","minPointSize","stackedDomain","cells","delta","_delta","__WEBPACK_IMPORTED_MODULE_7__util_PureRender__","__WEBPACK_IMPORTED_MODULE_8__shape_Curve__","__WEBPACK_IMPORTED_MODULE_9__shape_Dot__","__WEBPACK_IMPORTED_MODULE_10__container_Layer__","__WEBPACK_IMPORTED_MODULE_11__component_LabelList__","__WEBPACK_IMPORTED_MODULE_12__ErrorBar__","__WEBPACK_IMPORTED_MODULE_13__util_DataUtils__","__WEBPACK_IMPORTED_MODULE_14__util_ReactUtils__","__WEBPACK_IMPORTED_MODULE_15__util_ChartUtils__","mainCurve","curveDom","lineLength","pre","remainLength","restLength","remainLines","emptyLines","repeat","lineProps","curveProps","animateNewValues","_interpolatorX","_interpolatorY","renderCurveStatically","currentStrokeDasharray","num","getStrokeDasharray","renderCurveWithAnimation","renderCurve","linesUnit","dotItem","__WEBPACK_IMPORTED_MODULE_9__component_LabelList__","__WEBPACK_IMPORTED_MODULE_10__util_ReactUtils__","__WEBPACK_IMPORTED_MODULE_11__ZAxis__","__WEBPACK_IMPORTED_MODULE_12__shape_Curve__","__WEBPACK_IMPORTED_MODULE_13__shape_Symbols__","__WEBPACK_IMPORTED_MODULE_14__ErrorBar__","__WEBPACK_IMPORTED_MODULE_15__component_Cell__","__WEBPACK_IMPORTED_MODULE_16__util_DataUtils__","__WEBPACK_IMPORTED_MODULE_17__util_ChartUtils__","cachePrevPoints","activeShape","renderSymbolItem","interpolatorCx","interpolatorCy","interpolatorSize","renderSymbolsStatically","renderSymbolsWithAnimation","dataPointFormatterY","dataPointFormatterX","linePoints","lineItem","lineType","lineJointType","scatterProps","customLineProps","_getLinearRegression","linearExp","renderLine","renderSymbols","zAxis","xAxisDataKey","yAxisDataKey","zAxisDataKey","defaultRangeZ","defaultZ","xBandSize","yBandSize","__WEBPACK_IMPORTED_MODULE_1_lodash_uniqBy__","__WEBPACK_IMPORTED_MODULE_1_lodash_uniqBy___default","__WEBPACK_IMPORTED_MODULE_5__DefaultLegendContent__","ICON_TYPES","Legend","hPos","vPos","_box","getDefaultPosition","iconSize","__WEBPACK_IMPORTED_MODULE_2_d3_shape__","__WEBPACK_IMPORTED_MODULE_3_classnames__","__WEBPACK_IMPORTED_MODULE_3_classnames___default","SYMBOL_FACTORIES","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","getSymbolFactory","calculateAreaSize","sizeType","Symbols","symbolFactory","$expm1","anObject","IE8_DOM_DEFINE","toPrimitive","dP","O","Attributes","fails","spaces","space","non","ltrim","rtrim","exporter","KEY","ALIAS","FORCE","TYPE","IObject","Velocity","Utilities","removeData","velocityReactServerShim","Zepto","__decorate","decorators","Reflect","decorate","BotControllerBase_1","BotController_1","Verbs","ready","getStartupInfo","openBladeWithInputs","logAction","logMessage","setDirtyState","sendStartupInfo","sendResourceId","sendInputs","sendAppSettingName","sendToken","sendToken2","BladeNames","AzurePortalPageController","refreshBot","fetchBot","_botAppSettings","startupInfo","wrapped","wrap","loadAzureResource","_scmPoller","pollScmType","scmPoller","syncState","botAppSettings","botController","refreshScmType","pingDeployLog","nodes","_deployPoller","pollSetting","deploymentLog","prevFound","deployPoller","setupCrossFrameMessaging","messageHandler","onReceiveMessage","postMessage","shellSrc","onSave","botSub","Bot","v4UI","bladeType","bladeInputs","bladeName","ResourceId","detailBlade","detailBladeInputs","extension","updateBot","ReviewStatusDetail","saveBotStateAndRender","BotController","webApp","serverFarmId","renderPage","AzurePortalPage","botPageProps","getBotPageProps","onSetComponent","getShellSrc","verb","comp","config","loadBotState","handleRefreshAuthFailure","refreshAuthToken","methodName","si","refreshToken","isFirstPartyAuth","ignoreSendToken","BotControllerBase","lazy","ProgressDialog_1","BotEditController_1","WebChatPage_1","BotCodeEditorController_1","BotTabPage_1","EmbedCodeView","index_3","BotCodeSetupController_1","AzurePortalPageController_1","index_4","Routes","botType","ABSCodeRoutes","ABSv1Routes","SDKBotRoutes","ServiceBotRoutes","deploymentPollingInterval","Build","Channels","Analytics","Settings","Develop","_botAppSettingsProps","onDirtyMessage","dirtyData","dirty","onMaskMessage","maskData","inProcess","onErrorMessage","errorData","hasError","botPageState","refreshFromRemote","onbeforeunload","returnValue","AuthoringToolDirtyEventName","AuthoringToolMaskEventName","AuthoringToolErrorEventName","pollDeploymentStatus","deployed","waitingForDeployment","getAzureBladeUrl","tabUrl","graphClient","getTenantDetails","tenantInfo","DomainName","GraphApi","isUnloadable","_botEditController","_botCodeEditorController","handleTenantSwitching","code","curUrl","checkBotDeployStatus","V3Update","botSubscription","jqXHR","textStatus","errorThrown","EmptyBotPage","BotEditController","BotCodeEditorController","BotCodeSetupController","subscriptionKey","PrimarySubscriptionKey","_lastFocus","showEmbedCodes","isSubmitForReviewFlighted","isUserV3Flighted","isUserFeatureFlighted","getConfiguredChannels","reviewStatusDetail","botEditorController","getBotEditorProps","setComponent","botCodeEditorController","getBotCodeEditorProps","onSetCodeEditor","ciProps","botAppCIProps","setCodeSetup","botCodeSetupController","setLoading","onScmTypeChange","onTabClick","onTestClick","onImportBot","onChannelConfigNav","leaveChannelConfig","onChannelConfigLeave","reloadBot","tabFromPath","CanWriteToBot","channelReviewStatuses","ReviewStatuses","WebChatPage","setupEventHandlers","def","processData","shift","BotPageTab","history","pushState","toChannel","allowedChannels","channelIsConfigured","requireABS","areMigrationRequiredBotsDisabled","channelConfigNav","$page","onRegenerateKeyClicked","onPerformTest","onToggleMaximize","isBoolean","client_1","$card","isPrimary","regenerateKey","progressDialog","inputText","$output","json","codeSetup","ch","contactCard","dialog_1","EmbedCodePanel","webChatClick","Links","clacky_1","pendingUnsavedChanges","refreshBotMsaApp","MsaAppId","updatedBot","gatherFormValues","oldValue","newValueJSON","oldValueJSON","newBot","ensureCurrentVersionEndpoint","currVersion","hasCurrentVersion","endpoint","onSetEditor","onButtonClicked","newBotVersion","PublisherEmail","Publisher","Website","Languages","Listed","DeveloperBotPrivacyUrl","ListedMarkets","reader","FileReader","onload","readAsDataURL","iconFile","$button","onRegisterClicked","onDeleteClicked","onSaveClicked","onGetAppIdClicked","isValidEmail","validateEmailList","list_1","isValidNameFieldLength","displayNameLengthError","botHandleLengthError","endpointId","MsaAppType","MsaAppMSIResourceId","MsaAppTenantId","LastSavedDate","$sysTags","ownerIds","ownerIdsError","newState","isEmptyObject","createdBot","tags_1","errorMap","fieldId","Field","$field","closest","inArray","confirm","performDeleteBot","newErrors","Reducers_1","StateStoreUtility_1","IPageStatus_1","IbizaWebChatPage_1","PageStatus","pageStatus","isReady","WebChatController","_store","WaitingForWebChatToken","_actions","onWebChatNewConversation","_onWebChatNewConversation","_createAzurePortalMessenger","_initializePageDependencies","_render","_teardownAzureMessenger","unmountComponentAtNode","StateStoreUtility","mapStateAndDispatchToProps","IbizaWebChatPage","_reactComponent","trustedAuthorityMatches","_onReceiveAuthenticationTokensFromIFrame","_onReceiveEndpointStatusFromIFrame","_getWebChatToken","Reducers","getWebChatTokenCompleted","getWebChatTokenFailed","clearWebChatTokenAndUpdateState","_handleFailedAuthRefresh","loginFailed","loginComplete","webChatToken","onBotEndpointNotReady","onBotEndpointReady","EmailSubscriptionConsentForm_1","RestClient_1","EmailSubscriptionDialog","EmailSubscriptionConsentForm","isShown","EmailSubscriptionConsentConductor","updated","onUserAgreementLoaded","UserHasAgreed","subscriptionInfo","askUserAgreement","UserHasConsented","Subscription","HasConsent","ConsentVersion","V2","hasCollectedConsent","showIfRequired","allowShowDialog","debugAllTabs","SecretControl_1","NameReflector_1","BotMsaEditor_1","SchemaTransformationVersionList","versionToClassname","versionToDisplayText","loadChannelSchemaTransformationInfo","versionRadio","versionContent","SecretControl","keyType","secret","BotMsaEditor","endpointError","belowEndpointField","isStreamingSupported","defaultChecked","IsStreamingSupported","selected","getSTVDisplayString","Major","Minor","SchemaTransformationVersion","botVersionJson","radios","endpt","selectedIndex","toArray","checkForOutsideEvent","$anchor","$alignTo","alignOffset","alignHeight","alignRight","menuWidth","offsetParent","parentOffset","increment","AttachClickOutListeners","DetachClickOutListeners","onItemSelected","selectedChild","limit","rollover","childNodes","highlightItem","Tab","oldProps","newProps","highlighted","MENU_CSS","LogoutPanelStatus","LogoutPanel","InProgress","stateCSSClass","Failure","Success","onAgreeToBotFrameworkTerms","mutateState","botFrameworkTermsAgreed","onAgreeToLuisTerms","luisTermsAgreed","strs","botFrameworkAgreementLabelContent","luisAgreementLabelContent","mutator","showLuisTerms","ChannelEnabledPanel","ChannelLogPanel","channelStateChangeHandler","column","isOn","onChannelStateChangeRequested","channelEnabledDisplayHandler","channelEnabledDisplay","showChannelEnabledPanel","showChannelLogPanel","isAPIException","Code","asAPIException","parseApiException","jsonex","apiException","getInfo","receiveInfo","getAuthTokens","receiveAuthTokens","getEndpointStatus","receiveEndpointStatus","getAppInsightsStatus","receiveAppInsightsStatus","origin","frameSignature","_trustedOrigin","_receivedMessageHandlers","AzurePortalSignature","_messageHandler","_onReceiveMessage","_postMessageToAzurePortal","_postMessageToExtension","_listenForMessage","_unlistenForMessage","messageVerb","messageKind","_postMessageToAzure","azureEvent","_invokeHandlers","setFlag","currentValue","clearFlag","recharts_1","abbreviateNumber","suffixes","suffixNum","shortValue","precision","toPrecision","toFixed","colors","ChannelArt","startup","_channels","iconUrl","channelCollection","channelList","_missing","Observable","isSubscribed","notify","ChannelFilter","_generation","generation","isVisible","setVisible","toggleVisible","visibleChannelList","localeCompare","TimespanSelector","_timespan","ONE_MONTH","datePattern","timePattern","ONE_HOUR","ONE_DAY","ONE_WEEK","THREE_MONTHS","displayNameForTimespan","timespan","dateRangeForTimespan","day","toLocaleDateString","CultureCode","labelForAppInsightsDate","dateMatch","timeMatch","month","year","hour","minute","period","local","getTimezoneOffset","toLocaleTimeString","DataStore","_botId","_method","_isLoading","_dataset","_error","refresh","Timespan","massage","getErrorText","TimelineDataStore","subscriptions","Totals","AnalyticsStore","channelFilter","timespanSelector","timespanChanged","dataset","UserTimelineDataStore","MessageTimelineDataStore","UserRetentionDataStore","bootstrap","userTimelineDataStore","messageTimelineDataStore","userRetentionDataStore","AnalyticsDashboard","renderHeader","ChannelFilterControl","TimespanSelectorControl","GrandTotalsCard","UserRetentionTable","dataStore","TimelineCard","scrollingClass","notConfiguredSubText","checkboxRefs","labelChannelStyle","channelsUpdated","onChannelClick","renderLabelChannel","renderLabelEllipsis","renderPickerLabel","renderPickerCell","renderPickerRow","renderPickerContent","rows","ChevronDropdownControl","buttonHiddenLabel","timespanUpdated","close","control","onClicked","selectors","timespans","storeUpdated","getGrandTotal","datastore","total_1","TotalCard","total","borderBottomColor","XAxisLabel","dataset_1","channels_1","piedata","piecolors","totals","row","PieChart","labelLine","scope","Timeline","Timestamp","LineChart","isLoading","sumWithChannels_1","channels_2","renderRow_1","rowData","DaysData","colorLower","colorUpper","percentCells","colorRgb","lower","upper","colorStr","backgroundColor","Days","dayHeaders","colSpan","ErrorsCard","TermsOfServiceDialog_1","BotChannelConfig","configInterface","defaults","showDeleteDialog","deleteDialog","showConfirmLeaveDialog","leaveDialog","showProgressDialog","showTosDialog","tosDialog","_lastNode","checkbox","successCallback","tosDialogProps","checkboxes","TermsOfServiceDialog","rootPath","currentBotId","queryString","getDLSChannelPage","srcDoc","react_treebeard_1","react_ace_1","csharp","javascript","xml","typescript","theme","Path_1","TreeStyle_1","pinBottom","LogStream_1","mapFilesToTreeNodes","SourceTypes","extToSourceTypes",".js",".csx",".xml",".ts",".json",".xproj","CustomContainer","_a","terminal","containerStyle","clone","unshift","renderToggle","Header","renderToggleDecorator","Toggle","Container","BotCodeEditor","toggled","activeNode","activeFile","activeCode","activeCodeDirty","getMode","sourceType","curType","getExt","isBoundToSourceControl","getToggleClass","onSetBotId","fileNameEditor","keypress","keyCode","blur","codeExplorer","codeExplorerListener","codePanel","codePanelListener","aceEditor","resize","session","setUseWorker","unbind","curNode","curPos","getCursorPosition","$fileNameEditor","$explorer","$newFileNode","nodeBox","pendingResetUndoStack","undoMgr","getUndoManager","reset","gotoPreviousCursor","setOption","openContinuousSettings","onSaveCurrentFile","getLength","gotoLine","resetUndoStack","showLoading","lastDeployTime","botDeploymentLog","mtime","showRefresh","lastFetchTime","TimestampControl","onRefresh","saveButton","Treebeard","onToggle","Loading","isNewFile","newFile","isFile","nodeId","data-nodeId","animations","newFileNodeId","onRenameFile","mode","showPrintMargin","commands","bindKey","win","mac","sender","req","txt","onChangeCode","editorProps","$blockScrolling","clearLogStream","LogStream","BotCodeSetup","azureBladUrl","dismissTooltip","showingTipId","shownTip","botBlobUrl","tipControl","renderAppServiceEditorLink","scmSiteUrl","renderDownloadCodeLink","renderContinousIntegration","renderOpenBotInAzure","_none","renderCodeSetup","renderToolTipAsNeeded","delay","BotCreateSwitch","tiles","showAbsGACreate","button","ABSGACreate","absCodeEnabled","absCodeTile","showTiles","renderCreateTile","onCreate","createFirstBot","renderCreateTiles","renderRegisterButton","BlockRowInputField_1","onPropertyChanged","convertIfArray","BlockRowInputField","containerClassName","errorContainerClassName","maxlen","readonly","onValueChanged","ReactUtils_1","authoringSurfaceHost","append","renderBuildTab","renderActivePage","getAdditionalBodyLeftCssForActivePage","getWithWebChatCss","inAzureClass","webchatRegion","startMigration","async","renderBotName","botNameLabel","renderMigration","renderControls","testButtonClass","renderTabs","tabs","TabControl","clickHandler","tabClassName","selectedClassName","renderCompactMenu","showEnvironment","CompactDropdownControl","contentClassName","closeOnClick","renderEditMark","PAGING_THRESHOLD","BotsPage","bots","onScroll","windowBottom","clientHeight","loadingMoreBots","hasMoreBots","onNextPage","unsubscribeScroll","onscroll","renderBots","renderNoBotsPrompt","renderChannelFilter","documentationUrl","createBot","filterChannelId","selectedChannel","allChannelId","allChannel","newChannelFilter","this_1","linkHref","data-agent-id","navigateToBot","documentClicked","defaultPrevented","srcElement","familyId","parentElement","chevronClicked","nativeEvent","handleKeyDown","random","focusInput","channelFilterElement","contentContainer","allInputs","querySelectorAll","focusing","CompactDropdownControlProps","clickIsInside","clickedOnIcon","iconClicked","toggleStatusBarDisplay","handleFirstFocusTrapFocus","handleLastFocusTrapFocus","handleEmbedCodeFocus","saveCloseButton","saveEmbedCode","currentChannelContact","focusEmbedCode","getFooter","ChannelName","externalLink","embedInfo","beforeCodeValue","beforeCodeNote","Secret","Note","ChannelIconUrl","readOnly","focusCloseButton","closeButtonElement","_closeButton","embedCodeElement","_embedCode","select","closeButton","embedCode","iconList","userAgent_1","EmailSubscriptionConsent_1","emailSubscriptionConsent","renderUnsupportedBrowser","renderWaitListScreen","renderSignInScreen","renderRegularScreen","jumbo","scrolled","userFlightedDocuemntationLink","checkAzureSingleSignOn","singleSignOnChecker","contentWindow","curHost","parseUserAgent","ua","Safari","Chrome","Edge","Firefox","CriOS","Opera","Jumbo","outlineClassOverrides","scrollHandler","bottomPanel","errorMessagePanel","guidelineUrl","onTabClicked","reflectName","setName","reflectNameOf","lastDotIndex","collapseDotDot","dirs","flatten","$PubSub","$Initialized","OnMessage","trigger","frame","default_1","tagName","attrName","elementMap","clicky","pinToBottom","$element","$footer","$box","top_1","windowTop","scrollY","windowHeight","innerHeight","footerHeight","paddingHeight","minHeight","defer","searching","searchBoxClass","toggleSearchForm","onSubmit","onSearchClicked","onKey","$searchInput","$div","searchText","willExpand","FlexLayoutBox","inside","fitsIn","moveToFitsIn","offsetBox","offsetWidth","offsetHeight","$self","anchorBox","selfBox","Right","Bottom","Top","targetBox","data-tip-id","localStorage","setItem","aFunction","cof","__WEBPACK_IMPORTED_MODULE_0__ascending__","__WEBPACK_IMPORTED_MODULE_1__bisector__","ascendingBisect","bisectRight","ascendingComparator","compare","lo","hi","mid","__WEBPACK_IMPORTED_MODULE_0__variance__","pair","LN2","tickIncrement","power","LN10","e10","e5","e2","tickStep","step0","step1","__WEBPACK_IMPORTED_MODULE_0__min__","matrix","transpose","mean","deg2rad","rad2deg","prefixExponent","formatSpecifier","FormatSpecifier","re","zero","comma","__WEBPACK_IMPORTED_MODULE_0__defaultLocale__","__WEBPACK_IMPORTED_MODULE_2__formatSpecifier__","__WEBPACK_IMPORTED_MODULE_3__precisionFixed__","__WEBPACK_IMPORTED_MODULE_4__precisionPrefix__","__WEBPACK_IMPORTED_MODULE_5__precisionRound__","__WEBPACK_IMPORTED_MODULE_0__exponent__","__WEBPACK_IMPORTED_MODULE_1__formatGroup__","__WEBPACK_IMPORTED_MODULE_2__formatNumerals__","__WEBPACK_IMPORTED_MODULE_3__formatSpecifier__","__WEBPACK_IMPORTED_MODULE_4__formatTrim__","__WEBPACK_IMPORTED_MODULE_5__formatTypes__","__WEBPACK_IMPORTED_MODULE_6__formatPrefixAuto__","__WEBPACK_IMPORTED_MODULE_7__identity__","prefixes","newFormat","valuePrefix","valueSuffix","suffix","formatType","valueNegative","maybeSuffix","decimal","numerals","currency","formatPrefix","grouping","thousands","__WEBPACK_IMPORTED_MODULE_0__value__","nb","na","__WEBPACK_IMPORTED_MODULE_0__basis__","rgbSpline","spline","__WEBPACK_IMPORTED_MODULE_1__basis__","__WEBPACK_IMPORTED_MODULE_2__basisClosed__","__WEBPACK_IMPORTED_MODULE_3__color__","rgbGamma","one","reA","reB","am","bm","bs","bi","lastIndex","q","__WEBPACK_IMPORTED_MODULE_0__band__","__WEBPACK_IMPORTED_MODULE_1__identity__","__WEBPACK_IMPORTED_MODULE_2__linear__","__WEBPACK_IMPORTED_MODULE_3__log__","__WEBPACK_IMPORTED_MODULE_4__symlog__","__WEBPACK_IMPORTED_MODULE_5__ordinal__","__WEBPACK_IMPORTED_MODULE_6__pow__","__WEBPACK_IMPORTED_MODULE_7__quantile__","__WEBPACK_IMPORTED_MODULE_8__quantize__","__WEBPACK_IMPORTED_MODULE_9__threshold__","__WEBPACK_IMPORTED_MODULE_10__time__","__WEBPACK_IMPORTED_MODULE_11__utcTime__","__WEBPACK_IMPORTED_MODULE_12__sequential__","__WEBPACK_IMPORTED_MODULE_13__sequentialQuantile__","__WEBPACK_IMPORTED_MODULE_14__diverging__","__WEBPACK_IMPORTED_MODULE_15__tickFormat__","ordinal","implicit","__WEBPACK_IMPORTED_MODULE_0_d3_collection__","__WEBPACK_IMPORTED_MODULE_1__array__","k10","__WEBPACK_IMPORTED_MODULE_0__continuous__","sequential","__WEBPACK_IMPORTED_MODULE_1__init__","sequentialLog","sequentialSymlog","sequentialPow","__WEBPACK_IMPORTED_MODULE_5__pow__","sequentialSqrt","calendar","week","second","millisecond","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","formatYear","tickInterval","tickIntervals","durationYear","__WEBPACK_IMPORTED_MODULE_4__continuous__","durationMonth","__WEBPACK_IMPORTED_MODULE_3__array__","__WEBPACK_IMPORTED_MODULE_6__nice__","__WEBPACK_IMPORTED_MODULE_1_d3_time__","__WEBPACK_IMPORTED_MODULE_2_d3_time_format__","__WEBPACK_IMPORTED_MODULE_5__init__","__WEBPACK_IMPORTED_MODULE_3__line__","__WEBPACK_IMPORTED_MODULE_4__point__","area","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","CardinalClosed","__WEBPACK_IMPORTED_MODULE_0__noop__","_x4","_x5","_y3","_y4","_y5","CardinalOpen","__WEBPACK_IMPORTED_MODULE_0__cardinal__","Radial","_curve","curveRadial","radial","curveRadialLinear","lineRadial","__WEBPACK_IMPORTED_MODULE_0__curve_radial__","peak","vi","vj","peaks","draw","arc","tan30","tan30_2","w","kr","kx","ky","sqrt3","formatIsoNative","toISOString","isoSpecifier","localDate","H","M","L","setFullYear","utcDate","UTC","setUTCFullYear","newYear","formatLocale","formats","pad","pads","newParse","newDate","parseSpecifier","Q","V","getUTCDay","__WEBPACK_IMPORTED_MODULE_0_d3_time__","getUTCFullYear","getUTCMonth","getUTCDate","getDay","getFullYear","getMonth","getDate","Z","parses","parsePeriod","periodRe","periodLookup","parseShortWeekday","shortWeekdayRe","shortWeekdayLookup","parseWeekday","weekdayRe","weekdayLookup","parseShortMonth","shortMonthRe","shortMonthLookup","parseMonth","monthRe","monthLookup","parseLocaleDateTime","locale_dateTime","parseLocaleDate","locale_date","parseLocaleTime","locale_time","formatShortWeekday","locale_shortWeekdays","formatWeekday","locale_weekdays","formatShortMonth","locale_shortMonths","locale_months","formatPeriod","locale_periods","getHours","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCPeriod","getUTCHours","formatRe","formatLookup","A","formatDayOfMonth","formatMicroseconds","formatHour24","I","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","X","Y","formatFullYear","formatZone","%","formatLiteralPercent","utcFormats","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parseDayOfMonth","parseMicroseconds","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseYear","parseFullYear","parseZone","parseLiteralPercent","requote","requoteRe","names","numberRe","percentRe","getMilliseconds","getMinutes","getSeconds","getUTCMilliseconds","getUTCMinutes","getUTCSeconds","dow","-","0","globalScope","carry","xd","yd","pr","external","LOG_BASE","BASE","pop","checkInt32","invalidArgument","digitsToString","ws","indexOfLastWord","getZeroString","sd","denominator","guard","wpr","getBase10Exponent","exponentOutOfRange","ONE","gte","times","mathpow","plus","divide","getLn10","decimalError","zs","ln","c0","numerator","minus","parseDecimal","mathfloor","MAX_E","rm","rd","doRound","xdi","subtract","xe","xLTy","isExp","truncate","Decimal","isDecimal","ps","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","MAX_DIGITS","rounding","toExpNeg","toExpPos","absoluteValue","comparedTo","cmp","xdL","ydL","decimalPlaces","dp","dividedBy","dividedToIntegerBy","idiv","equals","greaterThan","gt","greaterThanOrEqualTo","isInteger","isint","isNegative","isneg","isPositive","ispos","isZero","lessThan","lt","lessThanOrEqualTo","lte","logarithm","sub","modulo","mod","naturalExponential","naturalLogarithm","negated","neg","squareRoot","mul","rL","toDecimalPlaces","todp","toInteger","toint","toNumber","toPower","yIsInt","yn","toSignificantDigits","tosd","toJSON","multiplyInteger","temp","aL","bL","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","toHyphenLower","hyphenateStyleName","hName","uppercasePattern","msPattern","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","inherited","isArr","isArg","isBuff","isType","isTypedArray","skipIndexes","baseTimes","arraySome","objValue","baseFindIndex","fromIndex","fromRight","baseFor","baseGetAllKeys","keysFunc","symbolsFunc","baseGt","baseLt","baseMap","equalArrays","equalFunc","isPartial","COMPARE_PARTIAL_FLAG","arrLength","othLength","arrStacked","othStacked","seen","COMPARE_UNORDERED_FLAG","arrValue","othValue","compared","othIndex","getAllKeys","getSymbolsIn","isStrictComparable","matchesStrictComparable","srcValue","nativeMax","otherArgs","baseSetToString","shortOut","wait","invokeFunc","lastArgs","thisArg","lastThis","lastInvokeTime","leadingEdge","timerId","timerExpired","leading","remainingWait","timeSinceLastCall","lastCallTime","timeSinceLastInvoke","timeWaiting","maxing","nativeMin","maxWait","shouldInvoke","trailingEdge","trailing","flush","debounced","isInvoking","FUNC_ERROR_TEXT","arrayEvery","baseEvery","baseIsTypedArray","nodeIsTypedArray","maxBy","createRange","toFinite","MAX_INTEGER","NAN","baseTrim","isBinary","reIsBinary","reIsOctal","freeParseInt","reIsBadHex","uniqBy","baseUniq","vendors","raf","caf","_now","cp","cancelled","requestAnimationFrame","cancelAnimationFrame","componentWillReceiveProps","updater","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","__WEBPACK_IMPORTED_MODULE_3__AnimateManager__","__WEBPACK_IMPORTED_MODULE_4__PureRender__","__WEBPACK_IMPORTED_MODULE_5__easing__","__WEBPACK_IMPORTED_MODULE_6__configUpdate__","__WEBPACK_IMPORTED_MODULE_7__util__","Animate","handleStyleChange","changeStyle","runAnimation","shouldReAnimate","isTriggered","manager","stopJSAnimation","unSubscribe","startAnimation","finalStartAnimation","_steps$","initialStyle","_steps$$duration","initialTime","addStyle","sequence","nextItem","_nextItem$easing","nextProperties","preItem","runJSAnimation","propsTo","runStepAnimation","onAnimationReStart","stateStyle","cloneContainer","_container$props","_container$props$styl","configEasing","__WEBPACK_IMPORTED_MODULE_0__util__","cubicBezierFactor","c1","c2","multyTime","cubicBezier","derivativeCubicBezier","newParams","configBezier","curveX","curveY","derCurveX","rangeValue","bezier","_t","evalT","derVal","isStepper","configSpring","_config$stiff","stiff","_config$damping","damping","_config$dt","dt","stepper","destX","currV","FSpring","FDamping","newV","newX","_len2","_key2","_CSSTransition","_ReplaceTransition","_TransitionGroup","_Transition","ReplaceTransition","CSSTransition","classNamesShape","enterDone","enterActive","exitDone","exitActive","_get","_react2","_radium","_radium2","_velocityReact","midHeight","wrapper","arrow","_Container","VelocityComponent","toggle","animation","_props2","rotateZ","drawer","leave","tree","listStyle","marginLeft","connector","borderLeft","borderBottom","subtree","paddingLeft","Webkit","transformOrigin","transformOriginX","transformOriginY","backfaceVisibility","perspective","perspectiveOrigin","transformStyle","transformOriginZ","animationDelay","animationDirection","animationFillMode","animationIterationCount","animationName","animationPlayState","animationTimingFunction","appearance","userSelect","fontKerning","textEmphasisPosition","textEmphasis","textEmphasisStyle","textEmphasisColor","boxDecorationBreak","maskImage","maskMode","maskRepeat","maskPosition","maskClip","maskOrigin","maskSize","maskComposite","maskBorderSource","maskBorderMode","maskBorderSlice","maskBorderWidth","maskBorderOutset","maskBorderRepeat","maskBorder","maskType","textDecorationStyle","textDecorationSkip","textDecorationLine","textDecorationColor","fontFeatureSettings","breakAfter","breakBefore","breakInside","columnCount","columnFill","columnGap","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columns","columnSpan","columnWidth","flex","flexBasis","flexDirection","flexGrow","flexFlow","flexShrink","flexWrap","alignContent","alignItems","alignSelf","justifyContent","transitionDelay","transitionDuration","transitionProperty","transitionTimingFunction","backdropFilter","scrollSnapType","scrollSnapPointsX","scrollSnapPointsY","scrollSnapDestination","scrollSnapCoordinate","shapeImageThreshold","shapeImageMargin","shapeImageOutside","hyphens","flowInto","flowFrom","regionFragment","textSizeAdjust","Moz","boxSizing","textAlignLast","tabSize","ms","wrapFlow","wrapThrough","wrapMargin","touchAction","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridTemplate","gridAutoColumns","gridAutoRows","gridAutoFlow","grid","gridRowStart","gridColumnStart","gridRowEnd","gridRow","gridColumn","gridColumnEnd","gridColumnGap","gridRowGap","gridArea","gridGap","sortPrefixedStyle","_isPrefixedProperty2","sortedStyle","_isPrefixedProperty","appendPxIfNeeded","propertyName","isUnitlessNumber","boxFlex","boxFlexGroup","boxOrdinalGroup","flexPositive","flexNegative","flexOrder","lineClamp","orphans","widows","zIndex","zoom","copyProperties","KEYS_TO_IGNORE_WHEN_COPYING_PROPERTIES","isStateless","enhanceWithRadium","configOrComposedComponent","newConfig","configOrComponent","ComposedComponent","RadiumEnhancer","_ComposedComponent","_radiumStyleState","_radiumIsMounted","_radiumMouseUpListener","_radiumMediaQueryListenersByQuery","superChildContext","radiumConfig","newContext","_radiumConfig","renderedElement","currentConfig","_resolveStyles2","_isRadiumEnhanced","_radiumStyleKeeper","instanceOf","_styleKeeper2","_styleKeeper","_resolveStyles","getStateKey","elementKey","_getStateKey","_getStateKey2","getState","hashValue","mapper","_checkPropsPlugin","_checkPropsPlugin2","_keyframesPlugin","_keyframesPlugin2","_mergeStyleArrayPlugin","_mergeStyleArrayPlugin2","_prefixPlugin","_prefixPlugin2","_removeNestedStylesPlugin","_removeNestedStylesPlugin2","_resolveInteractionStylesPlugin","_resolveInteractionStylesPlugin2","_resolveMediaQueriesPlugin","_resolveMediaQueriesPlugin2","_visitedPlugin","_visitedPlugin2","checkProps","keyframes","mergeStyleArray","removeNestedStyles","resolveInteractionStyles","resolveMediaQueries","visited","_appendImportantToEachValue","_appendImportantToEachValue2","_cssRuleSetToString","_cssRuleSetToString2","_getState","_getState2","_hash","_hash2","_mergeStyles","_plugins","_plugins2","_exenv","_exenv2","DEFAULT_CONFIG","plugins","globalState","resolveStyles","_shouldResolveStyles","_resolveChildren","existingKeyMap","childrenType","onlyChild","_resolveProps","propValue","_buildGetKey","originalKey","alreadyGotKey","elementName","_setStyleState","stateKey","existing","_lastRadiumState","_runPlugins","getKey","getComponentField","getGlobalState","componentGetState","styleKeeper","__isTestModeEnabled","plugin","ExecutionEnvironment","appendImportantToEachValue","mergeStyles","isNestedStyle","newComponentFields","componentFields","newGlobalState","_cloneElement","newChildren","data-radium","shouldCheckBeforeResolve","__clearStateForTests","__setTestMode","isEnabled","memoize","compose","curry","PLACE_HOLDER","@@functional/placeholder","isPlaceHolder","curry0","_curried","curryN","argsLength","restArgs","newArgs","_len3","_key3","fns","firstFn","tailsFn","lastResult","_len4","_key4","__WEBPACK_IMPORTED_MODULE_0_lodash_range__","__WEBPACK_IMPORTED_MODULE_0_lodash_range___default","__WEBPACK_IMPORTED_MODULE_5_d3_scale__","__WEBPACK_IMPORTED_MODULE_6__util_ChartUtils__","__WEBPACK_IMPORTED_MODULE_9__component_Text__","__WEBPACK_IMPORTED_MODULE_10__util_DataUtils__","__WEBPACK_IMPORTED_MODULE_11__util_CssPrefixUtils__","handleDrag","leaveTimer","isTravellerMoving","handleTravellerMove","isSlideMoving","handleSlideDrag","handleDragEnd","handleLeaveWrapper","leaveTimeOut","handleEnterSlideOrTraveller","isTextActive","handleLeaveSlideOrTraveller","handleSlideDragStart","slideMoveStartX","travellerDragStartHandlers","handleTravellerDragStart","updateScale","travellerWidth","scaleValues","gap","minIndex","getIndexInRange","maxIndex","newIndex","getIndex","movingTravellerId","brushMoveStartX","_this$setState","prevValue","isFullGap","chartElement","travellerX","lineY","_this$props9","_this$props10","getTextOfTick","_this$props11","isPanoramic","renderPanorama","renderSlide","renderTraveller","renderText","middle","__WEBPACK_IMPORTED_MODULE_5__util_DOMUtils__","__WEBPACK_IMPORTED_MODULE_6__container_Layer__","__WEBPACK_IMPORTED_MODULE_7__component_Text__","__WEBPACK_IMPORTED_MODULE_8__component_Label__","CartesianAxis","viewBoxOld","restPropsOld","tx","ty","tickMargin","finalTickSize","tickCoord","needHeight","needWidth","finalTicks","getTickVerticalAnchor","_this$getTickLineCoor","visibleTicksCount","noTicksProps","getNumberIntervalTicks","getTicksStart","getTicksEnd","preserveEnd","sizeKey","unitSize","tail","tailContent","tailSize","tailGap","isShow","__WEBPACK_IMPORTED_MODULE_5__container_Layer__","__WEBPACK_IMPORTED_MODULE_6__component_Label__","__WEBPACK_IMPORTED_MODULE_7__util_CartesianUtils__","__WEBPACK_IMPORTED_MODULE_8__util_ChartUtils__","__WEBPACK_IMPORTED_MODULE_10__util_LogUtils__","__WEBPACK_IMPORTED_MODULE_11__util_ReactUtils__","__WEBPACK_IMPORTED_MODULE_12__shape_Rectangle__","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","rangeMin","rangeMax","getRect","renderRect","isFront","__WEBPACK_IMPORTED_MODULE_11__util_CartesianUtils__","__WEBPACK_IMPORTED_MODULE_12__util_LogUtils__","isX","isY","getCoordinate","renderDot","__WEBPACK_IMPORTED_MODULE_0_lodash_some__","__WEBPACK_IMPORTED_MODULE_0_lodash_some___default","__WEBPACK_IMPORTED_MODULE_9__util_ChartUtils__","isFixedX","isFixedY","isSegment","_this$props$viewBox","yCoord","xCoord","_orientation","_coord","_points","segment","_points2","fixedX","fixedY","endPoints","getEndPoints","_endPoints","_endPoints$","_endPoints$2","__WEBPACK_IMPORTED_MODULE_1_lodash_isPlainObject__","__WEBPACK_IMPORTED_MODULE_1_lodash_isPlainObject___default","__WEBPACK_IMPORTED_MODULE_3_lodash_omit__","__WEBPACK_IMPORTED_MODULE_3_lodash_omit___default","__WEBPACK_IMPORTED_MODULE_5_lodash_isNumber__","__WEBPACK_IMPORTED_MODULE_5_lodash_isNumber___default","__WEBPACK_IMPORTED_MODULE_6_react__","__WEBPACK_IMPORTED_MODULE_6_react___default","__WEBPACK_IMPORTED_MODULE_7_prop_types__","__WEBPACK_IMPORTED_MODULE_7_prop_types___default","__WEBPACK_IMPORTED_MODULE_8_react_smooth__","__WEBPACK_IMPORTED_MODULE_12__shape_Trapezoid__","__WEBPACK_IMPORTED_MODULE_13__component_LabelList__","__WEBPACK_IMPORTED_MODULE_14__component_Cell__","trapezoids","prevTrapezoids","trapezoidOptions","isActiveIndex","trapezoidProps","renderTrapezoidItem","_interpolatorUpperWidth","upperWidth","_interpolatorLowerWidth","lowerWidth","interpolatorUpperWidth","interpolatorLowerWidth","renderTrapezoidsStatically","renderTrapezoidsWithAnimation","renderTrapezoids","nameKey","getRealFunnelData","presentationProps","cell","getRealWidthHeight","customWidth","realHeight","realWidth","offsetX","offsetY","funnelData","_Funnel$getRealWidthH","maxValue","rowHeight","nextVal","__WEBPACK_IMPORTED_MODULE_1_lodash_get__","__WEBPACK_IMPORTED_MODULE_1_lodash_get___default","__WEBPACK_IMPORTED_MODULE_2_lodash_isPlainObject__","__WEBPACK_IMPORTED_MODULE_2_lodash_isPlainObject___default","__WEBPACK_IMPORTED_MODULE_4_lodash_isNil__","__WEBPACK_IMPORTED_MODULE_4_lodash_isNil___default","__WEBPACK_IMPORTED_MODULE_8_classnames__","__WEBPACK_IMPORTED_MODULE_8_classnames___default","__WEBPACK_IMPORTED_MODULE_9__util_PureRender__","__WEBPACK_IMPORTED_MODULE_11__shape_Sector__","__WEBPACK_IMPORTED_MODULE_13__component_Text__","__WEBPACK_IMPORTED_MODULE_14__component_Label__","__WEBPACK_IMPORTED_MODULE_15__component_LabelList__","__WEBPACK_IMPORTED_MODULE_16__component_Cell__","__WEBPACK_IMPORTED_MODULE_17__util_ReactUtils__","__WEBPACK_IMPORTED_MODULE_18__util_PolarUtils__","__WEBPACK_IMPORTED_MODULE_19__util_DataUtils__","__WEBPACK_IMPORTED_MODULE_20__util_ChartUtils__","__WEBPACK_IMPORTED_MODULE_21__util_LogUtils__","prevSectors","pieProps","customLabelProps","customLabelLineProps","offsetRadius","labels","getTextAnchor","realDataKey","renderLabelLineItem","renderLabelItem","blendStroke","sectorOptions","sectorProps","renderSectorItem","curAngle","paddingAngle","angleIp","latest","interpolatorAngle","_latest","renderSectorsStatically","renderSectorsWithAnimation","renderSectors","renderLabels","minAngle","parseDeltaAngle","getRealPieData","parseCoordinateOfPie","maxPieRadius","pieData","absDeltaAngle","totalPadingAngle","realTotalAngle","tempStartAngle","middleRadius","__WEBPACK_IMPORTED_MODULE_4_react_smooth__","__WEBPACK_IMPORTED_MODULE_11__shape_Polygon__","radar","renderPolygonStatically","renderPolygonWithAnimation","renderPolygon","__WEBPACK_IMPORTED_MODULE_2_lodash_isArray__","__WEBPACK_IMPORTED_MODULE_2_lodash_isArray___default","__WEBPACK_IMPORTED_MODULE_6_react_smooth__","__WEBPACK_IMPORTED_MODULE_7__shape_Sector__","__WEBPACK_IMPORTED_MODULE_12__component_Cell__","__WEBPACK_IMPORTED_MODULE_14__util_ChartUtils__","renderSectorShape","interpolatorStartAngle","interpolatorEndAngle","radiusAxisTicks","angleAxisTicks","backgroundSector","__WEBPACK_IMPORTED_MODULE_4__util_DataUtils__","Cross","getTrapezoidPath","widthGap","Trapezoid","currUpperWidth","currLowerWidth","createDesc","pIE","toIObject","gOPD","arrayIndexOf","IE_PROTO","bitmap","SRC","$toString","TPL","inspectSource","safe","shared","uid","store","copyright","px","VelocityTransitionGroup","velocityHelpers","FlightController","processParams","turnOn","setFeatureFlighting","RedirectController","newUrl","TrackingCookieConsent_1","DevPortalAppBase","appBody","useHistory","TrackingCookieConsent","scrollHandlers","$loading","onBeforeUnloadHandler","currentController","getRouter","getCurrentController","App","AccountSettingsPage_1","AccountSettingsController","AccountSettingsPage","deleteAccount","AbsCodeChoicePanel_1","BotCreateSwitchController","promptAbsCodeChoice","AbsCodeChoicePanel","choice","createAbsCodeBot","choiceState","BotOpenComposerController","payloadJson","BotOpenComposer","downloadUrl","ImageUtils","BotsController","migrationBotId","fetchMore","filterSetting","performDelete","initArmClient","refreshPage","azureAccessToken","performRollback","upgradeAppName","oldEndpoint","oldEndpointUrl","siteNameRegex","oldSiteName","ServicePlan","ProvisioningState","MigratedDate","wipeUpgradeEvidence","showPostRollbackDialog","searchMore","listMore","botSearchResult","Items","HasMore","ContinuationToken","initAgentIcons","$icons","$icon","addImageToContainer","ImageDisplayMode","Fill","LogoutPage_1","redirectOnAllSuccess","siteSignOutSuccess","protocol","getChannels","singleSignOut","onSiteSignOutSuccess","markPanelStatus","logoutPanelStatus","onImageLoadSuccess","successCount","onImageLoadFailure","failureCount","$img","DeveloperConfigLogoutUrl","addChannelsToState","signOut","LogoutPage","propertyKey","innerGet","View","apiHost","authHeader","graphApiRoot","details","td","defaultDomains","verifiedDomains","ti","Current","DisplayName","VsoApi","vsoApiRoot","findWidestImage","images","widest","setImageSource","imageUrl","scaleAndCenterImage","$container","img","Image","containerWidth","containerHeight","scaleX","naturalWidth","scaleY","naturalHeight","Fit","MaxScaleUp","marginTop","loadImageFromFile","maxImageWidth","reduceImageSize","image","preloadImages","canvas","getContext","drawImage","toDataURL","complete","completed","timeoutId","elementIndex","filtered_1","loadedCount","imageCount","$src","preloadImage","IsImageFile","localizeAndList","OptingOptions","CountryCodeOptInOut","AF","OptOut","AX","AL","DZ","AS","AD","AO","OptIn","AI","AQ","AG","AR","AM","AW","AC","AU","AT","DoubleOptIn","AZ","BS","BH","Notice","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","VG","BN","BG","BF","BI","KH","CM","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","CS","DK","DJ","DM","DO","TP","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","FX","GF","PF","TF","GA","GM","GE","DE","GH","GI","GB","GR","GL","GD","GP","GU","GT","GW","GN","GY","HT","HM","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","KP","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","ME","MS","MA","MZ","MM","NA","NR","NP","NL","AN","NT","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","GS","KN","LC","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","ES","LK","SH","PM","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TG","TK","TO","TT","TN","TR","TM","TC","TV","UM","SU","UG","UA","AE","UK","US","UY","UZ","VU","VA","VE","VN","VI","WF","EH","YE","YU","ZR","ZM","ZW","informed","nextYear","_pageTrackingLoaded","trackClientJSBundle","trackPageViewViaAppInsights","clientJSBundleElement","appInsights","trackEvent","getAttribute","trackPageView","checkForAppID","requestingId","removeItem","createId","openMSAPage","msaUrl","msaLink","msaPortalEndpoint","appIdElement","lowercaseAppId","appIdError","msaDocsLink","readonlyClass","showMsiResourceId","UserAssignedMSI","msiResourceIdSection","showTenantId","SingleTenant","tenantIdSection","MultiTenant","icon","showErrorIcon","onClearAllClick","When","toLocaleString","CorrelationId","EmailSubscriptionConsentFormFields_1","saveButtonEnabled","onCancelClicked","onSubmitClicked","CountryCode","renderBusy","renderHeaderPrefixes","renderEmailSubscriptionFields","EmailSubscriptionConsentFormFields","renderUserAgreementFields","PromotionEmailUtils_1","DISABLED_COUNTRY_CODES","triggerSubscriptionStateChanged","onSubscriptionChanged","onCountryChanged","countryCode","subscription","IsEnabled","SubscriptionType","onAllowPromotionalEmail","prepareState","showCountryDropdown","termsAgreed","renderCountryOptions","chain","MsMarkets","markets","pairs","tuple","renderCountryDropdown","selectedCountry","defaultOption","getPromotionLabelContent","countrySpecificMap","subInfo","$logstream","scrollHeight","LogoutPanel_1","haveFailures","panels","JumboHeadControl_2","HeaderControl_1","FooterControl_1","footer","focusToggle","_currentFocusedElement","_okBtn","_cancelBtn","_focusElt","okClass","btn","shown","onToggleClick","regenStyle","showStyle","spellCheck","ElementId","elementId","renderReadonlyTextInput","renderTextInput","skipInputs","eventMetaData","codeTreeTyle","relativePathRegex","botCodeFetched","fetchCode","relativeCodePath","_armClient","checkSubscription","toggleTreeNode","prevCursorPos","okToSwitch_1","curNode_1","updateFile","saveFile","findNodeById","appendLogStream","oldLength","newLength","onLogStreamStopped","checkAllInfo","fetchRoot","mime","functionRoot","valid","ExpiredSubscrition","level","findParent","parentId","addNewFile","newFile_1","setNewFilew_1","newName","treeNode","onAddFile","SignOut_1","DevPortalAppBase_1","AccountSettingsController_1","BotsController_1","RedirectController_1","FlightController_1","BotCreateSwitchController_1","WebChatController_1","BotOpenComposerController_1","BotCreateNewController","DevPortalApp","router","addRoute","SupportNonAbsCreate","setCustomResolver","controllerClass","setPageNotFoundController","PageNotFoundController","updateAnnouncements","fetchAnnouncements","checkAnnouncementsInterval","setInterval","getInstance","pageMessage","setupRemoteRepo","scmHost","projName","proj","branch","isManualIntegration","deploymentRollbackEnabled","isMercurial","onStartNewConversation","chooseOption","allowDelete","onEmailChange","marginBottom","Dropzone","onUploadLinkClick","iconTile","multiple","accept","onDrop","BotMigrationDialogState","BotMigrationDialogProps","BotMigrationDialog","handleFirstFocusTrapFocusx","handleBotMigrationDialogFocus","focusMigrationDialog","dialogFocusElement","_focusControl","_closeBtn","renderTenantPicker","tenants","selectedTenantId","onChangeTenant","ctl","renderInputs","tenantElt","_subscriptionDropdown","selectedSubscription","onChangeSubscription","subscriptionErrMsg","_resourceGroupInput","_locationDropdown","onChangeLocation","selectedLocation","locations","loc","_pricingTierInput","_appNameInput","selectedAppName","onChangeAppName","appNameErrMsg","_subscriptionInput","selectedResourceGroup","focusOnButton","onCancelClick","registrationBotCriteria","selectedPricingTier","isCheckingSubscriptionState","nonRegistrationBotCriteria","appNameIsValid","botSettings","migrateEnabled","onMigrateClick","signInEnabled","firstCheckboxChecked","secondCheckboxChecked","onSignInClick","renderNonAzureAccountView","renderFirstFocusTrap","renderCloseButton","onCheckFirstCheckbox","onCheckSecondCheckbox","renderlastFocusTrap","renderABSv2View","renderConfirmationView","onOpenNewBotClick","renderErrorMessageView","renderLoadingView","isDesignerBot","migrationIsComplete","closeBtn","onCloseBtnClick","getBotId","allTags","AzureTags","tagCount","appPasswordHint","AppPasswordHint","prevBotId","curBotId","OpenWithHint","closed","blocked","renderOpenButton","marginRight","flexWarp","MenuCommands","BotsPageRowState","BotsPageRowProps","BotsPageRow","getMigrationAction","oneWeekAgo","setDate","md","rollbackBtn","onClickRollback","onClickMigrate","disabledUntilMigrated","disabledIcon","getContextAction","onClickDelete","onClickBotName","FullPageErrorComponent","FullPageStatusComponent","FullPageStatusComponent_1","FullPageErrorComponent_1","hasPageError","fullPageMessage","_getFullPageMessage","hostName","LocalizationUtils_1","FormattedMessage_1","TermsOfServiceLinks","privacy","cortana","combined","CurrentTermsOfServiceStrings","msteams","skypeforbusiness","checkboxTexts","termsLinkTexts","channelNames","relevantCheckboxes","checkboxStates","agreeButtonEnabled","checkboxesUpdate","renderCheckboxes","channelsToCombine","baseResource","channelNamesList","channelslist","links","FormattedMessage","renderMessageText","noticeMessage","CookieInform","DialogStatusProps","DialogStatusState","BotsClient","BotDirectoryClient","getBots","page","featuredBots","getBot","iBot","getBotVCard","RssClient","getAll","SortOrder","BotOptions","ChannelOptions","ChannelStatusType","overrideMimeType","responseType","onreadystatechange","response","timestamp","milliseconds","minutes","hours","agentString","uaRegex","KnownBrowsers","autoSize","ta","onKeyUp","DEFAULT_SORT_SPEC","defaultSortField","ByActivityRank","supportedSortFields","ByName","ByDate","FEATURED_SORT_SPEC","ByDisplayOrder","SORT_LABELS","BotGalleryControl","loadingMore","sortOrder","sortSpec","handleScroll","infiniteScroll","renderLoadingMessage","pagingMessage","totalCount","renderLoadMoreLink","curCount","nextPageSize","paging","renderSortField","renderSortOption","spec","handleSortChange","onSort","$gallery","$win","renderBot","botDetailsUrl","baseUrl","defaultBotIconUrl","leadingHash","BotHeaderCard","cardLinks","initialCardLinks","renderHashtags","hashText","Hashtags","onDownload","blob","$link","URL","createObjectURL","revokeObjectURL","renderDownloadButton","ExpandableTextControl","expanded","expandable","singleLine","textHeight","more","collapseTitle","expandTitle","splitRegex","matchRegex","segments","idx","showInFrame","environmentDisplay","SiteStatusControl","cdnEndpoint","SortableListControl","dragOver","dataTransfer","dropEffect","dropAt","srcId","getData","getItemId","prepend","startDrag","setData","effectAllowed","draggable","onDragStart","onDragOver","itemTemplate","timestamp_1","watchTimestamp","timestamps","unwatchTimestamp","clearInterval","span","FooterControlProps","fixed","wantUpdates","initFixed","initCommon","initFloating","floating","initBase","scrollingElement","prevTop","prevHeight","showFixed","showFloating","additional","tosUrl","fixedDisplay","floatingDisplay","RuntimeConnectedShade_1","onShadeVisibilityChanged","mainNavLink","botsClick","documentationClick","blogClick","navLinkAriaLabel","__rest","pProps","TooltipParagraph_1","_Object$assign","D","K","T","$$","$$len","check","buggy","$getOwnPropertyDescriptor","$keys","detect","getFirstMatch","regex","iosdevice","likeAndroid","android","nexusMobile","nexusTablet","chromeos","silk","sailfish","tizen","webos","windowsphone","windows","linux","edgeVersion","versionIdentifier","tablet","mobile","xbox","opera","samsungBrowser","coast","yandexbrowser","ucbrowser","maxthon","epiphany","puffin","sleipnir","kMeleon","msedge","msie","chromeBook","chrome","vivaldi","seamonkey","firefox","firefoxos","phantom","slimer","blackberry","touchpad","bada","qupzilla","chromium","safari","googlebot","blink","webkit","gecko","ios","osVersion","osversion","osMajorVersion","getVersionPrecision","compareVersions","chunks","chunk","isUnsupportedBrowser","minVersions","strictMode","_bowser","bowser","browserList","browserItem","_detect","define","deps","original","trace","payloads","_acequire","lookup","dep","acequire","packagedModule","normalizeModule","moduleName","packaged","ns","ace","getNativeFlags","ignoreCase","multiline","extended","sticky","real","compliantExecNpcg","compliantLastIndexIncrement","r2","_xregexp","captureNames","Empty","doesDefinePropertyWork","exception","bound","defineGetter","defineSetter","lookupGetter","lookupSetter","supportsAccessors","prototypeOfArray","prototypeOfObject","_toString","owns","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","makeArray","lengthBefore","array_splice","deleteCount","removeCount","removed","insert","tailOldPos","tailNewPos","tailCount","lengthAfterRemove","boxedString","splitString","thisp","reduceRight","sought","setter","createEmpty","isPrototypeOf","Type","definePropertyWorksOnObject","definePropertyWorksOnDom","definePropertyFallback","seal","freeze","freezeObject","preventExtensions","isSealed","isFrozen","isExtensible","hasDontEnumBug","dontEnums","dontEnumsLength","ii","dontEnum","trimBeginRegexp","trimEndRegexp","getDocumentHead","doc","createElementNS","hasCssClass","addCssClass","removeCssClass","toggleCssClass","setCssClass","include","hasCssString","sheets","createStyleSheet","styleSheets","owningElement","importCssString","cssText","createTextNode","importCssStylsheet","rel","getInnerWidth","computedStyle","clientWidth","getInnerHeight","scrollbarWidth","minWidth","outer","noScrollbar","withScrollbar","removeChild","getPageScrollTop","getPageScrollLeft","scrollLeft","getComputedStyle","currentStyle","setInnerHtml","innerHtml","cloneNode","parentNode","replaceChild","setInnerText","innerText","getInnerText","getParentWindow","defaultView","parentWindow","inherits","ctor","superCtor","super_","mixin","implement","oop","Keys","MODIFIER_KEYS","16","17","18","224","KEY_MODS","ctrl","super","meta","FUNCTION_KEYS","8","9","13","19","27","32","33","34","35","36","37","38","39","40","44","45","46","96","97","98","99","100","101","102","103","104","105","-13","112","113","114","115","116","117","118","119","120","121","122","123","144","145","PRINTABLE_KEYS","48","49","50","51","52","53","54","55","56","57","59","61","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","107","109","110","186","187","188","189","190","191","192","219","220","221","222","111","106","escape","esc","mods","keyCodeToString","keyString","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","os","platform","isWin","isIE","isOldIE","isGecko","isMozilla","Controllers","controllers","product","isOldGecko","isOpera","isWebKit","isChrome","isAIR","isIPad","isTouchPad","isChromeOS","normalizeCommandKeys","hashId","getModifierHash","useragent","pressedKeys","OSKey","altGr","keyLocation","ts","timeStamp","resetPressedKeys","lastT","elem","attachEvent","_wrapper","detachEvent","stopEvent","cancelBubble","getButton","ctrlKey","altKey","shiftKey","1","2","4","capture","eventHandler","releaseCaptureHandler","addTouchMoveListener","startx","starty","touchObj","clientX","clientY","wheelX","wheelY","addMouseWheelListener","wheelDeltaX","wheelDeltaY","wheelDelta","deltaMode","DOM_DELTA_PIXEL","deltaX","deltaY","DOM_DELTA_LINE","DOM_DELTA_PAGE","HORIZONTAL_AXIS","detail","addMultiMouseDownListener","callbackName","onMousedown","clicks","isNewClick","timer","_clicks","eventNames","onDblclick","3","metaKey","getModifierString","addCommandKeyListener","lastKeyDownKeyCode","lastDefaultPrevented","nextFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","stringReverse","stringRepeat","stringTrimLeft","stringTrimRight","copyArray","deepCopy","cons","arrayToMap","createMap","arrayRemove","escapeRegExp","escapeHTML","getMatchOffsets","regExp","deferredCall","fcn","schedule","isPending","delayedCall","defaultTimeout","_self","dom","BROKEN_SETDATA","USE_IE_MIME_TYPE","TextInput","resetSelection","isEmpty","inComposition","inputHandler","selectionStart","selectionEnd","setSelectionRange","resetValue","PLACEHOLDER","syncValue","onContextMenuClose","closeTimeout","tempStyle","renderer","$keepTextAreaAtCursor","$moveTextAreaToCursor","insertBefore","firstChild","copied","pasted","isSelectionEmpty","isFocused","activeElement","syncSelection","selection","isAllSelected","createTextRange","collapse","moveStart","moveEnd","inPropertyChange","onPropertyChange","syncProperty","sendText","keytable","onCompositionEnd","onCompositionUpdate","onCompositionStart","onSelect","selectAll","setInputHandler","cb","getInputHandler","afterContextMenu","onPaste","execCommand","onTextInput","onInput","handleClipboardData","clipboardData","doCopy","isCut","getCopyText","onCut","onCopy","onCommandKey","$readOnly","markUndoGroup","clearSelection","lastValue","undo","getRange","setRange","syncComposition","getElement","setReadOnly","onContextMenu","_emit","domEvent","moveToMouse","bringToFront","borderTopWidth","borderLeftWidth","maxTop","move","textInput","scroller","DefaultHandlers","mouseHandler","$clickSelection","setDefaultHandler","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","selectByLines","extendSelectionBy","selectByWords","calcDistance","ax","ay","bx","by","calcRangeOrientation","anchor","inSelection","getDocumentPosition","mousedownEvent","selectionRange","getSelectionRange","selectionEmpty","moveToPosition","$focusTimout","inMultiSelectMode","captureMouse","startSelect","waitForClickSelection","screenToTextCoordinates","getShiftKey","selectToPosition","setCapture","setStyle","comparePoint","orientedRange","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","unsetStyle","releaseCapture","focusWait","distance","getBracketRange","getWordRange","isMultiLine","getLineRange","getAccelKey","$lastScrollTime","isScrollableBy","speed","scrollBy","isOpen","$parentNode","$init","setText","setHtml","setPosition","setClassName","getHeight","getWidth","GutterHandler","mouseEvent","annotation","gutter","$annotations","hideTooltip","screenRow","pixelToScreenCoordinates","$pos","documentToScreenRow","tooltipAnnotation","tooltip","$tooltipFollowsMouse","moveTooltip","gutterElement","tooltipTimeout","$gutterLayer","GutterTooltip","getRegion","selectTo","isMousePressed","$gutter","windowWidth","innerWidth","MouseEvent","$inSelection","propagationStopped","DragdropHandler","prevCursor","vMovement","hMovement","cursorMovedTime","moveCursorToPosition","cursorPointOnCaretMoved","SCROLL_CURSOR_HYSTERESIS","SCROLL_CURSOR_DELAY","autoScroll","layerConfig","characterWidth","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScrollStartTime","AUTOSCROLL_DELAY","onDragInterval","dragCursor","addDragMarker","toOrientedRange","dragSelectionMarker","addMarker","getSelectionStyle","$cursorLayer","setBlinking","counter","clearDragMarker","removeMarker","fromOrientedRange","isInternal","getReadOnly","onMouseMoveTimer","canAccept","getDropEffect","copyAllowed","moveAllowed","copyModifierState","blankImage","dragOperation","mouseTarget","cancelDrag","setDragImage","clearData","getTextRange","onDragEnd","setCursorStyle","onDragEnter","onDragLeave","moveText","dropData","dragWait","getDragDelay","dragWaitEnd","dragReadyEnd","onMouseDrag","dragDrop","$dragEnabled","eventTarget","unselectable","loadScript","isAbort","qualifyURL","EventEmitter","_dispatchEvent","_eventRegistry","_defaultHandlers","_signal","newCallback","handlers","_disabled_","old","removeDefaultHandler","capturing","reportError","optionsProvider","setOptions","optList","getOptions","optionNames","$options","getOption","opt","forwardTo","handlesSet","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","setDefaultValues","optionHash","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","attributes","deHyphenate","basePath","workerPath","modePath","themePath","net","$moduleUrls","moduleUrl","sep","setModuleUrl","subst","loadModule","onLoad","moduleType","afterLoad","DefaultGutterHandler","MouseHandler","focusEditor","hasFocus","getMouseEventTarget","onMouseEvent","scrollBarV","scrollBarH","Boolean","gutterEl","$dragDelay","character","insideStart","$scrollSpeed","mouseMoveHandler","releaseMouse","$mouseMoved","onCaptureEnd","onCaptureInterval","$onCaptureMouseMove","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimout","tooltipFollowsMouse","FoldHandler","fold","getFoldAt","removeFold","expandFold","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","getLine","addFold","keyUtil","KeyBinding","$editor","$data","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","passEvent","comparePoints","Range","startRow","startColumn","endRow","endColumn","compareRange","containsRange","intersects","isEnd","isStart","setStart","setEnd","insideEnd","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","collapseRows","toScreenRange","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","Selection","getDocument","lead","selectionLead","createAnchor","selectionAnchor","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","getCursor","getPosition","getSelectionAnchor","getSelectionLead","shiftSelection","moveCursorTo","isBackwards","$moveSelection","mover","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectWord","selectAWord","getAWordRange","excludeLastChar","rowEnd","rowStart","foldLine","getFoldLine","selectLine","moveCursorBy","getTabSize","isTabStop","firstColumnPosition","screenToDocumentPosition","beforeCursor","getDisplayLine","leadingSpace","$useEmacsStyleLineStart","getDocumentLastRowColumnPosition","textEnd","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","chars","screenPos","docPos","lineWidgets","keepDesiredColumn","moveCursorToScreen","desiredColumn","getRangeOfMovements","rangeCount","ranges","fromJSON","rangeList","toSingleRange","addRange","MAX_TOKEN_COUNT","Tokenizer","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","splitterRurles","rule","caseInsensitive","adjustedregex","matchcount","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","digit","removeCapturingGroups","createSplitterRegexp","$setMaxTokenCount","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","matchAttempts","skipped","merge","TextHighlightRules","$rules","addRules","getRules","embedRules","HighlightRules","escapeRules","$embeds","getEmbeds","popState","normalizeRules","processState","processed","stateName","includeName","toInsert","noEscape","keywordMap","createKeywordMapper","splitChar","keywords","$keywordList","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","packages","pack","codePoint","Ll","Lu","Lt","Lm","Lo","Mn","Mc","Me","N","Nd","Nl","No","Pd","Ps","Pe","Pi","Pf","Pc","Po","Sm","Sc","Sk","So","Zs","Zl","Zp","Cc","Cf","Co","Cs","Cn","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","rowCount","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","unicode","Mode","$behaviour","getTokenizer","$tokenizer","$highlightRules","lineCommentStart","blockComment","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","removeInLine","commentWithSpace","insertInLine","testRemove","lineCommentEnd","regexpEnd","minEmptyLength","indent","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","$getIndent","checkOutdent","autoOutdent","createWorker","createModeDelegates","$modes","delegations","$delegator","transformAction","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","score","$id","applyDelta","docLines","doNotValidate","Anchor","$onChange","$pointsInOrder","point2","equalPointsInOrder","bColIsAfter","$getTransformedPoint","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$clipPositionToDocument","$insertRight","noClip","Document","textOrLines","$lines","insertMergedLines","setValue","getAllLines","getNewLineCharacter","$split","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","clippedPos","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","startCol","endCol","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","MAX","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","scheduleStart","$updateOnChange","SearchHighlight","clazz","setRegexp","MAX_RANGES","markerLayer","drawSingleLineMarker","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","getNextFoldTo","addRemoveChars","foldBefore","newFoldLine","foldLineNext","idxToPosition","lastFoldEndColumn","RangeList","pointIndex","excludeEdges","addList","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","consumePoint","consumeRange","restorePoint","restoreRange","Fold","subFolds","subFold","collapseChildren","addSubFold","afterStart","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","docRow","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$useWrapMode","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","findMatchingBracket","getCommentFoldRange","getFoldWidget","getFoldWidgetRange","$foldStyles","manual","markbegin","markbeginend","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","$findOpeningBracket","$brackets",")","(","]","[","{","}","bracket","typeRe","openBracket","valueIndex","closingBracket","valueLength","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","onChangeFold","setMode","isFullWidth","bgTokenizer","resetCaches","$resetRowCache","$docRowCache","$screenRowCache","$getRowCacheIndex","cacheArray","low","$wrapData","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$fromUndo","$undoManager","ignore","$deltasDoc","$deltasFold","$informUndoManager","$deltas","setUndoManager","getSelection","undoManager","$syncInformUndoManager","execute","mergeUndoDeltas","$defaultUndoManager","redo","getTabString","setUseSoftTabs","$useSoftTabs","$mode","$indentWithTabs","setTabSize","$tabSize","$overwrite","setOverwrite","overwrite","getOverwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","setBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","addDynamicMarker","markerId","markers","getMarkers","highlight","$searchHighlight","highlightLines","setAnnotations","annotations","getAnnotations","clearAnnotations","inToken","wordRange","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$modeId","$onChangeMode","$isPlaceholder","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","$scrollTop","setScrollTop","getScrollTop","$scrollLeft","setScrollLeft","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","lastUndoRange","$getUndoSelection","foldDelta","redoChanges","setUndoSelect","isUndo","fromRange","toPosition","toRange","rowDiff","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","diff","$clipRowToDocument","MAX_VALUE","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","$wrapLimitRange","setUseWrapMode","useWrapMode","getUseWrapMode","setWrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","SPACE","TAB","TAB_SPACE","getWrapIndent","indentation","maxIndent","indentedSoftWrap","isCode","addSplit","displayed","lastSplit","splits","lastDocSplit","displayLength","$wrapAsCode","$indentedSoftWrap","minSplit","getScreenTabSize","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","rowCache","doCache","maxRow","wrapIndent","splitIndex","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","destroy","$wrap","col","firstLineNumber","useSoftTabs","Search","$matchIterator","skipCurrent","findAll","needle","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","matchIterator","backwards","lineIterator","$lineIterator","_callback","$disableFakeMultiline","wholeWord","modifier","caseSensitive","$assembleMultilineRegExp","HashHandler","commandKeyBinding","addCommands","$singleCommand","MultiHashHandler","addCommand","removeCommand","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","parseKeys","_addCommandToBinding","isDefault","otherPos","removeCommands","bindKeys","keyList","findKeyCommand","$keyChain","CommandManager","byName","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","showSettingsMenu","showErrorMarker","centerSelection","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","firstLineEndCol","selectedText","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","defaultCommands","getContainerElement","getTextAreaContainer","textarea","keyBinding","$mouseHandler","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","selections","startOperation","endOperation","$opResetTimer","curOp","docChanged","selectionChanged","prevOp","commadEvent","previousCommand","scrollSelectionIntoView","animateScrolling","$mergeableCommands","$mergeUndoDeltas","mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","updateFull","oldEditor","getSession","cursorPos","onResize","setTheme","getTheme","getFontSize","setFontSize","$highlightBrackets","$bracketHighlight","$highlightPending","getMatching","$highlightTags","$highlightTagPending","$tagHighlight","prevToken","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","updateLines","$updateHighlightActiveLine","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","startOuter","endOuter","lineCols","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","inVirtualSelectionMode","getBehavioursEnabled","$mergeNextCommand","lineState","shouldOutdent","lineIndent","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","setShowInvisibles","showInvisibles","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","setShowPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","setWrapBehavioursEnabled","getWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","swap","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","nr","fp","decimals","nnr","replaceRange","sel","moved","totalDiff","rangeIndex","subRows","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","isRowVisible","isRowFullyVisible","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","scrollToLine","animate","alignCursor","getCursorPositionScreen","matchType","bracketType","brackets","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","preventScroll","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","searchBox","$pixelPos","$resetCursorStyle","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","behavioursEnabled","wrapBehavioursEnabled","autoScrollEditorIntoView","keybindingId","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","showLineNumbers","showGutter","displayIndentGuides","maxLines","minLines","scrollPastEnd","fixedWidthGutter","foldStyle","UndoManager","$serializeDelta","$deserializeDelta","cloneDeltaSetsObj","deltaSets_old","fnGetModifiedDelta","deltaSets_new","deltaSet_old","deltaSet_new","delta_old","deltaSets","$doc","hasUndo","dirtyCounter","$undoStack","$redoStack","undoSelectionRange","redoSelectionRange","$deserializeDeltas","hasRedo","markClean","isClean","$serializeDeltas","Gutter","parentEl","$showFoldWidgets","gutterWidth","$updateAnnotations","$cells","rowInfo","annoText","gutterOffset","breakpoints","decorations","$firstLineNumber","lastLineNumber","gutterRenderer","$renderer","textNode","foldWidget","getText","$fixedWidth","$padding","$computePadding","$showLineNumbers","setShowLineNumbers","getShowLineNumbers","paddingRight","Marker","getBorderClass","tl","br","bl","setPadding","setMarkers","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","firstRowScreen","stringBuilder","extraStyle","lineRange","radiusClass","extraLength","$updateEolChar","EOF_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","EOL_CHAR","TAB_CHAR","SPACE_CHAR","getLineHeight","$fontMetrics","$characterSize","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","$tabStrings","tabStr","$indentGuideRe","spaceClass","tabClass","spaceContent","tabContent","scrollLines","lineElements","lineElementsIdx","lineElement","$renderLine","$useLineGroups","oldConfig","lastChild","fragment","$renderLinesFragment","createDocumentFragment","$textToken","rparen","lparen","$renderToken","replaceReg","replaceFunc","tabIdx","idx4","classToUse","renderIndentGuide","cols","$renderWrappedLine","onlyContents","splitChars","$renderSimpleLine","$getFoldLineTokens","addTokens","renderTokens","$measureNode","isIE8","Cursor","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateVisibility","$updateOpacity","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","getPixelPosition","onScreen","$selectionMarkers","cursorIndex","pixelPos","drawCursor","$setOverwrite","ScrollBar","classSuffix","skipEvent","VScrollBar","$scrollbarWidth","setHeight","setInnerHeight","setScrollHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBarV","ScrollBarH","RenderLoop","onRender","changes","change","CHAR_COUNT","FontMetrics","$setMeasureNodeStyles","$main","$testFractionalRect","isRoot","$measureSizes","boldSize","charSizes","allowBoldFonts","setPolling","$measureCharWidth","GutterLayer","MarkerLayer","TextLayer","CursorLayer","VirtualRenderer","onGutterResize","$markerBack","textLayer","$textLayer","$markerFront","$horizScroll","$vScroll","scrollBar","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","maxHeight","$loop","$renderChanges","CHANGE_FULL","CHANGE_CURSOR","CHANGE_MARKER","CHANGE_GUTTER","CHANGE_SCROLL","CHANGE_LINES","CHANGE_TEXT","CHANGE_SIZE","CHANGE_MARKER_BACK","CHANGE_MARKER_FRONT","CHANGE_H_SCROLL","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","updateFontSize","$changes","$updateSizeAsync","resizing","scrollWidth","$updateCachedSize","$extraHeight","oldSize","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$updateGutterLineHighlight","$gutterLineHighlight","$printMarginEl","containerEl","posTop","posLeft","$composition","setScrollMargin","sm","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","$frozen","unfreeze","st","$highlightGutterLine","$updateLines","$autosize","desiredHeight","$gutterWidth","hideScrollbars","screenLines","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","topMargin","bottomMargin","alignment","STEPS","$calcSteps","fromValue","toValue","x_min","initialScroll","oldSteps","$timer","canvasPos","textToScreenCoordinates","keepTextAreaAtCursor","$themeId","$theme","isDark","setMouseCursor","WorkerClient","topLevelNamespaces","classname","workerUrl","$sendDeltaQueue","changeListener","onMessage","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","workerSrc","Blob","webkitURL","Worker","DOMException","$workerBlob","blobURL","callbackId","callbacks","onmessage","deltaQueue","attachToDocument","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","blobBuilder","getBlob","UIWorkerClient","messageBuffer","main","emitSync","processNext","setEmitSync","Main","PlaceHolder","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","selectionBefore","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","updateMarkers","updateMarker","undosRequired","isSamePoint","accel","selectionMode","isMultiSelect","mouseX","mouseY","onMouseSelection","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onMouseSelectionEnd","onSelectionInterval","selectMoreLines","selectMore","multiSelect","splitIntoLines","alignCursors","multiSelectCommands","isAvailable","MultiSelect","$multiselectOnSessionChange","$onAddRange","$onRemoveRange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","addAltCursorListeners","altCursor","altDown","getSelectionMarkers","$blockChangeEvents","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","yBackwards","docEnd","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","forEachSelection","keepOrder","$byLines","reg","cmdResult","anim","buf","additive","skip","screenLead","toRemove","tmp","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","lr","guessRange","$reAlignText","forceLeft","alignLeft","startW","textW","endW","unAlign","isLeftAligned","isRightAligned","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","hidden","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","addLineWidget","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","changedWidgets","fixedWidth","coverLine","fullWidth","binarySearch","findAnnotations","matched","oldWidget","gutterAnno","onmousedown","Renderer","_id","oldNode","createEditSession","DocCommentHighlightRules","getTagRule","getStartRule","getEndRule","CSharpHighlightRules","keywordMapper","variable.language","keyword","constant.language","MatchingBraceOutdent","openBracePos","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","initContext","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","CstyleBehaviour","isSaneInsertion","recordAutoInsert","recordMaybeInsert","rightChar","matching","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","next_indent","quote","leftChar","rightToken","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","$matchTokenType","iterator2","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CFoldMode","usingRe","getFoldWidgetRangeBase","getFoldWidgetBase","getUsingStatementBlock","getRegionBlock","CStyleFoldMode","$outdent","tokenizedLine","JSX","tagRegex","identifierRe","jsxTag","jsxJsRule","jsx","jsxAttributes","comments","reference","JavaScriptHighlightRules","storage.type","support.function","constant.language.boolean","escapedRe","no_regex","regex_character_class","function_arguments","qqstring","qstring","noES6","noJSX","endState","worker","JsonHighlightRules","TypeScriptHighlightRules","tsRules","JSRules","jsMode","XmlHighlightRules","xml_decl","processing_instruction","doctype","int_subset","cdata","attr_reference","tag_whitespace","whitespace","attribute_value","embedTagRules","XmlBehaviour","rightSpace","firstChar","lastChar","tokenEnd","tokenRow","tokenColumn","voidElements","nextToken","nextIndent","optionalEndTags","Tag","selfClosing","_getFirstTagInLine","_findEndTagInLine","_readTagForward","_readTagBackward","_pop","firstTag","isBackward","XmlFoldMode","__WEBPACK_IMPORTED_MODULE_2__map__","__WEBPACK_IMPORTED_MODULE_0__map__","cubehelixConvert","Cubehelix","__WEBPACK_IMPORTED_MODULE_1__color__","BC_DA","ED","EB","__WEBPACK_IMPORTED_MODULE_2__math__","cubehelix","cosh","sinh","labConvert","Lab","Hcl","hcl2lab","rgb2lrgb","xyz2lab","Yn","Xn","Zn","lab","lab2xyz","lrgb2rgb","hclConvert","hcl","__WEBPACK_IMPORTED_MODULE_0__formatPrefixAuto__","__WEBPACK_IMPORTED_MODULE_1__formatRounded__","cubehelixGamma","__WEBPACK_IMPORTED_MODULE_7__number__","__WEBPACK_IMPORTED_MODULE_9__round__","degrees","rotate","skewX","atan","interpolateTransform","pxComma","pxParen","degParen","translate","xa","ya","xb","yb","__WEBPACK_IMPORTED_MODULE_1__parse__","parseCss","__WEBPACK_IMPORTED_MODULE_0__decompose__","cssNode","cssRoot","cssView","getPropertyValue","parseSvg","svgNode","baseVal","consolidate","SQRT2","Path","tauEpsilon","quadraticCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","a0","a1","ccw","cw","da","band","paddingInner","paddingOuter","ordinalRange","__WEBPACK_IMPORTED_MODULE_2__ordinal__","pointish","k21","diverging","__WEBPACK_IMPORTED_MODULE_4__sequential__","divergingLog","divergingSymlog","__WEBPACK_IMPORTED_MODULE_5__symlog__","divergingPow","divergingSqrt","__WEBPACK_IMPORTED_MODULE_0__array__","__WEBPACK_IMPORTED_MODULE_2__number__","__WEBPACK_IMPORTED_MODULE_1__linear__","quantile","thresholds","invertExtent","quantiles","quantize","__WEBPACK_IMPORTED_MODULE_3__init__","sequentialQuantile","threshold","__WEBPACK_IMPORTED_MODULE_0__time__","__WEBPACK_IMPORTED_MODULE_1_d3_time_format__","__WEBPACK_IMPORTED_MODULE_2_d3_time__","BasisClosed","BasisOpen","Bundle","beta","_basis","_beta","_y","bundle","CatmullRomClosed","__WEBPACK_IMPORTED_MODULE_0__cardinalClosed__","__WEBPACK_IMPORTED_MODULE_1__noop__","__WEBPACK_IMPORTED_MODULE_2__catmullRom__","CatmullRomOpen","__WEBPACK_IMPORTED_MODULE_0__cardinalOpen__","__WEBPACK_IMPORTED_MODULE_1__catmullRom__","LinearClosed","slope3","h0","h1","slope2","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","_t0","Natural","controlPoints","py","Step","stepBefore","stepAfter","s2","sij0","sij1","s3","sk","stackValue","__WEBPACK_IMPORTED_MODULE_2__offset_none__","__WEBPACK_IMPORTED_MODULE_3__order_none__","oz","kz","sz","sij","ki","__WEBPACK_IMPORTED_MODULE_1__symbol_circle__","__WEBPACK_IMPORTED_MODULE_2__symbol_cross__","__WEBPACK_IMPORTED_MODULE_3__symbol_diamond__","__WEBPACK_IMPORTED_MODULE_4__symbol_star__","__WEBPACK_IMPORTED_MODULE_5__symbol_square__","__WEBPACK_IMPORTED_MODULE_6__symbol_triangle__","__WEBPACK_IMPORTED_MODULE_7__symbol_wye__","__WEBPACK_IMPORTED_MODULE_8__constant__","parseIsoNative","__WEBPACK_IMPORTED_MODULE_0__isoFormat__","__WEBPACK_IMPORTED_MODULE_1__defaultLocale__","__WEBPACK_IMPORTED_MODULE_0__interval__","__WEBPACK_IMPORTED_MODULE_1__duration__","setHours","setMonth","utcDay","setUTCHours","setUTCDate","utcHour","setUTCMinutes","utcMinute","setUTCSeconds","utcMonth","setUTCMonth","utcWeekday","utcSunday","utcMonday","utcThursday","utcTuesday","utcWednesday","utcFriday","utcSaturday","utcYear","weekday","sunday","monday","thursday","tuesday","wednesday","friday","saturday","isUndefinedOrNull","objEquiv","pSlice","deepEqual","ka","objectKeys","actual","expected","strict","supported","unsupported","supportsArgumentsClass","shim","classList","_hasClass","replaceClassName","origClass","classToRemove","_events","defaultMaxListeners","er","newListener","warned","fired","listenerCount","evlistener","emitter","canUseDOM","canUseWorkers","canUseEventListeners","canUseViewport","screen","isNative","objToString","reIsNative","fnToString","reIsHostCtor","reTrim","isArrayLikeObject","argsTag","nativeIsArray","mapToArray","Hash","hashClear","hashDelete","hashGet","HASH_UNDEFINED","hashHas","hashSet","LARGE_ARRAY_SIZE","objIsArr","othIsArr","objTag","arrayTag","othTag","objIsObj","othIsObj","isSameTag","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","isMasked","typedArrayTags","nativeKeys","stacked","dataViewTag","byteOffset","arrayBufferTag","boolTag","dateTag","errorTag","regexpTag","mapTag","convert","setTag","symbolValueOf","objProps","objLength","skipCtor","objCtor","othCtor","isOwn","unmasked","nativeObjectToString","maskSrcKey","reRegExpChar","arrayProto","coreJsData","symbolProto","shimKeys","propsLength","allowIndexes","isProto","throttle","baseAssign","baseAssignIn","isFlat","CLONE_FLAT_FLAG","isFull","CLONE_SYMBOLS_FLAG","initCloneArray","isFunc","cloneBuffer","initCloneObject","copySymbolsIn","copySymbols","cloneableTags","initCloneByTag","isSet","subValue","isMap","objectCreate","baseCreate","baseFilter","createBaseFor","baseHasIn","strictIndexOf","baseIsNaN","baseIntersection","arrays","includes","caches","baseIsMap","baseIsMatch","matchData","noCustomizer","baseIsSet","nativeKeysIn","getMatchData","hasIn","orders","criteria","baseSortBy","compareMultiple","baseProperty","basePropertyDeep","baseRange","nativeCeil","baseSlice","baseSome","comparer","baseSum","baseToString","symbolToString","trimmedEndIndex","reTrimStart","isCommon","createSet","seenIndex","castArrayLikeObject","allocUnsafe","cloneDataView","dataView","cloneRegExp","regexp","reFlags","cloneSymbol","cloneTypedArray","typedArray","compareAscending","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","objCriteria","othCriteria","ordersLength","createAssigner","assigner","sources","eachFunc","iterable","createFind","findIndexFunc","objStacked","hasPath","hasFunc","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","spreadableSymbol","isConcatSpreadable","memoizeCapped","MAX_MEMOIZE_SIZE","lastCalled","stamp","nativeNow","remaining","HOT_SPAN","HOT_COUNT","rePropName","reEscapeChar","subString","reWhitespace","assignIn","findIndex","flatMap","intersection","mapped","nodeIsMap","nodeIsSet","mapValues","resolver","memoized","Cache","minBy","sumBy","remainder","Mexp","formulaEval","pop1","pop2","pop3","disp","inc","str1","str2","eva","math","acosh","fact","tanh","atanh","asinh","sigma","preced","5","6","7","10","11","12","type0","type1","type_1","type_3","type6","newAr","addToken","lex","inp","ptc","inpStr","pcounter","allowed","bracToClose","asterick","prevKey","sec","cToken","cType","cEv","cPre","cShow","hasDec","changeSign","parsed","isDegree","pro","toRadian","inverse","high","postfixEval","pow10x","sinha","cosha","toPostfix","popped","prep","ele","UserDefined","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","hr","uptime","checkPropTypes","typeSpecs","getStack","typeSpecName","ReactPropTypesSecret","printWarning","loggedTypeFailures","resetWarningCache","emptyFunction","emptyFunctionWithReset","propName","propFullName","getShim","ReactPropTypes","elementType","objectOf","exact","emptyFunctionThatReturnsNull","throwOnDirectAccess","getIteratorFn","maybeIterable","iteratorFn","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","PropTypeError","createChainableTypeChecker","checkType","ANONYMOUS","manualPropTypeCallCache","manualPropTypeWarningCount","chainedCheckType","createPrimitiveTypeChecker","expectedType","getPropType","getPreciseType","createArrayOfTypeChecker","typeChecker","createInstanceTypeChecker","expectedClass","expectedClassName","getClassName","createEnumTypeChecker","expectedValues","valuesString","createObjectOfTypeChecker","propType","createUnionTypeChecker","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","createShapeTypeChecker","shapeTypes","createStrictShapeTypeChecker","allKeys","isNode","isValidElementType","_brace","_brace2","_lodash","_lodash2","_ace$acequire","editorOptions","ReactAce","onBeforeLoad","cursorStart","wrapEnabled","handleOptions","handleMarkers","availableOptions","appliedClasses","appliedClassesArray","oldClass","silent","currentMarkers","_i2","_ref$inFront","divStyle","enableBasicAutocompletion","enableLiveAutocompletion","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","loaded","fileAccepted","_attrAccept2","_propTypes2","_attrAccept","_getDataTransferItems","_getDataTransferItems2","supportMultiple","renderChildren","isDragActive","isDragReject","onDocumentDrop","onFileDialogCancel","setRef","isFileDialogActive","draggedFiles","acceptedFiles","rejectedFiles","preventDropOnDocument","dragTargets","onDocumentDragOver","onfocus","onDropAccepted","onDropRejected","disablePreview","fileList","preview","fileMatchSize","disableClick","fileInputEl","maxSize","minSize","_props3","activeClassName","inputProps","rejectClassName","activeStyle","rejectStyle","filesCount","isMultipleAllowed","allFilesAccepted","borderWidth","borderColor","borderStyle","borderRadius","appliedStyle","inputAttributes","customProps","divProps","endsWith","getDataTransferFiles","dataTransferItemsList","REACT_FRAGMENT_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","$$typeof","REACT_LAZY_TYPE","REACT_MEMO_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","typeOf","REACT_ELEMENT_TYPE","REACT_ASYNC_MODE_TYPE","$$typeofType","REACT_PORTAL_TYPE","isAsyncMode","hasWarnedAboutDeprecatedIsAsyncMode","lowPriorityWarning$1","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","hasSymbol","lowPriorityWarning","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","_resizeObserverPolyfill","_resizeObserverPolyfill2","_lodash3","_lodash4","listMode","styles","ResizeDetector","_PureComponent","createResizeObserver","handleWidth","handleHeight","_entry$contentRect","contentRect","notifyWidth","notifyHeight","skipOnMount","refreshMode","refreshRate","resizeObserver","ro","resizableElementId","resizableElement","observe","unobserve","PureComponent","_ResizeDetector","_ResizeDetector2","AnimateGroup","__WEBPACK_IMPORTED_MODULE_1_react_transition_group__","__WEBPACK_IMPORTED_MODULE_3__AnimateGroupChild__","appearOptions","enterOptions","leaveOptions","__WEBPACK_IMPORTED_MODULE_0_lodash_isNumber__","__WEBPACK_IMPORTED_MODULE_0_lodash_isNumber___default","__WEBPACK_IMPORTED_MODULE_2_react_transition_group__","__WEBPACK_IMPORTED_MODULE_4__Animate__","parseDurationOfSingleTransition","AnimateGroupChild","handleEnter","isAppearing","handleStyleActive","handleExit","parseTimeout","_toArray","createAnimateManager","currStyle","shouldStop","_style","_styles","restStyles","__WEBPACK_IMPORTED_MODULE_0__setRafTimeout__","_handleChange","objA","objB","keysA","keysB","bHasOwnProperty","keyA","__WEBPACK_IMPORTED_MODULE_0_lodash_isPlainObject___default","shallowCompare","__WEBPACK_IMPORTED_MODULE_0_lodash_isPlainObject__","__WEBPACK_IMPORTED_MODULE_0_lodash_filter__","__WEBPACK_IMPORTED_MODULE_0_lodash_filter___default","__WEBPACK_IMPORTED_MODULE_1_raf__","__WEBPACK_IMPORTED_MODULE_1_raf___default","needContinue","calStepperVals","preVals","nextStepVals","_easing","velocity","_easing2","preTime","beginTime","interKeys","timingStyle","stepperStyle","cafId","getCurrStyle","shouldStopAnimation","stepperUpdate","deltaTime","timingUpdate","finalStyle","setRafTimeout","currTime","shouldUpdate","__WEBPACK_IMPORTED_MODULE_0_raf___default","__WEBPACK_IMPORTED_MODULE_0_raf__","_addClass","_removeClass","_this$getClassNames","getClassNames","removeClasses","_this$getClassNames2","reflowAndAddClass","appearClassName","doneClassName","enterClassName","_this$getClassNames3","_this$getClassNames4","_this$getClassNames5","isStringClassNames","_this$getClassNames6","_args","handleLifecycle","handleEntering","handleEntered","_len5","_key5","handleExiting","_len6","_key6","_len7","_key7","originalArgs","inProp","_React$Children$toArr","mapFn","mergeChildMappings","getValueForKey","nextKeysPending","pendingKeys","childMapping","nextKey","pendingNextKey","getProp","nextChildMapping","hasPrev","hasNext","isLeaving","_Object$keys","_shallowequal","_shallowequal2","_deepEqual","_deepEqual2","NodeHeader","nextPropKeys","headerStyles","_header","_header2","TreeNode","nodeDecorators","renderDrawer","renderLoading","_eventBubbles","_node","_node2","_decorators","_decorators2","_themesDefault","_themesDefault2","_themesAnimations","_themesAnimations2","TreeBeard","assignStyles","_prefixAll2","_prefixAll3","_getBrowserInformation","_getBrowserInformation2","_getPrefixedKeyframes","_getPrefixedKeyframes2","_capitalizeString","_capitalizeString2","_sortPrefixedStyle","_sortPrefixedStyle2","_prefixProps","_prefixProps2","_position","_position2","_calc","_calc2","_zoomCursor","_zoomCursor2","_grabCursor","_grabCursor2","_flex","_flex2","_sizing","_sizing2","_gradient","_gradient2","_transition","_transition2","_flexboxIE","_flexboxIE2","_flexboxOld","_flexboxOld2","Prefixer","defaultUserAgent","_keepUnprefixed","_browserInfo","_usePrefixAllFallback","cssPrefix","jsPrefix","inline","_requiresPrefix","_hasPropsRequiringPrefix","browserInfo","js","requiresPrefix","calc","_ref$browserInfo","_getPrefixedValue2","_getPrefixedValue","inline-flex","flexboxIE","alternativeProps","alternativeValues","space-around","space-between","flex-start","flex-end","flexboxOld","WebkitBoxOrient","WebkitBoxDirection","wrap-reverse","grabCursor","grab","grabbing","gradient","sizing","maxWidth","min-content","max-content","fill-available","fit-content","contain-floats","unprefixedProperty","_unprefixProperty2","_ret","requiresPrefixDashCased","_hyphenateStyleName2","multipleValues","_hyphenateStyleName","_unprefixProperty","zoomCursor","zoom-in","zoom-out","ie","edge","ios_saf","and_chr","and_uc","op_mini","_isPrefixedValue2","_joinPrefixedValue2","_joinPrefixedValue","_isPrefixedValue","outputValue","prefixValue","webkitOutput","dashCasePrefix","dashCaseProperty","WebkitTransition","WebkitTransitionProperty","_cursor","_cursor2","_bowser2","vendorPrefixes","browsers","browserByInfo","single","unprefixed","_camelCaseRegex","_camelCaseReplacer","_camelCaseToDashCase","camelCasePropsToDashCase","prefixedStyle","dashCaseKey","_getStyleKeeper","_enhancer","_enhancer2","_styleSheet","_styleSheet2","StyleRoot","StyleSheet","_onChange","_isMounted","_getCSSState","_subscription","Style","_buildStyles","scopeSelector","rootRules","_buildMediaQueryString","completeSelector","part","stylesByMediaQuery","mediaQueryString","Radium","_style2","_styleRoot","_styleRoot2","_keyframes","_keyframes2","Plugins","TestMode","clearState","disable","keyframeRules","__radiumKeyframes","__process","keyframesPrefixed","percentage","newKey","_checkProps","shorthandPropertyExpansions","borderImage","styleKeys","sp","keyframesPlugin","newStyleInProgress","keyframesValue","_keyframesValue$__pro","mergeStyleArrayPlugin","_handleMouseUp","_callbacks","_mouseUpListenerIsActive","__triggerForTests","prefixPlugin","_mouseUpListener","_mouseUpListener2","_isInteractiveStyleField","styleFieldName","existingOnMouseEnter","existingOnMouseLeave","existingOnMouseDown","_lastMouseDown","existingOnKeyDown","existingOnKeyUp","existingOnFocus","existingOnBlur","interactionStyles","styleWithoutInteractions","_getWindowMatchMedia","_windowMatchMedia","matchMedia","_filterObject","_removeMediaQueries","styleWithoutMedia","_topLevelRulesToCSS","topLevelRules","ruleCSS","mediaQueryClassName","_subscribeToMediaQuery","listenersByQuery","mediaQueryListsByQuery","mql","mediaQueryClassNames","nestedRules","visitedClassName","getValidInterval","validMin","validMax","getFormatStep","roughStep","correctionFactor","_decimal","digitCount","_arithmetic","getDigitCount","digitCountValue","stepRatio","stepRatioScale","amendStepRatio","formatStep","getTickOfSingleValue","absVal","middleIndex","_utils","calculateStep","tickMin","tickMax","belowCount","upCount","scaleCount","getNiceTickValuesFn","_getValidInterval","_getValidInterval2","cormin","cormax","_values","_calculateStep","rangeStep","getTickValuesFn","_getValidInterval3","_getValidInterval4","getTickValuesFixedDomainFn","_getValidInterval5","_getValidInterval6","getTickValuesFixedDomain","getTickValues","getNiceTickValues","_getNiceTickValues","newA","uninterpolateNumber","uninterpolateTruncation","horizontalPoints","horizontal","renderLineItem","verticalPoints","vertical","verticalFill","verticalPointsUpdated","colorIndex","horizontalFill","horizontalPointsUpdated","renderHorizontal","renderVertical","renderHorizontalStripes","renderVerticalStripes","__WEBPACK_IMPORTED_MODULE_0__generateCategoricalChart__","__WEBPACK_IMPORTED_MODULE_1__cartesian_Area__","__WEBPACK_IMPORTED_MODULE_2__cartesian_XAxis__","__WEBPACK_IMPORTED_MODULE_3__cartesian_YAxis__","__WEBPACK_IMPORTED_MODULE_4__util_CartesianUtils__","__WEBPACK_IMPORTED_MODULE_1__cartesian_Bar__","__WEBPACK_IMPORTED_MODULE_2__cartesian_Bar__","__WEBPACK_IMPORTED_MODULE_3__cartesian_Line__","__WEBPACK_IMPORTED_MODULE_4__cartesian_Scatter__","__WEBPACK_IMPORTED_MODULE_5__cartesian_XAxis__","__WEBPACK_IMPORTED_MODULE_6__cartesian_YAxis__","__WEBPACK_IMPORTED_MODULE_7__cartesian_ZAxis__","__WEBPACK_IMPORTED_MODULE_8__util_CartesianUtils__","__WEBPACK_IMPORTED_MODULE_0_prop_types__","__WEBPACK_IMPORTED_MODULE_0_prop_types___default","__WEBPACK_IMPORTED_MODULE_1__generateCategoricalChart__","__WEBPACK_IMPORTED_MODULE_2__numberAxis_Funnel__","__WEBPACK_IMPORTED_MODULE_1__cartesian_Line__","__WEBPACK_IMPORTED_MODULE_2__polar_PolarAngleAxis__","__WEBPACK_IMPORTED_MODULE_3__polar_PolarRadiusAxis__","__WEBPACK_IMPORTED_MODULE_4__util_PolarUtils__","__WEBPACK_IMPORTED_MODULE_5__polar_Pie__","__WEBPACK_IMPORTED_MODULE_2__polar_Radar__","__WEBPACK_IMPORTED_MODULE_3__polar_PolarAngleAxis__","__WEBPACK_IMPORTED_MODULE_4__polar_PolarRadiusAxis__","__WEBPACK_IMPORTED_MODULE_5__polar_RadialBar__","__WEBPACK_IMPORTED_MODULE_1_lodash_sumBy__","__WEBPACK_IMPORTED_MODULE_1_lodash_sumBy___default","__WEBPACK_IMPORTED_MODULE_2_lodash_min__","__WEBPACK_IMPORTED_MODULE_2_lodash_min___default","__WEBPACK_IMPORTED_MODULE_3_lodash_maxBy__","__WEBPACK_IMPORTED_MODULE_3_lodash_maxBy___default","__WEBPACK_IMPORTED_MODULE_7__container_Surface__","__WEBPACK_IMPORTED_MODULE_9__component_Tooltip__","__WEBPACK_IMPORTED_MODULE_10__shape_Rectangle__","__WEBPACK_IMPORTED_MODULE_11__util_PureRender__","__WEBPACK_IMPORTED_MODULE_12__util_ReactUtils__","__WEBPACK_IMPORTED_MODULE_13__util_ChartUtils__","defaultCoordinateOfTooltip","interpolationGenerator","centerY","getSumOfIds","getSumWithWeightedSource","sourceNode","getSumWithWeightedTarget","targetNode","ascendingY","searchTargetsAndSources","sourceNodes","sourceLinks","targetNodes","targetLinks","updateDepthOfTargets","getNodesTree","nodeWidth","maxDepth","childWidth","getDepthTree","updateYOfTree","depthTree","nodePadding","yRatio","resolveCollisions","_j","_dy","relaxLeftToRight","sourceSum","weightedSum","relaxRightToLeft","targetSum","updateYOfLinks","sy","tLen","_j2","_link","computeData","iterations","_getNodesTree","newLinks","getCoordinateOfTooltip","sourceX","targetX","sourceY","targetY","getPayloadOfTooltip","sourceName","targetName","Sankey","activeElementType","linkCurvature","linkContent","sourceRelativeY","targetRelativeY","linkWidth","interpolationFunc","sourceControlX","targetControlX","linkProps","renderLinkItem","nodeContent","nodeProps","renderNodeItem","renderLinks","renderNodes","contentWidth","contentHeight","_computeData","__WEBPACK_IMPORTED_MODULE_1__cartesian_Scatter__","__WEBPACK_IMPORTED_MODULE_4__cartesian_ZAxis__","__WEBPACK_IMPORTED_MODULE_5__util_CartesianUtils__","__WEBPACK_IMPORTED_MODULE_1_lodash_omit__","__WEBPACK_IMPORTED_MODULE_1_lodash_omit___default","__WEBPACK_IMPORTED_MODULE_3_lodash_isNaN__","__WEBPACK_IMPORTED_MODULE_3_lodash_isNaN___default","__WEBPACK_IMPORTED_MODULE_7_classnames__","__WEBPACK_IMPORTED_MODULE_7_classnames___default","__WEBPACK_IMPORTED_MODULE_8__container_Surface__","__WEBPACK_IMPORTED_MODULE_13__shape_Polygon__","__WEBPACK_IMPORTED_MODULE_14__util_PureRender__","__WEBPACK_IMPORTED_MODULE_16__util_Constants__","__WEBPACK_IMPORTED_MODULE_17__util_DOMUtils__","__WEBPACK_IMPORTED_MODULE_18__util_DataUtils__","computeNode","childDepth","computedChildren","filterRect","getAreaOfChildren","areaValueRatio","ratio","getWorstScore","parentSize","aspectRatio","parentArea","rowArea","_row$reduce","horizontalPosition","parentRect","isFlush","curX","verticalPosition","rowWidth","curY","squarify","best","scaleChildren","tempChildren","Treemap","_this$computeRoot","computeRoot","formatRoot","currentRoot","nestIndex","nextRoot","isLeaf","colorPanel","renderContentItem","renderItem","renderNode","nestIndexContent","textAlign","handleNestIndex","_this$props12","renderAllNodes","renderNestIndex","nameSize","__WEBPACK_IMPORTED_MODULE_4__util_LogUtils__","__WEBPACK_IMPORTED_MODULE_3__container_Layer__","__WEBPACK_IMPORTED_MODULE_4__container_Surface__","__WEBPACK_IMPORTED_MODULE_5__shape_Symbols__","DefaultLegendContent","inactiveColor","SIZE","svgStyle","finalFormatter","recharts-legend-item","renderIcon","renderItems","__WEBPACK_IMPORTED_MODULE_0_lodash_sortBy__","__WEBPACK_IMPORTED_MODULE_0_lodash_sortBy___default","defaultFormatter","DefaultTooltipContent","finalItemStyle","paddingTop","paddingBottom","formatted","_formatted","wrapperClassName","labelClassName","labelFormatter","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","__WEBPACK_IMPORTED_MODULE_0_lodash_debounce__","__WEBPACK_IMPORTED_MODULE_0_lodash_debounce___default","__WEBPACK_IMPORTED_MODULE_4_react_resize_detector__","__WEBPACK_IMPORTED_MODULE_4_react_resize_detector___default","__WEBPACK_IMPORTED_MODULE_6__util_LogUtils__","ResponsiveContainer","updateDimensionsImmediate","newSize","getContainerSize","oldWidth","oldHeight","handleResize","aspect","calculatedWidth","calculatedHeight","renderChart","__WEBPACK_IMPORTED_MODULE_1__container_Surface__","__WEBPACK_IMPORTED_MODULE_3__component_Legend__","__WEBPACK_IMPORTED_MODULE_4__component_Tooltip__","__WEBPACK_IMPORTED_MODULE_5__component_ResponsiveContainer__","__WEBPACK_IMPORTED_MODULE_6__component_Cell__","__WEBPACK_IMPORTED_MODULE_10__component_Customized__","__WEBPACK_IMPORTED_MODULE_13__shape_Rectangle__","__WEBPACK_IMPORTED_MODULE_14__shape_Polygon__","__WEBPACK_IMPORTED_MODULE_15__shape_Dot__","__WEBPACK_IMPORTED_MODULE_16__shape_Cross__","__WEBPACK_IMPORTED_MODULE_17__shape_Symbols__","__WEBPACK_IMPORTED_MODULE_18__polar_PolarGrid__","__WEBPACK_IMPORTED_MODULE_19__polar_PolarRadiusAxis__","__WEBPACK_IMPORTED_MODULE_20__polar_PolarAngleAxis__","__WEBPACK_IMPORTED_MODULE_21__polar_Pie__","__WEBPACK_IMPORTED_MODULE_22__polar_Radar__","__WEBPACK_IMPORTED_MODULE_23__polar_RadialBar__","__WEBPACK_IMPORTED_MODULE_24__cartesian_Brush__","__WEBPACK_IMPORTED_MODULE_25__cartesian_ReferenceLine__","__WEBPACK_IMPORTED_MODULE_26__cartesian_ReferenceDot__","__WEBPACK_IMPORTED_MODULE_27__cartesian_ReferenceArea__","__WEBPACK_IMPORTED_MODULE_28__cartesian_CartesianAxis__","__WEBPACK_IMPORTED_MODULE_29__cartesian_CartesianGrid__","__WEBPACK_IMPORTED_MODULE_30__cartesian_Line__","__WEBPACK_IMPORTED_MODULE_31__cartesian_Area__","__WEBPACK_IMPORTED_MODULE_32__cartesian_Bar__","__WEBPACK_IMPORTED_MODULE_33__cartesian_Scatter__","__WEBPACK_IMPORTED_MODULE_34__cartesian_XAxis__","__WEBPACK_IMPORTED_MODULE_35__cartesian_YAxis__","__WEBPACK_IMPORTED_MODULE_36__cartesian_ZAxis__","__WEBPACK_IMPORTED_MODULE_37__cartesian_ErrorBar__","__WEBPACK_IMPORTED_MODULE_38__chart_LineChart__","__WEBPACK_IMPORTED_MODULE_39__chart_BarChart__","__WEBPACK_IMPORTED_MODULE_40__chart_PieChart__","__WEBPACK_IMPORTED_MODULE_41__chart_Treemap__","__WEBPACK_IMPORTED_MODULE_42__chart_Sankey__","__WEBPACK_IMPORTED_MODULE_43__chart_RadarChart__","__WEBPACK_IMPORTED_MODULE_44__chart_ScatterChart__","__WEBPACK_IMPORTED_MODULE_45__chart_AreaChart__","__WEBPACK_IMPORTED_MODULE_46__chart_RadialBarChart__","__WEBPACK_IMPORTED_MODULE_47__chart_ComposedChart__","__WEBPACK_IMPORTED_MODULE_48__numberAxis_Funnel__","__WEBPACK_IMPORTED_MODULE_49__chart_FunnelChart__","__WEBPACK_IMPORTED_MODULE_50__shape_Trapezoid__","__WEBPACK_IMPORTED_MODULE_3__util_PolarUtils__","extraProps","getPolygonPath","gridType","renderConcentricCircle","renderConcentricPolygon","renderPolarAngles","renderConcentricPath","__WEBPACK_IMPORTED_MODULE_0_core_js_es6_math__","__WEBPACK_IMPORTED_MODULE_1_core_js_es6_number__","testObject","nativeGetPrototypeOf","COLOR_PANEL","eventCenter","SYNC_EVENT","__WEBPACK_IMPORTED_MODULE_0_events__","__WEBPACK_IMPORTED_MODULE_0_events___default","toLength","toAbsoluteIndex","IS_INCLUDES","$this","EPSILON","EPSILON32","MAX32","MIN32","roundTiesToEven","fround","$abs","$sign","dPs","enumBugKeys","createDict","iframeDocument","iframe","write","Properties","hiddenKeys","$parseFloat","$trim","$parseInt","radix","RangeError","$acosh","$asinh","$atanh","cbrt","clz32","LOG2E","hypot","aLen","larg","$imul","imul","xn","xl","yl","LOG10E","trunc","inheritIfRequired","gOPN","$Number","Base","BROKEN_COF","TRIM","argument","third","maxCode","digits","_isFinite","isSafeInteger","MIN_SAFE_INTEGER","aNumberValue","$toFixed","ERROR","multiply","numToString","acc","fractionDigits","$fails","$toPrecision","reduceCSSCalc","decimalPrecision","evaluateExpression","expression","functionIdentifier","MAX_STACK","evaluateNestedExpression","units","getUnitsInExpression","toEvaluate","mexp","evaluatedPart","nonEvaluatedPart","NESTED_CALC_RE","balancedExpr","balanced","evaluated","reduceFunctionCall","uniqueUnits","uniqueLowerCaseUnits","unitRegEx","maybeMatch","begs","beg","ai","functionRE","getFunctionCalls","evalFunctionCall","expressions","fnRE","searchMatch","SyntaxError","resolvePending","leadingCall","trailingCall","proxy","timeoutCallback","requestAnimationFrame$1","trailingTimeout","toFloat","getBordersSize","positions","getPaddings","paddings","positions_1","getSVGContentRect","bbox","createRectInit","getHTMLElementContentRect","emptyRect","getWindowOf","horizPad","vertPad","isDocumentElement","vertScrollbar","horizScrollbar","getContentRect","isBrowser","isSVGGraphicsElement","createReadOnlyRect","Constr","DOMRectReadOnly","defineConfigurable","MapShim","class_1","__entries__","global$1","REFRESH_DELAY","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","childList","characterData","disconnect","_b","instance_","SVGGraphicsElement","SVGElement","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","clearActive","observation","ResizeObserver","fetchKeys","compareContext","valueA","valueB","__WEBPACK_AMD_DEFINE_FACTORY__","isArraylike","isWindow","class2type","getId","expando","setId","uuid","copyIsArray","deep","dequeue","elems","nodeName","compactSparseArray","sanitizeElements","isWrapped","_slice","Data","pauseDelayOnElement","currentTime","delayTimer","delayPaused","delayRemaining","delayBegin","resumeDelayOnElement","generateStep","generateBezier","mX1","mY1","mX2","mY2","aA1","aA2","calcBezier","aT","getSlope","newtonRaphsonIterate","aX","aGuessT","NEWTON_ITERATIONS","currentSlope","calcSampleValues","kSplineTableSize","mSampleValues","kSampleStepSize","binarySubdivide","aA","aB","currentX","currentT","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","getTForX","intervalStart","currentSample","lastSample","dist","guessForT","initialSlope","NEWTON_MIN_SLOPE","precompute","_precomputed","float32ArraySupported","Float32Array","getControlPoints","getEasing","Easings","generateSpringRK4","EASING_DEFAULT","timeCurrent","callsLength","State","calls","callContainer","timeStart","firstTick","tweenDummyValue","pauseObject","millisecondsEllapsed","resume","percentComplete","callLength","tweensContainer","transformPropertyExists","flexValues","flexValue","CSS","setPropertyValue","tween","pattern","patternReplace","$0","endValue","startValue","tweenDelta","hookRoot","Hooks","registered","getRoot","rootPropertyValueCache","rootPropertyValue","adjustedSetData","unitType","scrollData","Normalizations","mobileHA","transformCache","translate3d","flushTransformCache","completeCall","isTicking","ticker","callIndex","remainingCallsExist","loop","isAnimating","transformHAPropertyExists","Lists","transforms3D","transformName","Values","tweenContainer","oldStartValue","documentMode","rAFShim","timeLast","timeDelta","perf","nowOffset","timing","navigationStart","cloned","upTo","_inArray","variable","isSVG","isJQuery","jquery","DURATION_DEFAULT","isMobile","isAndroid","isGingerbread","isFirefox","prefixElement","prefixMatches","scrollPropertyLeft","scrollPropertyTop","delayedElements","Redirects","_cacheValues","promiseRejectEmpty","hook","mock","major","minor","pauseAll","queueName","activeCall","resumeAll","springAccelerationForState","friction","springEvaluateStateWithDerivative","initialState","derivative","dv","springIntegrateState","dxdt","dvdt","springRK4Factory","have_duration","last_state","initState","time_lapsed","swing","spring","easingArray","RegEx","isHex","valueUnwrap","wrappedValueAlreadyExtracted","valueSplit","transformsBase","colorNames","templates","textShadow","boxShadow","backgroundPosition","rgbComponents","rootProperty","hookTemplate","hookNames","defaultValues","fullHookName","hookPosition","hookData","getUnit","fixColors","$1","$2","cleanRootPropertyValue","isCSSNullValue","extractValue","injectValue","hookValue","rootPropertyValueParts","propertyValue","extracted","blurComponent","augmentDimension","wantInner","augment","sides","fields","getDimension","invalid","colorName","converted","hexToRgb","Names","camelCase","subMatch","SVGAttribute","SVGAttributes","prefixCheck","vendorsLength","propertyPrefixed","rgbParts","shortformRegex","longformRegex","getUnitType","getDisplayType","currentClass","forceStyleLookup","computePropertyValue","computedValue","toggleDisplay","revertDisplay","contentBoxHeight","contentBoxWidth","normalizedPropertyName","normalizedPropertyValue","alternateValue","hookName","transformString","getTransformFloat","transformProperty","SVGTransforms","skewY","transformValue","adjustedSet","getChain","isUtility","promiseData","elementsWrapped","processElement","elementArrayIndex","buildQueue","lastTweensContainer","elementsIndex","scrollPositionCurrent","scrollPositionCurrentAlternate","scrollPositionEnd","scrollDirection","scrollOffset","scroll","lastTween","lastStartValue","fixPropertyValue","valueData","separatedValue","endValueUnitType","startValueUnitType","operator","separateValue","numericValue","iStart","iEnd","aStart","aEnd","inCalc","inRGB","inRGBA","cStart","cEnd","tStart","tEnd","dotStart","dotEnd","uStart","uEnd","nStart","nEnd","elementUnitConversionData","sameRatioIndicators","myParent","samePercentRatio","callUnitConversionData","lastPosition","lastParent","sameEmRatio","lastFontSize","unitRatios","emToPx","lastEmToPx","percentToPxWidth","lastPercentToPxWidth","percentToPxHeight","lastPercentToPxHeight","dummy","measurement","remToPx","vwToPx","vhToPx","propertiesMap","skipResolvingEasing","elementsLength","colorComponents","endValueRGB","startValueRGB","dataArray","clearQueue","velocityQueueEntryFlag","delayComplete","argumentIndex","syntacticSugar","rejecter","startingArgumentPosition","callsToStop","activeTween","durationOriginal","delayOriginal","stagger","drag","abortError","reverseCallsCount","reverseOptions","updateTicker","elementsSize","inlineValues","computedValues","_animationTimeout","runOnMount","_finishAnimation","interruptBehavior","_stopAnimation","_scheduleAnimation","_clearVelocityCache","_getDOMTarget","finish","targetQuerySelector","registerEffect","effectCounter","RegisterEffect","shimRequestAnimationFrame","shimCancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","VelocityTransitionGroupChild","lastState","componentWillEnter","componentWillExit","endListener","willAppearFunc","willEnterFunc","willLeaveFunc","transitionProps","_React$Component2","_scheduledAnimationFrame","_scheduledAnimationRunFrames","_entering","_leaving","_timers","_unmounted","childWillAppear","childWillEnter","childWillLeave","_runAnimations","_wrapChild","transitionGroupProps","disabledForTest","doneFn","_shortCircuitAnimation","enterHideStyle","_schedule","animationProp","_parseAnimationProp","_runAnimation","entering","doneFns","parsedAnimation","enterShowStyle","combinedCompleteFn","optsCompleteFn","overrideOpts","Builder","MSBlobBuilder","bag","builder","endings"],"mappings":"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GAAAtgB,KAKAuV,EAAA4hE,OAEA,wBACA,wBACA,yBACA,8BACA,iCACA,kCACA,qCACA,kCACA,kCACA,uCACA,oCACA,mCACA,sCACA,oCACA,kCACA,kCACA,oCACA,+BACA,iCACA,mCACA,8BACA,4BACA,iCACA,kCACA,sCACA,SAAAx4E,EAAAy4V,GACA94N,EAAAiyN,QAAA6G,EAAA,IAAArJ,EAAAx7U,MAAA,KAAA6kV,EAAA,KAgDA,IAAAzF,GAAArzN,EAAAqzN,KAKA0F,OACAC,MAAA,wBAEAC,YAAA,oBACAC,6BAAA,qCAEAC,WAAA,8CAMA/D,OACA94M,QAAA,8JACA88M,gBAAA,+EACA/D,cAAA,kEACApO,OACA,IACA,qBACA,wBACA,kCACA,0BACA,UAEAoS,YACAviP,UAAA,cACAC,aAAA,cACAE,WAAA,cACAD,KAAA,YACAE,MAAA,cACAC,MAAA,cACAC,OAAA,cACAC,MAAA,QACAC,eAAA,cACAE,WAAA,aACAD,KAAA,UACAE,MAAA,YACAC,UAAA,cACAC,UAAA,aACAC,WAAA,YACAC,UAAA,aACAC,MAAA,aACAC,eAAA,cACAC,SAAA,cACAC,QAAA,YACAC,KAAA,YACAC,SAAA,UACAC,SAAA,YACAC,cAAA,aACAC,SAAA,cACAE,SAAA,cACAD,UAAA,UACAE,UAAA,cACAC,YAAA,YACAC,eAAA,YACAC,WAAA,YACAC,WAAA,aACAC,QAAA,UACAC,WAAA,cACAC,aAAA,cACAC,cAAA,YACAC,cAAA,WACAE,cAAA,YACAC,WAAA,YACAC,SAAA,aACAC,YAAA,YACAC,QAAA,cACAC,QAAA,cACAC,WAAA,aACAC,UAAA,YACAC,YAAA,cACAC,YAAA,YACAC,QAAA,YACAC,UAAA,cACAC,WAAA,cACAC,KAAA,YACAC,UAAA,aACAC,KAAA,cACAG,KAAA,cACAD,YAAA,aACAD,MAAA,UACAG,SAAA,cACAC,QAAA,cACAC,UAAA,YACAC,OAAA,WACAC,MAAA,cACAC,MAAA,cACAE,cAAA,cACAD,SAAA,cACAE,UAAA,YACAC,aAAA,cACAC,UAAA,cACAC,WAAA,cACAC,UAAA,cACAC,qBAAA,cACAC,UAAA,cACAE,UAAA,cACAD,WAAA,cACAE,UAAA,cACAC,YAAA,cACAC,cAAA,aACAC,aAAA,cACAC,eAAA,cACAE,eAAA,cACAC,YAAA,cACAE,UAAA,YACAD,KAAA,UACAE,MAAA,cACAC,QAAA,YACAC,OAAA,UACAC,iBAAA,cACAC,WAAA,UACAC,aAAA,aACAC,aAAA,cACAC,eAAA,aACAC,gBAAA,cACAC,kBAAA,YACAC,gBAAA,aACAC,gBAAA,aACAC,aAAA,YACAC,UAAA,cACAC,UAAA,cACAC,SAAA,cACAC,YAAA,cACAC,KAAA,UACAC,QAAA,cACAE,UAAA,aACAD,MAAA,YACAG,UAAA,WACAD,OAAA,YACAE,OAAA,cACAC,cAAA,cACAC,UAAA,cACAC,cAAA,cACAC,cAAA,cACAC,WAAA,cACAC,UAAA,cACAC,KAAA,aACAC,KAAA,cACAC,KAAA,cACAC,WAAA,cACAC,OAAA,YACAE,IAAA,UACAC,UAAA,cACAC,UAAA,aACAC,YAAA,YACAC,OAAA,cACAC,WAAA,aACAC,SAAA,YACAC,SAAA,cACAC,OAAA,YACAC,OAAA,cACAC,QAAA,cACAC,UAAA,aACAC,UAAA,cACAE,KAAA,cACAC,YAAA,YACAC,UAAA,aACAC,IAAA,cACAC,KAAA,YACAC,QAAA,cACAC,OAAA,YACAC,UAAA,aACAC,OAAA,cACAC,MAAA,cACAE,WAAA,cACAD,MAAA,cACAG,YAAA,aACAD,OAAA,cAWA+zO,OAOAuF,WACAC,YAAA,sCACAC,WAAA,iDACAjwV,MAAA,2CACAkwV,oBAAA,eACA/0K,iBAAA,uBACAK,mBAAA,kBAIAivK,cAMA9qT,SAAA,WAKA,OAAA7oC,GAAA,EAAoBA,EAAAgzV,EAAA+B,MAAA94M,OAAAr5I,OAA6B5C,IAAA,CACjD,GAAAq5V,GAAA,UAAArG,EAAA+B,MAAA94M,OAAAj8I,GAAA,yBACAgzV,GAAAU,MAAAuF,UAAAjG,EAAA+B,MAAA94M,OAAAj8I,KAAA,uBAAAq5V,GAGA,GAAAC,GACAC,EACAC,CAIA,IAAAvkJ,EACA,IAAAqkJ,IAAAtG,GAAAU,MAAAuF,UACA,GAAAjG,EAAAU,MAAAuF,UAAA73V,eAAAk4V,GAAA,CAGAC,EAAAvG,EAAAU,MAAAuF,UAAAK,GACAE,EAAAD,EAAA,GAAAp0R,MAAA,IAEA,IAAAs0R,GAAAF,EAAA,GAAA13S,MAAAmxS,EAAA0F,MAAAI,WAEA,WAAAU,EAAA,KAEAA,EAAArpV,KAAAqpV,EAAAhuN,SACAiuN,EAAAtpV,KAAAspV,EAAAjuN,SAGAwnN,EAAAU,MAAAuF,UAAAK,IAAAE,EAAA1lV,KAAA,KAAA2lV,EAAA3lV,KAAA,OAMA,IAAAwlV,IAAAtG,GAAAU,MAAAuF,UACA,GAAAjG,EAAAU,MAAAuF,UAAA73V,eAAAk4V,GAAA,CAGAC,EAAAvG,EAAAU,MAAAuF,UAAAK,GACAE,EAAAD,EAAA,GAAAp0R,MAAA,IAEA,QAAA3mC,KAAAg7T,GACA,GAAAA,EAAAp4V,eAAAo9B,GAAA,CAGA,GAAAk7T,GAAAJ,EAAAE,EAAAh7T,GACAm7T,EAAAn7T,CAIAw0T,GAAAU,MAAAC,WAAA+F,IAAAJ,EAAAK,MAUA/F,QAAA,SAAA1yV,GACA,GAAA04V,GAAA5G,EAAAU,MAAAC,WAAAzyV,EAEA,OAAA04V,GACAA,EAAA,GAGA14V,GAGA24V,QAAA,SAAAthQ,EAAA7pD,GACA,GAAA0nB,IAAAmiC,EAAAn4C,OAAA1R,GAAA,KAAAmT,MAAA,uBAEA,OAAAuU,IAAA2/R,EAAA/C,EAAA+B,MAAAnO,MAAAxwR,GACAA,EAEA,IAEA0jS,UAAA,SAAAvhQ,GACA,MAAAA,GAAAz+C,QAAA,sCAAAu5S,EAAA0G,EAAAC,GACA,MAAAhH,GAAA+B,MAAAiE,WAAA53V,eAAA44V,IACAD,GAAA,SAAA/G,EAAA+B,MAAAiE,WAAAgB,IAAAD,EAAA,UAEAA,EAAAC,KAKAC,uBAAA,SAAAX,EAAAxF,GAcA,MAZAd,GAAA0F,MAAAE,YAAAzuU,KAAA2pU,KACAA,IAAAjyS,MAAAmxS,EAAA0F,MAAAE,aAAA,IAOA5F,EAAAkC,OAAAgF,eAAApG,KACAA,EAAAd,EAAAU,MAAAuF,UAAAK,GAAA,IAGAxF,GAGAqG,aAAA,SAAAT,EAAA5F,GACA,GAAA8F,GAAA5G,EAAAU,MAAAC,WAAA+F,EAEA,IAAAE,EAAA,CACA,GAAAnG,GAAAmG,EAAA,GACAD,EAAAC,EAAA,EAKA,OAHA9F,GAAAd,EAAAU,MAAAuG,uBAAAxG,EAAAK,GAGAA,EAAAvxV,WAAAs/C,MAAAmxS,EAAA0F,MAAAI,YAAAa,GAGA,MAAA7F,IAKAsG,YAAA,SAAAV,EAAAW,EAAAvG,GACA,GAAA8F,GAAA5G,EAAAU,MAAAC,WAAA+F,EAEA,IAAAE,EAAA,CACA,GAEAU,GAFA7G,EAAAmG,EAAA,GACAD,EAAAC,EAAA,EAYA,OARA9F,GAAAd,EAAAU,MAAAuG,uBAAAxG,EAAAK,GAIAwG,EAAAxG,EAAAvxV,WAAAs/C,MAAAmxS,EAAA0F,MAAAI,YACAwB,EAAAX,GAAAU,EACAC,EAAAxmV,KAAA,KAKA,MAAAggV,KAUAI,gBAGAP,YACAzqV,KAAA,SAAAwG,EAAA2hC,EAAAkpT,GACA,OAAA7qV,GACA,WACA,YAEA,eACA,GAAA8qV,EAaA,OAVAxH,GAAA0F,MAAAG,6BAAA1uU,KAAAowU,GACAC,EAAAD,GAGAC,EAAAD,EAAAh4V,WAAAs/C,MAAAmxS,EAAA0F,MAAAE,aAGA4B,MAAA,GAAA1gT,QAAA,gBAAAygT,GAGAC,CAEA,cACA,cAAAD,EAAA,MAGAxxM,KAAA,SAAAr5I,EAAA2hC,EAAAkpT,GACA,OAAA7qV,GACA,WACA,MAAAiwH,GAAAsyN,MAAAuE,UAAA,yBACA,eACA,GAAAgE,GAAAl2U,WAAAi2U,EAGA,KAAAC,GAAA,IAAAA,EAAA,CACA,GAAAC,GAAAF,EAAAh4V,WAAAs/C,MAAA,0BAIA24S,GADAC,EACAA,EAAA,GAGA,EAIA,MAAAD,EAEA,cAEA,MAAAl2U,YAAAi2U,GAGA,QAAAA,EAAA,IAFA,SAOA7uV,QAAA,SAAAgE,EAAA2hC,EAAAkpT,GACA,GAAAtlJ,GAAA,EACA,OAAAvlM,GACA,WACA,cACA,eAGA,GAAA8qV,GAAAD,EAAAh4V,WAAAs/C,MAAA,yBAUA,OANA04S,GAFAC,EAEAA,EAAA,OAGA,CAIA,cAOA,MALAnpT,GAAAlkC,MAAAo/K,KAAA,EAKAjoK,WAAAi2U,IAAA,EACA,GAGA,iBAAAz1R,SAAA,IAAAxgD,WAAAi2U,GAAA,YAKA,QAAA7qV,GACA,WACA,eACA,eAEA,aACA,MAAA6qV,MAUA1xT,SAAA,WA+KA,QAAA6xT,GAAAn6V,EAAA8wC,EAAAspT,GAGA,GAFA,eAAA3H,EAAA3hD,iBAAAhgQ,EAAA,aAAA9uC,WAAAkmB,iBAEAkyU,IAAA,IAEA,GAAA36V,GACAK,EACAu6V,EAAA,EACAC,EAAA,UAAAt6V,GAAA,iCACAu6V,GAAA,UAAAD,EAAA,aAAAA,EAAA,YAAAA,EAAA,oBAAAA,EAAA,WAEA,KAAA76V,EAAA,EAAkBA,EAAA86V,EAAAl4V,OAAmB5C,IACrCK,EAAAikB,WAAA0uU,EAAA3hD,iBAAAhgQ,EAAAypT,EAAA96V,KACA8+D,MAAAz+D,KACAu6V,GAAAv6V,EAGA,OAAAs6V,IAAAC,IAEA,SAEA,QAAAG,GAAAx6V,EAAAo6V,GACA,gBAAAjrV,EAAA2hC,EAAAkpT,GACA,OAAA7qV,GACA,WACA,MAAAnP,EACA,eACA,MAAA+jB,YAAAi2U,GAAAG,EAAAn6V,EAAA8wC,EAAAspT,EACA,cACA,MAAAr2U,YAAAi2U,GAAAG,EAAAn6V,EAAA8wC,EAAAspT,GAAA,OA5LA1lJ,OAAA,IAAAt1E,EAAAsyN,MAAAsE,gBAGAvD,EAAA+B,MAAAgE,eAAA/F,EAAA+B,MAAAgE,eAAAnmV,OAAAogV,EAAA+B,MAAAC,cAGA,QAAAh1V,GAAA,EAAoBA,EAAAgzV,EAAA+B,MAAAgE,eAAAn2V,OAAqC5C,KAGzD,WACA,GAAAi1V,GAAAjC,EAAA+B,MAAAgE,eAAA/4V,EAEAgzV,GAAAkB,eAAAP,WAAAsB,GAAA,SAAAvlV,EAAA2hC,EAAAkpT,GACA,OAAA7qV,GAEA,WACA,iBAEA,eAEA,MAAAi/U,GAAAt9S,KAAAvgC,GAAA69U,EAAAt9S,GAAA+iT,eAAAa,KAAAnkV,EAEA,UAAAqZ,KAAA8qU,GAAA,IAIAtG,EAAAt9S,GAAA+iT,eAAAa,GAAAn7S,QAAA,WACA,cACA,GAAAkhT,IAAA,CAKA,QAAA/F,EAAA70S,OAAA,EAAA60S,EAAAryV,OAAA,IAEA,gBACAo4V,GAAA,2BAAA7wU,KAAAowU,EACA,MAEA,YACA,YAIA56N,EAAAsyN,MAAAqE,WAAA3H,EAAAt9S,GAAA+iT,eAAAa,KAAAnkV,GAAAypV,EAAA,IACAA,EAAA,GAGAS,GAAA,SAAA7wU,KAAAowU,EACA,MACA,YAGA,aACAS,GAAA,aAAA7wU,KAAAowU,GAUA,MANAS,KAEArM,EAAAt9S,GAAA+iT,eAAAa,GAAA,IAAAsF,EAAA,KAIA5L,EAAAt9S,GAAA+iT,eAAAa,OAYA,QAAAz2T,GAAA,EAAoBA,EAAAw0T,EAAA+B,MAAA94M,OAAAr5I,OAA6B47B,KAGjD,WACA,GAAAy8T,GAAAjI,EAAA+B,MAAA94M,OAAAz9G,EAGAw0T,GAAAkB,eAAAP,WAAAsH,GAAA,SAAAvrV,EAAA2hC,EAAAkpT,GACA,OAAA7qV,GACA,WACA,MAAAurV,EAEA,eACA,GAAAT,EAGA,IAAAxH,EAAA0F,MAAAG,6BAAA1uU,KAAAowU,GACAC,EAAAD,MACW,CACX,GAAAW,GACAlC,GACAhiP,MAAA,eACAE,KAAA,iBACA4C,KAAA,qBACAC,MAAA,iBACAkE,IAAA,iBACAwB,MAAA,qBAIA,aAAAt1F,KAAAowU,GAEAW,EADAlC,EAAAuB,KAAAzpV,EACAkoV,EAAAuB,GAGAvB,EAAAhiP,MAGYg8O,EAAA0F,MAAAC,MAAAxuU,KAAAowU,GACZW,EAAA,OAAAlI,EAAAkC,OAAAiG,SAAAZ,GAAAzmV,KAAA,SAEY,YAAAqW,KAAAowU,KACZW,EAAAlC,EAAAhiP,OAKAwjP,GAAAU,GAAAX,GAAAh4V,WAAAs/C,MAAAmxS,EAAA0F,MAAAE,aAAA,GAAA9+S,QAAA,gBAQA,QAJAm7J,KAAA,QAAAulJ,EAAAr1R,MAAA,KAAAviE,SACA43V,GAAA,MAGAA,CACA,cAEA,aAAArwU,KAAAowU,GACAA,GAIAtlJ,GAAA,EACA,IAAAslJ,EAAAp1R,MAAA,KAAAviE,SACA23V,IAAAp1R,MAAA,OAAA5gD,MAAA,KAAAzQ,KAAA,MAGW,IAAAymV,EAAAp1R,MAAA,KAAAviE,SACX23V,GAAA,OAKAtlJ,GAAA,oBAAAslJ,EAAAzgT,QAAA,YAAAA,QAAA,6BA0CAk5S,GAAAkB,eAAAP,WAAAl0G,WAAAs7G,EAAA,YACA/H,EAAAkB,eAAAP,WAAA/6L,YAAAmiM,EAAA,aACA/H,EAAAkB,eAAAP,WAAAp2Q,WAAAw9Q,EAAA,SACA/H,EAAAkB,eAAAP,WAAAr2Q,YAAAy9Q,EAAA,YAOAK,OAGAC,UAAA,SAAAn6V,GACA,MAAAA,GAAA44C,QAAA,kBAAA+H,EAAAy5S,GACA,MAAAA,GAAAl4T,iBAIAm4T,aAAA,SAAAr6V,GACA,GAAAs6V,GAAA,4CAOA,QAJAvmJ,GAAAt1E,EAAAsyN,MAAAqE,YAAA32N,EAAAsyN,MAAAljH,YACAysH,GAAA,cAGA,GAAAhlP,QAAA,KAAAglP,EAAA,UAAArxU,KAAAjpB,IAKAu6V,YAAA,SAAAv6V,GAEA,GAAAy+H,EAAAsyN,MAAAyE,cAAAx1V,GACA,OAAAy+H,EAAAsyN,MAAAyE,cAAAx1V,IAAA,EAIA,QAFAi7K,IAAA,4BAEAn8K,EAAA,EAAA07V,EAAAv/K,EAAAv5K,OAAqD5C,EAAA07V,EAAmB17V,IAAA,CACxE,GAAA27V,EAYA,IATAA,EADA,IAAA37V,EACAkB,EAGAi7K,EAAAn8K,GAAAkB,EAAA44C,QAAA,eAAA+H,GACA,MAAAA,GAAAze,gBAKAg/L,EAAA98J,SAAAq6D,EAAAsyN,MAAAwE,cAAAtpV,MAAAwuV,IAIA,MAFAh8N,GAAAsyN,MAAAyE,cAAAx1V,GAAAy6V,GAEAA,GAAA,GAKA,OAAAz6V,GAAA,KAQAg0V,QAEAiG,SAAA,SAAAzlP,GACA,GAEAkmP,GAFAC,EAAA,mCACAC,EAAA,2CASA,OANApmP,KAAA57D,QAAA+hT,EAAA,SAAA17V,EAAAuN,EAAAw3B,EAAApyB,GACA,MAAApF,KAAAw3B,IAAApyB,MAGA8oV,EAAAE,EAAAt0T,KAAAkuE,GAEAkmP,GAAA92R,SAAA82R,EAAA,OAAA92R,SAAA82R,EAAA,OAAA92R,SAAA82R,EAAA,iBAEA1B,eAAA,SAAA75V,GAMA,OAAAA,GAAA,qDAAA8pB,KAAA9pB,IAGA07V,YAAA,SAAA76V,GACA,wBAAAipB,KAAAjpB,GACA,MACM,kHAAAipB,KAAAjpB,GAEN,GAGA,MAKA86V,eAAA,SAAA3qT,GACA,GAAA2mH,GAAA3mH,KAAA2mH,QAAAz1J,WAAAkmB,aAEA,kKAAA0B,KAAA6tI,GACA,SACM,UAAA7tI,KAAA6tI,GACN,YACM,UAAA7tI,KAAA6tI,GACN,YACM,aAAA7tI,KAAA6tI,GACN,QACM,aAAA7tI,KAAA6tI,GACN,kBAGA,SAIA57G,SAAA,SAAA/K,EAAAtrB,GACA,GAAAsrB,EACA,GAAAA,EAAA2pQ,UACA3pQ,EAAA2pQ,UAAAj/P,IAAAh2B,OACO,IAAAq8M,EAAA98J,SAAAj0B,EAAAtrB,WAEPsrB,EAAAtrB,YAAAsrB,EAAAtrB,UAAAnjB,OAAA,QAAAmjB,MACO,CAEP,GAAAk2U,GAAA5qT,EAAAktK,aAAAtJ,GAAA,0BAEA5jK,GAAAunD,aAAA,QAAAqjQ,KAAA,QAAAl2U,KAIAs2B,YAAA,SAAAhL,EAAAtrB,GACA,GAAAsrB,EACA,GAAAA,EAAA2pQ,UACA3pQ,EAAA2pQ,UAAAl+R,OAAAiJ,OACO,IAAAq8M,EAAA98J,SAAAj0B,EAAAtrB,WAGPsrB,EAAAtrB,UAAAsrB,EAAAtrB,UAAAxjB,WAAAu3C,QAAA,GAAA08D,QAAA,UAAAzwF,EAAAo/C,MAAA,KAAArxD,KAAA,8BACO,CAEP,GAAAmoV,GAAA5qT,EAAAktK,aAAAtJ,GAAA,0BAEA5jK,GAAAunD,aAAA,QAAAqjQ,EAAAniT,QAAA,GAAA08D,QAAA,QAAAzwF,EAAAo/C,MAAA,KAAArxD,KAAA,4BAUAu9R,iBAAA,SAAAhgQ,EAAAnwC,EAAA4yV,EAAAoI,GAKA,QAAAC,GAAA9qT,EAAAnwC,GAKA,GAAAk7V,GAAA,CAMA,IAAAnnJ,GAAA,EACAmnJ,EAAAxlV,EAAA4mE,IAAAnsC,EAAAnwC,OAGM,CAGN,GAAAm7V,IAAA,CAEA,oBAAAlyU,KAAAjpB,IAAA,IAAA8xV,EAAA3hD,iBAAAhgQ,EAAA,aACAgrT,GAAA,EACArJ,EAAAC,iBAAA5hT,EAAA,UAAA2hT,EAAAkC,OAAA8G,eAAA3qT,IAGA,IAAAirT,GAAA,WACAD,GACArJ,EAAAC,iBAAA5hT,EAAA,kBAIA,KAAA6qT,EAAA,CACA,cAAAh7V,GAAA,eAAA8xV,EAAA3hD,iBAAAhgQ,EAAA,aAAA9uC,WAAAkmB,cAAA,CACA,GAAA8zU,GAAAlrT,EAAA4oH,cAAA31I,WAAA0uU,EAAA3hD,iBAAAhgQ,EAAA,wBAAA/sB,WAAA0uU,EAAA3hD,iBAAAhgQ,EAAA,2BAAA/sB,WAAA0uU,EAAA3hD,iBAAAhgQ,EAAA,oBAAA/sB,WAAA0uU,EAAA3hD,iBAAAhgQ,EAAA,qBAGA,OAFAirT,KAEAC,EACQ,aAAAr7V,GAAA,eAAA8xV,EAAA3hD,iBAAAhgQ,EAAA,aAAA9uC,WAAAkmB,cAAA,CACR,GAAA+zU,GAAAnrT,EAAA2oH,aAAA11I,WAAA0uU,EAAA3hD,iBAAAhgQ,EAAA,yBAAA/sB,WAAA0uU,EAAA3hD,iBAAAhgQ,EAAA,0BAAA/sB,WAAA0uU,EAAA3hD,iBAAAhgQ,EAAA,qBAAA/sB,WAAA0uU,EAAA3hD,iBAAAhgQ,EAAA,oBAGA,OAFAirT,KAEAE,GAIA,GAAA93H,EAKAA,GADAiqH,EAAAt9S,KAAAvgC,EACAK,EAAAm0N,iBAAAj0L,EAAA,MAEOs9S,EAAAt9S,GAAAqzL,cAIPiqH,EAAAt9S,GAAAqzL,cAHAiqH,EAAAt9S,GAAAqzL,cAAAvzN,EAAAm0N,iBAAAj0L,EAAA,MASA,gBAAAnwC,IACAA,EAAA,kBAMAk7V,EADA,IAAAnnJ,GAAA,WAAA/zM,EACAwjO,EAAA2sE,iBAAAnwS,GAEAwjO,EAAAxjO,GAKA,KAAAk7V,GAAA,OAAAA,IACAA,EAAA/qT,EAAAlkC,MAAAjM,IAGAo7V,IASA,YAAAF,GAAA,6BAAAjyU,KAAAjpB,GAAA,CACA,GAAA++B,GAAAk8T,EAAA9qT,EAAA,aAMA,UAAApR,GAAA,aAAAA,GAAA,YAAA9V,KAAAjpB,MAEAk7V,EAAAxlV,EAAAy6B,GAAApR,WAAA/+B,GAAA,MAIA,MAAAk7V,GAGA,GAAA7B,EAIA,IAAAvH,EAAAU,MAAAC,WAAAzyV,GAAA,CACA,GAAA+1V,GAAA/1V,EACAuyV,EAAAT,EAAAU,MAAAE,QAAAqD,EAIAnD,KAAAhjV,IAEAgjV,EAAAd,EAAA3hD,iBAAAhgQ,EAAA2hT,EAAAoI,MAAAK,YAAAhI,GAAA,KAIAT,EAAAkB,eAAAP,WAAAF,KACAK,EAAAd,EAAAkB,eAAAP,WAAAF,GAAA,UAAApiT,EAAAyiT,IAIAyG,EAAAvH,EAAAU,MAAAyG,aAAAlD,EAAAnD,OAMK,IAAAd,EAAAkB,eAAAP,WAAAzyV,GAAA,CACL,GAAAu7V,GACAC,CAEAD,GAAAzJ,EAAAkB,eAAAP,WAAAzyV,GAAA,OAAAmwC,GAMA,cAAAorT,IACAC,EAAAP,EAAA9qT,EAAA2hT,EAAAoI,MAAAK,YAAAgB,GAAA,IAGAzJ,EAAAkC,OAAAgF,eAAAwC,IAAA1J,EAAAU,MAAAuF,UAAA/3V,KACAw7V,EAAA1J,EAAAU,MAAAuF,UAAA/3V,GAAA,KAIAq5V,EAAAvH,EAAAkB,eAAAP,WAAAzyV,GAAA,UAAAmwC,EAAAqrT,GAIA,aAAAvyU,KAAAowU,GAAA,CAGA,GAAAvpV,GAAA29U,EAAAt9S,EAEA,IAAArgC,KAAAilV,OAAAjD,EAAAoI,MAAAG,aAAAr6V,GAGA,uBAAAipB,KAAAjpB,GAEA,IACAq5V,EAAAlpT,EAAA+nB,UAAAl4D,GACQ,MAAAosC,GACRitT,EAAA,MAIAA,GAAAlpT,EAAAktK,aAAAr9M,OAGAq5V,GAAA4B,EAAA9qT,EAAA2hT,EAAAoI,MAAAK,YAAAv6V,GAAA,IAcA,MARA8xV,GAAAkC,OAAAgF,eAAAK,KACAA,EAAA,GAGA56N,EAAA5lF,OAAA,GACA4xB,QAAAC,IAAA,OAAA1qE,EAAA,KAAAq5V,GAGAA,GAGAtH,iBAAA,SAAA5hT,EAAAnwC,EAAAq5V,EAAAzG,EAAAG,GACA,GAAAtoK,GAAAzqL,CAGA,eAAAA,EAEA+yV,EAAA3+R,UACA2+R,EAAA3+R,UAAA,SAAA2+R,EAAAtqV,WAAA4wV,EAGA,SAAAtG,EAAAtqV,UACAwH,EAAAopF,SAAAggQ,EAAAtG,EAAA0I,gBAEAxrV,EAAAopF,SAAA05P,EAAA0I,eAAApC,OAMA,IAAAvH,EAAAkB,eAAAP,WAAAzyV,IAAA,cAAA8xV,EAAAkB,eAAAP,WAAAzyV,GAAA,OAAAmwC,GAGA2hT,EAAAkB,eAAAP,WAAAzyV,GAAA,SAAAmwC,EAAAkpT,GAEA5uK,EAAA,YACA4uK,EAAA5L,EAAAt9S,GAAA+iT,eAAAlzV,OACM,CAEN,GAAA8xV,EAAAU,MAAAC,WAAAzyV,GAAA,CACA,GAAA07V,GAAA17V,EACAuyV,EAAAT,EAAAU,MAAAE,QAAA1yV,EAGA4yV,MAAAd,EAAA3hD,iBAAAhgQ,EAAAoiT,GAEA8G,EAAAvH,EAAAU,MAAA0G,YAAAwC,EAAArC,EAAAzG,GACA5yV,EAAAuyV,EAcA,GAVAT,EAAAkB,eAAAP,WAAAzyV,KACAq5V,EAAAvH,EAAAkB,eAAAP,WAAAzyV,GAAA,SAAAmwC,EAAAkpT,GACAr5V,EAAA8xV,EAAAkB,eAAAP,WAAAzyV,GAAA,OAAAmwC,IAIAs6I,EAAAqnK,EAAAoI,MAAAK,YAAAv6V,GAAA,GAIA+zM,GAAA,EACA,IACA5jK,EAAAlkC,MAAAw+K,GAAA4uK,EACQ,MAAAjtT,GACRqyF,EAAA5lF,OACA4xB,QAAAC,IAAA,6BAAA2uR,EAAA,UAAA5uK,EAAA,SAKO,CACP,GAAA36K,GAAA29U,EAAAt9S,EAEArgC,MAAAilV,OAAAjD,EAAAoI,MAAAG,aAAAr6V,GAGAmwC,EAAAunD,aAAA13F,EAAAq5V,GAEAlpT,EAAAlkC,MAAAw+K,GAAA4uK,EAIA56N,EAAA5lF,OAAA,GACA4xB,QAAAC,IAAA,OAAA1qE,EAAA,KAAAyqL,EAAA,MAAA4uK,GAMA,OAAA5uK,EAAA4uK,IAIAjG,oBAAA,SAAAjjT,GACA,GAAAwrT,GAAA,GACA7rV,EAAA29U,EAAAt9S,EAIA,KAAA4jK,GAAAt1E,EAAAsyN,MAAAqE,YAAA32N,EAAAsyN,MAAAljH,WAAA/9N,KAAAilV,MAAA,CAGA,GAAA6G,GAAA,SAAAC,GACA,MAAAz4U,YAAA0uU,EAAA3hD,iBAAAhgQ,EAAA0rT,KAKAC,GACAtsD,WAAAosD,EAAA,cAAAA,EAAA,eACA1sD,OAAA0sD,EAAA,UAAAG,OAAAH,EAAA,UAGA56T,MAAA,IAAA46T,EAAA,UAAAA,EAAA,SAAAA,EAAA,WAAAA,EAAA,UAAAA,EAAA,WAGA3sD,QAAA2sD,EAAA,gBAKAlmV,GAAA4hE,KAAAm2Q,EAAAt9S,GAAA+iT,eAAA,SAAAa,GAGA,cAAA9qU,KAAA8qU,GACAA,EAAA,YACO,UAAA9qU,KAAA8qU,GACPA,EAAA,QACO,WAAA9qU,KAAA8qU,KACPA,EAAA,UAIA+H,EAAA/H,KAEA4H,GAAA5H,EAAA,IAAA+H,EAAA/H,GAAAnhV,KAAA,gBAIAkpV,GAAA/H,UAGK,CACL,GAAAiI,GACAz4K,CAGA7tK,GAAA4hE,KAAAm2Q,EAAAt9S,GAAA+iT,eAAA,SAAAa,GAIA,GAHAiI,EAAAvO,EAAAt9S,GAAA+iT,eAAAa,GAGA,yBAAAA,EAEA,MADAxwK,GAAAy4K,GACA,CAIA,KAAAjoJ,GAAA,YAAAggJ,IACAA,EAAA,UAGA4H,GAAA5H,EAAAiI,EAAA,MAIAz4K,IACAo4K,EAAA,cAAAp4K,EAAA,IAAAo4K,GAIA7J,EAAAC,iBAAA5hT,EAAA,YAAAwrT,IAKA7J,GAAAU,MAAA7qT,WACAmqT,EAAAkB,eAAArrT,WAGA82F,EAAAs3N,KAAA,SAAA3kV,EAAAywB,EAAAC,GACA,GAAA3iC,EA6BA,OA3BAiS,GAAAk8U,EAAAl8U,GAEAsE,EAAA4hE,KAAAlmE,EAAA,SAAAtS,EAAAqxC,GAOA,GALAs9S,EAAAt9S,KAAAvgC,GACA6uH,EAAAnuF,KAAAH,GAIArO,IAAAlyB,EACAzQ,IAAAyQ,IACAzQ,EAAA2yV,EAAA3hD,iBAAAhgQ,EAAAtO,QAGK,CAEL,GAAAo6T,GAAAnK,EAAAC,iBAAA5hT,EAAAtO,EAAAC,EAGA,eAAAm6T,EAAA,IACAx9N,EAAAqzN,IAAAsB,oBAAAjjT,GAGAhxC,EAAA88V,KAIA98V,EAOA,IAAA0lR,GAAA,WAQA,QAAAq3E,KAGA,MAAAC,GACAC,EAAA59S,SAAA,KAGA69S,EAmeA,QAAAC,GAAAnsT,EAAAosT,GAwKA,QAAAC,GAAA/qT,GACA,GAAA3hC,GAAA2sV,CAOA,IAAAt4T,EAAA4sC,OAAA,IAAA2rR,EAEA,IACAv4T,EAAA4sC,MAAA/xE,KAAAoS,KACO,MAAAg7B,GACPh8B,WAAA,WACA,KAAAg8B,IACQ,GASR,cAAA4xC,EAAA,CAEA,GAEA2+Q,GACAC,EACAC,EAJAC,EAAA,OAAA7zU,KAAAkb,EAAAjJ,MAAA,aACA6hU,EAAA35U,WAAA+gB,EAAAxF,SAAA,CAOAwF,GAAAiwB,UAEA8sK,EAAAqsH,UAAAppT,EAAAiwB,YAAA8sK,EAAA0tF,OAAAzqR,EAAAiwB,YAEAjwB,EAAAiwB,UAAAjwB,EAAAiwB,UAAA,IAAAjwB,EAAAiwB,UAGAuoS,EAAAx4T,EAAAiwB,UAAA,SAAA0oS,GAKAD,EAAAF,EAAAjnV,EAAAy6B,GAAApR,WAAA+9T,EAAAv1U,eAAAw1U,GAGA54T,EAAAiwB,UAAA,MAKAuoS,EAAAl+N,EAAAsyN,MAAAhrE,aAAAtnJ,EAAAsyN,MAAA,iBAAA+L,IAEAF,EAAAn+N,EAAAsyN,MAAAhrE,aAAAtnJ,EAAAsyN,MAAA,2BAAA+L,EAAA,gBAIAD,EAAAnnV,EAAAy6B,GAAAxR,SAAAm+T,EAAAv1U,eAAAw1U,GAIArL,GACAsL,QACApK,mBAAA,EACAP,WAAAsK,EACAtiN,aAAAsiN,EACAvK,SAAAyK,EACA/J,SAAA,GACA9hR,OAAA7sC,EAAA6sC,OACA+hR,YACA3+R,UAAAjwB,EAAAiwB,UACA3rD,UAAAq0V,EACArB,eAAAmB,IAGAzsT,WAGAsuF,EAAA5lF,OACA4xB,QAAAC,IAAA,6BAAAgnR,EAAAsL,OAAA7sT,OAcM,gBAAA6tC,EAAA,CAIN,KAHAluE,EAAA29U,EAAAt9S,IAIA,MAGA,KAAArgC,EAAA4hV,gBAIA,WAFAh8U,GAAAw3U,QAAA/8S,EAAAhM,EAAAvwB,MAUA,UAAA9D,EAAAq0B,KAAAx7B,UACAmH,EAAAq0B,KAAAx7B,QAAA,QAGA,WAAAmH,EAAAq0B,KAAAz4B,aACAoE,EAAAq0B,KAAAz4B,WAAA,WAKAoE,EAAAq0B,KAAAuvT,MAAA,EACA5jV,EAAAq0B,KAAA4sC,MAAA,KACAjhE,EAAAq0B,KAAAgoK,SAAA,KAIAz8J,EAAAshC,cACA7sC,GAAA6sC,OAGAthC,EAAA8gC,gBACArsC,GAAAqsC,SAKArsC,EAAAzuB,EAAAI,UAAyBhG,EAAAq0B,QAOzBs4T,EAAA/mV,EAAAI,QAAA,KAA8ChG,IAAA4hV,gBAAA,KAG9C,QAAAuL,KAAAR,GAEA,GAAAA,EAAAv8V,eAAA+8V,IAAA,YAAAA,EAAA,CACA,GAAAC,GAAAT,EAAAQ,GAAA5K,UAEAoK,GAAAQ,GAAA5K,WAAAoK,EAAAQ,GAAA5iN,aAAAoiN,EAAAQ,GAAA7K,SACAqK,EAAAQ,GAAA7K,SAAA8K,EAKAh8H,EAAA7xF,cAAA3/F,KACA+sT,EAAAQ,GAAAjsR,OAAA7sC,EAAA6sC,QAGAytD,EAAA5lF,OACA4xB,QAAAC,IAAA,4BAAAuyR,EAAA,MAAA7lV,KAAAC,UAAAolV,EAAAQ,IAAA9sT,GAKAuhT,EAAA+K,MAOM,cAAAz+Q,EAAA,CAcNluE,EAAA29U,EAAAt9S,GAKArgC,KAAA4hV,kBAAA,IAAA5hV,EAAA6jV,cACA8I,EAAA3sV,EAAA4hV,gBAYA,IAoDAyL,GAAA,SAAAn9V,EAAAo9V,GAEA,GAMAnL,GANAmG,EAAAtG,EAAAU,MAAAE,QAAA1yV,GACA4yV,GAAA,EAEAR,EAAAgL,EAAA,GACApsR,EAAAosR,EAAA,GACA/K,EAAA+K,EAAA,EAYA,MAAAttV,KAAAilV,OAAA,UAAAqD,IAAA,IAAAtG,EAAAoI,MAAAK,YAAAnC,GAAA,IAAAtG,EAAAkB,eAAAP,WAAA2F,KAAAxoV,GAIA,YAHA6uH,EAAA5lF,OACA4xB,QAAAC,IAAA,aAAA0tR,EAAA,yCAQAj0T,EAAAx7B,UAAAiH,GAAA,OAAAu0B,EAAAx7B,SAAA,SAAAw7B,EAAAx7B,SAAAw7B,EAAAz4B,aAAAkE,GAAA,WAAAu0B,EAAAz4B,aAAA,iBAAAud,KAAAjpB,KAAAqyV,GAAA,IAAAD,IACAC,EAAA,GAMAluT,EAAA0xT,cAAA4G,KAAAz8V,IACAqyV,IAAAziV,IACAyiV,EAAAoK,EAAAz8V,GAAAoyV,SAAAqK,EAAAz8V,GAAA8yV,UAMAF,EAAA9iV,EAAA6iV,uBAAAyF,IAIAtG,EAAAU,MAAAC,WAAAzyV,GACAqyV,IAAAziV,GACAgjV,EAAAd,EAAA3hD,iBAAAhgQ,EAAAioT,GAGA/F,EAAAP,EAAA3hD,iBAAAhgQ,EAAAnwC,EAAA4yV,IAOAA,EAAAd,EAAAU,MAAAuF,UAAAK,GAAA,GAGS/F,IAAAziV,IACTyiV,EAAAP,EAAA3hD,iBAAAhgQ,EAAAnwC,GAQA,IAAAq9V,GACAC,EACAC,EACAC,GAAA,EAGAC,EAAA,SAAAz9V,EAAAb,GACA,GAAA2zV,GACA4K,CAmBA,OAjBAA,IAAAv+V,GAAA,KACAkC,WACAkmB,cAEAqxB,QAAA,oBAAA+H,GAKA,MAHAmyS,GAAAnyS,EAGA,KAIAmyS,IACAA,EAAAhB,EAAAkC,OAAA6G,YAAA76V,KAGA09V,EAAA5K,GAGA,IAAAT,IAAAD,GAAAlxH,EAAA98J,SAAAiuR,IAAAnxH,EAAA98J,SAAAguR,GAAA,CACAH,EAAA,EACA,IAAA0L,GAAA,EACAC,EAAA,EACAC,KACAC,KACAC,EAAA,EACAC,EAAA,EACAC,EAAA,CAIA,KAFA5L,EAAAP,EAAAU,MAAAoG,UAAAvG,GACAD,EAAAN,EAAAU,MAAAoG,UAAAxG,GACAuL,EAAAtL,EAAA3wV,QAAAk8V,EAAAxL,EAAA1wV,QAAA,CACA,GAAAw8V,GAAA7L,EAAAsL,GACAQ,EAAA/L,EAAAwL,EAEA,cAAA30U,KAAAi1U,IAAA,UAAAj1U,KAAAk1U,GAAA,CAMA,IALA,GAAAC,GAAAF,EACAG,EAAAF,EACAG,EAAA,IACAC,EAAA,MAEAZ,EAAAtL,EAAA3wV,QAAA,CAEA,IADAw8V,EAAA7L,EAAAsL,MACAW,EACAA,EAAA,SACY,UAAAr1U,KAAAi1U,GACZ,KAEAE,IAAAF,EAEA,OAAAN,EAAAxL,EAAA1wV,QAAA,CAEA,IADAy8V,EAAA/L,EAAAwL,MACAW,EACAA,EAAA,SACY,UAAAt1U,KAAAk1U,GACZ,KAEAE,IAAAF,EAEA,GAAAK,GAAA1M,EAAAU,MAAAmG,QAAAtG,EAAAsL,GACAc,EAAA3M,EAAAU,MAAAmG,QAAAvG,EAAAwL,EAIA,IAFAD,GAAAa,EAAA98V,OACAk8V,GAAAa,EAAA/8V,OACA88V,IAAAC,EAEAL,IAAAC,EAEApM,GAAAmM,EAAAI,GAGAvM,GAAA,IAAyB4L,EAAAn8V,QAAAs8V,EAAA,YAA2CQ,EACpEX,EAAA5uV,KAAAmU,WAAAg7U,IACAN,EAAA7uV,KAAAmU,WAAAi7U,SAEW,CAEX,GAAAK,GAAAt7U,WAAAg7U,GACAO,EAAAv7U,WAAAi7U,EAEApM,KAAA8L,EAAA,kBACAW,EAAA,IAA2Bb,EAAAn8V,QAAAs8V,EAAA,YAA2C,KAAAQ,EACtE,OACAG,EAAA,KAAyBd,EAAAn8V,QAAAg9V,EAAA,OAAAV,EAAA,YAAgE,KAAAS,EACzF,IACAC,IACAb,EAAA5uV,KAAAyvV,GACAZ,EAAA7uV,KAAA,IAEA0vV,IACAd,EAAA5uV,KAAA,GACA6uV,EAAA7uV,KAAA0vV,SAGU,IAAAT,IAAAC,EAmCA,CACVJ,EAAA,CAEA,OArCA9L,GAAAiM,EACAP,IACAC,IAEA,IAAAG,GAAA,MAAAG,GACA,IAAAH,GAAA,MAAAG,GACA,IAAAH,GAAA,MAAAG,GACA,IAAAH,GAAA,MAAAG,GACAH,GAAA,SAAAG,EAEAH,KACWA,KAAA,GACXA,GAAA,SAAAG,KAAAH,EAAA,KACAA,EAAA,GAGA,IAAAC,GAAA,MAAAE,GACA,IAAAF,GAAA,MAAAE,GACA,IAAAF,GAAA,MAAAE,GACA,IAAAF,GAAA,MAAAE,GACAF,GAAA,SAAAE,GAEA,IAAAF,GAAA,MAAAE,IACAD,EAAA,GAEAD,KACWC,GAAA,MAAAC,IACXD,EAAA,IACAD,EAAAC,EAAA,IAEWA,GAAAD,GAAAC,EAAA,MACXD,IAAAC,EAAA,YAAAC,KAAAF,GAAAC,EAAA,QACAD,EAAAC,EAAA,IAQAN,IAAAtL,EAAA3wV,QAAAk8V,IAAAxL,EAAA1wV,SACA+8H,EAAA5lF,OACA4xB,QAAAr+B,MAAA,iDAAAgmT,EAAA,OAAAC,EAAA,MAEAJ,EAAAriV,GAEAqiV,IACA4L,EAAAn8V,QACA+8H,EAAA5lF,OACA4xB,QAAAC,IAAA,kBAAAunR,EAAA,QAAA4L,EAAAC,EAAA,IAAAzL,EAAA,IAAAD,EAAA,KAEAC,EAAAwL,EACAzL,EAAA0L,EACAR,EAAAC,EAAA,IAEAtL,EAAAriV,GAKAqiV,IAEAoL,EAAAI,EAAAz9V,EAAAqyV,GACAA,EAAAgL,EAAA,GACAE,EAAAF,EAAA,GAGAA,EAAAI,EAAAz9V,EAAAoyV,GACAA,EAAAiL,EAAA,GAAAzkT,QAAA,uBAAA+H,EAAAy5S,GAIA,MAHAoD,GAAApD,EAGA,KAEAkD,EAAAD,EAAA,GAGAhL,EAAAjvU,WAAAivU,IAAA,EACAD,EAAAhvU,WAAAgvU,IAAA,EAOA,MAAAkL,IAGA,0BAAAr0U,KAAAjpB,IAEAoyV,GAAA,IACAkL,EAAA,MAEU,SAAAr0U,KAAAjpB,IACVoyV,GAAA,IACAkL,EAAA,IAEU,qBAAAr0U,KAAAjpB,KACVoyV,IAAA,QACAkL,EAAA,KA4HA,YAAAr0U,KAAAu0U,GACAF,EAAAC,MAMQ,IAAAA,IAAAD,GAAA,IAAAjL,EAKR,OAAAD,EACAkL,EAAAC,MACS,CAGTqB,KAxHA,WAUA,GAAAC,IACAC,SAAA3uT,EAAAs0L,YAAAv0N,EAAA8qE,KACAj8C,SAAA+yT,EAAA3hD,iBAAAhgQ,EAAA,YACA5mC,SAAAuoV,EAAA3hD,iBAAAhgQ,EAAA,aAGA4uT,EAAAF,EAAA9/T,WAAAigU,EAAAC,cAAAJ,EAAAC,WAAAE,EAAAE,WAEAC,EAAAN,EAAAt1V,WAAAy1V,EAAAI,YAGAJ,GAAAE,WAAAL,EAAAC,SACAE,EAAAC,aAAAJ,EAAA9/T,SACAigU,EAAAI,aAAAP,EAAAt1V,QAQA,IACA81V,KAEA,IAAAF,GAAAJ,EA8BAM,EAAAC,OAAAN,EAAAO,WACAF,EAAAG,iBAAAR,EAAAS,qBACAJ,EAAAK,kBAAAV,EAAAW,0BAhCA,CACA,GAAAC,GAAA9vV,KAAAilV,MAAA7kV,EAAAoyN,gBAAA,qCAAApyN,EAAAC,cAAA,MAEAsuH,GAAAnuF,KAAAsvT,GACAf,EAAAC,SAAAnnQ,YAAAioQ,GAKAlqV,EAAA4hE,MAAA,6CAAAx4E,EAAAkB,GACAy+H,EAAAqzN,IAAAC,iBAAA6N,EAAA5/V,EAAA,YAEAy+H,EAAAqzN,IAAAC,iBAAA6N,EAAA,WAAAf,EAAA9/T,UACA0/F,EAAAqzN,IAAAC,iBAAA6N,EAAA,WAAAf,EAAAt1V,UACAk1H,EAAAqzN,IAAAC,iBAAA6N,EAAA,2BAGAlqV,EAAA4hE,MAAA,yEAAAx4E,EAAAkB,GACAy+H,EAAAqzN,IAAAC,iBAAA6N,EAAA5/V,EAAA6/V,UAGAphO,EAAAqzN,IAAAC,iBAAA6N,EAAA,cAAAC,SAGAR,EAAAG,iBAAAR,EAAAS,sBAAAr8U,WAAA0uU,EAAA3hD,iBAAAyvD,EAAA,sBA3BA,IA4BAP,EAAAK,kBAAAV,EAAAW,uBAAAv8U,WAAA0uU,EAAA3hD,iBAAAyvD,EAAA,uBA5BA,IA6BAP,EAAAC,OAAAN,EAAAO,YAAAn8U,WAAA0uU,EAAA3hD,iBAAAyvD,EAAA,oBA7BA,IA+BAf,EAAAC,SAAA96H,YAAA47H,GAiCA,MAlBA,QAAAZ,EAAAc,UAEAd,EAAAc,QAAA18U,WAAA0uU,EAAA3hD,iBAAAjgS,EAAA8qE,KAAA,kBAIA,OAAAgkR,EAAAe,SACAf,EAAAe,OAAA38U,WAAAnT,EAAAsuO,YAAA,IACAygH,EAAAgB,OAAA58U,WAAAnT,EAAAynJ,aAAA,KAGA2nM,EAAAS,QAAAd,EAAAc,QACAT,EAAAU,OAAAf,EAAAe,OACAV,EAAAW,OAAAhB,EAAAgB,OAEAvhO,EAAA5lF,OAAA,GACA4xB,QAAAC,IAAA,gBAAAtzD,KAAAC,UAAAgoV,GAAAlvT,GAEAkvT,IA6BA,IAAAnkU,GAAA,oDAAAjS,KAAAjpB,IAAA,KAAAipB,KAAAjpB,IAAA,MAAAA,EAAA,OAIA,QAAAu9V,GACA,QAIAlL,GAAA,MAAAn3T,EAAA0jU,EAAAY,iBAAAZ,EAAAc,iBACA,MAEA,UAEA,KAEA,SACArN,GAAAuM,EAAArB,EAAA,QAIA,OAAAD,GACA,QACAjL,GAAA,SAAAn3T,EAAA0jU,EAAAY,iBAAAZ,EAAAc,kBACA,MAEA,UAEA,KAEA,SACArN,GAAA,EAAAuM,EAAAtB,EAAA,SAaA,OAAAE,GACA,QACApL,EAAAC,EAAAD,CACA,MAEA,SACAA,EAAAC,EAAAD,CACA,MAEA,SACAA,GAAAC,CACA,MAEA,SACAD,EAAAC,EAAAD,EASAV,EAAA1xV,IACA4yV,oBACAP,aACAh4M,aAAAg4M,EACAD,WACAU,SAAAwK,EACAtsR,UAEAihR,IACAP,EAAA1xV,GAAAiyV,WAGAxzN,EAAA5lF,OACA4xB,QAAAC,IAAA,oBAAA1qE,EAAA,MAAAoX,KAAAC,UAAAq6U,EAAA1xV,IAAAmwC,GAKA,QAAAnwC,KAAAigW,GAEA,GAAAA,EAAA//V,eAAAF,GAAA,CAKA,GAAAyqL,GAAAqnK,EAAAoI,MAAAC,UAAAn6V,GACAo9V,EAvjBA,SAAAA,EAAA8C,GACA,GAAA9N,GAAAphR,EAAAqhR,CAgDA,OA7CAnxH,GAAAxhN,WAAA09U,KACAA,IAAAp+V,KAAAmxC,EAAAosT,EAAA4D,IAKAj/H,EAAA1/N,QAAA47V,IAGAhL,EAAAgL,EAAA,IAIAl8H,EAAA1/N,QAAA47V,EAAA,cAAAn0U,KAAAm0U,EAAA,KAAAl8H,EAAAxhN,WAAA09U,EAAA,KAAAtL,EAAA0F,MAAAC,MAAAxuU,KAAAm0U,EAAA,IACA/K,EAAA+K,EAAA,GAESl8H,EAAA98J,SAAAg5R,EAAA,MAAAtL,EAAA0F,MAAAC,MAAAxuU,KAAAm0U,EAAA,KAAA3+N,EAAAiyN,QAAA0M,EAAA,KAAAl8H,EAAA1/N,QAAA47V,EAAA,KACTpsR,EAAAkvR,EAAA9C,EAAA,GAAA3M,EAAA2M,EAAA,GAAAj5T,EAAAqsC,UAGA6hR,EAAA+K,EAAA,IAEA/K,EAAA+K,EAAA,IAAAA,EAAA,IAIAhL,EAAAgL,EAIA8C,IACAlvR,KAAA7sC,EAAA6sC,QAKAkwJ,EAAAxhN,WAAA0yU,KACAA,IAAApzV,KAAAmxC,EAAAosT,EAAA4D,IAGAj/H,EAAAxhN,WAAA2yU,KACAA,IAAArzV,KAAAmxC,EAAAosT,EAAA4D,KAIA/N,GAAA,EAAAphR,EAAAqhR,IAsgBA4N,EAAAjgW,GAIA,IAAA60V,EAAA/C,EAAA+B,MAAA94M,OAAA0vC,GAAA,CAEA,GAAA2nK,GAAAgL,EAAA,GACApsR,EAAAosR,EAAA,GACA/K,EAAA+K,EAAA,EAEA,IAAAtL,EAAA0F,MAAAC,MAAAxuU,KAAAmpU,GAAA,CAOA,OALAgO,IAAA,sBACAC,EAAAvO,EAAAkC,OAAAiG,SAAA7H,GACAkO,EAAAjO,EAAAP,EAAAkC,OAAAiG,SAAA5H,GAAAziV,EAGA9Q,EAAA,EAAwBA,EAAAshW,EAAA1+V,OAA4B5C,IAAA,CACpD,GAAAyhW,IAAAF,EAAAvhW,GAEAkyE,IACAuvR,EAAAtxV,KAAA+hE,GAGAsvR,IAAA1wV,GACA2wV,EAAAtxV,KAAAqxV,EAAAxhW,IAGAq+V,EAAA1yK,EAAA21K,EAAAthW,GAAAyhW,GAGA,UAGApD,EAAA1yK,EAAA2yK,GAIA1L,EAAAvhT,UASAuhT,EAAAvhT,UAEA2hT,EAAAkC,OAAA94S,SAAA/K,EAAA,sBAGAnxC,EAAAiQ,KAAAyiV,GAEA5hV,EAAA29U,EAAAt9S,GAEArgC,IAEA,KAAAq0B,EAAAvwB,QAEA9D,EAAA4hV,kBACA5hV,EAAAq0B,QAIAr0B,EAAA6jV,aAAA,GAKA+I,IAAAyD,EAAA,GAGA1hO,EAAAsyN,MAAAC,MAAA/hV,MAAAjQ,EAAAoS,EAAA+yB,EAAA,KAAAi4T,EAAA51C,SAAA,UAGA,IAAA/nL,EAAAsyN,MAAAuC,YACA70N,EAAAsyN,MAAAuC,WAAA,EAGA1tT,MAGA82T,KA5/BA,GAKAkC,GAJAz6T,EAAAzuB,EAAAI,UAAwB2oH,EAAAklB,SAAAj0G,GAGxBgiT,IA6DA,QAtDAjE,EAAAt9S,KAAAvgC,GACA6uH,EAAAnuF,KAAAH,GAUA/sB,WAAA+gB,EAAAuoH,SAAA,IAAAvoH,EAAAvwB,OACA8B,EAAA9B,MAAAu8B,EAAAhM,EAAAvwB,MAAA,SAAA69B,EAAA+uT,GACA,QAAAA,EAEA,QAIA/hO,GAAAgiO,wBAAA,CAOA,IAAAjN,GAAA/0N,EAAAsyN,MAAA4E,gBAAAzkV,OACAutH,GAAAsyN,MAAA4E,gBAAAnC,GAAArjT,CAEA,IAAAuwT,GAAA,SAAA3wV,GACA,kBAEA0uH,EAAAsyN,MAAA4E,gBAAA5lV,IAAA,EAGA0hC,MAEO+hT,EAGP/F,GAAAt9S,GAAA49S,YAAA,GAAA9gT,OAAA8wC,UACA0vQ,EAAAt9S,GAAAu8G,MAAAtpI,WAAA+gB,EAAAuoH,OACA+gM,EAAAt9S,GAAAy9S,YACAx9U,sBAAAqhC,EAAAruB,WAAA+gB,EAAAuoH,QACAj7G,KAAAivT,KAUAv8T,EAAAqsC,SAAAnvE,WAAAkmB,eACA,WACA4c,EAAAqsC,SAAA,GACA,MAEA,cACArsC,EAAAqsC,SAAA0kR,CACA,MAEA,YACA/wT,EAAAqsC,SAAA,GACA,MAEA,SAEArsC,EAAAqsC,SAAAptD,WAAA+gB,EAAAqsC,WAAA,EAk7BA,IA36BA,IAAAiuD,EAAAu3N,QAGA,IAAAv3N,EAAAu3N,KACA7xT,EAAAqsC,SAAArsC,EAAAuoH,MAAA,GAEAvoH,EAAAqsC,UAAAptD,WAAAq7G,EAAAu3N,OAAA,EACA7xT,EAAAuoH,OAAAtpI,WAAAq7G,EAAAu3N,OAAA,IAQA7xT,EAAA6sC,OAAAy/Q,EAAAtsT,EAAA6sC,OAAA7sC,EAAAqsC,UAOArsC,EAAA4sC,QAAAmwJ,EAAAxhN,WAAAykB,EAAA4sC,SACA5sC,EAAA4sC,MAAA,MAGA5sC,EAAAgY,WAAA+kL,EAAAxhN,WAAAykB,EAAAgY,YACAhY,EAAAgY,SAAA,MAGAhY,EAAAgoK,WAAA+0B,EAAAxhN,WAAAykB,EAAAgoK,YACAhoK,EAAAgoK,SAAA,MASAhoK,EAAAx7B,UAAAiH,GAAA,OAAAu0B,EAAAx7B,UACAw7B,EAAAx7B,QAAAw7B,EAAAx7B,QAAAtH,WAAAkmB,cAGA,SAAA4c,EAAAx7B,UACAw7B,EAAAx7B,QAAA81H,EAAAqzN,IAAAkC,OAAA8G,eAAA3qT,KAIAhM,EAAAz4B,aAAAkE,GAAA,OAAAu0B,EAAAz4B,aACAy4B,EAAAz4B,WAAAy4B,EAAAz4B,WAAArK,WAAAkmB,eAWA4c,EAAA8uT,SAAA9uT,EAAA8uT,UAAAx0N,EAAAsyN,MAAAoE,WAAA12N,EAAAsyN,MAAAsE,eA82BA,IAAAlxT,EAAAvwB,MAGA,GAAAuwB,EAAAuoH,MAAA,CAGA,GAAA8mM,GAAA/0N,EAAAsyN,MAAA4E,gBAAAzkV,OACAutH,GAAAsyN,MAAA4E,gBAAAnC,GAAArjT,CAEA,IAAAuwT,GAAA,SAAA3wV,GACA,kBAEA0uH,EAAAsyN,MAAA4E,gBAAA5lV,IAAA,EAGAysV,MAEOhJ,EAEP/F,GAAAt9S,GAAA49S,YAAA,GAAA9gT,OAAA8wC,UACA0vQ,EAAAt9S,GAAAu8G,MAAAtpI,WAAA+gB,EAAAuoH,OACA+gM,EAAAt9S,GAAAy9S,YACAx9U,sBAAAosV,EAAAp5U,WAAA+gB,EAAAuoH,QACAj7G,KAAAivT,OAGAlE,SAKA9mV,GAAA9B,MAAAu8B,EAAAhM,EAAAvwB,MAAA,SAAA69B,EAAA+uT,GAGA,QAAAA,EAMA,MALApE,GAAA59S,SACA49S,EAAA51C,SAAAp1S,IAIA,CAKAqtH,GAAAgiO,wBAAA,EAEAjE,EAAA/qT,IAiBA,MAAAtN,EAAAvwB,OAAA,OAAAuwB,EAAAvwB,OAAA,eAAA8B,EAAA9B,MAAAu8B,GAAA,IACAz6B,EAAAw3U,QAAA/8S,GA9jDA,GAAAhM,GA2BAg4T,EAGAE,EACAsE,EAEAvvV,EACA6uV,EACAvwT,EAVAkxT,EAAAjxV,UAAA,KAAAA,UAAA,GAAAxP,GAAAuV,EAAA+2E,cAAA98E,UAAA,GAAAwH,cAAAxH,UAAA,GAAAwH,WAAAw1J,OAAAu0D,EAAA98J,SAAAz0D,UAAA,GAAAwH,YAaA+pN,GAAAqsH,UAAAv7U,OACAmqV,GAAA,EAEAwE,EAAA,EACAvvV,EAAAY,KACAqqV,EAAArqV,OAGAmqV,GAAA,EAEAwE,EAAA,EACAvvV,EAAAwvV,EAAAjxV,UAAA,GAAAyB,UAAAzB,UAAA,GAAAH,EAAAG,UAAA,GAOA,IAAAysV,IACA59S,QAAA,KACAgoQ,SAAA,KACAq6C,SAAA,KA2BA,IAjBA1E,GAAA19N,EAAA/yC,UACA0wQ,EAAA59S,QAAA,GAAAigF,GAAA/yC,QAAA,SAAA7sC,EAAAq+B,GACAk/Q,EAAA51C,SAAA3nQ,EACAu9S,EAAAyE,SAAA3jR,KAIA0jR,GACAX,EAAAtwV,UAAA,GAAAwH,YAAAxH,UAAA,GAAAxP,EACAuvC,EAAA//B,UAAA,GAAA+/B,SAAA//B,UAAA,GAAApQ,IAEA0gW,EAAAtwV,UAAAgxV,GACAjxT,EAAA//B,UAAAgxV,EAAA,MAGAvvV,EAAAk8U,EAAAl8U,IAUA,YAPAgrV,EAAA59S,UACAyhT,GAAAvwT,IAAA,IAAAA,EAAAomT,mBAGAsG,EAAA51C,WAFA41C,EAAAyE,YAUA,IAAAV,GAAA/uV,EAAA1P,OACAg7V,EAAA,CASA,+CAAAzzU,KAAAg3U,KAAAvqV,EAAA+2E,cAAA/8C,GAAA,CAEA,GAAAoxT,GAAAH,EAAA,CAEAjxT,KAGA,QAAA5wC,GAAAgiW,EAA0ChiW,EAAA6Q,UAAAjO,OAAsB5C,IAIhEoiO,EAAA1/N,QAAAmO,UAAA7Q,MAAA,wBAAAmqB,KAAAtZ,UAAA7Q,MAAA,MAAAmqB,KAAAtZ,UAAA7Q,IAGMoiO,EAAA98J,SAAAz0D,UAAA7Q,KAAAoiO,EAAA1/N,QAAAmO,UAAA7Q,IACN4wC,EAAAshC,OAAArhE,UAAA7Q,GAEMoiO,EAAAxhN,WAAA/P,UAAA7Q,MACN4wC,EAAAy8J,SAAAx8L,UAAA7Q,IANA4wC,EAAA8gC,SAAA7gE,UAAA7Q,GAmBA,GAAAk/E,EAEA,QAAAiiR,GACA,aACAjiR,EAAA,QACA,MAEA,eACAA,EAAA,SACA,MAEA,aAMA,GAAA2vQ,IAAA,GAAA1gT,OAAA8wC,SAmDA,OAhDAroE,GAAA4hE,KAAAlmE,EAAA,SAAAtS,EAAAqxC,GACAu9S,EAAAv9S,EAAAw9S,KAQAj4U,EAAA4hE,KAAAmnD,EAAAsyN,MAAAC,MAAA,SAAAlyV,EAAAu3V,GAEA,GAAA7yQ,IAAA,CAEA6yQ,IAEA3gV,EAAA4hE,KAAA++Q,EAAA,YAAA/1T,EAAA+0M,GACA,GAAA+gH,GAAA1mT,IAAA9/B,EAAA,GAAA8/B,CAEA,YAAA0mT,GAAAC,EAAA,GAAAziV,QAAAwiV,IAAA1mT,IAAA9/B,IAAA,IAAAymV,EAAA,GAAAziV,SAKA8B,EAAA4hE,KAAAlmE,EAAA,SAAArS,EAAAoxC,GAEA,GAAAA,IAAAklM,EASA,MANAghH,GAAA,IACA9E,QAAA,GAIA/tQ,GAAA,GACA,KAKAA,OAAA,QASA04Q,GAEA,cA0DA,MAnDAxmV,GAAA4hE,KAAAlmE,EAAA,SAAAtS,EAAAqxC,GACA69S,EAAA79S,EAAAw9S,KAQAj4U,EAAA4hE,KAAAmnD,EAAAsyN,MAAAC,MAAA,SAAAlyV,EAAAu3V,GACA,GAAA7yQ,IAAA,CAEA6yQ,IAEA3gV,EAAA4hE,KAAA++Q,EAAA,YAAA/1T,EAAA+0M,GACA,GAAA+gH,GAAA1mT,IAAA9/B,EAAA,GAAA8/B,CAEA,YAAA0mT,GAAAC,EAAA,GAAAziV,QAAAwiV,IAAA1mT,IAAA9/B,IAAA,IAAAymV,EAAA,GAAAziV,UAKAyiV,EAAA,KAKA3gV,EAAA4hE,KAAAlmE,EAAA,SAAArS,EAAAoxC,GAEA,GAAAA,IAAAklM,EAQA,MAJAghH,GAAA,GAAA9E,QAAA,EAGA/tQ,GAAA,GACA,KAKAA,OAAA,SASA04Q,GAEA,cACA,gBACA,WAMAxmV,EAAA4hE,KAAAlmE,EAAA,SAAAtS,EAAAqxC,GACAs9S,EAAAt9S,IAAAs9S,EAAAt9S,GAAAy9S,aAEAp6U,aAAAi6U,EAAAt9S,GAAAy9S,WAAAx9U,YAGAq9U,EAAAt9S,GAAAy9S,WAAAn8S,MACAg8S,EAAAt9S,GAAAy9S,WAAAn8S,aAGAg8S,GAAAt9S,GAAAy9S,YAMA,cAAAqS,IAAA,IAAAvwT,IAAAwxL,EAAA98J,SAAA10B,KAEAh6B,EAAA4hE,KAAA5hE,EAAA9B,MAAAu8B,EAAA+wL,EAAA98J,SAAA10B,KAAA,aAAA+F,EAAA1Z,GAEAmlM,EAAAxhN,WAAAqc,IACAA,MAKArmB,EAAA9B,MAAAu8B,EAAA+wL,EAAA98J,SAAA10B,KAAA,SAIA,IAAAqxT,KAwFA,OA7EArrV,GAAA4hE,KAAAmnD,EAAAsyN,MAAAC,MAAA,SAAAlyV,EAAAu3V,GAEAA,GAEA3gV,EAAA4hE,KAAA++Q,EAAA,YAAA/1T,EAAA+0M,GAQA,GAAA+gH,GAAA1mT,IAAA9/B,EAAA,GAAA8/B,CAEA,SAAA0mT,GAAAC,EAAA,GAAAziV,QAAAwiV,IAAA1mT,IAAA9/B,IAAA,IAAAymV,EAAA,GAAAziV,OACA,QAIA8B,GAAA4hE,KAAAlmE,EAAA,SAAArS,EAAAoxC,GAEA,GAAAA,IAAAklM,EAkBA,KAfA,IAAA3lM,GAAAwxL,EAAA98J,SAAA10B,MAEAh6B,EAAA4hE,KAAA5hE,EAAA9B,MAAAu8B,EAAA+wL,EAAA98J,SAAA10B,KAAA,aAAA+F,EAAA1Z,GAEAmlM,EAAAxhN,WAAAqc,IAGAA,EAAA,WAKArmB,EAAA9B,MAAAu8B,EAAA+wL,EAAA98J,SAAA10B,KAAA,QAGA,SAAAuwT,EAAA,CAKA,GAAAnwV,GAAA29U,EAAAt9S,EACArgC,MAAA4hV,mBAAA,IAAA0E,GAAA,KAAAA,IACA1gV,EAAA4hE,KAAAxnE,EAAA4hV,gBAAA,SAAAzyV,EAAA+hW,GACAA,EAAA5O,SAAA4O,EAAA3mN,eAIA0mN,EAAA9xV,KAAAnQ,OACW,WAAAmhW,GAAA,cAAAA,IAGX5J,EAAA,GAAA7lR,SAAA,SAUA,SAAAyvR,IACAvqV,EAAA4hE,KAAAypR,EAAA,SAAAjiW,EAAAw+B,GACA+1T,EAAA/1T,GAAA,KAGA8+T,EAAA59S,SAEA49S,EAAA51C,SAAAp1S,IAKA8qV,GAEA,SAEA,IAAAxmV,EAAA+2E,cAAAwzQ,IAAA/+H,EAAA7xF,cAAA4wN,GAQM,IAAA/+H,EAAA98J,SAAA67R,IAAAxhO,EAAAm3N,UAAAqK,GAAA,CACN97T,EAAAzuB,EAAAI,UAAwB45B,EAExB,IAAAuxT,GAAA98T,EAAAqsC,SACA0wR,EAAA/8T,EAAAuoH,OAAA,CAoCA,QAjCA,IAAAvoH,EAAAowO,YACAnjQ,EAAAsE,EAAAI,QAAA,KAAA1E,GAAAoyB,WAIA9tB,EAAA4hE,KAAAlmE,EAAA,SAAAk7L,EAAAn8J,GAEA/sB,WAAA+gB,EAAAg9T,SACAh9T,EAAAuoH,MAAAw0M,EAAA99U,WAAA+gB,EAAAg9T,SAAA70J,EACQ40B,EAAAxhN,WAAAykB,EAAAg9T,WACRh9T,EAAAuoH,MAAAw0M,EAAA/8T,EAAAg9T,QAAAniW,KAAAmxC,EAAAm8J,EAAA6zJ,IAKAh8T,EAAAi9T,OAEAj9T,EAAAqsC,SAAAptD,WAAA69U,KAAA,wBAAAh4U,KAAAg3U,GAAA,IAAA/K,GAKA/wT,EAAAqsC,SAAAjsD,KAAAE,IAAA0f,EAAAqsC,UAAArsC,EAAAowO,UAAA,EAAAjoE,EAAA6zJ,GAAA7zJ,EAAA,GAAA6zJ,GAAA,IAAAh8T,EAAAqsC,SAAA,MAKAiuD,EAAAm3N,UAAAqK,GAAAjhW,KAAAmxC,IAAAhM,MAA0EmoK,EAAA6zJ,EAAA/uV,EAAAgrV,EAAA59S,QAAA49S,EAAAxsV,KAM1EssV,IAEA,GAAAmF,GAAA,6BAAApB,EAAA,+EAQA,OANA7D,GAAA59S,QACA49S,EAAAyE,SAAA,GAAA7tV,OAAAquV,IACOpxV,EAAAw6D,SACPA,QAAAC,IAAA22R,GAGAnF,IAzDAl+Q,EAAA,QAqEA,GAAAghR,IACAE,WAAA,KACAD,aAAA,KACAG,aAAA,KACAK,qBAAA,KACAE,sBAAA,KACAJ,WAAA,KACAO,QAAA,KACAC,OAAA,KACAC,OAAA,MAKAhhW,IAomCA0W,GAAA4hE,KAAAlmE,EAAA,SAAAtS,EAAAqxC,GAEA+wL,EAAA0tF,OAAAz+Q,IACAmsT,EAAAnsT,EAAArxC,KAaAqlC,EAAAzuB,EAAAI,UAAqB2oH,EAAAklB,SAAAj0G,GACrBvL,EAAAuvT,KAAA9vR,SAAAz/B,EAAAuvT,KAAA,GACA,IAAA4N,GAAA,EAAAn9T,EAAAuvT,KAAA,CAEA,IAAAvvT,EAAAuvT,KAGA,OAAApnV,GAAA,EAAmBA,EAAAg1V,EAAuBh1V,IAAA,CAI1C,GAAAi1V,IACA70M,MAAAvoH,EAAAuoH,MACAvwG,SAAAhY,EAAAgY,SAKA7vC,KAAAg1V,EAAA,IACAC,EAAA54V,QAAAw7B,EAAAx7B,QACA44V,EAAA71V,WAAAy4B,EAAAz4B,WACA61V,EAAAp1J,SAAAhoK,EAAAgoK,UAGA04E,EAAAzzQ,EAAA,UAAAmwV,GASA,MAAArF,KAIAz9N,GAAA/oH,EAAAI,OAAA+uQ,EAAApmJ,GAEAA,EAAAomJ,SAOA,IAAA0uE,GAAAtjV,EAAAsrK,uBAAA64K,CAMA,KAAA31N,EAAAsyN,MAAAoE,UAAAjlV,EAAAszR,SAAA5zR,EAAA,CACA,GAAA4xV,GAAA,WAEAtxV,EAAAszR,QACA+vD,EAAA,SAAAz2S,GAEA,MAAA1sC,YAAA,WACA0sC,GAAA,IACO,KAIPlX,KAEA2tT,EAAAtjV,EAAAsrK,uBAAA64K,EAKAoN,KAGAtxV,EAAAgiE,iBAAA,mBAAAsvR,GA4kBA,MA9GAthV,GAAAu+G,WAEAv+G,IAAAjQ,IAEAiQ,EAAA8+D,GAAA+7O,SAAAl2C,EAEA3kQ,EAAA8+D,GAAA+7O,SAAAp3K,SAAAllB,EAAAklB,UAQAjuI,EAAA4hE,MAAA,sBAAAx4E,EAAA2J,GACAg2H,EAAAm3N,UAAA,QAAAntV,GAAA,SAAA0nC,EAAAT,EAAAgtT,EAAA+E,EAAArwV,EAAAgrV,GACA,GAAAj4T,GAAAzuB,EAAAI,UAA0B45B,GAC1BqhC,EAAA5sC,EAAA4sC,MACAo7H,EAAAhoK,EAAAgoK,SACAu1J,KACAC,GAAwBx1V,OAAA,GAAAs/L,UAAA,GAAA2b,aAAA,GAAAu0H,WAAA,GAAAC,cAAA,GAExBz3S,GAAAx7B,UAAAiH,IAGAu0B,EAAAx7B,QAAA,SAAAF,EAAA,WAAAg2H,EAAAqzN,IAAAkC,OAAA8G,eAAA3qT,GAAA,+BAGAhM,EAAA4sC,MAAA,WAEA,IAAA2rR,GAAA3rR,GACAA,EAAA/xE,KAAAoS,IAIA,QAAApR,KAAA2hW,GACA,GAAAA,EAAAzhW,eAAAF,GAAA,CAGA0hW,EAAA1hW,GAAAmwC,EAAAlkC,MAAAjM,EAIA,IAAAq5V,GAAAvH,EAAA3hD,iBAAAhgQ,EAAAnwC,EACA2hW,GAAA3hW,GAAA,SAAAyI,GAAA4wV,EAAA,MAAAA,GAIAqI,EAAAj3V,SAAA0lC,EAAAlkC,MAAAxB,SACA0lC,EAAAlkC,MAAAxB,SAAA,UAGA05B,EAAAgoK,SAAA,WAEA,OAAAnsM,KAAA0hW,GACAA,EAAAxhW,eAAAF,KACAmwC,EAAAlkC,MAAAjM,GAAA0hW,EAAA1hW,GAKA08V,KAAA+E,EAAA,IACAt1J,GACAA,EAAAntM,KAAAoS,KAEAgrV,GACAA,EAAA51C,SAAAp1S,KAKAqtH,EAAAtuF,EAAAwxT,EAAAx9T,MAKAzuB,EAAA4hE,MAAA,qBAAAx4E,EAAA2J,GACAg2H,EAAAm3N,UAAA,OAAAntV,GAAA,SAAA0nC,EAAAT,EAAAgtT,EAAA+E,EAAArwV,EAAAgrV,GACA,GAAAj4T,GAAAzuB,EAAAI,UAA0B45B,GAC1By8J,EAAAhoK,EAAAgoK,SACA8zJ,GAAuBz1V,QAAA,OAAA/B,EAAA,IAIvB,KAAAi0V,IACAv4T,EAAA4sC,MAAA,MAGA5sC,EAAAgoK,SADAuwJ,IAAA+E,EAAA,EACA,KAEA,WACAt1J,GACAA,EAAAntM,KAAAoS,KAEAgrV,GACAA,EAAA51C,SAAAp1S,IAOA+yB,EAAAx7B,UAAAiH,IACAu0B,EAAAx7B,QAAA,OAAAF,EAAA,eAGAg2H,EAAAzsH,KAAAiuV,EAAA97T,MAIAs6F,GACExuH,OAAA63D,QAAA73D,OAAA4uH,OAAA5uH,4BAAAC,aAAAN,Op5BqlvGI,SAAU/Q,EAAQD,EAASH,GAEjC,Yq5B9u4GA,SAAAsoD,GAAAC,EAAAC,GAAiD,KAAAD,YAAAC,IAA0C,SAAAhmD,WAAA,qCAE3F,QAAAsmD,GAAA1W,EAAA7xC,GAAiD,IAAA6xC,EAAa,SAAAoX,gBAAA,4DAAyF,QAAAjpD,GAAA,gBAAAA,IAAA,kBAAAA,GAAA6xC,EAAA7xC,EAEvJ,QAAA6oD,GAAAC,EAAAC,GAA0C,qBAAAA,IAAA,OAAAA,EAA+D,SAAA9mD,WAAA,iEAAA8mD,GAAuGD,GAAA7nD,UAAAT,OAAAsZ,OAAAivC,KAAA9nD,WAAyEovC,aAAelwC,MAAA2oD,EAAAnoD,YAAA,EAAAq3B,UAAA,EAAAt3B,cAAA,KAA6EqoD,IAAAvoD,OAAAkoD,eAAAloD,OAAAkoD,eAAAI,EAAAC,GAAAD,EAAAF,UAAAG,GANrX,GAAAX,GAAA,WAAgC,QAAA6vB,GAAAl1E,EAAAoN,GAA2C,OAAArQ,GAAA,EAAgBA,EAAAqQ,EAAAzN,OAAkB5C,IAAA,CAAO,GAAAqoD,GAAAh4C,EAAArQ,EAA2BqoD,GAAAxnD,WAAAwnD,EAAAxnD,aAAA,EAAwDwnD,EAAAznD,cAAA,EAAgC,SAAAynD,OAAAnwB,UAAA,GAAuDx3B,OAAAC,eAAAsC,EAAAolD,EAAArlD,IAAAqlD,IAA+D,gBAAAF,EAAAI,EAAAC,GAA2L,MAAlID,IAAA4vB,EAAAhwB,EAAAhnD,UAAAonD,GAAqEC,GAAA2vB,EAAAhwB,EAAAK,GAA6DL,MAgDxhBxR,GACA3mC,QAAArQ,EAAA,KACA6vC,QAAA7vC,EAAA,IACA6D,KAAA7D,EAAA,IACAgvF,KAAAhvF,EAAA,MAGA4B,EAAA5B,EAAA,GACAqU,EAAArU,EAAA,GACAmsH,EAAAnsH,EAAA,KACAggI,EAAAhgI,EAAA,KAEA0jL,EAAA,SAAAh3D,GAGA,QAAAg3D,GAAAhzK,GACA43C,EAAA/0C,KAAAmwK,EAEA,IAAAxyI,GAAA4X,EAAAv1C,MAAAmwK,EAAAv6H,WAAApoD,OAAAmoD,eAAAw6H,IAAAnjL,KAAAgT,KAAA7C,GAOA,OALAwgC,GAAAiyT,kBAAA,KAIAjyT,EAAAutI,aAAAvtI,EAAAutI,aAAA97H,KAAAzR,GACAA,EAsIA,MAlJAkY,GAAAs6H,EAAAh3D,GAeA/jE,EAAA+6H,IACArgL,IAAA,oBACA3C,MAAA,WACA6S,KAAAkrK,gBAIA,IAAAlrK,KAAA7C,MAAA0yV,YACA7vV,KAAA8vV,sBAIAhgW,IAAA,qBACA3C,MAAA,SAAAq3I,GACA/gG,EAAAnH,QAAAkoG,EAAA6rC,UAAArwK,KAAA7C,MAAAkzK,aACA,SAAArwK,KAAA7C,MAAA4yV,kBACA/vV,KAAAgwV,iBACS,WAAAhwV,KAAA7C,MAAA4yV,mBACT/vV,KAAA8vV,mBAGA9vV,KAAAiwV,yBAIAngW,IAAA,uBACA3C,MAAA,WACA6S,KAAAgwV,iBACAhwV,KAAAkwV,oBAAAlwV,KAAAmwV,iBAEAnwV,KAAA4vV,mBACApuV,aAAAxB,KAAA4vV,sBASA9/V,IAAA,eACA3C,MAAA,SAAAmkI,GAKA,GAJAA,QAEAtxH,KAAA4vV,kBAAA,KAEA,MAAA5vV,KAAA7C,MAAAkzK,UAAA,CAIA/+C,EAAA71F,KACAgxF,EAAAzsH,KAAAmwV,gBAAA,WACO7+N,EAAA8+N,QACP3jO,EAAAzsH,KAAAmwV,gBAAA,eAIA,IAAAh+T,GAAAsR,EAAAg4C,KAAAz7E,KAAA7C,MAAAsmC,EAAAnzC,KAAA6/K,EAAA78J,WACAm5G,GAAAzsH,KAAAmwV,gBAAAnwV,KAAA7C,MAAAkzK,UAAAl+I,OAQAriC,IAAA,qBACA3C,MAAA,WACA6S,KAAA4vV,oBAIA5vV,KAAA4vV,kBAAAxxV,WAAA4B,KAAAkrK,aAAA,OAUAp7K,IAAA,gBACA3C,MAAA,WACA,GAAAqmB,GAAA1S,EAAA8pE,YAAA5qE,KAEA,oBAAAA,KAAA7C,MAAAkzV,oBACA78U,EAAAjX,SACO,MAAAyD,KAAA7C,MAAAkzV,oBACP78U,EAAA2sI,iBAAAngJ,KAAA7C,MAAAkzV,qBAEA78U,KAIA1jB,IAAA,mBACA3C,MAAA,WACAs/H,EAAAzsH,KAAAmwV,gBAAA,mBAGArgW,IAAA,iBACA3C,MAAA,WACAs/H,EAAAzsH,KAAAmwV,gBAAA,cAQArgW,IAAA,sBACA3C,MAAA,SAAA4C,GACAA,EAAAL,OACA+zC,EAAA3mC,QAAA/M,EAAAiQ,KAAAkwV,qBAEAzjO,EAAAC,UAAAC,WAAA58H,GAAA,0BAUAD,IAAA,SACA3C,MAAA,WACA,MAAA6S,MAAA7C,MAAAZ,aAIA4zK,GACC9hL,EAAA8qE,UAEDg3G,GAAA78J,WACA+8J,UAAAz3D,EAAA/lH,IACA0J,SAAAq8G,EAAAz6E,QAAAiqC,WACAynR,WAAAj3O,EAAAzvD,KACAknS,oBAAAz3O,EAAAjmH,OACAo9V,kBAAAn3O,EAAAjmH,QAIAw9K,EAAAp3H,cACAs3H,UAAA,KACAw/K,YAAA,EACAQ,oBAAA,KACAN,kBAAA,QAGAljW,EAAAD,QAAAujL,Gr5Buv4GM,SAAUtjL,EAAQD,EAASH,GAEjC,Ys5Bn64GA,SAAA6jW,GAAAxlM,EAAAulB,GACA5sI,EAAA91B,SAAAm9I,KACAulB,EAAAvlB,EACAA,EAAA,GAGA,IAAAh7J,GAAA,4BAAAygW,IAAAzlM,CAGA,IAAAr+B,EAAAG,wBACA,MAAA98H,EAGA,QAAA8N,KAAA6uH,EAAA+jO,eACA,wHAIA,OADA/jO,GAAA+jO,eAAA1gW,EAAAugL,GACAvgL,EAxEA,GAAA2zC,IACA91B,SAAAlhB,EAAA,KAEAggI,EAAAhgI,EAAA,KAEA8jW,EAAA,CAsEA1jW,GAAAD,SACA0jW,mBt5Bm+4GM,SAAUzjW,EAAQD,EAASH,GAEjC,Yu5B/i5GA,SAAAsoD,GAAAC,EAAAC,GAAiD,KAAAD,YAAAC,IAA0C,SAAAhmD,WAAA,qCAE3F,QAAAsmD,GAAA1W,EAAA7xC,GAAiD,IAAA6xC,EAAa,SAAAoX,gBAAA,4DAAyF,QAAAjpD,GAAA,gBAAAA,IAAA,kBAAAA,GAAA6xC,EAAA7xC,EAEvJ,QAAA6oD,GAAAC,EAAAC,GAA0C,qBAAAA,IAAA,OAAAA,EAA+D,SAAA9mD,WAAA,iEAAA8mD,GAAuGD,GAAA7nD,UAAAT,OAAAsZ,OAAAivC,KAAA9nD,WAAyEovC,aAAelwC,MAAA2oD,EAAAnoD,YAAA,EAAAq3B,UAAA,EAAAt3B,cAAA,KAA6EqoD,IAAAvoD,OAAAkoD,eAAAloD,OAAAkoD,eAAAI,EAAAC,GAAAD,EAAAF,UAAAG,GARrX,GAAArjC,GAAAllB,OAAAmlB,QAAA,SAAA5iB,GAAmD,OAAAjD,GAAA,EAAgBA,EAAA6Q,UAAAjO,OAAsB5C,IAAA,CAAO,GAAA8C,GAAA+N,UAAA7Q,EAA2B,QAAAgD,KAAAF,GAA0BpC,OAAAS,UAAAC,eAAAlB,KAAA4C,EAAAE,KAAyDC,EAAAD,GAAAF,EAAAE,IAAiC,MAAAC,IAE/OqlD,EAAA,WAAgC,QAAA6vB,GAAAl1E,EAAAoN,GAA2C,OAAArQ,GAAA,EAAgBA,EAAAqQ,EAAAzN,OAAkB5C,IAAA,CAAO,GAAAqoD,GAAAh4C,EAAArQ,EAA2BqoD,GAAAxnD,WAAAwnD,EAAAxnD,aAAA,EAAwDwnD,EAAAznD,cAAA,EAAgC,SAAAynD,OAAAnwB,UAAA,GAAuDx3B,OAAAC,eAAAsC,EAAAolD,EAAArlD,IAAAqlD,IAA+D,gBAAAF,EAAAI,EAAAC,GAA2L,MAAlID,IAAA4vB,EAAAhwB,EAAAhnD,UAAAonD,GAAqEC,GAAA2vB,EAAAhwB,EAAAK,GAA6DL,MAmDxhBxR,GACA6hC,KAAA74E,EAAA,KACAqX,OAAArX,EAAA,KACAqQ,QAAArQ,EAAA,KACA6vC,QAAA7vC,EAAA,IACA6D,KAAA7D,EAAA,IACAgvF,KAAAhvF,EAAA,KACAkQ,IAAAlQ,EAAA,MAEA4B,EAAA5B,EAAA,GACAqU,EAAArU,EAAA,GACAmsH,EAAAnsH,EAAA,KACAyvH,EAAAzvH,EAAA,KACAysH,EAAAzsH,EAAA,KAAAoU,QACA4rH,EAAAhgI,EAAA,KAGAgkW,EAAA,mBAAAxyV,iBAAAsrK,uBAAAtrK,OAAAkiO,6BAAAliO,OAAAiiO,0BAAA,SAAAp1L,GACA7sC,OAAAG,WAAA0sC,EAAA,IAIA2lT,GAAA,mBAAAxyV,SAAAwyV,EAAArhT,KAAAnxC,OAEA,IAAAyyV,GAAA,mBAAAzyV,iBAAAurK,sBAAAvrK,OAAA0yV,4BAAA1yV,OAAA2yV,yBAAA,SAAA7uV,GACA9D,OAAAuD,aAAAO,IAGA2uV,GAAA,mBAAAzyV,SAAAyyV,EAAAthT,KAAAnxC,OAKA,IAAA4yV,GAAA,SAAA13O,GAGA,QAAA03O,KACA,GAAAjyV,GAEA82D,EAAA/3B,EAAAo1R,CAEAh+Q,GAAA/0C,KAAA6wV,EAEA,QAAAt8R,GAAA52D,UAAAjO,OAAA2S,EAAA/S,MAAAilE,GAAA10D,EAAA,EAAmEA,EAAA00D,EAAa10D,IAChFwC,EAAAxC,GAAAlC,UAAAkC,EAGA,OAAA61D,GAAA/3B,EAAA4X,EAAAv1C,MAAApB,EAAAiyV,EAAAj7S,WAAApoD,OAAAmoD,eAAAk7S,IAAA7jW,KAAA0T,MAAA9B,GAAAoB,MAAAN,OAAA2C,KAAAs7B,EAAAmzT,UAAA,SAAAnzT,EAAAozT,mBAAA,SAAAv9U,EAAAinG,GACA98E,EAAAmzT,UAAAr2O,EAAA,kBACK98E,EAAAqzT,kBAAA,WACLrzT,EAAAmzT,UAAA,QACKnzT,EAAAszT,YAAA,SAAAz9U,EAAAksB,GACL,OAAA/B,EAAAmzT,WACA,aACAnzT,EAAAxgC,MAAA+zV,eAAA19U,EAAAksB,EACA,MACA,aACA/B,EAAAxgC,MAAAg0V,cAAA39U,EAAAksB,EACA,MACA,YACA/B,EAAAxgC,MAAAi0V,cAAA59U,EAAAksB,KAbAqzR,EAgBKr9P,EAAAngB,EAAA5X,EAAAo1R,GA4BL,MAzDAl9Q,GAAAg7S,EAAA13O,GAoCA/jE,EAAAy7S,IACA/gW,IAAA,uBACA3C,MAAA,WAEAs/H,EAAAC,UAAAC,WAAA7rH,EAAA8pE,YAAA5qE,OAAA,0BAGAlQ,IAAA,SACA3C,MAAA,WACA,GAAAkkW,GAAA5tT,EAAAg4C,KAAAz7E,KAAA7C,MAAAsmC,EAAAnzC,KAAAugW,EAAAv9U,WAEA,OAAAjlB,GAAA8P,cAAA+6G,EAAAxmG,KAAwD2+U,GACxDtvV,QAAA,KACAu5G,eAAAt7G,KAAAixV,YACA33O,QAAA,EACAwB,QAAA96G,KAAA+wV,mBACA71O,OAAAl7G,KAAAgxV,oBACOhxV,KAAA7C,MAAAZ,cAIPs0V,GACCxiW,EAAA8qE,UAED03R,GAAAv9U,WACA/W,SAAAq8G,EAAAz6E,QAAAiqC,WACA8oR,eAAAt4O,EAAAh+G,KAAAwtE,WACA+oR,cAAAv4O,EAAAh+G,KAAAwtE,WACAgpR,cAAAx4O,EAAAh+G,KAAAwtE,WAGA,IAAAgqH,GAAA,SAAAk/J,GAGA,QAAAl/J,GAAAj1L,GACA43C,EAAA/0C,KAAAoyL,EAEA,IAAA1xI,GAAAnL,EAAAv1C,MAAAoyL,EAAAx8I,WAAApoD,OAAAmoD,eAAAy8I,IAAAplM,KAAAgT,KAAA7C,GAgBA,OAdAujD,GAAA6wS,yBAAA,KACA7wS,EAAA8wS,gCACA9wS,EAAA+wS,aACA/wS,EAAAgxS,YAEAhxS,EAAAixS,WACAjxS,EAAAkxS,YAAA,EAEAlxS,EAAAmxS,gBAAAnxS,EAAAmxS,gBAAAziT,KAAAsR,GACAA,EAAAoxS,eAAApxS,EAAAoxS,eAAA1iT,KAAAsR,GACAA,EAAAqxS,eAAArxS,EAAAqxS,eAAA3iT,KAAAsR,GAEAA,EAAAsxS,eAAAtxS,EAAAsxS,eAAA5iT,KAAAsR,GACAA,EAAAuxS,WAAAvxS,EAAAuxS,WAAA7iT,KAAAsR,GACAA,EA8SA,MAnUA7K,GAAAu8I,EAAAk/J,GAwBAl8S,EAAAg9I,IACAtiM,IAAA,uBACA3C,MAAA,WACA6S,KAAAuxV,0BACAb,EAAA1wV,KAAAuxV,0BAGA9tT,EAAA3mC,QAAAkD,KAAA2xV,QAAA,SAAApyH,GACA/9N,aAAA+9N,KAGA97L,EAAA3mC,QAAAkD,KAAAwxV,6BAAA,SAAA5sM,GACA8rM,EAAA9rM,KAKA5kJ,KAAA4xV,YAAA,KAGA9hW,IAAA,SACA3C,MAAA,WAEA,GAAA+kW,GAAAzuT,EAAAg4C,KAAAz7E,KAAA7C,MAAAsmC,EAAAnzC,KAAA8hM,EAAA9+K,WAEA,OAAAjlB,GAAA8P,cAAA+9G,EAAAg2O,EAAAlyV,KAAAq9B,YAAA80T,iBAAA1lO,EAAAG,wBAAAv+H,EAAAwO,SAAAF,IAAAqD,KAAA7C,MAAAZ,SAIA,SAAAQ,GACA,MAAAA,IAAA1O,EAAA8P,cAAA+6G,GAAyDn3G,QAAA,GAAahF,KALtE1O,EAAAwO,SAAAF,IAAAqD,KAAA7C,MAAAZ,SAAAyD,KAAAiyV,gBASAniW,IAAA,kBACA3C,MAAA,SAAAqmB,EAAA4+U,GACA,GAAA5wS,GAAAxhD,IAEA,IAAAA,KAAA7C,MAAA0yV,WACA7vV,KAAA8xV,eAAAt+U,EAAA4+U,OACO,CACPpyV,KAAA8vV,iBAAAt8U,EAAAxT,KAAA7C,MAAAq8G,MAKA,IAAA58G,GAAAwB,WAAA,WACA,GAAA6kN,GAAAzhK,EAAAmwS,QAAAxhW,QAAAyM,EACAqmN,IAAA,GACAzhK,EAAAmwS,QAAA7yO,OAAAmkG,EAAA,GAGAmvI,KACS,EACTpyV,MAAA2xV,QAAA10V,KAAAL,OAIA9M,IAAA,iBACA3C,MAAA,SAAAqmB,EAAA4+U,GACApyV,KAAAqyV,uBAAAryV,KAAA7C,MAAAq8G,MAAA44O,KAOApyV,KAAA8vV,iBAAAt8U,EAAAxT,KAAA7C,MAAAszK,OACA1xG,UAAAnhE,GACAu8L,aAAAv8L,KAKA6lC,EAAA3mC,QAAAkD,KAAA7C,MAAAm1V,eAAA,SAAAjgS,EAAAviE,GACA28H,EAAAqzN,IAAAC,iBAAAvsU,EAAA1jB,EAAAuiE,KAGAryD,KAAAyxV,UAAAx0V,MACAuW,OACA4+U,WAGApyV,KAAAuyV,gBAGAziW,IAAA,iBACA3C,MAAA,SAAAqmB,EAAA4+U,GACApyV,KAAAqyV,uBAAAryV,KAAA7C,MAAAszK,MAAA2hL,KAEApyV,KAAA0xV,SAAAz0V,MACAuW,OACA4+U,WAGApyV,KAAAuyV,gBAWAziW,IAAA,yBACA3C,MAAA,SAAAqlW,EAAAJ,GACA,SAAAl0V,SAAAszR,QAAA,MAAAxxR,KAAAyyV,oBAAAD,GAAAniL,aACA+hL,KAEA,MAMAtiW,IAAA,YACA3C,MAAA,WACA6S,KAAAuxV,2BAMAvxV,KAAAuxV,yBAAAd,EAAAzwV,KAAAgyV,oBAMAliW,IAAA,iBACA3C,MAAA,WACA6S,KAAAuxV,yBAAA,KAEAvxV,KAAA0yV,eAAA,EAAA1yV,KAAAyxV,UAAAzxV,KAAA7C,MAAAq8G,OACAx5G,KAAA0yV,eAAA,EAAA1yV,KAAA0xV,SAAA1xV,KAAA7C,MAAAszK,OAEAzwK,KAAAyxV,aACAzxV,KAAA0xV,eAOA5hW,IAAA,sBACA3C,MAAA,SAAAqlW,GACA,GAAAniL,GAAAl+I,EAAAl4B,CAYA,OAVA,gBAAAu4V,IACAniL,EAAAmiL,EACAv4V,EAAA,KACAk4B,OAEAk+I,EAAA,MAAAmiL,IAAAniL,UAAA,KACAp2K,EAAA,MAAAu4V,IAAAv4V,MAAA,KACAk4B,EAAAsR,EAAAg4C,KAAA+2Q,EAAA,uBAIAniL,YACAp2K,QACAk4B,WAIAriC,IAAA,gBACA3C,MAAA,SAAAwlW,EAAA/wV,EAAA4wV,GACA,GAAAlvS,GAAAtjD,IAEA,QAAA4B,EAAAlS,OAAA,CAIA,GAAAw/H,GAAAzrF,EAAA9mC,IAAAiF,EAAA,QACAgxV,EAAAnvT,EAAA9mC,IAAAiF,EAAA,UAEAixV,EAAA7yV,KAAAyyV,oBAAAD,GACAniL,EAAAwiL,EAAAxiL,UACAp2K,EAAA44V,EAAA54V,MACAk4B,EAAA0gU,EAAA1gU,IAUAwgU,KACAlvT,EAAAnH,QAAAt8B,KAAA7C,MAAA21V,gBAAmDn8V,QAAA,OAAc,gBAAAsgB,KAAAo5J,IAAA,MAAAp5J,KAAAo5J,MACjEp2K,EAAAwpC,EAAA3/B,UAA6B9D,KAAA7C,MAAA21V,eAAA74V,KAQ7B,MAAAA,GACAwpC,EAAA6hC,KAAArrE,EAAA,SAAA9M,EAAA2C,GACA28H,EAAAs3N,KAAA70N,EAAAp/H,EAAA3C,IAIA,IAAAilW,GAAA,WAEA9uS,EAAAsuS,YAIAgB,EAAAj2V,IAAA,SAAAy1V,GACAA,MASAO,IACAP,IACAA,EAAA,MAEA3lO,EAAAyC,EAAA,OAGA,IAAA6jO,EACA,IAAAX,GAAAjgU,EAAAgoK,SAAA,CACA,GAAA64J,GAAA7gU,EAAAgoK,QACA44J,GAAA,WACAX,IAEAY,EAAAtyV,MAAAV,KAAArC,gBAIAo1V,GAAAX,GAAAjgU,EAAAgoK,QAMA,IAAAv9L,GAAA6zV,EAAA,WACA,GAAAxtI,GAAA3/J,EAAAkuS,6BAAArhW,QAAAyM,EACAqmN,IAAA,GACA3/J,EAAAkuS,6BAAA1yO,OAAAmkG,EAAA,GAGAx2F,EAAAyC,EAAAmhD,EAAA5sI,EAAA3/B,UAA8CquB,GAC9CgoK,SAAA44J,MAIA/yV,MAAAwxV,6BAAAv0V,KAAAL,OAGA9M,IAAA,mBACA3C,MAAA,SAAAqmB,EAAAg/U,EAAAS,GACA,GAAAJ,GAAA7yV,KAAAyyV,oBAAAD,GACAniL,EAAAwiL,EAAAxiL,UACAp2K,EAAA44V,EAAA54V,MACAk4B,EAAAsR,EAAA3/B,UAA4B+uV,EAAA1gU,KAAA8gU,EAE5B,OAAAh5V,GACAwpC,EAAA6hC,KAAArrE,EAAA,SAAA9M,EAAA2C,GACA28H,EAAAs3N,KAAAvwU,EAAA1jB,EAAA3C,KAIA,MAAAkjL,IAIA5jD,EAAAj5G,EAAA68J,EAAAl+I,GACAs6F,EAAAj5G,EAAA,oBAIA1jB,IAAA,aACA3C,MAAA,SAAA4P,GAGA,MAAAA,GAIA1O,EAAA8P,cAAA0yV,GACA/gW,IAAAiN,EAAAjN,IACAohW,eAAAlxV,KAAA6xV,gBACAV,cAAAnxV,KAAA8xV,eACAV,cAAApxV,KAAA+xV,gBACOh1V,GARP,SAYAq1L,GACC/jM,EAAA8qE,UAEDi5H,GAAA+/J,iBAAA,EAEA//J,EAAA9+K,WACAu8U,WAAAj3O,EAAAzvD,KACAqwD,MAAAZ,EAAA/lH,IACA49K,MAAA73D,EAAA/lH,IACA0J,SAAAq8G,EAAA/lH,IACAy/V,eAAA15O,EAAA7qH,OACA+kW,eAAAl6O,EAAA7qH,QAGAqkM,EAAAr5I,cACA82S,YAAA,EACAr2O,MAAA,KACAi3D,MAAA,KACA6hL,gBACA37V,QAAA,QAEAm8V,gBACAn8V,QAAA,KAIA9J,EAAAD,QAAAwlM,Gv5B0j5GM,SAAUvlM,EAAQD,EAASH,Iw5Bpj6GjC,SAAAyhB,GAAArhB,EAAAD,QAEA,WACA,GAAAshB,EAAAo6Q,KACA,IAEA,MADA,IAAAA,OAAA,SAA0B9rR,KAAA,eAC1B8rR,KACK,MAAA3oP,IAGL,GAAAuzT,GAAAhlV,EAAAg7Q,mBACAh7Q,EAAAi7Q,gBACAj7Q,EAAAilV,aAEA,iBAAAjlR,EAAAklR,GACA,GAAAC,GAAA,GAAAH,GACAI,EAAAF,EAAAE,QACA92V,EAAA42V,EAAA52V,IAEA,IAAA82V,EAAA,OAAAxmW,GAAA,EAAAkV,EAAAksE,EAAAx+E,OAAkD5C,EAAAkV,IAASlV,EAC3DumW,EAAAl3M,OAAAjuE,EAAAphF,GAAAwmW,OACK,QAAAxmW,GAAA,EAAAkV,EAAAksE,EAAAx+E,OAAwC5C,EAAAkV,IAASlV,EACtDumW,EAAAl3M,OAAAjuE,EAAAphF,GAGA,OAAA0P,GAAA62V,EAAAhqE,QAAA7sR,GAAA62V,EAAAhqE,gBx5B0j6G6Br8R,KAAKJ,EAASH,EAAoB","file":"./Client/Generated/v4/all_370071ace459ca055ce8.js","sourcesContent":["var DevPortal =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 462);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = React;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = __webpack_require__(33);\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(942)(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = __webpack_require__(941)();\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return PRESENTATION_ATTRIBUTES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return EVENT_ATTRIBUTES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"r\", function() { return SCALE_TYPES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"o\", function() { return LEGEND_TYPES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"p\", function() { return TOOLTIP_TYPES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return getDisplayName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return findAllByType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return findChildByType; });\n/* unused harmony export withoutType */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return getPresentationAttributes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return filterEventAttributes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"n\", function() { return filterEventsOfChild; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return validateWidthHeight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"m\", function() { return isSsr; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"q\", function() { return filterSvgElements; });\n/* unused harmony export isSingleChildEqual */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return isChildrenEqual; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"l\", function() { return renderByOrder; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return getReactEventByType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return parseChildIndex; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isNil__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isNil___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isNil__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isString__ = __webpack_require__(134);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isString___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_isString__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isObject__ = __webpack_require__(21);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isObject___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_isObject__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_isArray__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_isArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_lodash_isArray__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__PureRender__ = __webpack_require__(3);\n\n\n\n\n\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\n\n\nvar PRESENTATION_ATTRIBUTES = {\n 'aria-current': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n // state\n 'aria-details': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-disabled': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n // state\n 'aria-hidden': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n // state\n 'aria-invalid': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n // state\n 'aria-keyshortcuts': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-label': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-roledescription': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n // Widget Attributes\n 'aria-autocomplete': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-checked': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-expanded': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-haspopup': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-level': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-modal': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-multiline': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-multiselectable': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-orientation': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-placeholder': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-pressed': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-readonly': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-required': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-selected': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-sort': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-valuemax': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-valuemin': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-valuenow': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-valuetext': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n // Live Region Attributes\n 'aria-atomic': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-busy': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-live': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-relevant': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n // Drag-and-Drop Attributes\n 'aria-dropeffect': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-grabbed': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n // Relationship Attributes\n 'aria-activedescendant': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-colcount': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-colindex': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-colspan': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-controls': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-describedby': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-errormessage': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-flowto': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-labelledby': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-owns': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-posinset': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-rowcount': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-rowindex': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-rowspan': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n 'aria-setsize': __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any,\n alignmentBaseline: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n angle: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number,\n baselineShift: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n clip: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n clipPath: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n clipRule: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n color: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n colorInterpolation: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n colorInterpolationFilters: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n colorProfile: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n colorRendering: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n cursor: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n direction: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['ltr', 'rtl', 'inherit']),\n display: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n dominantBaseline: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n enableBackground: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n fill: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n fillOpacity: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number]),\n fillRule: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['nonzero', 'evenodd', 'inherit']),\n filter: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n floodColor: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n floodOpacity: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number]),\n font: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n fontFamily: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n fontSize: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]),\n fontSizeAdjust: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]),\n fontStretch: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['normal', 'wider', 'narrower', 'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', 'inherit']),\n fontStyle: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['normal', 'italic', 'oblique', 'inherit']),\n fontVariant: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['normal', 'small-caps', 'inherit']),\n fontWeight: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['normal', 'bold', 'bolder', 'lighter', 100, 200, 300, 400, 500, 600, 700, 800, 900, 'inherit']),\n glyphOrientationHorizontal: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n glyphOrientationVertical: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n imageRendering: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['auto', 'optimizeSpeed', 'optimizeQuality', 'inherit']),\n kerning: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]),\n letterSpacing: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]),\n lightingColor: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n lineHeight: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]),\n markerEnd: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n markerMid: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n markerStart: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n mask: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n opacity: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]),\n overflow: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['visible', 'hidden', 'scroll', 'auto', 'inherit']),\n pointerEvents: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['visiblePainted', 'visibleFill', 'visibleStroke', 'visible', 'painted', 'fill', 'stroke', 'all', 'none', 'inherit']),\n shapeRendering: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['auto', 'optimizeSpeed', 'crispEdges', 'geometricPrecision', 'inherit']),\n stopColor: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n stopOpacity: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]),\n stroke: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]),\n strokeDasharray: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n strokeDashoffset: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]),\n strokeLinecap: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['butt', 'round', 'square', 'inherit']),\n strokeLinejoin: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['miter', 'round', 'bevel', 'inherit']),\n strokeMiterlimit: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]),\n strokeOpacity: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]),\n strokeWidth: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]),\n textAnchor: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['start', 'middle', 'end', 'inherit']),\n textDecoration: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['none', 'underline', 'overline', 'line-through', 'blink', 'inherit']),\n textRendering: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['auto', 'optimizeSpeed', 'optimizeLegibility', 'geometricPrecision', 'inherit']),\n unicodeBidi: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['normal', 'embed', 'bidi-override', 'inherit']),\n visibility: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['visible', 'hidden', 'collapse', 'inherit']),\n wordSpacing: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]),\n writingMode: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['lr-tb', 'rl-tb', 'tb-rl', 'lr', 'rl', 'tb', 'inherit']),\n transform: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n role: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n focusable: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n tabIndex: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n style: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object,\n width: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number,\n dx: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number,\n dy: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number,\n x: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number,\n r: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number,\n // The radius of Rectangle\n radius: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.array])\n};\nvar EVENT_ATTRIBUTES = {\n onClick: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func,\n onMouseDown: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func,\n onMouseUp: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func,\n onMouseOver: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func,\n onMouseMove: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func,\n onMouseOut: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func,\n onMouseEnter: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func,\n onMouseLeave: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func,\n onTouchEnd: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func,\n onTouchMove: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func,\n onTouchStart: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func,\n onTouchCancel: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func\n};\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart'\n};\nvar SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nvar LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nvar TOOLTIP_TYPES = ['none'];\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\n\nvar getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n\n if (!Comp) {\n return '';\n }\n\n return Comp.displayName || Comp.name || 'Component';\n};\n/*\n * Find and return all matched children by type. `type` can be a React element class or\n * string\n */\n\nvar findAllByType = function findAllByType(children, type) {\n var result = [];\n var types = [];\n\n if (__WEBPACK_IMPORTED_MODULE_4_lodash_isArray___default()(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n __WEBPACK_IMPORTED_MODULE_5_react___default.a.Children.forEach(children, function (child) {\n var childType = child && child.type && (child.type.displayName || child.type.name);\n\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n};\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` can be a React element class or string.\n */\n\nvar findChildByType = function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n};\n/*\n * Create a new array of children excluding the ones matched the type\n */\n\nvar withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n\n if (__WEBPACK_IMPORTED_MODULE_4_lodash_isArray___default()(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n __WEBPACK_IMPORTED_MODULE_5_react___default.a.Children.forEach(children, function (child) {\n if (child && child.type && child.type.displayName && types.indexOf(child.type.displayName) !== -1) {\n return;\n }\n\n newChildren.push(child);\n });\n return newChildren;\n};\n/**\n * get all the presentation attribute of svg element\n * @param {Object} el A react element or the props of a react element\n * @return {Object} attributes or null\n */\n\nvar getPresentationAttributes = function getPresentationAttributes(el) {\n if (!el || __WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(el)) {\n return null;\n }\n\n var props = __WEBPACK_IMPORTED_MODULE_5_react___default.a.isValidElement(el) ? el.props : el;\n\n if (!__WEBPACK_IMPORTED_MODULE_2_lodash_isObject___default()(props)) {\n return null;\n }\n\n var out = null; // eslint-disable-next-line no-restricted-syntax\n\n for (var i in props) {\n if ({}.hasOwnProperty.call(props, i) && PRESENTATION_ATTRIBUTES[i]) {\n if (!out) out = {};\n out[i] = props[i];\n }\n }\n\n return out;\n};\n\nvar getEventHandlerOfElement = function getEventHandlerOfElement(originalHandler, props) {\n return function (e) {\n originalHandler(props, e);\n return null;\n };\n};\n/**\n * get all the event attribute of svg element\n * @param {Object} el A react element or the props of a react element\n * @param {Function} newHandler New handler of event\n * @param {Boolean} wrapCallback Wrap callback and return more parameters or not\n * @return {Object} attributes or null\n */\n\n\nvar filterEventAttributes = function filterEventAttributes(el, newHandler) {\n var wrapCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!el || __WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(el)) {\n return null;\n }\n\n var props = __WEBPACK_IMPORTED_MODULE_5_react___default.a.isValidElement(el) ? el.props : el;\n\n if (!__WEBPACK_IMPORTED_MODULE_2_lodash_isObject___default()(props)) {\n return null;\n }\n\n var out = null; // eslint-disable-next-line no-restricted-syntax\n\n for (var i in props) {\n if ({}.hasOwnProperty.call(props, i) && EVENT_ATTRIBUTES[i]) {\n if (!out) out = {};\n out[i] = newHandler || (wrapCallback ? getEventHandlerOfElement(props[i], props) : props[i]);\n }\n }\n\n return out;\n};\n\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\n\nvar filterEventsOfChild = function filterEventsOfChild(props, data, index) {\n if (!__WEBPACK_IMPORTED_MODULE_2_lodash_isObject___default()(props)) {\n return null;\n }\n\n var out = null; // eslint-disable-next-line no-restricted-syntax\n\n for (var i in props) {\n if ({}.hasOwnProperty.call(props, i) && EVENT_ATTRIBUTES[i] && __WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(props[i])) {\n if (!out) out = {};\n out[i] = getEventHandlerOfChild(props[i], data, index);\n }\n }\n\n return out;\n};\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\n\nvar validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n\n if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__DataUtils__[\"a\" /* isNumber */])(width) || width <= 0 || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__DataUtils__[\"a\" /* isNumber */])(height) || height <= 0) {\n return false;\n }\n\n return true;\n};\nvar isSsr = function isSsr() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\n\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && __WEBPACK_IMPORTED_MODULE_1_lodash_isString___default()(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\n\n\nvar filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n __WEBPACK_IMPORTED_MODULE_5_react___default.a.Children.forEach(children, function (entry) {\n if (entry && entry.type && __WEBPACK_IMPORTED_MODULE_1_lodash_isString___default()(entry.type) && SVG_TAGS.indexOf(entry.type) >= 0) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\nvar isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (__WEBPACK_IMPORTED_MODULE_0_lodash_isNil___default()(nextChild) && __WEBPACK_IMPORTED_MODULE_0_lodash_isNil___default()(prevChild)) {\n return true;\n }\n\n if (!__WEBPACK_IMPORTED_MODULE_0_lodash_isNil___default()(nextChild) && !__WEBPACK_IMPORTED_MODULE_0_lodash_isNil___default()(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, [\"children\"]);\n\n if (nextChildren && prevChildren) {\n // eslint-disable-next-line no-use-before-define\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__PureRender__[\"b\" /* shallowEqual */])(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n\n if (!nextChildren && !prevChildren) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__PureRender__[\"b\" /* shallowEqual */])(nextProps, prevProps);\n }\n\n return false;\n }\n\n return false;\n};\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\n\nvar isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n\n if (__WEBPACK_IMPORTED_MODULE_5_react__[\"Children\"].count(nextChildren) !== __WEBPACK_IMPORTED_MODULE_5_react__[\"Children\"].count(prevChildren)) {\n return false;\n }\n\n var count = __WEBPACK_IMPORTED_MODULE_5_react__[\"Children\"].count(nextChildren);\n\n if (count === 0) {\n return true;\n }\n\n if (count === 1) {\n return isSingleChildEqual(__WEBPACK_IMPORTED_MODULE_4_lodash_isArray___default()(nextChildren) ? nextChildren[0] : nextChildren, __WEBPACK_IMPORTED_MODULE_4_lodash_isArray___default()(prevChildren) ? prevChildren[0] : prevChildren);\n }\n\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n\n if (__WEBPACK_IMPORTED_MODULE_4_lodash_isArray___default()(nextChild) || __WEBPACK_IMPORTED_MODULE_4_lodash_isArray___default()(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n }\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n\n return true;\n};\nvar renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n __WEBPACK_IMPORTED_MODULE_5_react__[\"Children\"].forEach(children, function (child, index) {\n if (child && isSvgElement(child)) {\n elements.push(child);\n } else if (child && renderMap[getDisplayName(child.type)]) {\n var displayName = getDisplayName(child.type);\n var _renderMap$displayNam = renderMap[displayName],\n handler = _renderMap$displayNam.handler,\n once = _renderMap$displayNam.once;\n\n if (once && !record[displayName] || !once) {\n var results = handler(child, displayName, index);\n\n if (__WEBPACK_IMPORTED_MODULE_4_lodash_isArray___default()(results)) {\n elements = [elements].concat(_toConsumableArray(results));\n } else {\n elements.push(results);\n }\n\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nvar getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n\n return null;\n};\nvar parseChildIndex = function parseChildIndex(child, children) {\n var result = -1;\n __WEBPACK_IMPORTED_MODULE_5_react__[\"Children\"].forEach(children, function (entry, index) {\n if (entry === child) {\n result = index;\n }\n });\n return result;\n};\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = shallowEqual;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = pureRenderDecorator;\nfunction shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shouldComponentUpdate(props, state) {\n return !shallowEqual(props, this.props) || !shallowEqual(state, this.state);\n}\n\nfunction pureRenderDecorator(component) {\n // eslint-disable-next-line no-param-reassign\n component.prototype.shouldComponentUpdate = shouldComponentUpdate;\n}\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t\t\treturn classNames;\n\t\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nmodule.exports = ReactDOM;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\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 = runTimeout(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 runClearTimeout(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 runTimeout(drainQueue);\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;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\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/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(57)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, $) {\r\n var innerAjax = $.ajax;\r\n var extend = $.extend;\r\n exports.showNetworkIcon = function (show) { };\r\n exports.ajax = _ajax;\r\n exports.urlPrefix = '';\r\n exports.ajaxHeaders = null;\r\n function _ajax(settings_) {\r\n var settings = extend({}, settings_, { url: exports.urlPrefix + settings_.url });\r\n if (settings.data)\r\n settings.contentType = 'application/json';\r\n if (exports.ajaxHeaders)\r\n settings.headers = exports.ajaxHeaders;\r\n exports.showNetworkIcon(true);\r\n return innerAjax(settings).always(function () { return exports.showNetworkIcon(false); });\r\n }\r\n var ConnectionSettingsClient = (function () {\r\n function ConnectionSettingsClient() {\r\n }\r\n ConnectionSettingsClient.getServiceProviders = function (botId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/connectionsettings/GetServiceProviders' + '?' + $.param({ botId: botId }),\r\n type: 'GET'\r\n });\r\n };\r\n ConnectionSettingsClient.getConnectionSettingItems = function (botId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/connectionsettings/GetConnectionSettingItems' + '?' + $.param({ botId: botId }),\r\n type: 'GET'\r\n });\r\n };\r\n ConnectionSettingsClient.getFullConnectionSettingEx = function (id, botId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/connectionsettings/GetFullConnectionSettingEx' + '?' + $.param({ id: id, botId: botId }),\r\n type: 'POST'\r\n });\r\n };\r\n ConnectionSettingsClient.checkConnectionSettingName = function (botId, name) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/connectionsettings/CheckConnectionSettingName' + '?' + $.param({ botId: botId, name: name }),\r\n type: 'POST'\r\n });\r\n };\r\n ConnectionSettingsClient.addConnection = function (botId, properties) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/connectionsettings/AddConnection' + '?' + $.param({ botId: botId }),\r\n data: JSON.stringify(properties),\r\n type: 'POST'\r\n });\r\n };\r\n ConnectionSettingsClient.updateConnectionEx = function (id, botId, properties) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/connectionsettings/UpdateConnectionEx' + '?' + $.param({ id: id, botId: botId }),\r\n data: JSON.stringify(properties),\r\n type: 'POST'\r\n });\r\n };\r\n ConnectionSettingsClient.deleteConnectionEx = function (id, botId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/connectionsettings/DeleteConnectionEx' + '?' + $.param({ id: id, botId: botId }),\r\n type: 'POST'\r\n });\r\n };\r\n ConnectionSettingsClient.getTestConnectionUrl = function (botId, connectionName) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/connectionsettings/GetTestConnectionUrl' + '?' + $.param({ botId: botId, connectionName: connectionName }),\r\n type: 'GET'\r\n });\r\n };\r\n return ConnectionSettingsClient;\r\n }());\r\n exports.ConnectionSettingsClient = ConnectionSettingsClient;\r\n var HomeClient = (function () {\r\n function HomeClient() {\r\n }\r\n HomeClient.index = function () {\r\n return exports.ajax({\r\n url: '/Home',\r\n type: 'GET'\r\n });\r\n };\r\n HomeClient.warmUp = function () {\r\n return exports.ajax({\r\n url: '/Home/WarmUp',\r\n type: 'GET'\r\n });\r\n };\r\n return HomeClient;\r\n }());\r\n exports.HomeClient = HomeClient;\r\n var AccountClient = (function () {\r\n function AccountClient() {\r\n }\r\n AccountClient.getClientSettings = function () {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/Account/clientAppSettings',\r\n type: 'GET'\r\n });\r\n };\r\n AccountClient.delete = function () {\r\n return exports.ajax({\r\n url: '/api/Account',\r\n type: 'DELETE'\r\n });\r\n };\r\n AccountClient.addUserToWaitlist = function () {\r\n return exports.ajax({\r\n url: '/api/Account/waitList',\r\n type: 'POST'\r\n });\r\n };\r\n AccountClient.exchangeGraphToken = function (tenantId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/Account/exchangeGraphToken' + '?' + $.param({ tenantId: tenantId }),\r\n type: 'POST'\r\n });\r\n };\r\n AccountClient.exchangeArmToken = function (tenantId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/Account/exchangeArmToken' + '?' + $.param({ tenantId: tenantId }),\r\n type: 'POST'\r\n });\r\n };\r\n AccountClient.getSignedInUser = function () {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/Account',\r\n type: 'GET'\r\n });\r\n };\r\n return AccountClient;\r\n }());\r\n exports.AccountClient = AccountClient;\r\n var AnnouncementsClient = (function () {\r\n function AnnouncementsClient() {\r\n }\r\n AnnouncementsClient.announcements = function () {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/announcements',\r\n type: 'GET'\r\n });\r\n };\r\n return AnnouncementsClient;\r\n }());\r\n exports.AnnouncementsClient = AnnouncementsClient;\r\n var BotManagerClient = (function () {\r\n function BotManagerClient() {\r\n }\r\n BotManagerClient.getPage = function (pageSize, continuationToken) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/getPage' + '?' + $.param({ pageSize: pageSize, continuationToken: continuationToken }),\r\n type: 'GET'\r\n });\r\n };\r\n BotManagerClient.searchBotsPage = function (search, pageSize, continuationToken) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/searchBotsPage' + '?' + $.param({ search: search, pageSize: pageSize, continuationToken: continuationToken }),\r\n type: 'GET'\r\n });\r\n };\r\n BotManagerClient.getById = function (id) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/Bots' + '?' + $.param({ id: id }),\r\n type: 'GET'\r\n });\r\n };\r\n BotManagerClient.getWebChatToken = function (id) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/BotManager/\" + id + \"/webChatToken\",\r\n type: 'GET'\r\n });\r\n };\r\n BotManagerClient.create = function (bot) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager',\r\n data: JSON.stringify(bot),\r\n type: 'POST'\r\n });\r\n };\r\n BotManagerClient.enableChannelForBot = function (botId, channelId, enable) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/EnableChannelForBot' + '?' + $.param({ botId: botId, channelId: channelId, enable: enable }),\r\n type: 'POST'\r\n });\r\n };\r\n BotManagerClient.listChannelForBot = function (botId, channelId, listed) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/ListChannelForBot' + '?' + $.param({ botId: botId, channelId: channelId, listed: listed }),\r\n type: 'POST'\r\n });\r\n };\r\n BotManagerClient.update = function (bot, forPublishing) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager' + '?' + $.param({ forPublishing: forPublishing }),\r\n data: JSON.stringify(bot),\r\n type: 'PUT'\r\n });\r\n };\r\n BotManagerClient.getBotLogs = function (botId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/BotManager/\" + botId + \"/log\",\r\n type: 'GET'\r\n });\r\n };\r\n BotManagerClient.deleteBotLogs = function (botId, channelId) {\r\n return exports.ajax({\r\n url: \"/api/BotManager/\" + botId + \"/log/\" + channelId,\r\n type: 'DELETE'\r\n });\r\n };\r\n BotManagerClient.getPublishSettings = function (botId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/BotManager/\" + botId + \"/publishSettings\",\r\n type: 'GET'\r\n });\r\n };\r\n BotManagerClient.getConfigSettings = function (botId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/BotManager/\" + botId + \"/configSettings\",\r\n type: 'GET'\r\n });\r\n };\r\n BotManagerClient.getProgress = function (botId, checkingMigration) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/BotManager/\" + botId + \"/progress\" + '?' + $.param({ checkingMigration: checkingMigration }),\r\n type: 'GET'\r\n });\r\n };\r\n BotManagerClient.delete = function (botId) {\r\n return exports.ajax({\r\n url: '/api/BotManager' + '?' + $.param({ botId: botId }),\r\n type: 'DELETE'\r\n });\r\n };\r\n BotManagerClient.deleteChannelConfig = function (botId, channelId) {\r\n return exports.ajax({\r\n url: \"/api/BotManager/\" + botId + \"/channels/\" + channelId,\r\n type: 'DELETE'\r\n });\r\n };\r\n BotManagerClient.ensureDirectlineSettings = function (botId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/BotManager/\" + botId + \"/directlineSettings\",\r\n type: 'POST'\r\n });\r\n };\r\n BotManagerClient.addPublishEvent = function (botId, publishEvent, comment, showInAllDirectories, channel) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/UpdatePublishStatus' + '?' + $.param({ botId: botId, publishEvent: publishEvent, comment: comment, showInAllDirectories: showInAllDirectories, channel: channel }),\r\n type: 'POST'\r\n });\r\n };\r\n BotManagerClient.getLastPublishEvent = function (botId, channel) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/GetLastPublishEvent' + '?' + $.param({ botId: botId, channel: channel }),\r\n type: 'GET'\r\n });\r\n };\r\n BotManagerClient.getPublishHistory = function (botId, channel) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/GetPublishHistory' + '?' + $.param({ botId: botId, channel: channel }),\r\n type: 'GET'\r\n });\r\n };\r\n BotManagerClient.getAvailableChannels = function () {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/AvailableChannels',\r\n type: 'GET'\r\n });\r\n };\r\n BotManagerClient.regenerateSubscriptionKey = function (botId, primary) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/RegenerateSubscriptionKey' + '?' + $.param({ botId: botId, primary: primary }),\r\n type: 'POST'\r\n });\r\n };\r\n BotManagerClient.getBotContactCard = function (botId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/GetBotContactCard' + '?' + $.param({ botId: botId }),\r\n type: 'POST'\r\n });\r\n };\r\n BotManagerClient.testBot = function (botId, testInput) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/TestBot' + '?' + $.param({ botId: botId, testInput: testInput }),\r\n type: 'POST'\r\n });\r\n };\r\n BotManagerClient.createLuisAppUsingKey = function (luisAppName, luisKey, region, modelName) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/BotManager/\" + luisAppName + \"/CreateLuisAppUsingKey\" + '?' + $.param({ luisKey: luisKey, region: region, modelName: modelName }),\r\n type: 'POST'\r\n });\r\n };\r\n BotManagerClient.setBotIcon = function (dataUrl, botId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/PostBotIcon' + '?' + $.param({ botId: botId }),\r\n data: JSON.stringify(dataUrl),\r\n type: 'POST'\r\n });\r\n };\r\n BotManagerClient.migrateBot = function (botId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager' + '?' + $.param({ botId: botId }),\r\n type: 'POST'\r\n });\r\n };\r\n BotManagerClient.getAvailableSchemaTransformationVersionList = function () {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/getAvailableSchemaTransformationVersionList',\r\n type: 'GET'\r\n });\r\n };\r\n return BotManagerClient;\r\n }());\r\n exports.BotManagerClient = BotManagerClient;\r\n var CodeClient = (function () {\r\n function CodeClient() {\r\n }\r\n CodeClient.list = function (botId, path) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/botApp/\" + botId + \"/list\" + '?' + $.param({ path: path }),\r\n type: 'GET'\r\n });\r\n };\r\n CodeClient.zip = function (botId, fileName) {\r\n return exports.ajax({\r\n url: \"/api/botApp/\" + botId + \"/zip/\" + fileName,\r\n type: 'GET'\r\n });\r\n };\r\n CodeClient.getByBotIdAndPath = function (botId, path) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/botApp/\" + botId + \"/code\" + '?' + $.param({ path: path }),\r\n type: 'GET'\r\n });\r\n };\r\n CodeClient.update = function (botId, path, content) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/botApp/\" + botId + \"/code\" + '?' + $.param({ path: path }),\r\n data: JSON.stringify(content),\r\n type: 'POST'\r\n });\r\n };\r\n CodeClient.create = function (botId, path, content) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/botApp/\" + botId + \"/code\" + '?' + $.param({ path: path }),\r\n data: JSON.stringify(content),\r\n type: 'PUT'\r\n });\r\n };\r\n CodeClient.remove = function (botId, path, content) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/botApp/\" + botId + \"/code\" + '?' + $.param({ path: path }),\r\n data: JSON.stringify(content),\r\n type: 'DELETE'\r\n });\r\n };\r\n CodeClient.getScmAuthz = function (botId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/botApp/\" + botId + \"/scmAuthz\",\r\n type: 'GET'\r\n });\r\n };\r\n CodeClient.requestDevInfo = function (botId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/botApp/\" + botId + \"/devInfo\",\r\n type: 'POST'\r\n });\r\n };\r\n CodeClient.fetchBotId = function (resourceId, accessToken) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/botApp/mapBotId' + '?' + $.param({ resourceId: resourceId }),\r\n data: JSON.stringify(accessToken),\r\n type: 'POST'\r\n });\r\n };\r\n CodeClient.provisionConvergedApp = function (name) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/botApp/provisionConvergedApp' + '?' + $.param({ name: name }),\r\n type: 'POST'\r\n });\r\n };\r\n CodeClient.provisionSingleTenantConvergedApp = function (name) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/botApp/provisionSingleTenantConvergedApp' + '?' + $.param({ name: name }),\r\n type: 'POST'\r\n });\r\n };\r\n CodeClient.checkBotNameAvailability = function (botName) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/botApp/checkBotNameAvailability' + '?' + $.param({ botName: botName }),\r\n type: 'POST'\r\n });\r\n };\r\n CodeClient.checkFeatureEnabled = function (botId, featureId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/botApp/checkFeatureEnabled' + '?' + $.param({ botId: botId, featureId: featureId }),\r\n type: 'POST'\r\n });\r\n };\r\n return CodeClient;\r\n }());\r\n exports.CodeClient = CodeClient;\r\n var EmailSubscriptionClient = (function () {\r\n function EmailSubscriptionClient() {\r\n }\r\n EmailSubscriptionClient.get = function () {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/emailSubscription',\r\n type: 'GET'\r\n });\r\n };\r\n EmailSubscriptionClient.getUserAgreement = function () {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/emailSubscription/tos',\r\n type: 'GET'\r\n });\r\n };\r\n EmailSubscriptionClient.updateAgreement = function (enabled) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/emailSubscription/tos/update',\r\n data: JSON.stringify(enabled),\r\n type: 'POST'\r\n });\r\n };\r\n EmailSubscriptionClient.subscribe = function (update) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/emailSubscription',\r\n data: JSON.stringify(update),\r\n type: 'POST'\r\n });\r\n };\r\n EmailSubscriptionClient.unsubscribe = function (userId, token) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/emailSubscription/unsubscribe/\" + userId + \"/\" + token,\r\n type: 'GET'\r\n });\r\n };\r\n return EmailSubscriptionClient;\r\n }());\r\n exports.EmailSubscriptionClient = EmailSubscriptionClient;\r\n var AnalyticsClient = (function () {\r\n function AnalyticsClient() {\r\n }\r\n AnalyticsClient.getUsers = function (botId, analyticsRequest) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/dashboard/\" + botId + \"/users\",\r\n data: JSON.stringify(analyticsRequest),\r\n type: 'POST'\r\n });\r\n };\r\n AnalyticsClient.getMessages = function (botId, analyticsRequest) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/dashboard/\" + botId + \"/messages\",\r\n data: JSON.stringify(analyticsRequest),\r\n type: 'POST'\r\n });\r\n };\r\n AnalyticsClient.getUserRetention = function (botId, analyticsRequest) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/dashboard/\" + botId + \"/retention\",\r\n data: JSON.stringify(analyticsRequest),\r\n type: 'POST'\r\n });\r\n };\r\n return AnalyticsClient;\r\n }());\r\n exports.AnalyticsClient = AnalyticsClient;\r\n var MiscClient = (function () {\r\n function MiscClient() {\r\n }\r\n MiscClient.getBotFileEncryptionKey = function () {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/misc/botFileEncryptionKey',\r\n type: 'GET'\r\n });\r\n };\r\n MiscClient.checkMsaAppIdInUse = function (msaAppId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/misc/checkMsaAppIdInUse' + '?' + $.param({ msaAppId: msaAppId }),\r\n type: 'GET'\r\n });\r\n };\r\n MiscClient.getIsMSAApp = function (appId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/misc/isMSAApp' + '?' + $.param({ appId: appId }),\r\n type: 'GET'\r\n });\r\n };\r\n MiscClient.getBotTemplatesRoot = function () {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/misc/botTemplateRoot',\r\n type: 'GET'\r\n });\r\n };\r\n MiscClient.absWebAspSku = function (subscriptionId) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/misc/absWebAspSku' + '?' + $.param({ subscriptionId: subscriptionId }),\r\n type: 'GET'\r\n });\r\n };\r\n return MiscClient;\r\n }());\r\n exports.MiscClient = MiscClient;\r\n var SearchAssistantBotV2Client = (function () {\r\n function SearchAssistantBotV2Client() {\r\n }\r\n SearchAssistantBotV2Client.enable = function (botId, enable) {\r\n return exports.ajax({\r\n url: \"/api/searchAssistantBotV2/\" + botId + \"/enable\",\r\n data: JSON.stringify(enable),\r\n type: 'POST'\r\n });\r\n };\r\n SearchAssistantBotV2Client.delete = function (botId) {\r\n return exports.ajax({\r\n url: \"/api/searchAssistantBotV2/\" + botId,\r\n type: 'DELETE'\r\n });\r\n };\r\n SearchAssistantBotV2Client.get = function (botId) {\r\n return exports.ajax({\r\n url: \"/api/searchAssistantBotV2/\" + botId,\r\n type: 'GET'\r\n });\r\n };\r\n SearchAssistantBotV2Client.getUsers = function (botId, userFilter) {\r\n return exports.ajax({\r\n url: \"/api/searchAssistantBotV2/\" + botId + \"/deploymentv2/userSuggestions\" + '?' + $.param({ userFilter: userFilter }),\r\n type: 'GET'\r\n });\r\n };\r\n SearchAssistantBotV2Client.getUserInfoByEmail = function (botId, email) {\r\n return exports.ajax({\r\n url: \"/api/searchAssistantBotV2/\" + botId + \"/deploymentv2/userInfo\" + '?' + $.param({ email: email }),\r\n type: 'GET'\r\n });\r\n };\r\n SearchAssistantBotV2Client.getUserInfoById = function (botId, id) {\r\n return exports.ajax({\r\n url: \"/api/searchAssistantBotV2/\" + botId + \"/deploymentv2/userInfoById\" + '?' + $.param({ id: id }),\r\n type: 'GET'\r\n });\r\n };\r\n SearchAssistantBotV2Client.createDeployment = function (botId, manifest) {\r\n return exports.ajax({\r\n url: \"/api/searchAssistantBotV2/\" + botId + \"/deploymentv2\",\r\n data: JSON.stringify(manifest),\r\n type: 'POST'\r\n });\r\n };\r\n SearchAssistantBotV2Client.updateDeployment = function (botId, manifest) {\r\n return exports.ajax({\r\n url: \"/api/searchAssistantBotV2/\" + botId + \"/deploymentv2\",\r\n data: JSON.stringify(manifest),\r\n type: 'PUT'\r\n });\r\n };\r\n return SearchAssistantBotV2Client;\r\n }());\r\n exports.SearchAssistantBotV2Client = SearchAssistantBotV2Client;\r\n var SpeechPartnersClient = (function () {\r\n function SpeechPartnersClient() {\r\n }\r\n SpeechPartnersClient.getBotForSpeech = function (id) {\r\n return exports.ajax({\r\n url: '/api/partners/speech/bot' + '?' + $.param({ id: id }),\r\n type: 'GET'\r\n });\r\n };\r\n return SpeechPartnersClient;\r\n }());\r\n exports.SpeechPartnersClient = SpeechPartnersClient;\r\n var PublishEvent;\r\n (function (PublishEvent) {\r\n PublishEvent[PublishEvent[\"SUBMIT\"] = 0] = \"SUBMIT\";\r\n PublishEvent[PublishEvent[\"UNSUBMIT\"] = 1] = \"UNSUBMIT\";\r\n PublishEvent[PublishEvent[\"INREVIEW\"] = 2] = \"INREVIEW\";\r\n PublishEvent[PublishEvent[\"REJECT\"] = 3] = \"REJECT\";\r\n PublishEvent[PublishEvent[\"ACCEPT\"] = 4] = \"ACCEPT\";\r\n PublishEvent[PublishEvent[\"FEATURED\"] = 5] = \"FEATURED\";\r\n PublishEvent[PublishEvent[\"UNFEATURED\"] = 6] = \"UNFEATURED\";\r\n PublishEvent[PublishEvent[\"SCANNING\"] = 7] = \"SCANNING\";\r\n PublishEvent[PublishEvent[\"SCANNED\"] = 8] = \"SCANNED\";\r\n PublishEvent[PublishEvent[\"DELETED\"] = 9] = \"DELETED\";\r\n PublishEvent[PublishEvent[\"SCANFAILED\"] = 10] = \"SCANFAILED\";\r\n })(PublishEvent = exports.PublishEvent || (exports.PublishEvent = {}));\r\n var LuisRegions;\r\n (function (LuisRegions) {\r\n LuisRegions[LuisRegions[\"US\"] = 0] = \"US\";\r\n LuisRegions[LuisRegions[\"EU\"] = 1] = \"EU\";\r\n LuisRegions[LuisRegions[\"AU\"] = 2] = \"AU\";\r\n LuisRegions[LuisRegions[\"Virginia\"] = 3] = \"Virginia\";\r\n LuisRegions[LuisRegions[\"USNATEAST\"] = 4] = \"USNATEAST\";\r\n LuisRegions[LuisRegions[\"USNATWEST\"] = 5] = \"USNATWEST\";\r\n LuisRegions[LuisRegions[\"USSECEAST\"] = 6] = \"USSECEAST\";\r\n LuisRegions[LuisRegions[\"USSECWEST\"] = 7] = \"USSECWEST\";\r\n LuisRegions[LuisRegions[\"CHINAEAST2\"] = 8] = \"CHINAEAST2\";\r\n LuisRegions[LuisRegions[\"CHINANORTH\"] = 9] = \"CHINANORTH\";\r\n })(LuisRegions = exports.LuisRegions || (exports.LuisRegions = {}));\r\n var DevPortalFeatureFlags;\r\n (function (DevPortalFeatureFlags) {\r\n DevPortalFeatureFlags[DevPortalFeatureFlags[\"None\"] = 0] = \"None\";\r\n DevPortalFeatureFlags[DevPortalFeatureFlags[\"SupportNonAbsCreate\"] = 1] = \"SupportNonAbsCreate\";\r\n DevPortalFeatureFlags[DevPortalFeatureFlags[\"SupportNonAzureUsers\"] = 2] = \"SupportNonAzureUsers\";\r\n })(DevPortalFeatureFlags = exports.DevPortalFeatureFlags || (exports.DevPortalFeatureFlags = {}));\r\n var AnnouncementSeverity;\r\n (function (AnnouncementSeverity) {\r\n AnnouncementSeverity[AnnouncementSeverity[\"Good\"] = 0] = \"Good\";\r\n AnnouncementSeverity[AnnouncementSeverity[\"Warning\"] = 1] = \"Warning\";\r\n AnnouncementSeverity[AnnouncementSeverity[\"Error\"] = 2] = \"Error\";\r\n AnnouncementSeverity[AnnouncementSeverity[\"Information\"] = 3] = \"Information\";\r\n })(AnnouncementSeverity = exports.AnnouncementSeverity || (exports.AnnouncementSeverity = {}));\r\n var BotAppType;\r\n (function (BotAppType) {\r\n BotAppType[BotAppType[\"MultiTenant\"] = 0] = \"MultiTenant\";\r\n BotAppType[BotAppType[\"SingleTenant\"] = 1] = \"SingleTenant\";\r\n BotAppType[BotAppType[\"UserAssignedMSI\"] = 2] = \"UserAssignedMSI\";\r\n })(BotAppType = exports.BotAppType || (exports.BotAppType = {}));\r\n var TenantAccess;\r\n (function (TenantAccess) {\r\n TenantAccess[TenantAccess[\"NoAccess\"] = 0] = \"NoAccess\";\r\n TenantAccess[TenantAccess[\"NotCurrent\"] = 1] = \"NotCurrent\";\r\n TenantAccess[TenantAccess[\"Current\"] = 2] = \"Current\";\r\n })(TenantAccess = exports.TenantAccess || (exports.TenantAccess = {}));\r\n var SeverityType;\r\n (function (SeverityType) {\r\n SeverityType[SeverityType[\"OK\"] = 0] = \"OK\";\r\n SeverityType[SeverityType[\"Warning\"] = 1] = \"Warning\";\r\n SeverityType[SeverityType[\"Error\"] = 2] = \"Error\";\r\n })(SeverityType = exports.SeverityType || (exports.SeverityType = {}));\r\n var EmailOptingOptions;\r\n (function (EmailOptingOptions) {\r\n EmailOptingOptions[EmailOptingOptions[\"OptOut\"] = 0] = \"OptOut\";\r\n EmailOptingOptions[EmailOptingOptions[\"OptIn\"] = 1] = \"OptIn\";\r\n EmailOptingOptions[EmailOptingOptions[\"DoubleOptIn\"] = 2] = \"DoubleOptIn\";\r\n EmailOptingOptions[EmailOptingOptions[\"Notice\"] = 3] = \"Notice\";\r\n })(EmailOptingOptions = exports.EmailOptingOptions || (exports.EmailOptingOptions = {}));\r\n var UserAgreementConsentVersion;\r\n (function (UserAgreementConsentVersion) {\r\n UserAgreementConsentVersion[UserAgreementConsentVersion[\"V1\"] = 1] = \"V1\";\r\n UserAgreementConsentVersion[UserAgreementConsentVersion[\"V2\"] = 2] = \"V2\";\r\n })(UserAgreementConsentVersion = exports.UserAgreementConsentVersion || (exports.UserAgreementConsentVersion = {}));\r\n var AnswerStatus;\r\n (function (AnswerStatus) {\r\n AnswerStatus[AnswerStatus[\"NeedsReview\"] = 0] = \"NeedsReview\";\r\n AnswerStatus[AnswerStatus[\"InReview\"] = 1] = \"InReview\";\r\n AnswerStatus[AnswerStatus[\"Published\"] = 2] = \"Published\";\r\n AnswerStatus[AnswerStatus[\"Rejected\"] = 3] = \"Rejected\";\r\n AnswerStatus[AnswerStatus[\"Deactivated\"] = 4] = \"Deactivated\";\r\n })(AnswerStatus = exports.AnswerStatus || (exports.AnswerStatus = {}));\r\n var UriHostNameType;\r\n (function (UriHostNameType) {\r\n UriHostNameType[UriHostNameType[\"Unknown\"] = 0] = \"Unknown\";\r\n UriHostNameType[UriHostNameType[\"Basic\"] = 1] = \"Basic\";\r\n UriHostNameType[UriHostNameType[\"Dns\"] = 2] = \"Dns\";\r\n UriHostNameType[UriHostNameType[\"IPv4\"] = 3] = \"IPv4\";\r\n UriHostNameType[UriHostNameType[\"IPv6\"] = 4] = \"IPv6\";\r\n })(UriHostNameType = exports.UriHostNameType || (exports.UriHostNameType = {}));\r\n var DayOfWeek;\r\n (function (DayOfWeek) {\r\n DayOfWeek[DayOfWeek[\"Sunday\"] = 0] = \"Sunday\";\r\n DayOfWeek[DayOfWeek[\"Monday\"] = 1] = \"Monday\";\r\n DayOfWeek[DayOfWeek[\"Tuesday\"] = 2] = \"Tuesday\";\r\n DayOfWeek[DayOfWeek[\"Wednesday\"] = 3] = \"Wednesday\";\r\n DayOfWeek[DayOfWeek[\"Thursday\"] = 4] = \"Thursday\";\r\n DayOfWeek[DayOfWeek[\"Friday\"] = 5] = \"Friday\";\r\n DayOfWeek[DayOfWeek[\"Saturday\"] = 6] = \"Saturday\";\r\n })(DayOfWeek = exports.DayOfWeek || (exports.DayOfWeek = {}));\r\n var ReviewStatus;\r\n (function (ReviewStatus) {\r\n ReviewStatus[ReviewStatus[\"NotSubmitted\"] = 0] = \"NotSubmitted\";\r\n ReviewStatus[ReviewStatus[\"InReview\"] = 1] = \"InReview\";\r\n ReviewStatus[ReviewStatus[\"Rejected\"] = 2] = \"Rejected\";\r\n ReviewStatus[ReviewStatus[\"Approved\"] = 3] = \"Approved\";\r\n })(ReviewStatus = exports.ReviewStatus || (exports.ReviewStatus = {}));\r\n var HostingEnvironment;\r\n (function (HostingEnvironment) {\r\n HostingEnvironment[HostingEnvironment[\"AzureWebApp\"] = 0] = \"AzureWebApp\";\r\n HostingEnvironment[HostingEnvironment[\"AzureFunctions\"] = 1] = \"AzureFunctions\";\r\n HostingEnvironment[HostingEnvironment[\"AzureBotApp\"] = 2] = \"AzureBotApp\";\r\n HostingEnvironment[HostingEnvironment[\"AzureConversationDesigner\"] = 3] = \"AzureConversationDesigner\";\r\n })(HostingEnvironment = exports.HostingEnvironment || (exports.HostingEnvironment = {}));\r\n var ContactType;\r\n (function (ContactType) {\r\n ContactType[ContactType[\"Unknown\"] = 0] = \"Unknown\";\r\n ContactType[ContactType[\"Email\"] = 1] = \"Email\";\r\n ContactType[ContactType[\"GroupMe\"] = 2] = \"GroupMe\";\r\n ContactType[ContactType[\"Kik\"] = 3] = \"Kik\";\r\n ContactType[ContactType[\"PhoneNumber\"] = 4] = \"PhoneNumber\";\r\n ContactType[ContactType[\"Skype\"] = 5] = \"Skype\";\r\n ContactType[ContactType[\"Slack\"] = 6] = \"Slack\";\r\n ContactType[ContactType[\"Telegram\"] = 7] = \"Telegram\";\r\n ContactType[ContactType[\"Twitter\"] = 8] = \"Twitter\";\r\n ContactType[ContactType[\"Web\"] = 9] = \"Web\";\r\n ContactType[ContactType[\"API\"] = 10] = \"API\";\r\n ContactType[ContactType[\"Facebook\"] = 11] = \"Facebook\";\r\n ContactType[ContactType[\"Instagram\"] = 12] = \"Instagram\";\r\n ContactType[ContactType[\"MSTeams\"] = 13] = \"MSTeams\";\r\n ContactType[ContactType[\"WeChat\"] = 14] = \"WeChat\";\r\n ContactType[ContactType[\"SIP\"] = 15] = \"SIP\";\r\n ContactType[ContactType[\"Bing\"] = 16] = \"Bing\";\r\n ContactType[ContactType[\"Kaizala\"] = 17] = \"Kaizala\";\r\n ContactType[ContactType[\"Line\"] = 18] = \"Line\";\r\n })(ContactType = exports.ContactType || (exports.ContactType = {}));\r\n var ApsDeploymentEnvironment;\r\n (function (ApsDeploymentEnvironment) {\r\n ApsDeploymentEnvironment[ApsDeploymentEnvironment[\"CommercialDeployment\"] = 0] = \"CommercialDeployment\";\r\n ApsDeploymentEnvironment[ApsDeploymentEnvironment[\"GCCModerateDeployment\"] = 1] = \"GCCModerateDeployment\";\r\n ApsDeploymentEnvironment[ApsDeploymentEnvironment[\"GCCHighDeployment\"] = 2] = \"GCCHighDeployment\";\r\n ApsDeploymentEnvironment[ApsDeploymentEnvironment[\"DoDDeployment\"] = 3] = \"DoDDeployment\";\r\n })(ApsDeploymentEnvironment = exports.ApsDeploymentEnvironment || (exports.ApsDeploymentEnvironment = {}));\r\n var EmailSubscriptionTermsAndConditions;\r\n (function (EmailSubscriptionTermsAndConditions) {\r\n EmailSubscriptionTermsAndConditions[EmailSubscriptionTermsAndConditions[\"V1\"] = 1] = \"V1\";\r\n EmailSubscriptionTermsAndConditions[EmailSubscriptionTermsAndConditions[\"V2\"] = 2] = \"V2\";\r\n })(EmailSubscriptionTermsAndConditions = exports.EmailSubscriptionTermsAndConditions || (exports.EmailSubscriptionTermsAndConditions = {}));\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n exports.clientAppSettings = window['clientAppSettings'];\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(42),\n isObject = __webpack_require__(21);\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(39);\nvar core = __webpack_require__(98);\nvar hide = __webpack_require__(417);\nvar redefine = __webpack_require__(424);\nvar ctx = __webpack_require__(415);\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\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\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return mathSign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return isPercent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return isNumber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return isNumOrStr; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return uniqueId; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return getPercentValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return getAnyElementOfObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return hasDuplicate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return interpolateNumber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return findEntryInArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return getLinearRegression; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_get__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_get___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_get__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isArray__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_isArray__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isNaN__ = __webpack_require__(131);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isNaN___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_isNaN__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_isNumber__ = __webpack_require__(132);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_isNumber___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_lodash_isNumber__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_isString__ = __webpack_require__(134);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_isString___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_lodash_isString__);\n\n\n\n\n\nvar mathSign = function mathSign(value) {\n if (value === 0) {\n return 0;\n }\n\n if (value > 0) {\n return 1;\n }\n\n return -1;\n};\nvar isPercent = function isPercent(value) {\n return __WEBPACK_IMPORTED_MODULE_4_lodash_isString___default()(value) && value.indexOf('%') === value.length - 1;\n};\nvar isNumber = function isNumber(value) {\n return __WEBPACK_IMPORTED_MODULE_3_lodash_isNumber___default()(value) && !__WEBPACK_IMPORTED_MODULE_2_lodash_isNaN___default()(value);\n};\nvar isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || __WEBPACK_IMPORTED_MODULE_4_lodash_isString___default()(value);\n};\nvar idCounter = 0;\nvar uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n/**\n * Get percent value of a total value\n * @param {Number|String} percent A percent\n * @param {Number} totalValue Total value\n * @param {NUmber} defaultValue The value returned when percent is undefined or invalid\n * @param {Boolean} validate If set to be true, the result will be validated\n * @return {Number} value\n */\n\nvar getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (!isNumber(percent) && !__WEBPACK_IMPORTED_MODULE_4_lodash_isString___default()(percent)) {\n return defaultValue;\n }\n\n var value;\n\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n\n if (__WEBPACK_IMPORTED_MODULE_2_lodash_isNaN___default()(value)) {\n value = defaultValue;\n }\n\n if (validate && value > totalValue) {\n value = totalValue;\n }\n\n return value;\n};\nvar getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n\n var keys = Object.keys(obj);\n\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n\n return null;\n};\nvar hasDuplicate = function hasDuplicate(ary) {\n if (!__WEBPACK_IMPORTED_MODULE_1_lodash_isArray___default()(ary)) {\n return false;\n }\n\n var len = ary.length;\n var cache = {};\n\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n\n return false;\n};\nvar interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n\n return function () {\n return numberB;\n };\n};\nvar findEntryInArray = function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n\n return ary.find(function (entry) {\n return entry && __WEBPACK_IMPORTED_MODULE_0_lodash_get___default()(entry, specifiedKey) === specifiedValue;\n });\n};\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\n\nvar getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n\n for (var i = 0; i < len; i++) {\n xsum += data[i].cx;\n ysum += data[i].cy;\n xysum += data[i].cx * data[i].cy;\n xxsum += data[i].cx * data[i].cx;\n xmin = Math.min(xmin, data[i].cx);\n xmax = Math.max(xmax, data[i].cx);\n }\n\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\n };\n};\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Layer\n */\n\n\n\nvar propTypes = {\n className: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n children: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.node), __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.node])\n};\n\nfunction Layer(props) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, [\"children\", \"className\"]);\n\n var layerClass = __WEBPACK_IMPORTED_MODULE_2_classnames___default()('recharts-layer', className);\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"g\", _extends({\n className: layerClass\n }, others), children);\n}\n\nLayer.propTypes = propTypes;\n/* harmony default export */ __webpack_exports__[\"a\"] = (Layer);\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(489), __webpack_require__(490), __webpack_require__(491), __webpack_require__(82), __webpack_require__(492), __webpack_require__(493), __webpack_require__(280), __webpack_require__(168), __webpack_require__(62), __webpack_require__(281), __webpack_require__(497), __webpack_require__(498), __webpack_require__(17), __webpack_require__(499), __webpack_require__(282), __webpack_require__(504)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, AutoResizeTextAreaControl_1, BotGalleryControl_1, BotHeaderCard_1, BotImageControl_1, DownloadLinkControl_1, ExpandableTextControl_1, PinToBottom_1, ProgressBarControl_1, ProgressRingControl_1, SearchControl_1, SiteStatusControl_1, SortableListControl_1, Strings_1, TimestampControl_1, TooltipControl_1, index_1) {\r\n function __export(m) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n }\r\n __export(AutoResizeTextAreaControl_1);\r\n __export(BotGalleryControl_1);\r\n __export(BotHeaderCard_1);\r\n __export(BotImageControl_1);\r\n __export(DownloadLinkControl_1);\r\n __export(ExpandableTextControl_1);\r\n __export(PinToBottom_1);\r\n __export(ProgressBarControl_1);\r\n __export(ProgressRingControl_1);\r\n __export(SearchControl_1);\r\n __export(SiteStatusControl_1);\r\n __export(SortableListControl_1);\r\n __export(Strings_1);\r\n __export(TimestampControl_1);\r\n __export(TooltipControl_1);\r\n __export(index_1);\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(105)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, Culture_1) {\r\n var Resources = (function () {\r\n function Resources() {\r\n }\r\n Object.defineProperty(Resources, \"unsupportedBrowser_Azure\", {\r\n get: function () { return this._getResourceString(\"unsupportedBrowser_Azure\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"unsupportedBrowser\", {\r\n get: function () { return this._getResourceString(\"unsupportedBrowser\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"botKindRegistration\", {\r\n get: function () { return this._getResourceString(\"botKindRegistration\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"botKindSdk\", {\r\n get: function () { return this._getResourceString(\"botKindSdk\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"botKindFunctions\", {\r\n get: function () { return this._getResourceString(\"botKindFunctions\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"botKindConversationDesigner\", {\r\n get: function () { return this._getResourceString(\"botKindConversationDesigner\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"loggingIn\", {\r\n get: function () { return this._getResourceString(\"loggingIn\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"loadingBot\", {\r\n get: function () { return this._getResourceString(\"loadingBot\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"botIsNotReady\", {\r\n get: function () { return this._getResourceString(\"botIsNotReady\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"analyticsNotReady\", {\r\n get: function () { return this._getResourceString(\"analyticsNotReady\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"authorizingWebChat\", {\r\n get: function () { return this._getResourceString(\"authorizingWebChat\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"signInFailure\", {\r\n get: function () { return this._getResourceString(\"signInFailure\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"getChatTokenFailure\", {\r\n get: function () { return this._getResourceString(\"getChatTokenFailure\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"refreshSignInFailure\", {\r\n get: function () { return this._getResourceString(\"refreshSignInFailure\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"xhrResponse_400\", {\r\n get: function () { return this._getResourceString(\"xhrResponse_400\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"xhrResponse_403\", {\r\n get: function () { return this._getResourceString(\"xhrResponse_403\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"xhrResponse_404\", {\r\n get: function () { return this._getResourceString(\"xhrResponse_404\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"xhrResponse_500\", {\r\n get: function () { return this._getResourceString(\"xhrResponse_500\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"xhrResponse_501\", {\r\n get: function () { return this._getResourceString(\"xhrResponse_501\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"xhrResponse_Message\", {\r\n get: function () { return this._getResourceString(\"xhrResponse_Message\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"xhrResponse_Unknown\", {\r\n get: function () { return this._getResourceString(\"xhrResponse_Unknown\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"AddAFeaturedChannelTitle\", {\r\n get: function () { return this._getResourceString(\"AddAFeaturedChannelTitle\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"ConnectToChannelsTitle\", {\r\n get: function () { return this._getResourceString(\"ConnectToChannelsTitle\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"NoChannelsConfigured\", {\r\n get: function () { return this._getResourceString(\"NoChannelsConfigured\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"MoreChannelsTitle\", {\r\n get: function () { return this._getResourceString(\"MoreChannelsTitle\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"test\", {\r\n get: function () { return this._getResourceString(\"test\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"startOver\", {\r\n get: function () { return this._getResourceString(\"startOver\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"retentionTitle\", {\r\n get: function () { return this._getResourceString(\"retentionTitle\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"retentionDescription\", {\r\n get: function () { return this._getResourceString(\"retentionDescription\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"retentionHeader\", {\r\n get: function () { return this._getResourceString(\"retentionHeader\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"retentionDate\", {\r\n get: function () { return this._getResourceString(\"retentionDate\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"retentionUsers\", {\r\n get: function () { return this._getResourceString(\"retentionUsers\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"undetermined\", {\r\n get: function () { return this._getResourceString(\"undetermined\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"loading\", {\r\n get: function () { return this._getResourceString(\"loading\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"noAnalyticsData\", {\r\n get: function () { return this._getResourceString(\"noAnalyticsData\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"timespanLastHour\", {\r\n get: function () { return this._getResourceString(\"timespanLastHour\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"timespanLastDay\", {\r\n get: function () { return this._getResourceString(\"timespanLastDay\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"timespanLastWeek\", {\r\n get: function () { return this._getResourceString(\"timespanLastWeek\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"timespanLastMonth\", {\r\n get: function () { return this._getResourceString(\"timespanLastMonth\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"timespanLast90Days\", {\r\n get: function () { return this._getResourceString(\"timespanLast90Days\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"timespanUnknown\", {\r\n get: function () { return this._getResourceString(\"timespanUnknown\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"timelineCardUsersTitle\", {\r\n get: function () { return this._getResourceString(\"timelineCardUsersTitle\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"timelineCardMessagesTitle\", {\r\n get: function () { return this._getResourceString(\"timelineCardMessagesTitle\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"totalsCardTitle\", {\r\n get: function () { return this._getResourceString(\"totalsCardTitle\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"analyticsNotConfigured\", {\r\n get: function () { return this._getResourceString(\"analyticsNotConfigured\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"analyticsNotConfiguredAction\", {\r\n get: function () { return this._getResourceString(\"analyticsNotConfiguredAction\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"analyticsNotConfiguredActionIbiza\", {\r\n get: function () { return this._getResourceString(\"analyticsNotConfiguredActionIbiza\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"learnMore\", {\r\n get: function () { return this._getResourceString(\"learnMore\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"cardTitleLoading\", {\r\n get: function () { return this._getResourceString(\"cardTitleLoading\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"cardTitleError\", {\r\n get: function () { return this._getResourceString(\"cardTitleError\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"timelineTableLabel\", {\r\n get: function () { return this._getResourceString(\"timelineTableLabel\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"timelineChartLabel\", {\r\n get: function () { return this._getResourceString(\"timelineChartLabel\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"published\", {\r\n get: function () { return this._getResourceString(\"published\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"health\", {\r\n get: function () { return this._getResourceString(\"health\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"actions\", {\r\n get: function () { return this._getResourceString(\"actions\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelname\", {\r\n get: function () { return this._getResourceString(\"channelname\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"edit\", {\r\n get: function () { return this._getResourceString(\"edit\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"running\", {\r\n get: function () { return this._getResourceString(\"running\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"issuesTemplate\", {\r\n get: function () { return this._getResourceString(\"issuesTemplate\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"warningTemplate\", {\r\n get: function () { return this._getResourceString(\"warningTemplate\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelPublished\", {\r\n get: function () { return this._getResourceString(\"channelPublished\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"tryOnCortana\", {\r\n get: function () { return this._getResourceString(\"tryOnCortana\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"tryOnChannel\", {\r\n get: function () { return this._getResourceString(\"tryOnChannel\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"manageInCortana\", {\r\n get: function () { return this._getResourceString(\"manageInCortana\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelRejected\", {\r\n get: function () { return this._getResourceString(\"channelRejected\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelMoreDetails\", {\r\n get: function () { return this._getResourceString(\"channelMoreDetails\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelResubmit\", {\r\n get: function () { return this._getResourceString(\"channelResubmit\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelGetEmbedCodes\", {\r\n get: function () { return this._getResourceString(\"channelGetEmbedCodes\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelConfigDeleteMessage\", {\r\n get: function () { return this._getResourceString(\"channelConfigDeleteMessage\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelConfigDeleteHeader\", {\r\n get: function () { return this._getResourceString(\"channelConfigDeleteHeader\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelConfigDeleteOk\", {\r\n get: function () { return this._getResourceString(\"channelConfigDeleteOk\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelConfigDeleteCancel\", {\r\n get: function () { return this._getResourceString(\"channelConfigDeleteCancel\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelConfigLeaveMessage\", {\r\n get: function () { return this._getResourceString(\"channelConfigLeaveMessage\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelConfigLeaveHeader\", {\r\n get: function () { return this._getResourceString(\"channelConfigLeaveHeader\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelConfigLeaveOk\", {\r\n get: function () { return this._getResourceString(\"channelConfigLeaveOk\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelConfigLeaveCancel\", {\r\n get: function () { return this._getResourceString(\"channelConfigLeaveCancel\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelEdit\", {\r\n get: function () { return this._getResourceString(\"channelEdit\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"dialogPleaseWait\", {\r\n get: function () { return this._getResourceString(\"dialogPleaseWait\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"embedPanelTitle\", {\r\n get: function () { return this._getResourceString(\"embedPanelTitle\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"embedPanelDescription\", {\r\n get: function () { return this._getResourceString(\"embedPanelDescription\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"embedPanelFacebookFooter\", {\r\n get: function () { return this._getResourceString(\"embedPanelFacebookFooter\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"embedPanelLearnMore\", {\r\n get: function () { return this._getResourceString(\"embedPanelLearnMore\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"embedPanelChannelMovedHeader\", {\r\n get: function () { return this._getResourceString(\"embedPanelChannelMovedHeader\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"embedPanelChannelMovedInstructions\", {\r\n get: function () { return this._getResourceString(\"embedPanelChannelMovedInstructions\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"embedPanelEmbedcodeForChannelLabel\", {\r\n get: function () { return this._getResourceString(\"embedPanelEmbedcodeForChannelLabel\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"embedPanelGettingCodes\", {\r\n get: function () { return this._getResourceString(\"embedPanelGettingCodes\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"embedPanelNoCodeAvailable\", {\r\n get: function () { return this._getResourceString(\"embedPanelNoCodeAvailable\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelIssuesPanelSubtitle\", {\r\n get: function () { return this._getResourceString(\"channelIssuesPanelSubtitle\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelIssuesPanelClearall\", {\r\n get: function () { return this._getResourceString(\"channelIssuesPanelClearall\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelIssuesPanelTimeColumnLabel\", {\r\n get: function () { return this._getResourceString(\"channelIssuesPanelTimeColumnLabel\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelIssuesPanelMessageColumnLabel\", {\r\n get: function () { return this._getResourceString(\"channelIssuesPanelMessageColumnLabel\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelIssuesPanelCorrelationIdColumnLabel\", {\r\n get: function () { return this._getResourceString(\"channelIssuesPanelCorrelationIdColumnLabel\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"unsavedChangesWillBeLost\", {\r\n get: function () { return this._getResourceString(\"unsavedChangesWillBeLost\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"altImageChannel\", {\r\n get: function () { return this._getResourceString(\"altImageChannel\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"Bing\", {\r\n get: function () { return this._getResourceString(\"Bing\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"Cortana\", {\r\n get: function () { return this._getResourceString(\"Cortana\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"MicrosoftSearch\", {\r\n get: function () { return this._getResourceString(\"MicrosoftSearch\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"DirectLine\", {\r\n get: function () { return this._getResourceString(\"DirectLine\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"Email\", {\r\n get: function () { return this._getResourceString(\"Email\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"FacebookMessenger\", {\r\n get: function () { return this._getResourceString(\"FacebookMessenger\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"GroupMe\", {\r\n get: function () { return this._getResourceString(\"GroupMe\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"Kaizala\", {\r\n get: function () { return this._getResourceString(\"Kaizala\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"Kik\", {\r\n get: function () { return this._getResourceString(\"Kik\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"MicrosoftTeams\", {\r\n get: function () { return this._getResourceString(\"MicrosoftTeams\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"Skype\", {\r\n get: function () { return this._getResourceString(\"Skype\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"SkypeforBusiness\", {\r\n get: function () { return this._getResourceString(\"SkypeforBusiness\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"_SkypeforBusiness\", {\r\n get: function () { return this._getResourceString(\"_SkypeforBusiness\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"Slack\", {\r\n get: function () { return this._getResourceString(\"Slack\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"Telegram\", {\r\n get: function () { return this._getResourceString(\"Telegram\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"Twilio\", {\r\n get: function () { return this._getResourceString(\"Twilio\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationBannerCTAMigrateBot\", {\r\n get: function () { return this._getResourceString(\"migrationBannerCTAMigrateBot\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationBannerCTAStartMigrating\", {\r\n get: function () { return this._getResourceString(\"migrationBannerCTAStartMigrating\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationBannerBlurb1\", {\r\n get: function () { return this._getResourceString(\"migrationBannerBlurb1\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationBannerBlurb2\", {\r\n get: function () { return this._getResourceString(\"migrationBannerBlurb2\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationBannerSuggestedBlurb\", {\r\n get: function () { return this._getResourceString(\"migrationBannerSuggestedBlurb\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationBannerPostDeadlineBlurb\", {\r\n get: function () { return this._getResourceString(\"migrationBannerPostDeadlineBlurb\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationBannerBlockedBlurb\", {\r\n get: function () { return this._getResourceString(\"migrationBannerBlockedBlurb\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationWillBeRequiredDialogMessage\", {\r\n get: function () { return this._getResourceString(\"migrationWillBeRequiredDialogMessage\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelRequiresMigrationDialogMessage\", {\r\n get: function () { return this._getResourceString(\"channelRequiresMigrationDialogMessage\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"channelRequiresABSBot\", {\r\n get: function () { return this._getResourceString(\"channelRequiresABSBot\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"botRequiresMigrationDialogHeader\", {\r\n get: function () { return this._getResourceString(\"botRequiresMigrationDialogHeader\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"botRequiresMigrationDialogMessage\", {\r\n get: function () { return this._getResourceString(\"botRequiresMigrationDialogMessage\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"yesMigrateThisBot\", {\r\n get: function () { return this._getResourceString(\"yesMigrateThisBot\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"myBotsMigrationStatusMigrated\", {\r\n get: function () { return this._getResourceString(\"myBotsMigrationStatusMigrated\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"myBotsMigrationStatusNotMigrated\", {\r\n get: function () { return this._getResourceString(\"myBotsMigrationStatusNotMigrated\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"myBotsMigrationStatusOptionalMigration\", {\r\n get: function () { return this._getResourceString(\"myBotsMigrationStatusOptionalMigration\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"myBotsMigrationButtonMigrate\", {\r\n get: function () { return this._getResourceString(\"myBotsMigrationButtonMigrate\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"myBotsMigrationButtonRollback\", {\r\n get: function () { return this._getResourceString(\"myBotsMigrationButtonRollback\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"deleteBotDialogDeleteButtonText\", {\r\n get: function () { return this._getResourceString(\"deleteBotDialogDeleteButtonText\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"cancelButtonText\", {\r\n get: function () { return this._getResourceString(\"cancelButtonText\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"deleteBotDialogTitleText\", {\r\n get: function () { return this._getResourceString(\"deleteBotDialogTitleText\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"deleteBotDialogBodyText\", {\r\n get: function () { return this._getResourceString(\"deleteBotDialogBodyText\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"deleteBotDialogStatusDeleting\", {\r\n get: function () { return this._getResourceString(\"deleteBotDialogStatusDeleting\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"deleteBotDialogStatusDeleted\", {\r\n get: function () { return this._getResourceString(\"deleteBotDialogStatusDeleted\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"rollbackBotDialogRollbackButtonText\", {\r\n get: function () { return this._getResourceString(\"rollbackBotDialogRollbackButtonText\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"rollbackBotDialogTitleText\", {\r\n get: function () { return this._getResourceString(\"rollbackBotDialogTitleText\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"rollbackBotDialogBodyText\", {\r\n get: function () { return this._getResourceString(\"rollbackBotDialogBodyText\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"rollbackBotDialogErrorInfo\", {\r\n get: function () { return this._getResourceString(\"rollbackBotDialogErrorInfo\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"rollbackBotDialogErrorNoEndpoint\", {\r\n get: function () { return this._getResourceString(\"rollbackBotDialogErrorNoEndpoint\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"rollbackBotDialogErrorNoAzureToken\", {\r\n get: function () { return this._getResourceString(\"rollbackBotDialogErrorNoAzureToken\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"rollbackBotDialogStatusGettingInfo\", {\r\n get: function () { return this._getResourceString(\"rollbackBotDialogStatusGettingInfo\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"rollbackBotDialogStatusPreparing\", {\r\n get: function () { return this._getResourceString(\"rollbackBotDialogStatusPreparing\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"rollbackBotDialogStatusReverting\", {\r\n get: function () { return this._getResourceString(\"rollbackBotDialogStatusReverting\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"rollbackBotDialogStatusDeletingApp\", {\r\n get: function () { return this._getResourceString(\"rollbackBotDialogStatusDeletingApp\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"rollbackBotDialogStatusDeletingDeployment\", {\r\n get: function () { return this._getResourceString(\"rollbackBotDialogStatusDeletingDeployment\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"rollbackBotDialogConfirmationTitleText\", {\r\n get: function () { return this._getResourceString(\"rollbackBotDialogConfirmationTitleText\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"rollbackBotDialogConfirmationBodyText\", {\r\n get: function () { return this._getResourceString(\"rollbackBotDialogConfirmationBodyText\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"okButtonText\", {\r\n get: function () { return this._getResourceString(\"okButtonText\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"errorMessageErrorOccurred\", {\r\n get: function () { return this._getResourceString(\"errorMessageErrorOccurred\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogStatusGettingBotInfo\", {\r\n get: function () { return this._getResourceString(\"migrationDialogStatusGettingBotInfo\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogStatusGettingAzureInfo\", {\r\n get: function () { return this._getResourceString(\"migrationDialogStatusGettingAzureInfo\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogStatusGettingAppSettings\", {\r\n get: function () { return this._getResourceString(\"migrationDialogStatusGettingAppSettings\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogStatusDeployingMigrationBot\", {\r\n get: function () { return this._getResourceString(\"migrationDialogStatusDeployingMigrationBot\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogStatusRegisteringWithAzure\", {\r\n get: function () { return this._getResourceString(\"migrationDialogStatusRegisteringWithAzure\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogStatusUpdatingBotRecord\", {\r\n get: function () { return this._getResourceString(\"migrationDialogStatusUpdatingBotRecord\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogStatusCreatingRG\", {\r\n get: function () { return this._getResourceString(\"migrationDialogStatusCreatingRG\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogStatusMigratingFiles\", {\r\n get: function () { return this._getResourceString(\"migrationDialogStatusMigratingFiles\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogStatusWrappingUp\", {\r\n get: function () { return this._getResourceString(\"migrationDialogStatusWrappingUp\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogStatusDeployingStorage\", {\r\n get: function () { return this._getResourceString(\"migrationDialogStatusDeployingStorage\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogStatusDeployingSite\", {\r\n get: function () { return this._getResourceString(\"migrationDialogStatusDeployingSite\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogStatusConfiguringSite\", {\r\n get: function () { return this._getResourceString(\"migrationDialogStatusConfiguringSite\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogStatusDeploying\", {\r\n get: function () { return this._getResourceString(\"migrationDialogStatusDeploying\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogStatusFunctionCredentials\", {\r\n get: function () { return this._getResourceString(\"migrationDialogStatusFunctionCredentials\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogErrorNoSubs\", {\r\n get: function () { return this._getResourceString(\"migrationDialogErrorNoSubs\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogErrorNoAzureToken\", {\r\n get: function () { return this._getResourceString(\"migrationDialogErrorNoAzureToken\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogErrorNoLocations\", {\r\n get: function () { return this._getResourceString(\"migrationDialogErrorNoLocations\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogErrorNoAzureStorage\", {\r\n get: function () { return this._getResourceString(\"migrationDialogErrorNoAzureStorage\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogErrorAppNameUnavailable\", {\r\n get: function () { return this._getResourceString(\"migrationDialogErrorAppNameUnavailable\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogErrorAppNameInvalid\", {\r\n get: function () { return this._getResourceString(\"migrationDialogErrorAppNameInvalid\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogErrorNoBotType\", {\r\n get: function () { return this._getResourceString(\"migrationDialogErrorNoBotType\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogErrorBotInvalid\", {\r\n get: function () { return this._getResourceString(\"migrationDialogErrorBotInvalid\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogErrorEndpointMissing\", {\r\n get: function () { return this._getResourceString(\"migrationDialogErrorEndpointMissing\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogErrorProvisionInfoMissing\", {\r\n get: function () { return this._getResourceString(\"migrationDialogErrorProvisionInfoMissing\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogErrorResourceGroupNameMissing\", {\r\n get: function () { return this._getResourceString(\"migrationDialogErrorResourceGroupNameMissing\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogErrorSubscriptionIdMissing\", {\r\n get: function () { return this._getResourceString(\"migrationDialogErrorSubscriptionIdMissing\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogErrorSiteNameMissing\", {\r\n get: function () { return this._getResourceString(\"migrationDialogErrorSiteNameMissing\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogABSv2TitleText\", {\r\n get: function () { return this._getResourceString(\"migrationDialogABSv2TitleText\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogABSv2BodyText\", {\r\n get: function () { return this._getResourceString(\"migrationDialogABSv2BodyText\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogRegistrationBodyText\", {\r\n get: function () { return this._getResourceString(\"migrationDialogRegistrationBodyText\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogFailedTokenRefresh\", {\r\n get: function () { return this._getResourceString(\"migrationDialogFailedTokenRefresh\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogRefreshPage\", {\r\n get: function () { return this._getResourceString(\"migrationDialogRefreshPage\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationSubscriptionDisabled\", {\r\n get: function () { return this._getResourceString(\"migrationSubscriptionDisabled\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationTenantHasNoSubscriptions\", {\r\n get: function () { return this._getResourceString(\"migrationTenantHasNoSubscriptions\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogFuncPackBotTitle\", {\r\n get: function () { return this._getResourceString(\"migrationDialogFuncPackBotTitle\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogFuncPackBotMessage\", {\r\n get: function () { return this._getResourceString(\"migrationDialogFuncPackBotMessage\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"migrationDialogFuncPackBotLinkText\", {\r\n get: function () { return this._getResourceString(\"migrationDialogFuncPackBotLinkText\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"tosDialog_Header\", {\r\n get: function () { return this._getResourceString(\"tosDialog_Header\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"tosDialog_AgreeButton\", {\r\n get: function () { return this._getResourceString(\"tosDialog_AgreeButton\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"tosDialog_MessageChannels\", {\r\n get: function () { return this._getResourceString(\"tosDialog_MessageChannels\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"tosDialog_MessageMigration\", {\r\n get: function () { return this._getResourceString(\"tosDialog_MessageMigration\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"tosDialog_AzureTermsCheckbox\", {\r\n get: function () { return this._getResourceString(\"tosDialog_AzureTermsCheckbox\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"tosDialog_CortanaTermsCheckbox\", {\r\n get: function () { return this._getResourceString(\"tosDialog_CortanaTermsCheckbox\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"tosDialog_CombinedTermsCheckboxOneChannel\", {\r\n get: function () { return this._getResourceString(\"tosDialog_CombinedTermsCheckboxOneChannel\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"tosDialog_CombinedTermsCheckboxMultiChannels\", {\r\n get: function () { return this._getResourceString(\"tosDialog_CombinedTermsCheckboxMultiChannels\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"tosDialog_ABSTerms\", {\r\n get: function () { return this._getResourceString(\"tosDialog_ABSTerms\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"tosDialog_MSKnowledgeGraphTerms\", {\r\n get: function () { return this._getResourceString(\"tosDialog_MSKnowledgeGraphTerms\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"tosDialog_MSPublicationTerms\", {\r\n get: function () { return this._getResourceString(\"tosDialog_MSPublicationTerms\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"tosDialog_MSPrivacyStatement\", {\r\n get: function () { return this._getResourceString(\"tosDialog_MSPrivacyStatement\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"notice\", {\r\n get: function () { return this._getResourceString(\"notice\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"listElem\", {\r\n get: function () { return this._getResourceString(\"listElem\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"andListEnd\", {\r\n get: function () { return this._getResourceString(\"andListEnd\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"analyticsChannelsDropdown\", {\r\n get: function () { return this._getResourceString(\"analyticsChannelsDropdown\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"analyticsPeriodDropdown\", {\r\n get: function () { return this._getResourceString(\"analyticsPeriodDropdown\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"deprecatedChannel\", {\r\n get: function () { return this._getResourceString(\"deprecatedChannel\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"openInComposer\", {\r\n get: function () { return this._getResourceString(\"openInComposer\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"downloadComposer\", {\r\n get: function () { return this._getResourceString(\"downloadComposer\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"deprecatedWarning\", {\r\n get: function () { return this._getResourceString(\"deprecatedWarning\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Resources, \"warningText\", {\r\n get: function () { return this._getResourceString(\"warningText\"); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Resources._getResourceString = function (key) {\r\n this._loadResourcesIfNeeded();\r\n if (this._currentCultureName !== \"en\") {\r\n var localizedResource = this._currentResources[key];\r\n if (localizedResource !== undefined) {\r\n return localizedResource;\r\n }\r\n }\r\n return Resources_en[key];\r\n };\r\n Resources._loadResourcesIfNeeded = function () {\r\n var cultureName = Culture_1.Culture.Lang;\r\n if (cultureName === undefined) {\r\n this._currentResources = Resources_en;\r\n this._currentCultureName = \"en\";\r\n }\r\n else if (cultureName !== this._currentCultureName) {\r\n var resources = ResourcesMap[cultureName.toLowerCase()];\r\n if (resources) {\r\n this._currentResources = resources;\r\n }\r\n else {\r\n this._currentResources = Resources_en;\r\n }\r\n this._currentCultureName = cultureName;\r\n }\r\n };\r\n return Resources;\r\n }());\r\n exports.Resources = Resources;\r\n ;\r\n var Resources_en = {\r\n \"unsupportedBrowser_Azure\": \"The Azure Bot Service doesn't support your browser yet.\",\r\n \"unsupportedBrowser\": \"Bot Framework doesn't support your browser yet.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Logging in\",\r\n \"loadingBot\": \"Loading bot...\",\r\n \"botIsNotReady\": \"Waiting for bot to be ready\",\r\n \"analyticsNotReady\": \"Waiting for Application Insights to be configured\",\r\n \"authorizingWebChat\": \"Authorizing Chat with Bot\",\r\n \"signInFailure\": \"There was an error signing you in. Make sure third party cookies are enabled in the browser.\",\r\n \"getChatTokenFailure\": \"There was an error getting a Chat authorization token. Refresh and try again.\",\r\n \"refreshSignInFailure\": \"There was an error refreshing your sign-in information. Make sure third party cookies are enabled in the browser.\",\r\n \"xhrResponse_400\": \"The action or the supplied values are invalid.\",\r\n \"xhrResponse_403\": \"This item cannot be accessed or modified.\",\r\n \"xhrResponse_404\": \"The item cannot be found.\",\r\n \"xhrResponse_500\": \"An internal error occurred at the server.\",\r\n \"xhrResponse_501\": \"This operation is not supported.\",\r\n \"xhrResponse_Message\": \"Error: %1\",\r\n \"xhrResponse_Unknown\": \"An unknown error occurred.\",\r\n \"AddAFeaturedChannelTitle\": \"Add a featured channel\",\r\n \"ConnectToChannelsTitle\": \"Connect to channels\",\r\n \"NoChannelsConfigured\": \"You haven't connected any channels yet. Select a channel to connect.\",\r\n \"MoreChannelsTitle\": \"More channels\",\r\n \"test\": \"Test\",\r\n \"startOver\": \"Start over\",\r\n \"retentionTitle\": \"Retention\",\r\n \"retentionDescription\": \"% users who messaged again (last 10 days)\",\r\n \"retentionHeader\": \"Days later\",\r\n \"retentionDate\": \"Date\",\r\n \"retentionUsers\": \"Users\",\r\n \"undetermined\": \"Undetermined\",\r\n \"loading\": \"loading...\",\r\n \"noAnalyticsData\": \"no data\",\r\n \"timespanLastHour\": \"Last Hour\",\r\n \"timespanLastDay\": \"Last Day\",\r\n \"timespanLastWeek\": \"Last Week\",\r\n \"timespanLastMonth\": \"Last Month\",\r\n \"timespanLast90Days\": \"Last 90 Days\",\r\n \"timespanUnknown\": \"Unknown timespan\",\r\n \"timelineCardUsersTitle\": \"Users\",\r\n \"timelineCardMessagesTitle\": \"Activities\",\r\n \"totalsCardTitle\": \"Grand Totals\",\r\n \"analyticsNotConfigured\": \"You haven't enabled Analytics via Azure Application Insights yet.\",\r\n \"analyticsNotConfiguredAction\": \"Provide your Application Insights Keys and ID for this bot in the following page: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Provide your Application Insights Keys and ID for this bot on the settings page.\",\r\n \"learnMore\": \"Learn more\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - error: %2\",\r\n \"timelineTableLabel\": \"Timeline table mapping %1 by time\",\r\n \"timelineChartLabel\": \"Timeline chart mapping %1 by time\",\r\n \"published\": \"Published\",\r\n \"health\": \"Health\",\r\n \"actions\": \"Actions\",\r\n \"channelname\": \"Name\",\r\n \"edit\": \"Edit\",\r\n \"running\": \"Running\",\r\n \"issuesTemplate\": \"Issues (<%= length %>)\",\r\n \"warningTemplate\": \"Warnings (<%= length %>)\",\r\n \"channelPublished\": \"Published\",\r\n \"tryOnCortana\": \"Try on <%= Name %> - learn how\",\r\n \"tryOnChannel\": \"Try on <%= Name %>\",\r\n \"manageInCortana\": \"Manage in Cortana dashboard\",\r\n \"channelRejected\": \"Rejected\",\r\n \"channelMoreDetails\": \"More details\",\r\n \"channelResubmit\": \"Re-submit for review...\",\r\n \"channelGetEmbedCodes\": \"Get bot embed codes\",\r\n \"channelConfigDeleteMessage\": \"This action will delete all channel configuration information. Are you sure you want to proceed?\",\r\n \"channelConfigDeleteHeader\": \"Delete channel\",\r\n \"channelConfigDeleteOk\": \"Yes, delete it\",\r\n \"channelConfigDeleteCancel\": \"No, keep it\",\r\n \"channelConfigLeaveMessage\": \"You have unsaved changes in this document. Are you sure you want to navigate away from this page?\",\r\n \"channelConfigLeaveHeader\": \"Discard changes\",\r\n \"channelConfigLeaveOk\": \"Yes, leave page\",\r\n \"channelConfigLeaveCancel\": \"No, stay on page\",\r\n \"channelEdit\": \"Edit\",\r\n \"dialogPleaseWait\": \"Please wait...\",\r\n \"embedPanelTitle\": \"Bot embed code\",\r\n \"embedPanelDescription\": \"Choose a channel to get the embed code for it. Copy and paste the code to your website.\",\r\n \"embedPanelFacebookFooter\": \"In order to use this embed Facebook requires you to include their JavaScript SDK in your page.\",\r\n \"embedPanelLearnMore\": \"Learn more.\",\r\n \"embedPanelChannelMovedHeader\": \"Embed code for %1 has moved\",\r\n \"embedPanelChannelMovedInstructions\": \"Click here to open the %1 configuration page\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Embed code for %1\",\r\n \"embedPanelGettingCodes\": \"Getting codes...\",\r\n \"embedPanelNoCodeAvailable\": \"No embed code available for this bot.\",\r\n \"channelIssuesPanelSubtitle\": \"Recent issues\",\r\n \"channelIssuesPanelClearall\": \"Clear All\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Time\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Message\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"Correlation ID\",\r\n \"unsavedChangesWillBeLost\": \"Unsaved changes will be lost.\",\r\n \"altImageChannel\": \"Configure %1 channel\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"Email\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype for business\",\r\n \"_SkypeforBusiness\": \"Skype for business brand\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRATE THIS BOT\",\r\n \"migrationBannerCTAStartMigrating\": \"START MIGRATING\",\r\n \"migrationBannerBlurb1\": \"With the launch of the new Azure Bot Service, we are migrating all bots to the new service by 3/31/2018.\",\r\n \"migrationBannerBlurb2\": \"about the migration.\",\r\n \"migrationBannerSuggestedBlurb\": \"Migration to Azure Bot Service is optional for this bot.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Bots requiring migration to Azure Bot Service must migrate now to avoid service interruption.\",\r\n \"migrationBannerBlockedBlurb\": \"Bot migration is past due, please migrate it now to avoid service interruption.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"If you configure this channel, your bot will be required to migrate to Azure Bot Service by 3/31/2018. Are you sure you want to configure this channel?\",\r\n \"channelRequiresMigrationDialogMessage\": \"This channel is only available to bots in Azure Bot Service. Do you want to migrate this bot?\",\r\n \"channelRequiresABSBot\": \"This channel is only available to bots in Azure Bot Service.\",\r\n \"botRequiresMigrationDialogHeader\": \"Bot requires migration\",\r\n \"botRequiresMigrationDialogMessage\": \"Bot migration is past due, please migrate it now to avoid service interruption.\",\r\n \"yesMigrateThisBot\": \"Yes, migrate this bot\",\r\n \"myBotsMigrationStatusMigrated\": \"Migrated\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Required\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Not required\",\r\n \"myBotsMigrationButtonMigrate\": \"Migrate\",\r\n \"myBotsMigrationButtonRollback\": \"Roll back migration\",\r\n \"deleteBotDialogDeleteButtonText\": \"Delete bot\",\r\n \"cancelButtonText\": \"Cancel\",\r\n \"deleteBotDialogTitleText\": \"You are about to delete this bot\",\r\n \"deleteBotDialogBodyText\": \"This action will erase all data associated with this bot and cannot be undone. Are you sure?\",\r\n \"deleteBotDialogStatusDeleting\": \"Deleting bot...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot deleted\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Yes, roll back\",\r\n \"rollbackBotDialogTitleText\": \"Are you sure you want to roll back?\",\r\n \"rollbackBotDialogBodyText\": \"This action will roll back the migration completely and you will have to start the migration process from the start. Are you sure you want to proceed?\",\r\n \"rollbackBotDialogErrorInfo\": \"Error retrieving bot information from server.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Cannot perform rollback. No rollback endpoint found.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Cannot perform rollback. Failed to find an Azure Token to contact Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Gathering bot info...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Preparing bot...\",\r\n \"rollbackBotDialogStatusReverting\": \"Reverting bot..\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Deleting upgraded app...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Deleting deployment record...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Rollback completed\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"has been successfully rolled back.\",\r\n \"okButtonText\": \"Ok\",\r\n \"errorMessageErrorOccurred\": \"An error occurred\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Getting bot info...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Getting Azure info...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Getting bot app settings...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Initializing migrated bot...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Registering Bot Service with Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Updating bot record...\",\r\n \"migrationDialogStatusCreatingRG\": \"Creating resource group...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Migrating files to new bot...\",\r\n \"migrationDialogStatusWrappingUp\": \"Wrapping up deployment...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Connecting bot to existing storage...\",\r\n \"migrationDialogStatusDeployingSite\": \"Deploying web site\",\r\n \"migrationDialogStatusConfiguringSite\": \"Configuring web site\",\r\n \"migrationDialogStatusDeploying\": \"Deploying\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Getting new function app credentials...\",\r\n \"migrationDialogErrorNoSubs\": \"Failed to find any Azure subscriptions for the current user.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Failed to find Azure access token for the current user.\",\r\n \"migrationDialogErrorNoLocations\": \"Failed to find any locations for the selected Azure subscription.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Failed to find an Azure storage account name in the app config.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"App name is not available.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Invalid app name.\",\r\n \"migrationDialogErrorNoBotType\": \"Current bot does not have a valid type.\",\r\n \"migrationDialogErrorBotInvalid\": \"This bot cannot be migrated because the bot is invalid.\",\r\n \"migrationDialogErrorEndpointMissing\": \"This bot cannot be migrated because the endpoint is missing.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"This bot cannot be migrated because the provisioning info is missing.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"This bot cannot be migrated because the resource group name is missing.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"This bot cannot be migrated because the Azure subscription id is missing.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"This bot cannot be migrated because the Azure site name is missing.\",\r\n \"migrationDialogABSv2TitleText\": \"Migration unavailable\",\r\n \"migrationDialogABSv2BodyText\": \"Migration is currently disabled for Conversation Designer (ABSv2) bots.\",\r\n \"migrationDialogRegistrationBodyText\": \"Migration is currently disabled for '{0}' bots.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Azure token has expired.\",\r\n \"migrationDialogRefreshPage\": \"Please refresh the page and retry migration.\",\r\n \"migrationSubscriptionDisabled\": \"The selected Azure subscription is disabled. Please enable to continue migration.\",\r\n \"migrationTenantHasNoSubscriptions\": \"This directory doesn't contain any subscription.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Azure Functions Pack is required in order to migrate this bot\",\r\n \"migrationDialogFuncPackBotMessage\": \"Node Functions bots need to be packaged with Azure Functions Pack before they can be migrated.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Learn how to run Azure Functions Pack on your bot code\",\r\n \"tosDialog_Header\": \"Terms of Service\",\r\n \"tosDialog_AgreeButton\": \"Agree\",\r\n \"tosDialog_MessageChannels\": \"The Online Services Terms do not apply to publication on channels. For example, terms for publication on Microsoft channels do not offer data processing terms.\",\r\n \"tosDialog_MessageMigration\": \"Please read and agree to the following terms.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"I agree that the use of the Bot Framework site is subject to the {0} and the {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"I agree to the {0} and the {1} for my deployment to the Cortana channel.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"I agree to the {0} and the {1} for my deployment to the <%= channelslist %> channel.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"I agree to the {0} and the {1} for my deployment to the <%= channelslist %> channels.\",\r\n \"tosDialog_ABSTerms\": \"terms of my subscription for Azure Bot Service\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Cortana Channel Publication Terms\",\r\n \"tosDialog_MSPublicationTerms\": \"Microsoft Channel Publication Terms\",\r\n \"tosDialog_MSPrivacyStatement\": \"Microsoft Privacy Statements\",\r\n \"notice\": \" NOTICE: \",\r\n \"listElem\": \"{0}, \",\r\n \"andListEnd\": \"{0} and {1}\",\r\n \"analyticsChannelsDropdown\": \"Channels filter\",\r\n \"analyticsPeriodDropdown\": \"Time period\",\r\n \"deprecatedChannel\": \"(deprecated)\",\r\n \"openInComposer\": \"open in composer\",\r\n \"downloadComposer\": \"Download composer\",\r\n \"deprecatedWarning\": \"This page will be deprecated on June 17, 2022. You can setup and configure the channel through updated Channels blade.\",\r\n \"warningText\": \"Warning\"\r\n };\r\n var Resources_de = {\r\n \"unsupportedBrowser_Azure\": \"Ihr Browser wird vom Azure Bot Service noch nicht unterstützt.\",\r\n \"unsupportedBrowser\": \"Ihr Browser wird von Bot Framework noch nicht unterstützt.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Anmeldung wird ausgeführt.\",\r\n \"loadingBot\": \"Bot wird geladen...\",\r\n \"botIsNotReady\": \"Es wird darauf gewartet, dass der Bot bereit ist.\",\r\n \"analyticsNotReady\": \"Es wird auf den Abschluss der Application Insights-Konfiguration gewartet.\",\r\n \"authorizingWebChat\": \"Chat mit Bot wird autorisiert.\",\r\n \"signInFailure\": \"Es gab einen Fehler bei der Anmeldung. Stellen Sie sicher, dass Cookies von Drittanbietern im Browser aktiviert sind.\",\r\n \"getChatTokenFailure\": \"Beim Empfangen eines Chat-Autorisierungstokens ist ein Fehler aufgetreten. Aktualisieren Sie das Fenster, und wiederholen Sie den Vorgang.\",\r\n \"refreshSignInFailure\": \"Es gab einen Fehler bei der Aktualisierung Ihrer Anmeldeinformationen. Stellen Sie sicher, dass Cookies von Drittanbietern im Browser aktiviert sind.\",\r\n \"xhrResponse_400\": \"Die Aktion oder die bereitgestellten Werte sind ungültig.\",\r\n \"xhrResponse_403\": \"Für dieses Element sind weder Zugriff noch Änderung möglich.\",\r\n \"xhrResponse_404\": \"Das Element wurde nicht gefunden.\",\r\n \"xhrResponse_500\": \"Auf dem Server ist ein interner Fehler aufgetreten.\",\r\n \"xhrResponse_501\": \"Dieser Vorgang wird nicht unterstützt.\",\r\n \"xhrResponse_Message\": \"Fehler: %1\",\r\n \"xhrResponse_Unknown\": \"Es ist ein unbekannter Fehler aufgetreten.\",\r\n \"AddAFeaturedChannelTitle\": \"Einen ausgewählten Kanal hinzufügen\",\r\n \"ConnectToChannelsTitle\": \"Mit Kanälen verbinden\",\r\n \"NoChannelsConfigured\": \"Sie haben noch keine Kanäle verbunden. Wählen Sie einen Kanal aus, den Sie verbinden möchten.\",\r\n \"MoreChannelsTitle\": \"Weitere Kanäle\",\r\n \"test\": \"Test\",\r\n \"startOver\": \"Von vorne\",\r\n \"retentionTitle\": \"Aufbewahrung\",\r\n \"retentionDescription\": \"% Benutzer, die erneut eine Nachricht gesendet haben (letzte 10 Tage)\",\r\n \"retentionHeader\": \"Tage später\",\r\n \"retentionDate\": \"Datum\",\r\n \"retentionUsers\": \"Benutzer\",\r\n \"undetermined\": \"Unbestimmt\",\r\n \"loading\": \"Wird geladen...\",\r\n \"noAnalyticsData\": \"Keine Daten\",\r\n \"timespanLastHour\": \"Letzte Stunde\",\r\n \"timespanLastDay\": \"Letzter Tag\",\r\n \"timespanLastWeek\": \"Letzte Woche\",\r\n \"timespanLastMonth\": \"Letzter Monat\",\r\n \"timespanLast90Days\": \"Letzte 90 Tage\",\r\n \"timespanUnknown\": \"Unbekannter Zeitraum\",\r\n \"timelineCardUsersTitle\": \"Benutzer\",\r\n \"timelineCardMessagesTitle\": \"Aktivitäten\",\r\n \"totalsCardTitle\": \"Gesamtzahlen\",\r\n \"analyticsNotConfigured\": \"Sie haben Analytics noch nicht über Azure Application Insights aktiviert.\",\r\n \"analyticsNotConfiguredAction\": \"Geben Sie auf der folgenden Seite Ihre Application Insights-Schlüssel und -ID für diesen Bot an: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Geben Sie Ihre Application Insights-Schlüssel und -ID für diesen Bot auf der Einstellungsseite an.\",\r\n \"learnMore\": \"Weitere Informationen\",\r\n \"cardTitleLoading\": \"%1 – %2\",\r\n \"cardTitleError\": \"%1 – Fehler: %2\",\r\n \"timelineTableLabel\": \"Zuordnung der Zeitachsentabelle \\\"%1\\\" nach Zeit\",\r\n \"timelineChartLabel\": \"Zuordnung des Zeitachsendiagramm \\\"%1\\\" nach Zeit\",\r\n \"published\": \"Veröffentlicht\",\r\n \"health\": \"Gesundheit\",\r\n \"channelname\": \"Name\",\r\n \"edit\": \"Bearbeiten\",\r\n \"running\": \"Wird ausgeführt\",\r\n \"issuesTemplate\": \"Probleme (<%= length %>)\",\r\n \"warningTemplate\": \"Warnungen (<%= length %>)\",\r\n \"channelPublished\": \"Veröffentlicht\",\r\n \"tryOnCortana\": \"Test in <%= Name %> – Erfahren Sie, wie\",\r\n \"tryOnChannel\": \"Test in <%= Name %>\",\r\n \"manageInCortana\": \"Im Cortana-Dashboard verwalten\",\r\n \"channelRejected\": \"Zurückgewiesen\",\r\n \"channelMoreDetails\": \"Weitere Details\",\r\n \"channelResubmit\": \"Erneut zur Prüfung übermitteln...\",\r\n \"channelGetEmbedCodes\": \"Bot-Einbettungscode abrufen\",\r\n \"channelConfigDeleteMessage\": \"Durch diese Aktion werden alle Informationen zur Kanalkonfiguration gelöscht. Möchten Sie wirklich fortfahren?\",\r\n \"channelConfigDeleteHeader\": \"Kanal löschen\",\r\n \"channelConfigDeleteOk\": \"Ja, löschen\",\r\n \"channelConfigDeleteCancel\": \"Nein, nicht löschen\",\r\n \"channelConfigLeaveMessage\": \"Dieses Dokument enthält nicht gespeicherte Änderungen. Möchten Sie diese Seite wirklich verlassen?\",\r\n \"channelConfigLeaveHeader\": \"Änderungen verwerfen\",\r\n \"channelConfigLeaveOk\": \"Ja, Seite verlassen\",\r\n \"channelConfigLeaveCancel\": \"Nein, auf der Seite bleiben\",\r\n \"channelEdit\": \"Bearbeiten\",\r\n \"dialogPleaseWait\": \"Bitte warten...\",\r\n \"embedPanelTitle\": \"Bot-Einbettungscode\",\r\n \"embedPanelDescription\": \"Wählen Sie einen Kanal, um den Einbettungscode für diesen abzurufen. Kopieren Sie den Code, und fügen Sie ihn in Ihre Website ein.\",\r\n \"embedPanelFacebookFooter\": \"Um diesen Einbettungscode für Facebook verwenden zu können, müssen Sie den JavaScript-SDK von Facebook in Ihre Seite integrieren.\",\r\n \"embedPanelLearnMore\": \"Weitere Informationen\",\r\n \"embedPanelChannelMovedHeader\": \"Der Einbettungscode für %1 wurde verschoben.\",\r\n \"embedPanelChannelMovedInstructions\": \"Klicken Sie hier, um die %1-Konfigurationsseite zu öffnen.\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Einbettungscode für %1\",\r\n \"embedPanelGettingCodes\": \"Codes werden abgerufen...\",\r\n \"embedPanelNoCodeAvailable\": \"Für diesen Bot ist kein Einbettungscode verfügbar.\",\r\n \"channelIssuesPanelSubtitle\": \"Aktuelle Probleme\",\r\n \"channelIssuesPanelClearall\": \"Alle löschen\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Zeit\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Nachricht\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"Korrelations-ID\",\r\n \"unsavedChangesWillBeLost\": \"Nicht gespeicherte Änderungen gehen verloren.\",\r\n \"altImageChannel\": \"%1 Kanal konfigurieren\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"E-Mail\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype for Business\",\r\n \"_SkypeforBusiness\": \"Skype for Business-Marke\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRIEREN SIE DIESEN BOT\",\r\n \"migrationBannerCTAStartMigrating\": \"STARTEN SIE DIE MIGRATION\",\r\n \"migrationBannerBlurb1\": \"Nach dem Start des neuen Azure Bot Service werden alle Bots bis zum 31.03.2018 zum neuen Dienst migriert.\",\r\n \"migrationBannerBlurb2\": \"Informationen zur Migration.\",\r\n \"migrationBannerSuggestedBlurb\": \"Die Migration auf den Azure Bot Service ist für diesen Bot optional.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Bots, für die eine Migration auf Azure Bot Service erforderlich ist, müssen jetzt migriert werden, um eine Dienstunterbrechung zu vermeiden.\",\r\n \"migrationBannerBlockedBlurb\": \"Die Bot-Migration ist überfällig. Bitte migrieren Sie ihn jetzt, um Dienstunterbrechungen zu vermeiden.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Wenn Sie diesen Kanal konfigurieren, muss Ihr Bot bis zum 31.3.2018 auf Azure Bot Service migriert werden. Möchten Sie diesen Kanal wirklich konfigurieren?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Dieser Kanal ist nur für Bots in Azure Bot Service verfügbar. Möchten Sie diesen Bot migrieren?\",\r\n \"channelRequiresABSBot\": \"Dieser Kanal ist nur für Bots in Azure Bot Service verfügbar.\",\r\n \"botRequiresMigrationDialogHeader\": \"Bot-Migration erforderlich\",\r\n \"botRequiresMigrationDialogMessage\": \"Die Bot-Migration ist überfällig. Bitte migrieren Sie ihn jetzt, um Dienstunterbrechungen zu vermeiden.\",\r\n \"yesMigrateThisBot\": \"Ja, diesen Bot migrieren\",\r\n \"myBotsMigrationStatusMigrated\": \"Migriert\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Pflichtfeld\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Nicht erforderlich\",\r\n \"myBotsMigrationButtonMigrate\": \"Migrieren\",\r\n \"myBotsMigrationButtonRollback\": \"Rollback für Migration ausführen\",\r\n \"deleteBotDialogDeleteButtonText\": \"Bot löschen\",\r\n \"cancelButtonText\": \"Abbrechen\",\r\n \"deleteBotDialogTitleText\": \"Sie sind im Begriff, diesen Bot zu löschen.\",\r\n \"deleteBotDialogBodyText\": \"Durch diese Aktion werden alle mit diesem Bot verknüpften Daten gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden. Möchten Sie den Bot wirklich löschen?\",\r\n \"deleteBotDialogStatusDeleting\": \"Bot wird gelöscht...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot gelöscht\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Ja, Rollback ausführen\",\r\n \"rollbackBotDialogTitleText\": \"Möchten Sie das Rollback wirklich ausführen?\",\r\n \"rollbackBotDialogBodyText\": \"Durch diese Aktion wird ein vollständiges Rollback für die Migration ausgeführt, und Sie müssen mit dem Migrationsprozess von vorne beginnen. Möchten Sie den Vorgang wirklich fortsetzen?\",\r\n \"rollbackBotDialogErrorInfo\": \"Fehler beim Abrufen der Botinformationen vom Server.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Das Rollback kann nicht ausgeführt werden. Es wurde kein Endpunkt für das Rollback gefunden.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Das Rollback kann nicht ausgeführt werden. Es wurde kein Azure-Token gefunden, um eine Verbindung mit Azure herstellen zu können.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Botinformationen werden gesammelt...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Bot wird vorbereitet...\",\r\n \"rollbackBotDialogStatusReverting\": \"Bot wird zurückgesetzt...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Aktualisierte App wird gelöscht...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Bereitstellungsdatensatz wird gelöscht...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Rollback abgeschlossen\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"-Rollback wurde erfolgreich ausgeführt.\",\r\n \"okButtonText\": \"OK\",\r\n \"errorMessageErrorOccurred\": \"Es ist ein Fehler aufgetreten.\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Botinformationen werden abgerufen...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Azure-Informationen werden abgerufen...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Einstellungen der Bot-App werden abgerufen...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Migrierter Bot wird initialisiert...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Botdienst wird bei Azure registriert...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Botdatensatz wird aktualisiert...\",\r\n \"migrationDialogStatusCreatingRG\": \"Ressourcengruppe wird erstellt...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Dateien werden zum neuen Bot migriert...\",\r\n \"migrationDialogStatusWrappingUp\": \"Bereitstellung wird fertig gestellt...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Bot wird mit vorhandenem Speicher verbunden...\",\r\n \"migrationDialogStatusDeployingSite\": \"Website wird bereitgestellt\",\r\n \"migrationDialogStatusConfiguringSite\": \"Website wird konfiguriert\",\r\n \"migrationDialogStatusDeploying\": \"Bereitstellung wird ausgeführt\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Anmeldeinformationen für neue Functions-App werden abgerufen...\",\r\n \"migrationDialogErrorNoSubs\": \"Es wurden keine Azure-Abonnements für den aktuellen Benutzer gefunden.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Es wurde kein Azure-Zugriffstoken für den aktuellen Benutzer gefunden.\",\r\n \"migrationDialogErrorNoLocations\": \"Es wurden keine Standorte für das ausgewählte Azure-Abonnement gefunden.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Es wurde kein Azure-Speicherkontoname in der App-Konfiguration gefunden.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Der App-Name ist nicht verfügbar.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Ungültiger App-Name.\",\r\n \"migrationDialogErrorNoBotType\": \"Der aktuelle Bot hat keinen gültigen Typ.\",\r\n \"migrationDialogErrorBotInvalid\": \"Dieser Bot kann nicht migriert werden, da es sich um einen ungültigen Bot handelt.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Dieser Bot kann nicht migriert werden, da der Endpunkt fehlt.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Dieser Bot kann nicht migriert werden, da die Bereitstellungsinformationen fehlen.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Dieser Bot kann nicht migriert werden, da der Ressourcengruppenname fehlt.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Dieser Bot kann nicht migriert werden, da die ID des Azure-Abonnements fehlt.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Dieser Bot kann nicht migriert werden, da der Name der Azure-Site fehlt.\",\r\n \"migrationDialogABSv2TitleText\": \"Migration nicht verfügbar\",\r\n \"migrationDialogABSv2BodyText\": \"Die Migration von Conversation Designer (ABSv2)-Bots ist zurzeit deaktiviert.\",\r\n \"migrationDialogRegistrationBodyText\": \"Migrationen von {0}-Bots sind zurzeit deaktiviert.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Das Azure-Token ist abgelaufen.\",\r\n \"migrationDialogRefreshPage\": \"Aktualisieren Sie die Seite, und wiederholen Sie die Migration.\",\r\n \"migrationSubscriptionDisabled\": \"Das ausgewählte Azure-Abonnement ist deaktiviert. Aktivieren Sie es, um die Migration fortzusetzen.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Dieses Verzeichnis enthält kein Abonnement.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Ein Azure Functions-Paket ist erforderlich, um diesen Bot zu migrieren.\",\r\n \"migrationDialogFuncPackBotMessage\": \"Node Functions-Bots müssen mit dem Azure Functions-Paket verpackt werden, bevor sie migriert werden können.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Erfahren Sie, wie Sie das Azure Functions-Paket auf Ihrem Bot-Code ausführen\",\r\n \"tosDialog_Header\": \"Nutzungsbedingungen\",\r\n \"tosDialog_AgreeButton\": \"Zustimmen\",\r\n \"tosDialog_MessageChannels\": \"Die Online Services-Nutzungsbedingungen gelten nicht für Veröffentlichungen in Kanälen. Die Nutzungsbedingungen für Veröffentlichungen in Microsoft-Kanälen enthalten beispielsweise keine Bestimmungen für die Verarbeitung von Daten.\",\r\n \"tosDialog_MessageMigration\": \"Lesen Sie die folgenden Nutzungsbedingungen, und stimmen Sie ihnen zu.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Ich stimme zu, dass die Verwendung der Bot Framework-Website den {0} und den {1} unterliegt.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Ich stimme den {0} und den {1} für meine Bereitstellung im Cortana-Kanal zu.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Ich stimme den {0} und den {1} für meine Bereitstellung im folgenden Kanal zu: <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Ich stimme den {0} und den {1} für meine Bereitstellung in folgenden Kanälen zu: <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"Bestimmungen meines Azure Bot Service-Abonnements\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Cortana Channel Publication-Nutzungsbedingungen\",\r\n \"tosDialog_MSPublicationTerms\": \"Microsoft Channel Publication-Nutzungsbedingungen\",\r\n \"tosDialog_MSPrivacyStatement\": \"Microsoft-Datenschutzbestimmungen\",\r\n \"notice\": \" HINWEIS:\",\r\n \"listElem\": \"{0},\",\r\n \"andListEnd\": \"{0} und {1}\",\r\n \"analyticsChannelsDropdown\": \"Kanalfilter\",\r\n \"analyticsPeriodDropdown\": \"Zeitraum\",\r\n \"deprecatedChannel\": \"(veraltet)\",\r\n \"openInComposer\": \"In Composer öffnen\",\r\n \"downloadComposer\": \"Composer herunterladen\",\r\n };\r\n var Resources_es = {\r\n \"unsupportedBrowser_Azure\": \"Azure Bot Service todavía no es compatible con tu explorador.\",\r\n \"unsupportedBrowser\": \"Bot Framework todavía no es compatible con tu explorador.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Iniciando sesión\",\r\n \"loadingBot\": \"Cargando bot...\",\r\n \"botIsNotReady\": \"Esperando a que el bot esté listo\",\r\n \"analyticsNotReady\": \"Esperando a que se configure Application Insights\",\r\n \"authorizingWebChat\": \"Autorizando chat con el bot\",\r\n \"signInFailure\": \"Se produjo un error al iniciar sesión. Asegúrese de que las cookies de terceros estén habilitadas en el navegador.\",\r\n \"getChatTokenFailure\": \"Se produjo un error al obtener un token de autorización de chat. Actualice el proceso y vuelva a intentarlo.\",\r\n \"refreshSignInFailure\": \"Se produjo un error al actualizar la información de inicio de sesión. Asegúrate de que las cookies de terceros están habilitadas en el navegador.\",\r\n \"xhrResponse_400\": \"La acción o los valores proporcionados no son válidos.\",\r\n \"xhrResponse_403\": \"Este elemento no es accesible ni se puede modificar.\",\r\n \"xhrResponse_404\": \"No se puede encontrar el elemento.\",\r\n \"xhrResponse_500\": \"Se produjo un error interno en el servidor.\",\r\n \"xhrResponse_501\": \"Esta operación no se admite.\",\r\n \"xhrResponse_Message\": \"Error: %1\",\r\n \"xhrResponse_Unknown\": \"Se produjo un error desconocido.\",\r\n \"AddAFeaturedChannelTitle\": \"Agregar un canal destacado\",\r\n \"ConnectToChannelsTitle\": \"Conectarse a canales\",\r\n \"NoChannelsConfigured\": \"Todavía no te has conectado a ningún canal. Selecciona un canal al que quieras conectarte.\",\r\n \"MoreChannelsTitle\": \"Más canales\",\r\n \"test\": \"Prueba\",\r\n \"startOver\": \"Empezar de nuevo\",\r\n \"retentionTitle\": \"Retención\",\r\n \"retentionDescription\": \"% usuarios que volvieron a enviar el mensaje (en los últimos 10 días).\",\r\n \"retentionHeader\": \"Días después\",\r\n \"retentionDate\": \"Fecha\",\r\n \"retentionUsers\": \"Usuarios\",\r\n \"undetermined\": \"Sin determinar\",\r\n \"loading\": \"cargando...\",\r\n \"noAnalyticsData\": \"sin datos\",\r\n \"timespanLastHour\": \"La última hora\",\r\n \"timespanLastDay\": \"El último día\",\r\n \"timespanLastWeek\": \"La última semana\",\r\n \"timespanLastMonth\": \"El último mes\",\r\n \"timespanLast90Days\": \"Últimos 90 días\",\r\n \"timespanUnknown\": \"Intervalo de tiempo desconocido\",\r\n \"timelineCardUsersTitle\": \"Usuarios\",\r\n \"timelineCardMessagesTitle\": \"Actividades\",\r\n \"totalsCardTitle\": \"Totales generales\",\r\n \"analyticsNotConfigured\": \"Todavía no has habilitado Analytics mediante Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Da las claves de Application Insights y el id. del bot en la siguiente página:\",\r\n \"analyticsNotConfiguredActionIbiza\": \"Da las claves de Application Insights y el id. del bot en la página de configuración.\",\r\n \"learnMore\": \"Más información\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - error: %2\",\r\n \"timelineTableLabel\": \"Asignación de tabla de escala de tiempo %1 por hora\",\r\n \"timelineChartLabel\": \"Asignación del gráfico de escala de tiempo %1 por hora\",\r\n \"published\": \"Publicado\",\r\n \"health\": \"Estado\",\r\n \"channelname\": \"Nombre\",\r\n \"edit\": \"Editar\",\r\n \"running\": \"En funcionamiento\",\r\n \"issuesTemplate\": \"Problemas (<%= length %>)\",\r\n \"warningTemplate\": \"Advertencias (<%= length %>)\",\r\n \"channelPublished\": \"Publicado\",\r\n \"tryOnCortana\": \"Probar en <%= Name %>: averigua cómo\",\r\n \"tryOnChannel\": \"Probar en <%= Name %>\",\r\n \"manageInCortana\": \"Administrar en el panel de Cortana\",\r\n \"channelRejected\": \"Rechazado\",\r\n \"channelMoreDetails\": \"Más detalles\",\r\n \"channelResubmit\": \"Volver a enviar para la revisión...\",\r\n \"channelGetEmbedCodes\": \"Obtener los códigos para insertar de los bots\",\r\n \"channelConfigDeleteMessage\": \"Esta acción eliminará toda la información de configuración del canal. ¿Estás seguro de que quieres continuar?\",\r\n \"channelConfigDeleteHeader\": \"Eliminar canal\",\r\n \"channelConfigDeleteOk\": \"Sí, quiero eliminarlo\",\r\n \"channelConfigDeleteCancel\": \"No, quiero guardarlo\",\r\n \"channelConfigLeaveMessage\": \"Tienes cambios sin guardar en este documento. ¿Estás seguro de que quieres salir de esta página?\",\r\n \"channelConfigLeaveHeader\": \"Descartar cambios\",\r\n \"channelConfigLeaveOk\": \"Sí, salir de la página\",\r\n \"channelConfigLeaveCancel\": \"No, permanecer en la página\",\r\n \"channelEdit\": \"Editar\",\r\n \"dialogPleaseWait\": \"Espera...\",\r\n \"embedPanelTitle\": \"Código para insertar del bot\",\r\n \"embedPanelDescription\": \"Elige un canal del cual obtener el código para insertar correspondiente. Copia y pega el código en tu sitio web.\",\r\n \"embedPanelFacebookFooter\": \"Para poder usar este código para insertar de Facebook, debes incluir el SDK de JavaScript en la página.\",\r\n \"embedPanelLearnMore\": \"Obtén más información.\",\r\n \"embedPanelChannelMovedHeader\": \"Se movió el código para insertar de %1.\",\r\n \"embedPanelChannelMovedInstructions\": \"Haz clic aquí para abrir la página de configuración %1.\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Código para insertar de %1\",\r\n \"embedPanelGettingCodes\": \"Obteniendo los códigos...\",\r\n \"embedPanelNoCodeAvailable\": \"No hay código para insertar disponible para este bot.\",\r\n \"channelIssuesPanelSubtitle\": \"Problemas recientes\",\r\n \"channelIssuesPanelClearall\": \"Borrar todo\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Hora\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Mensaje\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"Id. de correlación\",\r\n \"unsavedChangesWillBeLost\": \"Los cambios que no haya guardado se perderán.\",\r\n \"altImageChannel\": \"Configurar el canal %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"Correo\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype Empresarial\",\r\n \"_SkypeforBusiness\": \"Marca de Skype Empresarial\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRAR ESTE BOT\",\r\n \"migrationBannerCTAStartMigrating\": \"COMENZAR LA MIGRACIÓN\",\r\n \"migrationBannerBlurb1\": \"A raíz del lanzamiento del nuevo servicio Azure Bot Service, migraremos todos los bots al nuevo servicio antes del 31/03/2018.\",\r\n \"migrationBannerBlurb2\": \"sobre la migración.\",\r\n \"migrationBannerSuggestedBlurb\": \"La migración a Azure Bot Service es opcional para este bot.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Para evitar la interrupción del servicio, se deben migrar ahora los bots que requieren de migración a Azure Bot Service.\",\r\n \"migrationBannerBlockedBlurb\": \"La migración de bot se ha vencido. Realícela ahora para evitar la interrupción del servicio.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Si configura este canal, deberá migrar el bot a Azure Bot Service antes del 31/3/2018. ¿Confirma que quiere configurar este canal?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Este canal solo está disponible para bots de Azure Bot Service. ¿Desea migrar este bot?\",\r\n \"channelRequiresABSBot\": \"Este canal solo está disponible para bots de Azure Bot Service.\",\r\n \"botRequiresMigrationDialogHeader\": \"Es necesario migrar el bot\",\r\n \"botRequiresMigrationDialogMessage\": \"La migración de bot se ha vencido. Realícela ahora para evitar la interrupción del servicio.\",\r\n \"yesMigrateThisBot\": \"Sí, migrar este bot\",\r\n \"myBotsMigrationStatusMigrated\": \"Migrado\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Obligatorio\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"No se requiere\",\r\n \"myBotsMigrationButtonMigrate\": \"Migrar\",\r\n \"myBotsMigrationButtonRollback\": \"Revertir migración\",\r\n \"deleteBotDialogDeleteButtonText\": \"Eliminar bot\",\r\n \"cancelButtonText\": \"Cancelar\",\r\n \"deleteBotDialogTitleText\": \"Está a punto de eliminar este bot\",\r\n \"deleteBotDialogBodyText\": \"Esta acción eliminará todos los datos relacionados con el bot y no se puede deshacer. ¿Está seguro?\",\r\n \"deleteBotDialogStatusDeleting\": \"Eliminando bot...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot eliminado\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Sí, revertir\",\r\n \"rollbackBotDialogTitleText\": \"¿Seguro que quiere realizar la reversión?\",\r\n \"rollbackBotDialogBodyText\": \"Esta acción revertirá totalmente la migración y tendrá que volver a iniciar el proceso desde cero. ¿Seguro que quiere continuar?\",\r\n \"rollbackBotDialogErrorInfo\": \"Error al recuperar la información del bot desde el servidor.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"No se puede realizar la reversión porque no se encontró ningún punto de conexión de reversión.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"No se puede realizar la reversión porque no se pudo encontrar ningún token de Azure para contactar con Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Obteniendo la información del bot...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Preparando el bot...\",\r\n \"rollbackBotDialogStatusReverting\": \"Revirtiendo el bot...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Eliminando la aplicación actualizada...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Eliminando el registro de implementaciones...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Reversión completada\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"se revirtió correctamente.\",\r\n \"okButtonText\": \"Aceptar\",\r\n \"errorMessageErrorOccurred\": \"Se produjo un error.\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Obteniendo la información del bot...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Obteniendo la información de Azure...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Obteniendo la configuración de la aplicación Bot...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Inicializando el bot migrado...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Registrando Bot Service con Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Actualizando el registro de bots...\",\r\n \"migrationDialogStatusCreatingRG\": \"Creando el grupo de recursos...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Migrando archivos al nuevo bot...\",\r\n \"migrationDialogStatusWrappingUp\": \"Ajustando la implementación...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Conectando el bot al almacenamiento existente...\",\r\n \"migrationDialogStatusDeployingSite\": \"Implementando el sitio web\",\r\n \"migrationDialogStatusConfiguringSite\": \"Configurando el sitio web\",\r\n \"migrationDialogStatusDeploying\": \"Implementando\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Obteniendo las nuevas credenciales de Function App...\",\r\n \"migrationDialogErrorNoSubs\": \"No se pudo encontrar ninguna suscripción de Azure del usuario actual.\",\r\n \"migrationDialogErrorNoAzureToken\": \"No se pudo encontrar el token de acceso de Azure del usuario actual.\",\r\n \"migrationDialogErrorNoLocations\": \"No se pudo encontrar ninguna ubicación para la suscripción de Azure seleccionada.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"No se pudo encontrar ningún nombre para la cuenta de almacenamiento de Azure en la configuración de la aplicación.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"El nombre de la aplicación no está disponible.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"El nombre de la aplicación no es válido.\",\r\n \"migrationDialogErrorNoBotType\": \"El bot actual no tiene ningún tipo válido.\",\r\n \"migrationDialogErrorBotInvalid\": \"No se puede migrar este bot porque no es válido.\",\r\n \"migrationDialogErrorEndpointMissing\": \"No se puede migrar este bot porque falta el punto de conexión.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"No se puede migrar este bot porque falta la información de aprovisionamiento.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"No se puede migrar este bot porque falta el nombre del grupo de recursos.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"No se puede migrar este bot porque falta el id. de la suscripción de Azure.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"No se puede migrar este bot porque falta el nombre del sitio de Azure.\",\r\n \"migrationDialogABSv2TitleText\": \"La migración no está disponible\",\r\n \"migrationDialogABSv2BodyText\": \"La migración está deshabilitada para los bots del diseñador de conversaciones (ABSv2).\",\r\n \"migrationDialogRegistrationBodyText\": \"En estos momentos la migración de los bots \\\"{0}\\\" está deshabilitada.\",\r\n \"migrationDialogFailedTokenRefresh\": \"El token de Azure ha expirado.\",\r\n \"migrationDialogRefreshPage\": \"Actualice la página y vuelva a intentar la migración.\",\r\n \"migrationSubscriptionDisabled\": \"La suscripción de Azure seleccionada está deshabilitada. Habilítala para continuar con la migración.\",\r\n \"migrationTenantHasNoSubscriptions\": \"El directorio no contiene ninguna suscripción.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Azure Functions Pack es necesario para migrar este bot.\",\r\n \"migrationDialogFuncPackBotMessage\": \"Los bots de Node Functions deben empaquetarse con Azure Functions Pack para poder migrarlos.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Aprende a ejecutar Azure Functions Pack en el código del bot.\",\r\n \"tosDialog_Header\": \"Términos del servicio\",\r\n \"tosDialog_AgreeButton\": \"Aceptar\",\r\n \"tosDialog_MessageChannels\": \"Los términos de Online Services no se aplican a la publicación de canales. Por ejemplo, los términos para la publicación de canales de Microsoft no ofrecen términos dedicados al procesamiento de datos.\",\r\n \"tosDialog_MessageMigration\": \"Lea y acepte los siguientes términos.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Estoy de acuerdo en que el uso del sitio Bot Framework esté sujeto a los {0} y a la {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Estoy de acuerdo con los {0} y la {1} para la implementación del canal de Cortana.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Estoy de acuerdo con los {0} y la {1} para la implementación del canal <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Estoy de acuerdo con los {0} y la {1} para la implementación de los canales <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"términos de mi suscripción de Azure Bot Service\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Condiciones de publicación en el canal de Cortana\",\r\n \"tosDialog_MSPublicationTerms\": \"Términos para la publicación de canales de Microsoft\",\r\n \"tosDialog_MSPrivacyStatement\": \"Declaraciones de privacidad de Microsoft\",\r\n \"notice\": \" AVISO: \",\r\n \"listElem\": \"{0},\",\r\n \"andListEnd\": \"{0} y {1}\",\r\n \"analyticsChannelsDropdown\": \"Filtro de canales\",\r\n \"analyticsPeriodDropdown\": \"Periodo de tiempo\",\r\n \"deprecatedChannel\": \"(en desuso)\",\r\n \"openInComposer\": \"abrir en Composer\",\r\n \"downloadComposer\": \"Descargar Composer\",\r\n };\r\n var Resources_fr = {\r\n \"unsupportedBrowser_Azure\": \"Azure Bot Service ne prend pas encore votre navigateur en charge.\",\r\n \"unsupportedBrowser\": \"Bot Framework ne prend pas encore votre navigateur en charge.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Connexion en cours\",\r\n \"loadingBot\": \"Chargement du bot...\",\r\n \"botIsNotReady\": \"Attente que le bot soit prêt\",\r\n \"analyticsNotReady\": \"En attente de la configuration d'Application Insights\",\r\n \"authorizingWebChat\": \"Autorisation de conversation avec le bot\",\r\n \"signInFailure\": \"Une erreur s'est produite lors de votre connexion. Assurez-vous que les cookies tiers sont activés dans le navigateur.\",\r\n \"getChatTokenFailure\": \"Une erreur s'est produite lors de l'obtention d'un jeton d'autorisation de discussion. Actualisez et réessayez.\",\r\n \"refreshSignInFailure\": \"Désolé... Une erreur est survenue lors de l'actualisation de vos informations de connexion. Veuillez vérifier que votre navigateur autorise les cookies tiers.\",\r\n \"xhrResponse_400\": \"L'action ou les valeurs fournies ne sont pas valides.\",\r\n \"xhrResponse_403\": \"Impossible d'accéder à l'élément ou de le modifier.\",\r\n \"xhrResponse_404\": \"L'élément est introuvable.\",\r\n \"xhrResponse_500\": \"Une erreur interne s'est produite sur le serveur.\",\r\n \"xhrResponse_501\": \"Cette opération n'est pas prise en charge.\",\r\n \"xhrResponse_Message\": \"Erreur : %1\",\r\n \"xhrResponse_Unknown\": \"Une erreur inconnue s'est produite.\",\r\n \"AddAFeaturedChannelTitle\": \"Ajouter une chaîne en vedette\",\r\n \"ConnectToChannelsTitle\": \"Connecter aux canaux\",\r\n \"NoChannelsConfigured\": \"Vous n'avez encore connecté aucun canal. Sélectionnez un canal à connecter.\",\r\n \"MoreChannelsTitle\": \"Plus de chaînes\",\r\n \"test\": \"Test\",\r\n \"startOver\": \"Recommencer\",\r\n \"retentionTitle\": \"Rétention\",\r\n \"retentionDescription\": \"% utilisateurs ayant de nouveau envoyé un message (au cours des 10 derniers jours)\",\r\n \"retentionHeader\": \"Jours plus tard\",\r\n \"retentionDate\": \"Date\",\r\n \"retentionUsers\": \"Utilisateurs\",\r\n \"undetermined\": \"Non déterminé\",\r\n \"loading\": \"chargement...\",\r\n \"noAnalyticsData\": \"aucune donnée\",\r\n \"timespanLastHour\": \"Dernière heure\",\r\n \"timespanLastDay\": \"Dernier jour\",\r\n \"timespanLastWeek\": \"Dernière semaine\",\r\n \"timespanLastMonth\": \"Dernier mois\",\r\n \"timespanLast90Days\": \"90 derniers jours\",\r\n \"timespanUnknown\": \"Période inconnue\",\r\n \"timelineCardUsersTitle\": \"Utilisateurs\",\r\n \"timelineCardMessagesTitle\": \"Activités\",\r\n \"totalsCardTitle\": \"Totaux généraux\",\r\n \"analyticsNotConfigured\": \"Vous n'avez pas encore activé Analytique via Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Fournissez vos clés Application Insights et l'ID de ce bot sur la page suivante : \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Fournissez vos clés Application Insights et l'ID de ce bot sur la page des paramètres.\",\r\n \"learnMore\": \"En savoir plus\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - erreur : %2\",\r\n \"timelineTableLabel\": \"Table chronologique mappant les %1 selon le temps\",\r\n \"timelineChartLabel\": \"Graphique chronologique mappant les %1 selon le temps\",\r\n \"published\": \"Publié\",\r\n \"health\": \"Intégrité\",\r\n \"channelname\": \"Nom\",\r\n \"edit\": \"Modifier\",\r\n \"running\": \"Exécution en cours\",\r\n \"issuesTemplate\": \"Problèmes (<%= length %>)\",\r\n \"warningTemplate\": \"Avertissements (<%= length %>)\",\r\n \"channelPublished\": \"Publié\",\r\n \"tryOnCortana\": \"Essayer sur <%= Name %> - Découvrir la procédure\",\r\n \"tryOnChannel\": \"Essayer sur <%= Name %>\",\r\n \"manageInCortana\": \"Gérer dans le tableau de bord de Cortana\",\r\n \"channelRejected\": \"Rejetée\",\r\n \"channelMoreDetails\": \"Plus de détails\",\r\n \"channelResubmit\": \"Resoumettre pour évaluation...\",\r\n \"channelGetEmbedCodes\": \"Obtenir des codes de bot incorporés\",\r\n \"channelConfigDeleteMessage\": \"Cette opération supprimera toutes les informations de configuration du canal. Voulez-vous vraiment continuer ?\",\r\n \"channelConfigDeleteHeader\": \"Supprimer le canal\",\r\n \"channelConfigDeleteOk\": \"Oui, supprimer\",\r\n \"channelConfigDeleteCancel\": \"Non, conserver\",\r\n \"channelConfigLeaveMessage\": \"Des modifications de ce document n'ont pas été enregistrées. Voulez-vous vraiment quitter cette page ?\",\r\n \"channelConfigLeaveHeader\": \"Ignorer les modifications\",\r\n \"channelConfigLeaveOk\": \"Oui, quitter cette page\",\r\n \"channelConfigLeaveCancel\": \"Non, rester sur cette page\",\r\n \"channelEdit\": \"Modifier\",\r\n \"dialogPleaseWait\": \"Veuillez patienter...\",\r\n \"embedPanelTitle\": \"Code incorporé du bot\",\r\n \"embedPanelDescription\": \"Choisissez un canal pour en obtenir le code incorporé. Copiez et collez le code dans votre site web.\",\r\n \"embedPanelFacebookFooter\": \"Pour pouvoir utiliser ce code incorporé, Facebook exige que vous intégriez à votre page son Kit de développement logiciel (SDK) JavaScript.\",\r\n \"embedPanelLearnMore\": \"En savoir plus.\",\r\n \"embedPanelChannelMovedHeader\": \"Le code incorporé pour %1 a été déplacé\",\r\n \"embedPanelChannelMovedInstructions\": \"Cliquer ici pour ouvrir la page de configuration %1\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Code incorporé pour %1\",\r\n \"embedPanelGettingCodes\": \"Obtention des codes...\",\r\n \"embedPanelNoCodeAvailable\": \"Aucun code incorporé n'est disponible pour ce bot.\",\r\n \"channelIssuesPanelSubtitle\": \"Problèmes récents\",\r\n \"channelIssuesPanelClearall\": \"Effacer tout\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Heure\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Message\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"ID de corrélation\",\r\n \"unsavedChangesWillBeLost\": \"Les modifications non enregistrées seront perdues.\",\r\n \"altImageChannel\": \"Configurer le canal %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"Adresse e-mail\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype Entreprise\",\r\n \"_SkypeforBusiness\": \"Marque Skype Entreprise\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRER CE BOT\",\r\n \"migrationBannerCTAStartMigrating\": \"COMMENCER LA MIGRATION\",\r\n \"migrationBannerBlurb1\": \"Avec le lancement du nouveau Azure Bot Service, nous allons migrer tous les bots vers le nouveau service pour le 31/01/2018.\",\r\n \"migrationBannerBlurb2\": \"à propos de la migration.\",\r\n \"migrationBannerSuggestedBlurb\": \"La migration vers Azure Bot Service est facultative pour ce bot.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Les bots nécessitant la migration vers Azure Bot Service doivent migrer maintenant pour éviter toute interruption du service.\",\r\n \"migrationBannerBlockedBlurb\": \"L'échéance de la migration du bot est passée. Procédez à la migration maintenant pour éviter toute interruption du service.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Si vous configurez cette chaîne, votre bot devra migrer vers Azure Bot Service avant le 31/03/2018. Voulez-vous vraiment configurer cette chaîne ?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Cette chaîne n'est disponible que pour les bots d'Azure Bot Service. Voulez-vous migrer ce bot ?\",\r\n \"channelRequiresABSBot\": \"Cette chaîne n'est disponible que pour les bots d'Azure Bot Service.\",\r\n \"botRequiresMigrationDialogHeader\": \"Le bot requiert la migration\",\r\n \"botRequiresMigrationDialogMessage\": \"L'échéance de la migration du bot est passée. Procédez à la migration maintenant pour éviter toute interruption du service.\",\r\n \"yesMigrateThisBot\": \"Oui, migrer ce bot\",\r\n \"myBotsMigrationStatusMigrated\": \"Migré\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Obligatoire\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Non obligatoire\",\r\n \"myBotsMigrationButtonMigrate\": \"Migrer\",\r\n \"myBotsMigrationButtonRollback\": \"Restaurer la migration\",\r\n \"deleteBotDialogDeleteButtonText\": \"Supprimer le bot\",\r\n \"cancelButtonText\": \"Annuler\",\r\n \"deleteBotDialogTitleText\": \"Vous êtes sur le point de supprimer ce bot\",\r\n \"deleteBotDialogBodyText\": \"Cette action va effacer toutes les données associées à ce bot et ne peut pas être annulée. Voulez-vous continuer ?\",\r\n \"deleteBotDialogStatusDeleting\": \"Suppression du bot en cours...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot supprimé\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Oui, restaurer\",\r\n \"rollbackBotDialogTitleText\": \"Voulez-vous vraiment procéder à la restauration ?\",\r\n \"rollbackBotDialogBodyText\": \"Cette action va restaurer complètement la migration et vous devrez commencer le processus de migration depuis le début. Voulez-vous vraiment continuer ?\",\r\n \"rollbackBotDialogErrorInfo\": \"Erreur lors de la récupération des informations sur le bot sur le serveur.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Impossible d'effectuer la restauration. Aucun point de terminaison de restauration trouvé.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Impossible d'effectuer la restauration. Échec de la recherche d'un jeton Azure pour contacter Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Collecte d'informations sur le bot...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Préparation du bot en cours...\",\r\n \"rollbackBotDialogStatusReverting\": \"Restauration du bot en cours...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Suppression de l'application mise à niveau...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Suppression de l'enregistrement de déploiement...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Restauration terminée\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"a été restauré.\",\r\n \"okButtonText\": \"OK\",\r\n \"errorMessageErrorOccurred\": \"Une erreur s'est produite\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Obtention des informations sur le bot...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Obtention des informations sur Azure...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Obtention des paramètres d'application du bot...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Initialisation du bot migré en cours...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Inscription du service bot avec Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Mise à jour de l'enregistrement de bot en cours...\",\r\n \"migrationDialogStatusCreatingRG\": \"Création d'un groupe de ressources en cours...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Migration des fichiers vers le nouveau bot...\",\r\n \"migrationDialogStatusWrappingUp\": \"Finalisation du déploiement en cours...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Connexion du bot au stockage existant...\",\r\n \"migrationDialogStatusDeployingSite\": \"Déploiement de site web en cours\",\r\n \"migrationDialogStatusConfiguringSite\": \"Configuration du site web en cours\",\r\n \"migrationDialogStatusDeploying\": \"Déploiement en cours\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Obtention de nouvelles informations d'identification pour l'application de fonction...\",\r\n \"migrationDialogErrorNoSubs\": \"Échec de la recherche d'abonnements Azure pour l'utilisateur actuel.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Échec de la recherche d'un jeton d'accès Azure pour l'utilisateur actuel.\",\r\n \"migrationDialogErrorNoLocations\": \"Désolé... Une erreur est survenue lors de la recherche d'emplacements pour l'abonnement Azure sélectionné.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Échec de la recherche d'un nom de compte Stockage Azure dans la configuration de l'application.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Le nom de l'application n'est pas disponible.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Nom d'application non valide.\",\r\n \"migrationDialogErrorNoBotType\": \"Le bot actuel n'a pas de type valide.\",\r\n \"migrationDialogErrorBotInvalid\": \"Impossible de migrer ce bot, car il n'est pas valide.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Impossible de migrer ce bot, car le point de terminaison est manquant.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Impossible de migrer ce bot, car les infos sur l'approvisionnement sont manquantes.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Impossible de migrer ce bot, car le nom du groupe de ressources est manquant.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Désolé... Nous ne pouvons pas migrer ce bot, car nous ne trouvons pas l'ID d'abonnement Azure.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Impossible de migrer ce bot, car le nom du site Azure est manquant.\",\r\n \"migrationDialogABSv2TitleText\": \"Migration non disponible\",\r\n \"migrationDialogABSv2BodyText\": \"La migration est actuellement désactivée pour les bots Concepteur de conversations (ABSv2).\",\r\n \"migrationDialogRegistrationBodyText\": \"La migration est actuellement désactivée pour les bots « {0} ».\",\r\n \"migrationDialogFailedTokenRefresh\": \"Le jeton Azure a expiré.\",\r\n \"migrationDialogRefreshPage\": \"Actualisez la page et réessayez la migration.\",\r\n \"migrationSubscriptionDisabled\": \"L'abonnement Azure sélectionné est désactivé. Veuillez l’activer pour continuer la migration.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Ce répertoire ne contient aucun abonnement.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Le pack Azure Functions est obligatoire pour migrer ce bot\",\r\n \"migrationDialogFuncPackBotMessage\": \"Les bots de fonction Node doivent être fournis avec le pack Azure Functions avant de pouvoir être migrés.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Découvrez comment exécuter le pack Azure Functions sur le code de votre bot\",\r\n \"tosDialog_Header\": \"Conditions d'utilisation\",\r\n \"tosDialog_AgreeButton\": \"J'accepte\",\r\n \"tosDialog_MessageChannels\": \"Les conditions d'utilisation en ligne ne s'appliquent pas à la publication sur les chaînes. Par exemple, les conditions de publication sur les chaînes Microsoft n'offrent pas de conditions de traitement des données.\",\r\n \"tosDialog_MessageMigration\": \"Veuillez lire et accepter les conditions suivantes.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"J'accepte que l'utilisation du site Bot Framework soit soumise aux {0} et à la {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"J'accepte les {0} et la {1} pour mon déploiement sur la chaîne Cortana.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"J'accepte les {0} et la {1} pour mon déploiement sur la chaîne <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"J'accepte les {0} et la {1} pour mon déploiement sur les chaînes <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"conditions de mon abonnement à Azure Bot Service\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Conditions de publication de la chaîne Cortana\",\r\n \"tosDialog_MSPublicationTerms\": \"Conditions de publication de la chaîne Microsoft\",\r\n \"tosDialog_MSPrivacyStatement\": \"Déclarations de confidentialité de Microsoft\",\r\n \"notice\": \" AVIS : \",\r\n \"listElem\": \"{0}, \",\r\n \"andListEnd\": \"{0} et {1}\",\r\n \"analyticsChannelsDropdown\": \"Filtre de chaîne\",\r\n \"analyticsPeriodDropdown\": \"Période\",\r\n \"deprecatedChannel\": \"(déconseillé)\",\r\n \"openInComposer\": \"ouvrir dans composer\",\r\n \"downloadComposer\": \"Télécharger composer\",\r\n };\r\n var Resources_it = {\r\n \"unsupportedBrowser_Azure\": \"Il servizio Azure Bot ancora non supporta il browser.\",\r\n \"unsupportedBrowser\": \"Bot Framework ancora non supporta il browser.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Accesso in corso...\",\r\n \"loadingBot\": \"Caricamento del bot in corso...\",\r\n \"botIsNotReady\": \"In attesa che il bot sia pronto\",\r\n \"analyticsNotReady\": \"In attesa della configurazione di Application Insights\",\r\n \"authorizingWebChat\": \"Autorizzazione della chat con bot in corso\",\r\n \"signInFailure\": \"Si è verificato un errore durante l'accesso. Verifica che i cookie di terze parti siano abilitati nel browser.\",\r\n \"getChatTokenFailure\": \"Si è verificato un errore durante l'ottenimento del token di autorizzazione per la chat. Aggiornare e riprovare.\",\r\n \"refreshSignInFailure\": \"Si è verificato un errore durante l'aggiornamento delle informazioni di accesso. Verificare che i cookie di terze parti siano abilitati nel browser.\",\r\n \"xhrResponse_400\": \"L'azione o i valori forniti non sono validi.\",\r\n \"xhrResponse_403\": \"Impossibile accedere o modificare questo elemento.\",\r\n \"xhrResponse_404\": \"Impossibile trovare l'elemento.\",\r\n \"xhrResponse_500\": \"Si è verificato un errore interno del server.\",\r\n \"xhrResponse_501\": \"Operazione non supportata.\",\r\n \"xhrResponse_Message\": \"Errore: %1\",\r\n \"xhrResponse_Unknown\": \"Si è verificato un errore sconosciuto.\",\r\n \"AddAFeaturedChannelTitle\": \"Aggiungi un canale in primo piano\",\r\n \"ConnectToChannelsTitle\": \"Connessione ai canali\",\r\n \"NoChannelsConfigured\": \"Non è stato ancora connesso alcun canale. Selezionare un canale da connettere.\",\r\n \"MoreChannelsTitle\": \"Altri canali\",\r\n \"test\": \"Test\",\r\n \"startOver\": \"Ricomincia\",\r\n \"retentionTitle\": \"Conservazione\",\r\n \"retentionDescription\": \"% utenti che hanno nuovamente inviato messaggi (ultimi 10 giorni)\",\r\n \"retentionHeader\": \"Giorni dopo\",\r\n \"retentionDate\": \"Data\",\r\n \"retentionUsers\": \"Utenti\",\r\n \"undetermined\": \"Indeterminato\",\r\n \"loading\": \"caricamento in corso...\",\r\n \"noAnalyticsData\": \"nessun dato\",\r\n \"timespanLastHour\": \"Ultima ora\",\r\n \"timespanLastDay\": \"Ultimo giorno\",\r\n \"timespanLastWeek\": \"Ultima settimana\",\r\n \"timespanLastMonth\": \"Ultimo mese\",\r\n \"timespanLast90Days\": \"Ultimi 90 giorni\",\r\n \"timespanUnknown\": \"Timespan sconosciuto\",\r\n \"timelineCardUsersTitle\": \"Utenti\",\r\n \"timelineCardMessagesTitle\": \"Attività\",\r\n \"totalsCardTitle\": \"Totali complessivi\",\r\n \"analyticsNotConfigured\": \"Ancora non è stato abilitato Analisi tramite Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Fornire l'ID e le chiavi di Application Insights per questo bot nella pagina seguente:\",\r\n \"analyticsNotConfiguredActionIbiza\": \"Fornire l'ID e le chiavi di Application Insights per questo bot nella pagina delle impostazioni.\",\r\n \"learnMore\": \"Altre informazioni\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - errore: %2\",\r\n \"timelineTableLabel\": \"Mapping della tabella %1 della cronologia in base all'orario\",\r\n \"timelineChartLabel\": \"Mapping del grafico %1 della cronologia in base all'orario\",\r\n \"published\": \"Pubblicato\",\r\n \"health\": \"Integrità\",\r\n \"channelname\": \"Nome\",\r\n \"edit\": \"Modifica\",\r\n \"running\": \"In esecuzione\",\r\n \"issuesTemplate\": \"Problemi (<%= length %>)\",\r\n \"warningTemplate\": \"Avvisi (<%= length %>)\",\r\n \"channelPublished\": \"Pubblicato\",\r\n \"tryOnCortana\": \"Prova su <%= Name %> - altre informazioni\",\r\n \"tryOnChannel\": \"Prova su <%= Name %>\",\r\n \"manageInCortana\": \"Gestire nel dashboard di Cortana\",\r\n \"channelRejected\": \"Rifiutato\",\r\n \"channelMoreDetails\": \"Altri dettagli\",\r\n \"channelResubmit\": \"Inviare nuovamente per la revisione...\",\r\n \"channelGetEmbedCodes\": \"Ottieni codici di incorporamento bot\",\r\n \"channelConfigDeleteMessage\": \"Questa azione eliminerà tutte le informazioni di configurazione del canale. Continuare?\",\r\n \"channelConfigDeleteHeader\": \"Elimina canale\",\r\n \"channelConfigDeleteOk\": \"Sì, eliminalo\",\r\n \"channelConfigDeleteCancel\": \"No, mantienilo\",\r\n \"channelConfigLeaveMessage\": \"Sono presenti modifiche non salvate nel documento. Uscire dalla pagina?\",\r\n \"channelConfigLeaveHeader\": \"Ignora modifiche\",\r\n \"channelConfigLeaveOk\": \"Sì, esci dalla pagina\",\r\n \"channelConfigLeaveCancel\": \"No, resta nella pagina\",\r\n \"channelEdit\": \"Modifica\",\r\n \"dialogPleaseWait\": \"Attendere...\",\r\n \"embedPanelTitle\": \"Codice di incorporamento bot\",\r\n \"embedPanelDescription\": \"Scegliere un canale per ottenere il relativo codice di incorporamento. Copiare e incollare il codice nel sito Web.\",\r\n \"embedPanelFacebookFooter\": \"Per utilizzare questo incorporamento Facebook richiede di includere il relativo SDK JavaScript nella pagina.\",\r\n \"embedPanelLearnMore\": \"Ulteriori informazioni.\",\r\n \"embedPanelChannelMovedHeader\": \"Il codice di incorporamento per %1 è stato spostato\",\r\n \"embedPanelChannelMovedInstructions\": \"Fare clic qui per aprire la pagina di configurazione %1\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Il codice di incorporamento per %1\",\r\n \"embedPanelGettingCodes\": \"Recupero dei codici in corso...\",\r\n \"embedPanelNoCodeAvailable\": \"Nessun codice di incorporamento disponibile per questo bot.\",\r\n \"channelIssuesPanelSubtitle\": \"Problemi recenti\",\r\n \"channelIssuesPanelClearall\": \"Deseleziona tutto\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Data e ora\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Messaggio\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"ID correlazione\",\r\n \"unsavedChangesWillBeLost\": \"Le modifiche non salvate andranno perse.\",\r\n \"altImageChannel\": \"Configura canale %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"E-mail\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype for Business\",\r\n \"_SkypeforBusiness\": \"Marchio Skype for Business\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRA QUESTO BOT\",\r\n \"migrationBannerCTAStartMigrating\": \"AVVIA MIGRAZIONE\",\r\n \"migrationBannerBlurb1\": \"Con il lancio del nuovo servizio Azure Bot, tutti i bot verranno migrati nel nuovo servizio entro il 31/03/2018.\",\r\n \"migrationBannerBlurb2\": \"informazioni sulla migrazione.\",\r\n \"migrationBannerSuggestedBlurb\": \"La migrazione al servizio Azure Bot è facoltativa per questo bot.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"I bot che richiedono la migrazione al servizio Azure Bot devono effettuare ora la migrazione per evitare l'interruzione del servizio.\",\r\n \"migrationBannerBlockedBlurb\": \"Migrazione del bot scaduta, esegui la migrazione ora per evitare un'interruzione del servizio.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Se configuri questo canale, il bot richiederà la migrazione al servizio Azure Bot entro il 31/03/2018. Vuoi configurare questo canale?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Questo canale è disponibile solo per i bot nel servizio Azure Bot. Vuoi migrare questo bot?\",\r\n \"channelRequiresABSBot\": \"Questo canale è disponibile solo per i bot nel servizio Azure Bot.\",\r\n \"botRequiresMigrationDialogHeader\": \"Il bot richiede la migrazione\",\r\n \"botRequiresMigrationDialogMessage\": \"Migrazione del bot scaduta, esegui la migrazione ora per evitare un'interruzione del servizio.\",\r\n \"yesMigrateThisBot\": \"Sì, esegui la migrazione di questo bot\",\r\n \"myBotsMigrationStatusMigrated\": \"Migrazione completata\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Obbligatorio\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Non obbligatorio\",\r\n \"myBotsMigrationButtonMigrate\": \"Esegui migrazione\",\r\n \"myBotsMigrationButtonRollback\": \"Esegui rollback migrazione\",\r\n \"deleteBotDialogDeleteButtonText\": \"Elimina bot\",\r\n \"cancelButtonText\": \"Annulla\",\r\n \"deleteBotDialogTitleText\": \"Questo bot sta per essere eliminato\",\r\n \"deleteBotDialogBodyText\": \"Questa azione cancellerà tutti i dati associati a questo bot e non può essere annullata. Continuare?\",\r\n \"deleteBotDialogStatusDeleting\": \"Eliminazione bot in corso...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot eliminato\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Sì, esegui rollback\",\r\n \"rollbackBotDialogTitleText\": \"Eseguire rollback?\",\r\n \"rollbackBotDialogBodyText\": \"Questa azione eseguirà il rollback completo della migrazione e sarà necessario avviare il processo di migrazione dall'inizio. Continuare?\",\r\n \"rollbackBotDialogErrorInfo\": \"Errore durante il recupero delle informazioni sul bot dal server.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Impossibile eseguire rollback. Nessun endpoint di rollback trovato.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Impossibile eseguire rollback. Impossibile trovare un token di Azure per contattare Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Raccolta informazioni bot in corso...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Preparazione bot in corso...\",\r\n \"rollbackBotDialogStatusReverting\": \"Ripristino bot in corso..\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Eliminazione app aggiornata in corso...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Eliminazione record distribuzione in corso...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Rollback completato\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"ha completato il rollback.\",\r\n \"okButtonText\": \"OK\",\r\n \"errorMessageErrorOccurred\": \"Si è verificato un errore\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Ottenimento informazioni su bot in corso...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Ottenimento informazioni su Azure in corso...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Ottenimento impostazioni app bot in corso...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Inizializzazione bot migrato in corso...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Registrazione Servizio Bot con Azure in corso...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Aggiornamento record bot in corso...\",\r\n \"migrationDialogStatusCreatingRG\": \"Creazione gruppo di risorse in corso...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Migrazione file su nuovo bot in corso...\",\r\n \"migrationDialogStatusWrappingUp\": \"Wrapping distribuzione in corso...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Connessione del bot alla risorsa di archiviazione esistente in corso...\",\r\n \"migrationDialogStatusDeployingSite\": \"Distribuzione sito Web in corso\",\r\n \"migrationDialogStatusConfiguringSite\": \"Configurazione sito Web in corso\",\r\n \"migrationDialogStatusDeploying\": \"Distribuzione in corso\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Ottenimento nuove credenziali delle app per le funzioni in corso...\",\r\n \"migrationDialogErrorNoSubs\": \"Impossibile trovare sottoscrizioni di Azure per l'utente corrente.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Impossibile trovare il token di accesso di Azure per l'utente corrente.\",\r\n \"migrationDialogErrorNoLocations\": \"Non è stato possibile trovare posizioni per la sottoscrizione di Azure selezionata.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Impossibile trovare un nome account di Archiviazione di Azure nella configurazione dell'app.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Nome app non disponibile.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Nome app non valido.\",\r\n \"migrationDialogErrorNoBotType\": \"Il bot corrente non dispone di un tipo valido.\",\r\n \"migrationDialogErrorBotInvalid\": \"Impossibile migrare questo bot perché non è valido.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Impossibile migrare questo bot perché l'endpoint è mancante.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Impossibile migrare questo bot perché le informazioni sul provisioning sono mancanti.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Impossibile migrare questo bot perché il nome del gruppo di risorse è mancante.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Non è possibile migrare questo bot perché manca l'ID sottoscrizione di Azure.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Impossibile migrare questo bot perché il nome del sito di Azure è mancante.\",\r\n \"migrationDialogABSv2TitleText\": \"Migrazione non disponibile\",\r\n \"migrationDialogABSv2BodyText\": \"La migrazione è al momento disabilitata per i bot Progettazione della conversazione (ABSv2).\",\r\n \"migrationDialogRegistrationBodyText\": \"La migrazione è al momento disabilitata per i bot '{0}'.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Token di Azure scaduto.\",\r\n \"migrationDialogRefreshPage\": \"Aggiornare la pagina e riprovare a eseguire la migrazione.\",\r\n \"migrationSubscriptionDisabled\": \"La sottoscrizione di Azure selezionata è disabilitata. Abilitarla per continuare la migrazione.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Questa directory non contiene alcuna sottoscrizione.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Il pacchetto Funzioni di Azure è obbligatorio per poter migrare questo bot\",\r\n \"migrationDialogFuncPackBotMessage\": \"I bot di funzioni del nodo devono essere inclusi nel pacchetto Funzioni di Azure prima di poter essere migrati.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Informazioni su come eseguire il pacchetto Funzioni di Azure sul codice bot\",\r\n \"tosDialog_Header\": \"Condizioni d'uso\",\r\n \"tosDialog_AgreeButton\": \"Accetto\",\r\n \"tosDialog_MessageChannels\": \"Le Condizioni dei servizi online non si applicano alla pubblicazione sui canali. Ad esempio, le condizioni per la pubblicazione sui canali Microsoft non offrono le condizioni per l'elaborazione dei dati.\",\r\n \"tosDialog_MessageMigration\": \"Leggere e accettare le condizioni seguenti.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Accetto che l'uso del sito framework del bot sia soggetto alle {0} e alle {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Accetto le {0} e le {1} per la distribuzione sul canale Cortana.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Accetto le {0} e le {1} per la distribuzione sul canale <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Accetto le {0} e le {1} per la distribuzione sui canali <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"condizioni della sottoscrizione per il servizio Azure Bot\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Condizioni per la pubblicazione sul canale Cortana\",\r\n \"tosDialog_MSPublicationTerms\": \"Condizioni per la pubblicazione sul canale Microsoft\",\r\n \"tosDialog_MSPrivacyStatement\": \"Informative sulla privacy di Microsoft\",\r\n \"notice\": \" AVVISO: \",\r\n \"listElem\": \"{0}\",\r\n \"andListEnd\": \"{0} e {1}\",\r\n \"analyticsChannelsDropdown\": \"Filtro canali\",\r\n \"analyticsPeriodDropdown\": \"Periodo\",\r\n \"deprecatedChannel\": \"(deprecato)\",\r\n \"openInComposer\": \"Apri in Composer\",\r\n \"downloadComposer\": \"Scarica Composer\",\r\n };\r\n var Resources_ja = {\r\n \"unsupportedBrowser_Azure\": \"Azure Bot Service は、ご使用のブラウザーをまだサポートしていません。\",\r\n \"unsupportedBrowser\": \"Bot Framework は、ご使用のブラウザーをまだサポートしていません。\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"ログイン中\",\r\n \"loadingBot\": \"ボットを読み込んでいます...\",\r\n \"botIsNotReady\": \"ボットの準備完了を待機中\",\r\n \"analyticsNotReady\": \"Application Insights の構成を待機中\",\r\n \"authorizingWebChat\": \"ボットとのチャットを承認中\",\r\n \"signInFailure\": \"サインイン中にエラーが発生しました。ブラウザーでサード パーティの Cookie が有効になっていることを確認してください。\",\r\n \"getChatTokenFailure\": \"チャット承認トークンを取得中にエラーが発生しました。更新してもう一度やり直してください。\",\r\n \"refreshSignInFailure\": \"サインイン情報の更新中にエラーが発生しました。ブラウザーでサード パーティの Cookie が有効になっていることを確認してください。\",\r\n \"xhrResponse_400\": \"この操作または指定された値は無効です。\",\r\n \"xhrResponse_403\": \"このアイテムにアクセスできないか、このアイテムを変更できません。\",\r\n \"xhrResponse_404\": \"このアイテムは見つかりません。\",\r\n \"xhrResponse_500\": \"サーバーで内部エラーが発生しました。\",\r\n \"xhrResponse_501\": \"この操作はサポートされていません。\",\r\n \"xhrResponse_Message\": \"エラー: %1\",\r\n \"xhrResponse_Unknown\": \"不明なエラーが発生しました。\",\r\n \"AddAFeaturedChannelTitle\": \"おすすめチャンネルの追加\",\r\n \"ConnectToChannelsTitle\": \"チャンネルに接続\",\r\n \"NoChannelsConfigured\": \"どのチャンネルもまだ接続されていません。接続するチャンネルを選択してください。\",\r\n \"MoreChannelsTitle\": \"その他のチャンネル\",\r\n \"test\": \"テスト\",\r\n \"startOver\": \"やり直す\",\r\n \"retentionTitle\": \"リテンション\",\r\n \"retentionDescription\": \"% 人のユーザーが再びメッセージを送信 (過去 10 日間)\",\r\n \"retentionHeader\": \"経過日数\",\r\n \"retentionDate\": \"日付\",\r\n \"retentionUsers\": \"ユーザー\",\r\n \"undetermined\": \"不明\",\r\n \"loading\": \"読み込み中...\",\r\n \"noAnalyticsData\": \"データがありません\",\r\n \"timespanLastHour\": \"過去 1 時間以内\",\r\n \"timespanLastDay\": \"過去 24 時間以内\",\r\n \"timespanLastWeek\": \"先週\",\r\n \"timespanLastMonth\": \"先月\",\r\n \"timespanLast90Days\": \"過去 90 日間\",\r\n \"timespanUnknown\": \"不明な期間\",\r\n \"timelineCardUsersTitle\": \"ユーザー\",\r\n \"timelineCardMessagesTitle\": \"アクティビティ\",\r\n \"totalsCardTitle\": \"総計\",\r\n \"analyticsNotConfigured\": \"Azure Application Insights を介した分析がまだ有効になっていません。\",\r\n \"analyticsNotConfiguredAction\": \"このボットの Application Insights キーおよび ID を次のページで指定してください。 \",\r\n \"analyticsNotConfiguredActionIbiza\": \"このボットの Application Insights キーおよび ID を設定ページで指定してください。\",\r\n \"learnMore\": \"詳細\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - エラー: %2\",\r\n \"timelineTableLabel\": \"タイムライン テーブルのマッピング %1 (時間別)\",\r\n \"timelineChartLabel\": \"タイムライン グラフのマッピング %1 (時間別)\",\r\n \"published\": \"公開済み\",\r\n \"health\": \"正常性\",\r\n \"channelname\": \"名前\",\r\n \"edit\": \"編集\",\r\n \"running\": \"実行中\",\r\n \"issuesTemplate\": \"問題 (<%= length %>)\",\r\n \"warningTemplate\": \"警告 (<%= length %>)\",\r\n \"channelPublished\": \"公開済み\",\r\n \"tryOnCortana\": \"<%= Name %> で試行 - 方法を表示\",\r\n \"tryOnChannel\": \"<%= Name %> で試行\",\r\n \"manageInCortana\": \"Cortana ダッシュボードで管理\",\r\n \"channelRejected\": \"拒否\",\r\n \"channelMoreDetails\": \"詳細\",\r\n \"channelResubmit\": \"レビュー依頼を再送信...\",\r\n \"channelGetEmbedCodes\": \"ボットの埋め込みコードを取得\",\r\n \"channelConfigDeleteMessage\": \"このアクションを実行すると、すべてのチャンネル構成情報が削除されます。続行しますか?\",\r\n \"channelConfigDeleteHeader\": \"チャンネルを削除\",\r\n \"channelConfigDeleteOk\": \"はい、削除します\",\r\n \"channelConfigDeleteCancel\": \"いいえ、削除しません\",\r\n \"channelConfigLeaveMessage\": \"このドキュメントには未保存の変更があります。このページから移動してもよろしいですか?\",\r\n \"channelConfigLeaveHeader\": \"変更を破棄\",\r\n \"channelConfigLeaveOk\": \"はい、ページから移動します\",\r\n \"channelConfigLeaveCancel\": \"いいえ、ページにとどまります\",\r\n \"channelEdit\": \"編集\",\r\n \"dialogPleaseWait\": \"しばらくお待ちください...\",\r\n \"embedPanelTitle\": \"ボットの埋め込みコード\",\r\n \"embedPanelDescription\": \"埋め込みコードを取得するチャンネルを選択してください。このコードを Web サイトにコピー/貼り付けしてください。\",\r\n \"embedPanelFacebookFooter\": \"この埋め込みを使用するには、Facebook の JavaScript SDK をページに含める必要があります。\",\r\n \"embedPanelLearnMore\": \"詳細\",\r\n \"embedPanelChannelMovedHeader\": \"%1 の埋め込みコードは移動しました\",\r\n \"embedPanelChannelMovedInstructions\": \"%1 の構成ページを開くには、ここをクリックします\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"%1 の埋め込みコード\",\r\n \"embedPanelGettingCodes\": \"コードを取得しています...\",\r\n \"embedPanelNoCodeAvailable\": \"このボットに使用できる埋め込みコードはありません。\",\r\n \"channelIssuesPanelSubtitle\": \"最近の問題\",\r\n \"channelIssuesPanelClearall\": \"すべてクリア\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"時間\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"メッセージ\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"関連付け ID\",\r\n \"unsavedChangesWillBeLost\": \"未保存の変更は失われます。\",\r\n \"altImageChannel\": \"%1 チャンネルを構成\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"メール\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype for Business\",\r\n \"_SkypeforBusiness\": \"Skype for Business ブランド\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"このボットを移行する\",\r\n \"migrationBannerCTAStartMigrating\": \"移行を開始する\",\r\n \"migrationBannerBlurb1\": \"新しい Azure Bot Service のリリースに伴い、2018/03/31 までにすべてのボットを新しいサービスに移行します。\",\r\n \"migrationBannerBlurb2\": \"移行について。\",\r\n \"migrationBannerSuggestedBlurb\": \"このボットの Azure Bot Service への移行は任意です。\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Azure Bot Service への移行が必要なボットは、サービスの中断を避けるためにいますぐ移行する必要があります。\",\r\n \"migrationBannerBlockedBlurb\": \"ボット移行の期日が過ぎています。サービスが中断することのないよう、今すぐ移行してください。\",\r\n \"migrationWillBeRequiredDialogMessage\": \"このチャンネルを構成する場合、2018/3/31 までにボットを Azure Bot Service に移行する必要があります。このチャンネルを構成してよろしいですか?\",\r\n \"channelRequiresMigrationDialogMessage\": \"このチャンネルは Azure Bot Service のボットしか使用できません。このボットを移行しますか?\",\r\n \"channelRequiresABSBot\": \"このチャネルは Azure Bot Service のボットのみが対象です。\",\r\n \"botRequiresMigrationDialogHeader\": \"ボットの移行が必要\",\r\n \"botRequiresMigrationDialogMessage\": \"ボット移行の期日が過ぎています。サービスが中断することのないよう、今すぐ移行してください。\",\r\n \"yesMigrateThisBot\": \"はい、このボットを移行します\",\r\n \"myBotsMigrationStatusMigrated\": \"移行済み\",\r\n \"myBotsMigrationStatusNotMigrated\": \"必須\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"不要\",\r\n \"myBotsMigrationButtonMigrate\": \"移行\",\r\n \"myBotsMigrationButtonRollback\": \"移行のロールバック\",\r\n \"deleteBotDialogDeleteButtonText\": \"ボットの削除\",\r\n \"cancelButtonText\": \"キャンセル\",\r\n \"deleteBotDialogTitleText\": \"このボットを削除しようとしています\",\r\n \"deleteBotDialogBodyText\": \"このアクションを行うと、このボットに関連するすべてのデータが消去されます。このアクションを元に戻すことはできません。よろしいですか?\",\r\n \"deleteBotDialogStatusDeleting\": \"ボットを削除しています...\",\r\n \"deleteBotDialogStatusDeleted\": \"ボットが削除されました\",\r\n \"rollbackBotDialogRollbackButtonText\": \"はい、ロールバックします\",\r\n \"rollbackBotDialogTitleText\": \"ロールバックしますか?\",\r\n \"rollbackBotDialogBodyText\": \"このアクションを行うと、移行が完全にロールバックされ、移行プロセスを最初から開始しなければならなくなります。続行しますか?\",\r\n \"rollbackBotDialogErrorInfo\": \"サーバーからボット情報を取得中にエラーが発生しました。\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"ロールバックを実行できません。ロールバック エンドポイントが見つかりませんでした。\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"ロールバックを実行できません。Azure にアクセスするための Azure トークンが見つかりませんでした。\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"ボット情報の取得中...\",\r\n \"rollbackBotDialogStatusPreparing\": \"ボットの準備中...\",\r\n \"rollbackBotDialogStatusReverting\": \"ボットの復元中..\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"アップグレードしたアプリの削除中...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"デプロイ レコードの削除中...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"ロールバック完了\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"は正常にロールバックされました。\",\r\n \"okButtonText\": \"OK\",\r\n \"errorMessageErrorOccurred\": \"エラーが発生しました\",\r\n \"migrationDialogStatusGettingBotInfo\": \"ボット情報の取得中...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Azure 情報の取得中...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"ボット アプリ設定の取得中...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"移行したボットの初期化中...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Azure にボット サービスを登録中...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"ボット レコードの更新中...\",\r\n \"migrationDialogStatusCreatingRG\": \"リソース グループの作成中...\",\r\n \"migrationDialogStatusMigratingFiles\": \"新しいボットにファイルを移行中...\",\r\n \"migrationDialogStatusWrappingUp\": \"デプロイのラッピング中...\",\r\n \"migrationDialogStatusDeployingStorage\": \"ボットを既存のストレージに接続中...\",\r\n \"migrationDialogStatusDeployingSite\": \"Web サイトのデプロイ中\",\r\n \"migrationDialogStatusConfiguringSite\": \"Web サイトの構成中\",\r\n \"migrationDialogStatusDeploying\": \"デプロイ中\",\r\n \"migrationDialogStatusFunctionCredentials\": \"新しい Function App 資格情報の取得中...\",\r\n \"migrationDialogErrorNoSubs\": \"現在のユーザーの Azure サブスクリプションが見つかりませんでした。\",\r\n \"migrationDialogErrorNoAzureToken\": \"現在のユーザーの Azure アクセス トークンが見つかりませんでした。\",\r\n \"migrationDialogErrorNoLocations\": \"選択した Azure サブスクリプションの場所が見つかりませんでした。\",\r\n \"migrationDialogErrorNoAzureStorage\": \"アプリ構成に Azure ストレージ アカウント名が見つかりませんでした。\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"アプリ名を利用できません。\",\r\n \"migrationDialogErrorAppNameInvalid\": \"アプリ名が無効です。\",\r\n \"migrationDialogErrorNoBotType\": \"現在のボットに有効な種類がありません。\",\r\n \"migrationDialogErrorBotInvalid\": \"ボットが無効のため、このボットを移行できません。\",\r\n \"migrationDialogErrorEndpointMissing\": \"エンドポイントがないため、このボットを移行できません。\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"プロビジョニング情報がないため、このボットを移行できません。\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"リソース グループ名がないため、このボットを移行できません。\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Azure サブスクリプション ID がないため、このボットを移行できません。\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Azure サイト名がないため、このボットを移行できません。\",\r\n \"migrationDialogABSv2TitleText\": \"移行を利用できません\",\r\n \"migrationDialogABSv2BodyText\": \"会話デザイナー (ABSv2) ボットの移行は現在無効になっています。\",\r\n \"migrationDialogRegistrationBodyText\": \"'{0}' ボットの移行は現在無効になっています。\",\r\n \"migrationDialogFailedTokenRefresh\": \"Azure トークンの有効期限が切れています。\",\r\n \"migrationDialogRefreshPage\": \"ページを更新して、移行を再試行してください。\",\r\n \"migrationSubscriptionDisabled\": \"選択した Azure サブスクリプションは無効です。有効にして移行を続けてください。\",\r\n \"migrationTenantHasNoSubscriptions\": \"このディレクトリにはサブスクリプションが含まれていません。\",\r\n \"migrationDialogFuncPackBotTitle\": \"このボットを移行するには、Azure Functions Pack が必要です\",\r\n \"migrationDialogFuncPackBotMessage\": \"ノード機能ボットを移行するには、事前に Azure Functions Pack を使用してパッケージ化する必要があります。\",\r\n \"migrationDialogFuncPackBotLinkText\": \"ボット コード上で Azure Functions Pack を実行する方法について学習する\",\r\n \"tosDialog_Header\": \"サービス条件\",\r\n \"tosDialog_AgreeButton\": \"同意\",\r\n \"tosDialog_MessageChannels\": \"オンライン サービス条件はチャンネルでの公開には適用されません。たとえば、Microsoft チャンネルでの公開に関する条件では、データ処理条件が提供されません。\",\r\n \"tosDialog_MessageMigration\": \"以下の条件を読んで同意してください。\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Bot Framework サイトの使用が {0} および {1} の対象になることに同意します。\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Cortana チャンネルへのデプロイに関する{0}および{1}に同意します。\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"<%= channelslist %> チャンネルへのデプロイに関する{0}および{1}に同意します。\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"<%= channelslist %> チャンネルへのデプロイに関する{0}および{1}に同意します。\",\r\n \"tosDialog_ABSTerms\": \"Azure Bot Service のサブスクリプション使用条件\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Cortana チャンネル公開条件\",\r\n \"tosDialog_MSPublicationTerms\": \"Microsoft チャンネル公開使用条件\",\r\n \"tosDialog_MSPrivacyStatement\": \"Microsoft プライバシーに関する声明\",\r\n \"notice\": \" 注意: \",\r\n \"listElem\": \"{0}、\",\r\n \"andListEnd\": \"{0} および {1}\",\r\n \"analyticsChannelsDropdown\": \"チャンネル フィルター\",\r\n \"analyticsPeriodDropdown\": \"期間\",\r\n \"deprecatedChannel\": \"(非推奨)\",\r\n \"openInComposer\": \"Composer で開く\",\r\n \"downloadComposer\": \"Composer のダウンロード\",\r\n };\r\n var Resources_ko = {\r\n \"unsupportedBrowser_Azure\": \"Azure Bot Service가 아직 브라우저를 지원하지 않습니다.\",\r\n \"unsupportedBrowser\": \"Bot Framework가 아직 브라우저를 지원하지 않습니다.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"로그인하는 중\",\r\n \"loadingBot\": \"봇 불러오는 중…\",\r\n \"botIsNotReady\": \"봇 준비를 기다리는 중\",\r\n \"analyticsNotReady\": \"구성될 Application Insights를 기다리는 중\",\r\n \"authorizingWebChat\": \"봇으로 채팅 인증 중\",\r\n \"signInFailure\": \"로그인하는 중에 오류가 발생했습니다. 브라우저에 제3자 쿠키가 활성화되어 있는지 확인하십시오.\",\r\n \"getChatTokenFailure\": \"채팅 인증 토큰을 가져오는 중에 오류가 발생했습니다. 새로고침하고 다시 시도하십시오.\",\r\n \"refreshSignInFailure\": \"로그인 정보를 갱신하는 중에 오류가 발생했습니다. 브라우저에 제3자 쿠키가 활성화되어 있는지 확인하십시오.\",\r\n \"xhrResponse_400\": \"행동이나 공급 값이 유효하지 않습니다.\",\r\n \"xhrResponse_403\": \"이 아이템은 접근이나 수정이 불가능합니다.\",\r\n \"xhrResponse_404\": \"이 아이템은 찾을 수 없습니다.\",\r\n \"xhrResponse_500\": \"서버에 내부 오류가 발생했습니다.\",\r\n \"xhrResponse_501\": \"이 작업은 지원되지 않습니다.\",\r\n \"xhrResponse_Message\": \"오류: %1\",\r\n \"xhrResponse_Unknown\": \"알 수 없는 오류가 발생했습니다.\",\r\n \"AddAFeaturedChannelTitle\": \"추천 채널 추가\",\r\n \"ConnectToChannelsTitle\": \"채널에 연결하세요.\",\r\n \"NoChannelsConfigured\": \"아직 채널을 연결할 수 없습니다. 연결할 채널을 선택하세요.\",\r\n \"MoreChannelsTitle\": \"채널 더 보기\",\r\n \"test\": \"검사\",\r\n \"startOver\": \"다시 시작\",\r\n \"retentionTitle\": \"보존\",\r\n \"retentionDescription\": \"다시 메시지를 보낸 사용자 %명 (지난 10일간)\",\r\n \"retentionHeader\": \"일 후\",\r\n \"retentionDate\": \"날짜\",\r\n \"retentionUsers\": \"사용자\",\r\n \"undetermined\": \"미확인\",\r\n \"loading\": \"로드 중...\",\r\n \"noAnalyticsData\": \"데이터 없음\",\r\n \"timespanLastHour\": \"지난 시간\",\r\n \"timespanLastDay\": \"어제\",\r\n \"timespanLastWeek\": \"지난주\",\r\n \"timespanLastMonth\": \"지난달\",\r\n \"timespanLast90Days\": \"지난 90일\",\r\n \"timespanUnknown\": \"알 수 없는 주기\",\r\n \"timelineCardUsersTitle\": \"사용자\",\r\n \"timelineCardMessagesTitle\": \"활동\",\r\n \"totalsCardTitle\": \"총 합계\",\r\n \"analyticsNotConfigured\": \"아직 Azure Application Insights를 통한 분석을 활성화할 수 없습니다.\",\r\n \"analyticsNotConfiguredAction\": \"다음 페이지에서 이 봇의 Application Insights 키와 ID를 제공하세요.\",\r\n \"analyticsNotConfiguredActionIbiza\": \"설정 페이지에서 이 봇의 Application Insights 키와 ID를 제공하세요.\",\r\n \"learnMore\": \"자세히 알아보기\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - 오류: %2\",\r\n \"timelineTableLabel\": \"타임 테이블 매핑 %1(시간별)\",\r\n \"timelineChartLabel\": \"시간별 타임라인 차트 매핑 %1\",\r\n \"published\": \"게시됨\",\r\n \"health\": \"건강\",\r\n \"channelname\": \"이름\",\r\n \"edit\": \"편집\",\r\n \"running\": \"달리기\",\r\n \"issuesTemplate\": \"문제 (<%= length %>)\",\r\n \"warningTemplate\": \"경고 (<%= length %>)\",\r\n \"channelPublished\": \"게시됨\",\r\n \"tryOnCortana\": \"<%= Name %>에 시도 - 방법 배우기\",\r\n \"tryOnChannel\": \"<%= Name %>에 시도\",\r\n \"manageInCortana\": \"Cortana 대시보드에서 관리\",\r\n \"channelRejected\": \"거절됨\",\r\n \"channelMoreDetails\": \"더 자세한 내용\",\r\n \"channelResubmit\": \"검토를 위해 재제출…\",\r\n \"channelGetEmbedCodes\": \"봇 임베드 코드 얻기\",\r\n \"channelConfigDeleteMessage\": \"이 행동은 모든 채널 구성 정보를 삭제합니다. 정말로 진행하시겠습니까?\",\r\n \"channelConfigDeleteHeader\": \"채널 삭제\",\r\n \"channelConfigDeleteOk\": \"예. 삭제하겠습니다.\",\r\n \"channelConfigDeleteCancel\": \"아니요, 유지하겠습니다.\",\r\n \"channelConfigLeaveMessage\": \"이 문서에 저장되지 않은 변경 사항이 있습니다. 정말로 이 페이지에서 나가시겠습니까?\",\r\n \"channelConfigLeaveHeader\": \"변경 취소\",\r\n \"channelConfigLeaveOk\": \"예. 페이지를 떠나겠습니다.\",\r\n \"channelConfigLeaveCancel\": \"아니요. 페이지에 남겠습니다.\",\r\n \"channelEdit\": \"편집\",\r\n \"dialogPleaseWait\": \"잠시 기다려 주십시오...\",\r\n \"embedPanelTitle\": \"봇 임베드 코드\",\r\n \"embedPanelDescription\": \"임베드 코드를 얻을 채널을 선택하세요. 코드를 웹사이트에 복사 및 붙여넣기하세요.\",\r\n \"embedPanelFacebookFooter\": \"이 임베드 Facebook을 사용하려면 페이지에 JavaScript SDK를 포함해야 합니다.\",\r\n \"embedPanelLearnMore\": \"자세히 알아보기\",\r\n \"embedPanelChannelMovedHeader\": \"%1용 임베드 코드가 이동했습니다.\",\r\n \"embedPanelChannelMovedInstructions\": \"%1 구성 페이지를 열려면 이곳을 클릭하세요.\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"%1용 임베드 코드\",\r\n \"embedPanelGettingCodes\": \"코드 획득 중…\",\r\n \"embedPanelNoCodeAvailable\": \"이 봇에서 사용 가능한 임베드 코드가 없습니다.\",\r\n \"channelIssuesPanelSubtitle\": \"최근 문제\",\r\n \"channelIssuesPanelClearall\": \"모두 지우기\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"시간\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"메시지\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"상관 관계 ID\",\r\n \"unsavedChangesWillBeLost\": \"저장되지 않은 변경 사항은 사라집니다.\",\r\n \"altImageChannel\": \"%1 채널 구성\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"전자 메일\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"업무용 Skype\",\r\n \"_SkypeforBusiness\": \"비즈니스 브랜드용 Skype\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"이 봇 마이그레이션\",\r\n \"migrationBannerCTAStartMigrating\": \"마이그레이션 시작\",\r\n \"migrationBannerBlurb1\": \"새로운 Azure Bot Service 출시 시, 2018년 3월 31일까지 새로운 서비스에 모든 봇을 마이그레이션합니다.\",\r\n \"migrationBannerBlurb2\": \"마이그레이션 정보입니다.\",\r\n \"migrationBannerSuggestedBlurb\": \"Azure Bot Service로 마이그레이션은 이 봇에 선택 사항입니다.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Azure Bot Service에 마이그레이션이 필요한 봇은 서비스 중단을 방지하기 위해 지금 마이그레이션해야 합니다.\",\r\n \"migrationBannerBlockedBlurb\": \"봇 마이그레이션 기한이 지났습니다. 지금 마이그레이션하여 서비스 중단을 방지하십시오.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"이 채널을 구성하는 경우, 귀하의 봇은 2018년 3월 31일까지 Azure Bot Service에 마이그레이션되어야 합니다. 정말로 이 채널을 구성하시겠습니까?\",\r\n \"channelRequiresMigrationDialogMessage\": \"이 채널은 Azure Bot Service의 봇에만 사용할 수 있습니다. 이 봇을 마이그레이션하시겠습니까?\",\r\n \"channelRequiresABSBot\": \"이 채널은 Azure Bot Service의 봇에만 사용할 수 있습니다.\",\r\n \"botRequiresMigrationDialogHeader\": \"봇에 마이그레이션이 필요합니다\",\r\n \"botRequiresMigrationDialogMessage\": \"봇 마이그레이션 기한이 지났습니다. 지금 마이그레이션하여 서비스 중단을 방지하십시오.\",\r\n \"yesMigrateThisBot\": \"예, 이 봇을 마이그레이션합니다\",\r\n \"myBotsMigrationStatusMigrated\": \"마이그레이션됨\",\r\n \"myBotsMigrationStatusNotMigrated\": \"필수\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"필요하지 않음\",\r\n \"myBotsMigrationButtonMigrate\": \"마이그레이션\",\r\n \"myBotsMigrationButtonRollback\": \"마이그레이션 롤백\",\r\n \"deleteBotDialogDeleteButtonText\": \"봇 삭제\",\r\n \"cancelButtonText\": \"취소\",\r\n \"deleteBotDialogTitleText\": \"이 봇을 삭제하려고 합니다.\",\r\n \"deleteBotDialogBodyText\": \"이 작업은 이 봇과 관련된 모든 데이터를 삭제하며 되돌릴 수 없습니다. 계속하시겠습니까?\",\r\n \"deleteBotDialogStatusDeleting\": \"봇 삭제 중...\",\r\n \"deleteBotDialogStatusDeleted\": \"봇 삭제됨\",\r\n \"rollbackBotDialogRollbackButtonText\": \"예, 롤백합니다.\",\r\n \"rollbackBotDialogTitleText\": \"정말로 롤백하시겠습니까?\",\r\n \"rollbackBotDialogBodyText\": \"이 작업은 마이그레이션을 완전히 롤백하므로, 마이그레이션 과정을 처음부터 시작해야 합니다. 정말로 계속하시겠습니까?\",\r\n \"rollbackBotDialogErrorInfo\": \"서버에서 봇 정보를 받는 중 오류가 발생했습니다.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"롤백을 수행할 수 없습니다. 롤백 끝점을 찾을 수 없습니다.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"롤백을 수행할 수 없습니다. Azure에 연락할 수 있는 Azure 토큰을 찾는 데 실패했습니다.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"봇 정보 수집 중...\",\r\n \"rollbackBotDialogStatusPreparing\": \"봇 준비 중...\",\r\n \"rollbackBotDialogStatusReverting\": \"봇 되돌리기 중...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"업그레이드된 앱 삭제 중...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"배포 기록 삭제 중...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"롤백 완료\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"롤백되었습니다.\",\r\n \"okButtonText\": \"확인\",\r\n \"errorMessageErrorOccurred\": \"오류가 발생했습니다.\",\r\n \"migrationDialogStatusGettingBotInfo\": \"봇 정보 받는 중...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Azure 정보 받는 중...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"봇 앱 설정 받는 중...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"마이그레이션된 봇 초기 설정 중...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Azure로 봇 서비스 등록 중...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"봇 기록 업데이트 중...\",\r\n \"migrationDialogStatusCreatingRG\": \"리소스 그룹 생성 중...\",\r\n \"migrationDialogStatusMigratingFiles\": \"새로운 봇에 파일 마이그레이션 중...\",\r\n \"migrationDialogStatusWrappingUp\": \"배포 끝내는 중...\",\r\n \"migrationDialogStatusDeployingStorage\": \"기존 저장소에 봇 연결 중...\",\r\n \"migrationDialogStatusDeployingSite\": \"웹 사이트 배포 중\",\r\n \"migrationDialogStatusConfiguringSite\": \"웹 사이트 구성 중\",\r\n \"migrationDialogStatusDeploying\": \"배포 중\",\r\n \"migrationDialogStatusFunctionCredentials\": \"새로운 기능 앱 자격 증명 받는 중...\",\r\n \"migrationDialogErrorNoSubs\": \"현재 사용자에 대한 Azure 구독을 찾는 데 실패했습니다.\",\r\n \"migrationDialogErrorNoAzureToken\": \"현재 사용자에 대한 Azure 권한 토큰을 찾는 데 실패했습니다.\",\r\n \"migrationDialogErrorNoLocations\": \"선택한 Azure 구독에 대한 위치를 찾는 데 실패했습니다.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"앱 구성에서 Azure 저장소 계정 이름을 찾는 데 실패했습니다.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"앱 이름을 사용할 수 없습니다.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"유효하지 않은 앱 이름입니다.\",\r\n \"migrationDialogErrorNoBotType\": \"현재 봇은 유효한 유형이 아닙니다.\",\r\n \"migrationDialogErrorBotInvalid\": \"이 봇은 유효하지 않기 대문에 마이그레이션될 수 없습니다.\",\r\n \"migrationDialogErrorEndpointMissing\": \"이 봇은 끝점이 없기 때문에 마이그레이션될 수 없습니다.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"이 봇은 프로비전 정보가 없기 때문에 마이그레이션될 수 없습니다.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"이 봇은 리소스 그룹 이름이 없기 때문에 마이그레이션될 수 없습니다.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"이 봇은 Azure 구독 ID가 없기 때문에 마이그레이션될 수 없습니다.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"이 봇은 Azure 사이트 이름이 없기 때문에 마이그레이션될 수 없습니다.\",\r\n \"migrationDialogABSv2TitleText\": \"마이그레이션 이용 불가\",\r\n \"migrationDialogABSv2BodyText\": \"현재 대화 디자이너(ABSv2) 봇에 대한 마이그레이션이 비활성화되었습니다.\",\r\n \"migrationDialogRegistrationBodyText\": \"'{0}' 봇에 대한 마이그레이션이 현재 비활성화되었습니다.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Azure 토큰이 만료되었습니다.\",\r\n \"migrationDialogRefreshPage\": \"페이지를 새로고침하고 마이그레이션을 재시도하십시오.\",\r\n \"migrationSubscriptionDisabled\": \"선택한 Azure 구독이 비활성화되었습니다. 마이그레이션을 계속하려면 활성화하십시오.\",\r\n \"migrationTenantHasNoSubscriptions\": \"이 디렉터리는 구독을 포함하지 않습니다.\",\r\n \"migrationDialogFuncPackBotTitle\": \"이 봇을 마이그레이션하려면 Azure Functions 팩이 필요합니다.\",\r\n \"migrationDialogFuncPackBotMessage\": \"노드 기능 봇은 마이그레이션되기 전에 Azure Functions 팩으로 패키지되어야 합니다.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"봇 코드에서 Azure Functions를 실행하는 방법 알아보기\",\r\n \"tosDialog_Header\": \"서비스 약관\",\r\n \"tosDialog_AgreeButton\": \"동의\",\r\n \"tosDialog_MessageChannels\": \"온라인 서비스 약관은 채널의 발행에 적용되지 않습니다. 예를 들어, Microsoft 채널의 발행에 대한 약관은 데이터 처리 약관을 제공하지 않습니다.\",\r\n \"tosDialog_MessageMigration\": \"다음 약관을 읽고 동의하십시오.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"봇 프레임워크 사이트가 {0} 및 {1}에 사용되는 것을 동의합니다.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Cortana 채널에 대한 내 배포를 위해 {0} 및 {1}에 동의합니다.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"<%= channelslist %> 채널에 대한 내 배포를 위해 {0} 및 {1}에 동의합니다.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"<%= channelslist %> 채널에 대한 내 배포를 위해 {0} 및 {1}에 동의합니다.\",\r\n \"tosDialog_ABSTerms\": \"Azure Bot Service에 대한 내 구독 기간입니다.\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Cortana 채널 게시 약관\",\r\n \"tosDialog_MSPublicationTerms\": \"Microsoft 채널 발행 약관\",\r\n \"tosDialog_MSPrivacyStatement\": \"Microsoft 개인정보 보호정책\",\r\n \"notice\": \" 공지: \",\r\n \"listElem\": \"{0},\",\r\n \"andListEnd\": \"{0} 및 {1}\",\r\n \"analyticsChannelsDropdown\": \"채널 필터\",\r\n \"analyticsPeriodDropdown\": \"주기\",\r\n \"deprecatedChannel\": \"(사용되지 않음)\",\r\n \"openInComposer\": \"Composer에서 열기\",\r\n \"downloadComposer\": \"Composer 다운로드\",\r\n };\r\n var Resources_ru = {\r\n \"unsupportedBrowser_Azure\": \"Служба Azure Bot еще не поддерживает ваш браузер.\",\r\n \"unsupportedBrowser\": \"Bot Framework еще не поддерживает ваш браузер.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Выполняется вход\",\r\n \"loadingBot\": \"Загрузка программы-робота...\",\r\n \"botIsNotReady\": \"Ожидание готовности бота\",\r\n \"analyticsNotReady\": \"Ожидание настройки Application Insights\",\r\n \"authorizingWebChat\": \"Авторизация чата с ботом\",\r\n \"signInFailure\": \"Во время входа произошла ошибка. Убедитесь, что в браузере разрешены сторонние файлы cookie.\",\r\n \"getChatTokenFailure\": \"При получении токена авторизации чата произошла ошибка. Обновите страницу и повторите попытку.\",\r\n \"refreshSignInFailure\": \"При обновлении данных для входа произошла ошибка. Убедитесь, что в браузере разрешены сторонние файлы cookie.\",\r\n \"xhrResponse_400\": \"Действие или заданные значения недопустимы.\",\r\n \"xhrResponse_403\": \"Этот элемент недоступен или изменен.\",\r\n \"xhrResponse_404\": \"Элемент не найден.\",\r\n \"xhrResponse_500\": \"На сервере произошла внутренняя ошибка.\",\r\n \"xhrResponse_501\": \"Эта операция не поддерживается.\",\r\n \"xhrResponse_Message\": \"Ошибка: %1\",\r\n \"xhrResponse_Unknown\": \"Произошла неизвестная ошибка.\",\r\n \"AddAFeaturedChannelTitle\": \"Добавить рекомендуемый канал\",\r\n \"ConnectToChannelsTitle\": \"Подключиться к каналам\",\r\n \"NoChannelsConfigured\": \"Вы еще не подключили ни одного канала. Выберите канал для подключения.\",\r\n \"MoreChannelsTitle\": \"Другие каналы\",\r\n \"test\": \"Испытание\",\r\n \"startOver\": \"Начать заново\",\r\n \"retentionTitle\": \"Хранение\",\r\n \"retentionDescription\": \"% пользователей, которые отправляли сообщения снова (за последние 10 дней)\",\r\n \"retentionHeader\": \"Днями позже\",\r\n \"retentionDate\": \"Дата\",\r\n \"retentionUsers\": \"Пользователи\",\r\n \"undetermined\": \"Не определено\",\r\n \"loading\": \"Идет загрузка...\",\r\n \"noAnalyticsData\": \"Нет данных\",\r\n \"timespanLastHour\": \"За последний час\",\r\n \"timespanLastDay\": \"За последний день\",\r\n \"timespanLastWeek\": \"За последнюю неделю\",\r\n \"timespanLastMonth\": \"За последний месяц\",\r\n \"timespanLast90Days\": \"Последние 90 дней\",\r\n \"timespanUnknown\": \"Неизвестный период\",\r\n \"timelineCardUsersTitle\": \"Пользователи\",\r\n \"timelineCardMessagesTitle\": \"Действия\",\r\n \"totalsCardTitle\": \"Общие итоги\",\r\n \"analyticsNotConfigured\": \"Вы еще не включили аналитику через Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Предоставьте ключи Application Insights и идентификаторы для программы-робота на следующей странице:\",\r\n \"analyticsNotConfiguredActionIbiza\": \"Предоставьте ключи Application Insights и идентификаторы для программы-робота на странице настроек.\",\r\n \"learnMore\": \"Узнать больше\",\r\n \"cardTitleLoading\": \"%1 — %2\",\r\n \"cardTitleError\": \"%1 — ошибка: %2\",\r\n \"timelineTableLabel\": \"Сопоставление таблицы временной шкалы \\\"%1\\\" по времени\",\r\n \"timelineChartLabel\": \"Сопоставление диаграммы временной шкалы \\\"%1\\\" по времени\",\r\n \"published\": \"Опубликовано\",\r\n \"health\": \"Здоровье\",\r\n \"channelname\": \"Имя\",\r\n \"edit\": \"Изменить\",\r\n \"running\": \"Бег\",\r\n \"issuesTemplate\": \"Проблемы (<%= length %>)\",\r\n \"warningTemplate\": \"Предупреждения (<%= length %>)\",\r\n \"channelPublished\": \"Опубликовано\",\r\n \"tryOnCortana\": \"Протестировать на <%= Name %> — узнать как\",\r\n \"tryOnChannel\": \"Протестировать на <%= Name %>\",\r\n \"manageInCortana\": \"Открыть на панели управления Кортана\",\r\n \"channelRejected\": \"Отклонено\",\r\n \"channelMoreDetails\": \"Подробнее\",\r\n \"channelResubmit\": \"Повторная отправка на проверку...\",\r\n \"channelGetEmbedCodes\": \"Получить встроенные коды программ-роботов\",\r\n \"channelConfigDeleteMessage\": \"Действие удалит всю информацию о конфигурации канала. Продолжить?\",\r\n \"channelConfigDeleteHeader\": \"Удалить канал\",\r\n \"channelConfigDeleteOk\": \"Да, удалить\",\r\n \"channelConfigDeleteCancel\": \"Нет, не удалять\",\r\n \"channelConfigLeaveMessage\": \"В этом документе есть несохраненные изменения. Вы действительно хотите уйти со страницы?\",\r\n \"channelConfigLeaveHeader\": \"Отменить изменения\",\r\n \"channelConfigLeaveOk\": \"Да, уйти со страницы\",\r\n \"channelConfigLeaveCancel\": \"Нет, остаться на странице\",\r\n \"channelEdit\": \"Изменить\",\r\n \"dialogPleaseWait\": \"Подождите...\",\r\n \"embedPanelTitle\": \"Встроенный код программы-робота\",\r\n \"embedPanelDescription\": \"Выберите канал, чтобы получить для него встроенный код. Скопируйте и вставьте код на свой сайт.\",\r\n \"embedPanelFacebookFooter\": \"Чтобы использовать этот встроенный код Facebook, вы должны включить на своей странице его JavaScript.\",\r\n \"embedPanelLearnMore\": \"Узнать больше\",\r\n \"embedPanelChannelMovedHeader\": \"Встроенный код для канала %1 перемещен\",\r\n \"embedPanelChannelMovedInstructions\": \"Нажмите здесь, чтобы открыть страницу настроек канала %1\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Встроенный код для канала %1\",\r\n \"embedPanelGettingCodes\": \"Получение кодов...\",\r\n \"embedPanelNoCodeAvailable\": \"Для этого бота нет доступного встроенного кода.\",\r\n \"channelIssuesPanelSubtitle\": \"Последние проблемы\",\r\n \"channelIssuesPanelClearall\": \"Очистить все\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Время\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Сообщение\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"Идентификатор корреляции\",\r\n \"unsavedChangesWillBeLost\": \"Несохраненные изменения будут потеряны.\",\r\n \"altImageChannel\": \"Настройка канала %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Кортана\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"Электронная почта\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype для бизнеса\",\r\n \"_SkypeforBusiness\": \"Skype для бизнеса (бренд)\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"ПЕРЕНЕСТИ ЭТОГО БОТА\",\r\n \"migrationBannerCTAStartMigrating\": \"НАЧАЛО МИГРАЦИИ\",\r\n \"migrationBannerBlurb1\": \"При запуске новой службы Azure Bot все боты будут перенесены в новую службу до 31.03.2018.\",\r\n \"migrationBannerBlurb2\": \"О миграции.\",\r\n \"migrationBannerSuggestedBlurb\": \"Перенос этого бота в службу Azure Bot необязателен.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Ботов, требующих переноса в службу Azure Bot, необходимо перенести прямо сейчас, чтобы не допустить нарушения работы службы.\",\r\n \"migrationBannerBlockedBlurb\": \"Перенос бота просрочен. Перенесите его, чтобы не допустить нарушения работы службы.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"При настройке этого канала необходимо перенести бота в службу Azure Bot до 31.03.2018. Вы действительно хотите настроить этот канал?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Этот канал доступен только для ботов в службе Azure Bot. Перенести этого бота?\",\r\n \"channelRequiresABSBot\": \"Этот канал доступен только для ботов в службе Azure Bot.\",\r\n \"botRequiresMigrationDialogHeader\": \"Необходимо перенести бота\",\r\n \"botRequiresMigrationDialogMessage\": \"Перенос бота просрочен. Перенесите его, чтобы не допустить нарушения работы службы.\",\r\n \"yesMigrateThisBot\": \"Да, перенести этого бота\",\r\n \"myBotsMigrationStatusMigrated\": \"Миграция выполнена\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Обязательно\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Не требуется\",\r\n \"myBotsMigrationButtonMigrate\": \"Миграция\",\r\n \"myBotsMigrationButtonRollback\": \"Откат миграции\",\r\n \"deleteBotDialogDeleteButtonText\": \"Удалить бота\",\r\n \"cancelButtonText\": \"Отмена\",\r\n \"deleteBotDialogTitleText\": \"Вы собираетесь удалить этого бота\",\r\n \"deleteBotDialogBodyText\": \"Все данные, связанные с этим ботом, будут безвозвратно удалены. Вы уверены?\",\r\n \"deleteBotDialogStatusDeleting\": \"Удаление бота...\",\r\n \"deleteBotDialogStatusDeleted\": \"Бот удален\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Да, выполнить откат\",\r\n \"rollbackBotDialogTitleText\": \"Вы действительно хотите выполнить откат?\",\r\n \"rollbackBotDialogBodyText\": \"Будет выполнен полный откат миграции, и процедуру миграции придется начать сначала. Продолжить?\",\r\n \"rollbackBotDialogErrorInfo\": \"Ошибка при получении сведений бота с сервера.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Невозможно выполнить откат. Не удалось найти конечную точку.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Невозможно выполнить откат. Не удалось найти токен Azure для подключения к Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Идет сбор сведений бота...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Идет подготовка бота...\",\r\n \"rollbackBotDialogStatusReverting\": \"Идет откат бота...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Удаление обновленного приложения...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Удаление записи развертывания...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Выполнен откат\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"— успешно выполнен откат.\",\r\n \"okButtonText\": \"ОК\",\r\n \"errorMessageErrorOccurred\": \"Произошла ошибка\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Получение сведений бота...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Получение сведений Azure...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Получение параметров приложения бота...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Инициализация перенесенного бота...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Регистрация службы бота в Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Обновление записи бота...\",\r\n \"migrationDialogStatusCreatingRG\": \"Создание группы ресурсов...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Миграция файлов в нового бота...\",\r\n \"migrationDialogStatusWrappingUp\": \"Размещение развертывания...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Подключение бота к существующему хранилищу...\",\r\n \"migrationDialogStatusDeployingSite\": \"Развертывание веб-сайта\",\r\n \"migrationDialogStatusConfiguringSite\": \"Настройка веб-сайта\",\r\n \"migrationDialogStatusDeploying\": \"Развертывание\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Получение учетных данных нового приложения-функции...\",\r\n \"migrationDialogErrorNoSubs\": \"Не удалось найти подписки Azure для текущего пользователя.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Не удалось найти токен доступа Azure для текущего пользователя.\",\r\n \"migrationDialogErrorNoLocations\": \"Не удалось найти расположения для выбранной подписки Azure.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Не удалось найти имя учетной записи хранилища Azure в конфигурации приложения.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Имя приложения недоступно.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Недопустимое имя приложения.\",\r\n \"migrationDialogErrorNoBotType\": \"Недопустимый тип этого бота.\",\r\n \"migrationDialogErrorBotInvalid\": \"Миграция этого бота невозможна, поскольку он является недопустимым.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Миграция этого бота невозможна, поскольку отсутствует конечная точка.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Миграция этого бота невозможна, поскольку отсутствуют сведения о подготовке.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Миграция этого бота невозможна, поскольку отсутствует группа ресурсов.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Миграция этого бота невозможна, поскольку отсутствует код подписки Azure.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Миграция этого бота невозможна, поскольку отсутствует имя сайта Azure.\",\r\n \"migrationDialogABSv2TitleText\": \"Миграция недоступна\",\r\n \"migrationDialogABSv2BodyText\": \"Миграция для ботов конструктора общения (ABSv2) сейчас отключена.\",\r\n \"migrationDialogRegistrationBodyText\": \"Сейчас миграция отключена для ботов \\\"{0}\\\".\",\r\n \"migrationDialogFailedTokenRefresh\": \"Срок действия токена Azure истек.\",\r\n \"migrationDialogRefreshPage\": \"Обновите страницу и повторите попытку миграции.\",\r\n \"migrationSubscriptionDisabled\": \"Выбранная подписка Azure отключена. Включите ее для продолжения миграции.\",\r\n \"migrationTenantHasNoSubscriptions\": \"В этом каталоге нет подписки.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Для миграции этого бота необходим пакет функций Azure\",\r\n \"migrationDialogFuncPackBotMessage\": \"Перед миграцией боты Node Functions должны быть упакованы с помощью пакета функций Azure.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Подробнее о запуске пакета функций Azure в своем коде бота\",\r\n \"tosDialog_Header\": \"Условия использования\",\r\n \"tosDialog_AgreeButton\": \"Принимаю\",\r\n \"tosDialog_MessageChannels\": \"Условия Online Services не распространяются на публикацию каналов. Например, условия публикации в каналах Майкрософт не предполагают обработку данных.\",\r\n \"tosDialog_MessageMigration\": \"Прочтите и примите следующие условия.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Я соглашаюсь с тем, что {0} и {1} регулируют использование Bot Framework.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Я соглашаюсь с условиями {0} и {1} для своего развертывания в канале Кортаны.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Я соглашаюсь с условиями {0} и {1} для своего развертывания в канале <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Я соглашаюсь с условиями {0} и {1} для своего развертывания в каналах <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"условия подписки на службу Azure Bot\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Условия публикации канала Кортаны\",\r\n \"tosDialog_MSPublicationTerms\": \"Условия Microsoft Channel Publication\",\r\n \"tosDialog_MSPrivacyStatement\": \"Заявления о конфиденциальности Майкрософт\",\r\n \"notice\": \" УВЕДОМЛЕНИЕ: \",\r\n \"listElem\": \"{0},\",\r\n \"andListEnd\": \"{0} и {1}\",\r\n \"analyticsChannelsDropdown\": \"Фильтр каналов\",\r\n \"analyticsPeriodDropdown\": \"Период времени\",\r\n \"deprecatedChannel\": \"(устарел)\",\r\n \"openInComposer\": \"открыть в Composer\",\r\n \"downloadComposer\": \"Скачать Composer\",\r\n };\r\n var Resources_cs = {\r\n \"unsupportedBrowser_Azure\": \"Služba Azure Bot Service zatím nepodporuje váš prohlížeč.\",\r\n \"unsupportedBrowser\": \"Služba Bot Framework zatím nepodporuje váš prohlížeč.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Přihlašování\",\r\n \"loadingBot\": \"Robot se načítá...\",\r\n \"botIsNotReady\": \"Čeká se, až bude robot připravený\",\r\n \"analyticsNotReady\": \"Čeká se na konfiguraci Application Insights\",\r\n \"authorizingWebChat\": \"Autorizování chatu s robotem\",\r\n \"signInFailure\": \"Při přihlašování došlo k chybě. Ujistěte se, že máte v prohlížeči povolené soubory cookies třetích stran.\",\r\n \"getChatTokenFailure\": \"Při získávání autorizačního tokenu pro chat došlo k chybě. Aktualizujte stránku a zkuste to znovu.\",\r\n \"refreshSignInFailure\": \"Při obnovování vašich přihlašovacích informací došlo k chybě. Ujistěte se, že máte v prohlížeči povolené soubory cookies třetích stran.\",\r\n \"xhrResponse_400\": \"Akce nebo poskytnuté hodnoty nejsou platné.\",\r\n \"xhrResponse_403\": \"Tuto položku nelze otevřít nebo upravit.\",\r\n \"xhrResponse_404\": \"Položku nelze nalézt.\",\r\n \"xhrResponse_500\": \"Na serveru došlo k vnitřní chybě.\",\r\n \"xhrResponse_501\": \"Tato operace není podporována.\",\r\n \"xhrResponse_Message\": \"Chyba: %1\",\r\n \"xhrResponse_Unknown\": \"Došlo k neznámé chybě.\",\r\n \"AddAFeaturedChannelTitle\": \"Přidat vybraný kanál\",\r\n \"ConnectToChannelsTitle\": \"Připojení ke kanálům\",\r\n \"NoChannelsConfigured\": \"Ještě jste nepřipojili žádné kanály. Vyberte kanál, který chcete připojit.\",\r\n \"MoreChannelsTitle\": \"Další kanály\",\r\n \"test\": \"Test\",\r\n \"startOver\": \"Začít znovu\",\r\n \"retentionTitle\": \"Retence\",\r\n \"retentionDescription\": \"% uživatelů, kteří napsali znovu (posledních 10 dní)\",\r\n \"retentionHeader\": \"Po kolika dnech\",\r\n \"retentionDate\": \"Datum\",\r\n \"retentionUsers\": \"Uživatelé\",\r\n \"undetermined\": \"Neurčeno\",\r\n \"loading\": \"načítá se...\",\r\n \"noAnalyticsData\": \"žádná data\",\r\n \"timespanLastHour\": \"Poslední hodina\",\r\n \"timespanLastDay\": \"Poslední den\",\r\n \"timespanLastWeek\": \"Poslední týden\",\r\n \"timespanLastMonth\": \"Poslední měsíc\",\r\n \"timespanLast90Days\": \"Posledních 90 dnů\",\r\n \"timespanUnknown\": \"Neznámý časový rozsah\",\r\n \"timelineCardUsersTitle\": \"Uživatelé\",\r\n \"timelineCardMessagesTitle\": \"Aktivity\",\r\n \"totalsCardTitle\": \"Celkové součty\",\r\n \"analyticsNotConfigured\": \"Zatím jste nepovolili analýzu pomocí Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Na následující stránce zadejte ID a klíče Application Insights pro tohoto robota: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Zadejte pro tohoto robota ID a klíče Application Insights na stránce nastavení.\",\r\n \"learnMore\": \"Další informace\",\r\n \"cardTitleLoading\": \"%1 – %2\",\r\n \"cardTitleError\": \"%1 – chyba: %2\",\r\n \"timelineTableLabel\": \"Tabulka grafu %1 s časovou osou a mapováním podle času\",\r\n \"timelineChartLabel\": \"Graf %1 s časovou osou a mapováním podle času\",\r\n \"published\": \"Publikováno\",\r\n \"health\": \"Zdraví\",\r\n \"channelname\": \"Název\",\r\n \"edit\": \"Upravit\",\r\n \"running\": \"Běží\",\r\n \"issuesTemplate\": \"Problémy (<%= length %>)\",\r\n \"warningTemplate\": \"Upozornění (<%= length %>)\",\r\n \"channelPublished\": \"Publikováno\",\r\n \"tryOnCortana\": \"Zkuste <%= Name %> – zjistěte jak\",\r\n \"tryOnChannel\": \"Zkuste <%= Name %>\",\r\n \"manageInCortana\": \"Spravovat na řídicím panelu Cortany\",\r\n \"channelRejected\": \"Odmítnuto\",\r\n \"channelMoreDetails\": \"Další podrobnosti\",\r\n \"channelResubmit\": \"Znovu odeslat k revizi...\",\r\n \"channelGetEmbedCodes\": \"Získat kódy pro vložení robota\",\r\n \"channelConfigDeleteMessage\": \"Touto akcí odstraníte všechny informace o konfiguraci kanálu. Opravdu si přejete pokračovat?\",\r\n \"channelConfigDeleteHeader\": \"Odstranit kanál\",\r\n \"channelConfigDeleteOk\": \"Ano, odstranit\",\r\n \"channelConfigDeleteCancel\": \"Ne, ponechat\",\r\n \"channelConfigLeaveMessage\": \"V dokumentu máte neuložené změny. Opravdu chcete tuto stránku opustit?\",\r\n \"channelConfigLeaveHeader\": \"Zahodit změny\",\r\n \"channelConfigLeaveOk\": \"Ano, opustit stránku\",\r\n \"channelConfigLeaveCancel\": \"Ne, zůstat na stránce\",\r\n \"channelEdit\": \"Upravit\",\r\n \"dialogPleaseWait\": \"Počkejte prosím...\",\r\n \"embedPanelTitle\": \"Kód pro vložení robota\",\r\n \"embedPanelDescription\": \"Výběrem kanálu získáte jeho kód pro vložení. Tento kód zkopírujte a vložte na svůj web.\",\r\n \"embedPanelFacebookFooter\": \"Chcete-li použít tento vložený kód, musíte na své stránce zahrnout sadu JavaScript SDK, kterou Facebook vyžaduje.\",\r\n \"embedPanelLearnMore\": \"Další informace.\",\r\n \"embedPanelChannelMovedHeader\": \"Kód pro vložení kanálu %1 byl přesunut\",\r\n \"embedPanelChannelMovedInstructions\": \"Kliknutím sem otevřete stránku konfigurace kanálu %1\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Kód pro vložení kanálu %1\",\r\n \"embedPanelGettingCodes\": \"Získávají se kódy...\",\r\n \"embedPanelNoCodeAvailable\": \"U tohoto robota není k dispozici žádný kód pro vložení.\",\r\n \"channelIssuesPanelSubtitle\": \"Nedávné problémy\",\r\n \"channelIssuesPanelClearall\": \"Vymazat vše\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Čas\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Zpráva\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"ID korelace\",\r\n \"unsavedChangesWillBeLost\": \"Neuložené změny budou ztraceny.\",\r\n \"altImageChannel\": \"Konfigurovat kanál %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"E-mail\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype pro firmy\",\r\n \"_SkypeforBusiness\": \"Značka Skype pro firmy\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGROVAT TOHOTO ROBOTA\",\r\n \"migrationBannerCTAStartMigrating\": \"ZAHÁJIT MIGRACI\",\r\n \"migrationBannerBlurb1\": \"V rámci spuštění nové služby Azure Bot Service migrujeme všechny roboty k 31. březnu 2018 do nové služby.\",\r\n \"migrationBannerBlurb2\": \"o migraci.\",\r\n \"migrationBannerSuggestedBlurb\": \"Migrace do služby Azure Bot Service je pro tohoto robota volitelná.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Roboty vyžadující migraci do služby Azure Bot Service je nutné migrovat hned teď, aby nedošlo k přerušení služby.\",\r\n \"migrationBannerBlockedBlurb\": \"Migrace robota je po termínu, migrujte ho prosím hned teď, aby nedošlo k přerušení služby.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Pokud nakonfigurujete tento kanál, bude nutné do 31. března 2018 migrovat vašeho robota do služby Azure Bot Service. Opravdu chcete tento kanál konfigurovat?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Tento kanál je k dispozici pouze pro roboty ve službě Azure Bot Service. Chcete tohoto robota migrovat?\",\r\n \"channelRequiresABSBot\": \"Tento kanál je k dispozici jen pro boty služby Azure Bot Service.\",\r\n \"botRequiresMigrationDialogHeader\": \"Robot vyžaduje migraci\",\r\n \"botRequiresMigrationDialogMessage\": \"Migrace robota je po termínu, migrujte ho prosím hned teď, aby nedošlo k přerušení služby.\",\r\n \"yesMigrateThisBot\": \"Ano, migrovat tohoto robota\",\r\n \"myBotsMigrationStatusMigrated\": \"Migrován\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Povinné\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Nepovinné\",\r\n \"myBotsMigrationButtonMigrate\": \"Migrovat\",\r\n \"myBotsMigrationButtonRollback\": \"Vrátit migraci zpět\",\r\n \"deleteBotDialogDeleteButtonText\": \"Odstranit robota\",\r\n \"cancelButtonText\": \"Zrušit\",\r\n \"deleteBotDialogTitleText\": \"Chystáte se odstranit tohoto robota\",\r\n \"deleteBotDialogBodyText\": \"Tato akce, kterou nejde vrátit, vymaže všechna data asociovaná s tímto robotem. Jste si jistí?\",\r\n \"deleteBotDialogStatusDeleting\": \"Odstraňování robota...\",\r\n \"deleteBotDialogStatusDeleted\": \"Robot odstraněn\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Ano, vrátit zpět\",\r\n \"rollbackBotDialogTitleText\": \"Opravdu chcete provést vrácení zpět?\",\r\n \"rollbackBotDialogBodyText\": \"Tato akce kompletně vrátí migraci a vy budete muset začít proces migrace od začátku. Opravdu chcete pokračovat?\",\r\n \"rollbackBotDialogErrorInfo\": \"Při získávání informací robota ze serveru došlo k chybě.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Vrácení zpět nelze provést. Nebyl nalezen žádný koncový bod pro vrácení.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Vrácení zpět nelze provést. Nepodařilo se najít token Azure nutný k navázání kontaktu s Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Shromažďují se informace robota...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Robot se připravuje...\",\r\n \"rollbackBotDialogStatusReverting\": \"Robot se vrací zpět...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Odstraňuje se upgradovaná aplikace...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Odstraňuje se záznam nasazení...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Vrácení bylo dokončeno\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"byla úspěšně vrácena.\",\r\n \"okButtonText\": \"OK\",\r\n \"errorMessageErrorOccurred\": \"Došlo k chybě\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Získávají se informace robota...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Získávají se informace Azure...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Získávají se nastavení aplikace robota...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Probíhá inicializace migrovaného robota...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Probíhá registrace služby Bot Service v Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Aktualizuje se záznam robota...\",\r\n \"migrationDialogStatusCreatingRG\": \"Vytváří se skupina prostředků...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Probíhá migrace souborů do nového robota...\",\r\n \"migrationDialogStatusWrappingUp\": \"Dokončuje se nasazení...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Probíhá připojování robota k existujícímu úložišti...\",\r\n \"migrationDialogStatusDeployingSite\": \"Probíhá nasazování webu\",\r\n \"migrationDialogStatusConfiguringSite\": \"Probíhá konfigurace webu\",\r\n \"migrationDialogStatusDeploying\": \"Probíhá nasazování\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Získávají se nové přihlašovací údaje aplikace Function App...\",\r\n \"migrationDialogErrorNoSubs\": \"Pro aktuálního uživatele se nepodařilo najít žádné předplatné Azure.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Pro aktuálního uživatele se nepodařilo najít přístupový token Azure.\",\r\n \"migrationDialogErrorNoLocations\": \"Pro vybrané předplatné Azure se nepodařilo najít žádná umístění.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"V konfiguraci aplikace se nepodařilo najít název účtu úložiště Azure.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Název aplikace není k dispozici.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Název aplikace je neplatný.\",\r\n \"migrationDialogErrorNoBotType\": \"Aktuální robot nemá platný typ.\",\r\n \"migrationDialogErrorBotInvalid\": \"Tohoto robota nelze migrovat, protože je neplatný.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Tohoto robota nelze migrovat, protože chybí koncový bod.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Tohoto robota nelze migrovat, protože chybí informace o zřizování.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Tohoto robota nelze migrovat, protože chybí název skupiny prostředků.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Tohoto robota nelze migrovat, protože chybí ID předplatného Azure.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Tohoto robota nelze migrovat, protože chybí název webu Azure.\",\r\n \"migrationDialogABSv2TitleText\": \"Migrace není k dispozici\",\r\n \"migrationDialogABSv2BodyText\": \"Migrace je pro roboty služby Conversation Designer (ABSv2) aktuálně zakázána.\",\r\n \"migrationDialogRegistrationBodyText\": \"Pro roboty typu {0} je migrace aktuálně zakázána.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Platnost tokenu Azure vypršela.\",\r\n \"migrationDialogRefreshPage\": \"Aktualizujte prosím stránku a zkuste provést migraci znovu.\",\r\n \"migrationSubscriptionDisabled\": \"Vybrané předplatné Azure je zakázané. Pokud chcete pokračovat v migraci, povolte ho.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Tento adresář neobsahuje žádné předplatné.\",\r\n \"migrationDialogFuncPackBotTitle\": \"K migraci tohoto robota je nutný balíček Azure Functions\",\r\n \"migrationDialogFuncPackBotMessage\": \"Roboty Node Functions je před migrací nutné zahrnout do balíčku Azure Functions.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Zjistěte, jak spustit balíček Azure Functions u kódu vašeho robota\",\r\n \"tosDialog_Header\": \"Podmínky služby\",\r\n \"tosDialog_AgreeButton\": \"Souhlas\",\r\n \"tosDialog_MessageChannels\": \"Podmínky služeb Online Services neplatí pro publikování na kanálech. Podmínky publikování na kanálech Microsoftu například neobsahují podmínky zpracování dat.\",\r\n \"tosDialog_MessageMigration\": \"Přečtěte si prosím a odsouhlaste následující podmínky.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Souhlasím, že používání webu Bot Framework podléhá těmto podmínkám: {0} a {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Souhlasím s podmínkami ({0} a {1}) nasazení do kanálu Cortany.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Souhlasím s podmínkami ({0} a {1}) nasazení do kanálu <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Souhlasím s podmínkami ({0} a {1}) nasazení do kanálů <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"podmínky mého předplatného Azure Bot Service\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Podmínky publikování na kanálu Cortana\",\r\n \"tosDialog_MSPublicationTerms\": \"Podmínky publikování na kanálu Microsoft\",\r\n \"tosDialog_MSPrivacyStatement\": \"Prohlášení o zásadách ochrany osobních údajů společnosti Microsoft\",\r\n \"notice\": \" OZNÁMENÍ: \",\r\n \"listElem\": \"{0}, \",\r\n \"andListEnd\": \"{0} a {1}\",\r\n \"analyticsChannelsDropdown\": \"Filtr kanálů\",\r\n \"analyticsPeriodDropdown\": \"Časové období\",\r\n \"deprecatedChannel\": \"(zastaralé)\",\r\n \"openInComposer\": \"otevřít v composeru\",\r\n \"downloadComposer\": \"Stáhnout composer\",\r\n };\r\n var Resources_nl = {\r\n \"unsupportedBrowser_Azure\": \"Uw browser wordt nog niet door Azure Bot Service ondersteund.\",\r\n \"unsupportedBrowser\": \"Uw browser wordt nog niet door Bot Framework ondersteund.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Bezig met aanmelden\",\r\n \"loadingBot\": \"Bot laden...\",\r\n \"botIsNotReady\": \"Wachten tot bot gereed is\",\r\n \"analyticsNotReady\": \"Wachten tot Application Insights wordt geconfigureerd\",\r\n \"authorizingWebChat\": \"Chat met bot autoriseren\",\r\n \"signInFailure\": \"Er is een fout opgetreden bij uw aanmelding. Controleer of cookies van derden zijn ingeschakeld in de browser.\",\r\n \"getChatTokenFailure\": \"Er is een fout opgetreden bij het ophalen van een chatverificatietoken. Vernieuw de pagina en probeer het opnieuw.\",\r\n \"refreshSignInFailure\": \"Er is een fout opgetreden bij het vernieuwen van uw aanmeldingsgegevens. Controleer of cookies van derden zijn ingeschakeld in de browser.\",\r\n \"xhrResponse_400\": \"De actie is ongeldig of de opgegeven waarden zijn ongeldig.\",\r\n \"xhrResponse_403\": \"Dit item kan niet worden geopend of gewijzigd.\",\r\n \"xhrResponse_404\": \"Kan het item niet vinden.\",\r\n \"xhrResponse_500\": \"Er is bij de server een interne fout opgetreden.\",\r\n \"xhrResponse_501\": \"Deze bewerking wordt niet ondersteund.\",\r\n \"xhrResponse_Message\": \"Fout: %1\",\r\n \"xhrResponse_Unknown\": \"Er is een onbekende fout opgetreden.\",\r\n \"AddAFeaturedChannelTitle\": \"Een aanbevolen kanaal toevoegen\",\r\n \"ConnectToChannelsTitle\": \"Verbinden met kanalen\",\r\n \"NoChannelsConfigured\": \"U hebt nog geen kanalen verbonden. Selecteer een kanaal waarmee u verbinding wilt maken.\",\r\n \"MoreChannelsTitle\": \"Meer kanalen\",\r\n \"test\": \"Test\",\r\n \"startOver\": \"Opnieuw beginnen\",\r\n \"retentionTitle\": \"Retentie\",\r\n \"retentionDescription\": \"% gebruikers die opnieuw een bericht hebben verzonden (afgelopen 10 dagen)\",\r\n \"retentionHeader\": \"Dagen later\",\r\n \"retentionDate\": \"Datum\",\r\n \"retentionUsers\": \"Gebruikers\",\r\n \"undetermined\": \"Onbepaald\",\r\n \"loading\": \"laden...\",\r\n \"noAnalyticsData\": \"geen gegevens\",\r\n \"timespanLastHour\": \"Afgelopen uur\",\r\n \"timespanLastDay\": \"Afgelopen dag\",\r\n \"timespanLastWeek\": \"Vorige week\",\r\n \"timespanLastMonth\": \"Vorige maand\",\r\n \"timespanLast90Days\": \"Afgelopen 90 dagen\",\r\n \"timespanUnknown\": \"Onbekend tijdsbestek\",\r\n \"timelineCardUsersTitle\": \"Gebruikers\",\r\n \"timelineCardMessagesTitle\": \"Activiteiten\",\r\n \"totalsCardTitle\": \"Eindtotaal\",\r\n \"analyticsNotConfigured\": \"U hebt Analytics nog niet ingeschakeld via Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Geef op de volgende pagina uw Application Insights-sleutels en id op voor deze bot: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Geef op de pagina met instellingen uw Application Insights-sleutels en id voor deze bot op.\",\r\n \"learnMore\": \"Meer informatie\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - fout: %2\",\r\n \"timelineTableLabel\": \"Toewijzing voor tijdlijntabel %1 op tijd\",\r\n \"timelineChartLabel\": \"Toewijzing voor tijdlijngrafiek %1 op tijd\",\r\n \"published\": \"Gepubliceerd\",\r\n \"health\": \"Gezondheids\",\r\n \"channelname\": \"Naam\",\r\n \"edit\": \"Bewerken\",\r\n \"running\": \"Wordt uitgevoerd\",\r\n \"issuesTemplate\": \"Problemen (<%= length %>)\",\r\n \"warningTemplate\": \"Waarschuwingen (<%= length %>)\",\r\n \"channelPublished\": \"Gepubliceerd\",\r\n \"tryOnCortana\": \"Probeer op <%= Name %> - meer informatie\",\r\n \"tryOnChannel\": \"Probeer op <%= Name %>\",\r\n \"manageInCortana\": \"Beheren in Cortana-dashboard\",\r\n \"channelRejected\": \"Afgewezen\",\r\n \"channelMoreDetails\": \"Meer details\",\r\n \"channelResubmit\": \"Opnieuw ter beoordeling indienen...\",\r\n \"channelGetEmbedCodes\": \"Insluitcodes voor bot ophalen\",\r\n \"channelConfigDeleteMessage\": \"Door deze actie worden alle kanaalconfiguratiegegevens verwijderd. Weet u zeker dat u wilt doorgaan?\",\r\n \"channelConfigDeleteHeader\": \"Kanaal verwijderen\",\r\n \"channelConfigDeleteOk\": \"Ja, verwijderen\",\r\n \"channelConfigDeleteCancel\": \"Nee, niet verwijderen\",\r\n \"channelConfigLeaveMessage\": \"Dit document bevat niet-opgeslagen wijzigingen. Weet u zeker dat u deze pagina wilt verlaten?\",\r\n \"channelConfigLeaveHeader\": \"Wijzigingen negeren\",\r\n \"channelConfigLeaveOk\": \"Ja, de pagina verlaten\",\r\n \"channelConfigLeaveCancel\": \"Nee, op de pagina blijven\",\r\n \"channelEdit\": \"Bewerken\",\r\n \"dialogPleaseWait\": \"Even geduld...\",\r\n \"embedPanelTitle\": \"Insluitcode van bot\",\r\n \"embedPanelDescription\": \"Kies een kanaal waarvoor u de insluitcode wilt ophalen. Kopieer en plak de code naar uw website.\",\r\n \"embedPanelFacebookFooter\": \"U moet de JavaScript SDK van Facebook in uw pagina opnemen om deze insluitcode te kunnen gebruiken.\",\r\n \"embedPanelLearnMore\": \"Meer informatie.\",\r\n \"embedPanelChannelMovedHeader\": \"Insluitcode voor %1 is verplaatst\",\r\n \"embedPanelChannelMovedInstructions\": \"Klik hier om configuratiepagina %1 te openen\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Insluitcode voor %1\",\r\n \"embedPanelGettingCodes\": \"Codes ophalen...\",\r\n \"embedPanelNoCodeAvailable\": \"Geen insluitcode beschikbaar voor deze bot.\",\r\n \"channelIssuesPanelSubtitle\": \"Recente problemen\",\r\n \"channelIssuesPanelClearall\": \"Alles wissen\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Tijd\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Bericht\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"Correlatie-id\",\r\n \"unsavedChangesWillBeLost\": \"Niet-opgeslagen wijzigingen gaan verloren.\",\r\n \"altImageChannel\": \"Kanaal %1 configureren\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"E-mail\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype voor Bedrijven\",\r\n \"_SkypeforBusiness\": \"Skype voor Bedrijven, merk\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"DEZE BOT MIGREREN\",\r\n \"migrationBannerCTAStartMigrating\": \"MIGRATIE STARTEN\",\r\n \"migrationBannerBlurb1\": \"Met de introductie van de nieuwe Azure Bot Service migreren we tot 31-3-2018 alle bots naar de nieuwe service.\",\r\n \"migrationBannerBlurb2\": \"over de migratie.\",\r\n \"migrationBannerSuggestedBlurb\": \"Migratie naar Azure Bot Service is optioneel voor deze bot.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Bots die migratie naar Azure Bot Service vereisen, moeten nu worden gemigreerd om onderbreking van de service te voorkomen.\",\r\n \"migrationBannerBlockedBlurb\": \"Botmigratie is achterstallig. Migreer de bot nu om onderbreking van de service te voorkomen.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Als u dit kanaal configureert, moet uw bot uiterlijk op 31-3-2018 worden gemigreerd naar Azure Bot Service. Weet u zeker dat u dit kanaal wilt configureren?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Dit kanaal is alleen beschikbaar voor bots in Azure Bot Service. Wilt u deze bot migreren?\",\r\n \"channelRequiresABSBot\": \"Dit kanaal is alleen beschikbaar voor bots in Azure Bot Service.\",\r\n \"botRequiresMigrationDialogHeader\": \"Bot vereist migratie\",\r\n \"botRequiresMigrationDialogMessage\": \"Botmigratie is achterstallig. Migreer de bot nu om onderbreking van de service te voorkomen.\",\r\n \"yesMigrateThisBot\": \"Ja, deze bot migreren\",\r\n \"myBotsMigrationStatusMigrated\": \"Gemigreerd\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Vereist\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Niet vereist\",\r\n \"myBotsMigrationButtonMigrate\": \"Migreren\",\r\n \"myBotsMigrationButtonRollback\": \"Migratie terugdraaien\",\r\n \"deleteBotDialogDeleteButtonText\": \"Bot verwijderen\",\r\n \"cancelButtonText\": \"Annuleren\",\r\n \"deleteBotDialogTitleText\": \"U staat op het punt deze bot te verwijderen\",\r\n \"deleteBotDialogBodyText\": \"Deze actie zal alle gegevens wissen die aan deze bot zijn gekoppeld, en kan niet ongedaan worden gemaakt. Weet u het zeker?\",\r\n \"deleteBotDialogStatusDeleting\": \"Bot verwijderen...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot verwijderd\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Ja, terugdraaien\",\r\n \"rollbackBotDialogTitleText\": \"Weet u zeker dat u wilt terugdraaien?\",\r\n \"rollbackBotDialogBodyText\": \"Met deze actie wordt de migratie volledig teruggedraaid en moet u het migratieproces volledig overnieuw beginnen. Weet u zeker dat u wilt doorgaan?\",\r\n \"rollbackBotDialogErrorInfo\": \"Fout bij het ophalen van botinformatie van de server.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Kan niet terugdraaien. Geen eindpunt voor terugdraaien gevonden.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Kan niet terugdraaien. Er kan geen Azure-token worden gevonden voor contact met Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Botinformatie verzamelen...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Bot voorbereiden...\",\r\n \"rollbackBotDialogStatusReverting\": \"Bot terugdraaien...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Bijgewerkte app verwijderen...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Implementatierecord verwijderen...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Terugdraaien voltooid\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"is teruggedraaid.\",\r\n \"okButtonText\": \"OK\",\r\n \"errorMessageErrorOccurred\": \"Er is een fout opgetreden\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Botinformatie ophalen...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Azure-informatie ophalen...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"App-instellingen voor bot ophalen...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Gemigreerde bot initialiseren...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Bot Service registreren bij Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Botrecord bijwerken...\",\r\n \"migrationDialogStatusCreatingRG\": \"Resourcegroep maken...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Bestanden migreren naar nieuwe bot...\",\r\n \"migrationDialogStatusWrappingUp\": \"Implementatie afronden...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Bot verbinden met huidige opslag...\",\r\n \"migrationDialogStatusDeployingSite\": \"Website implementeren\",\r\n \"migrationDialogStatusConfiguringSite\": \"Website configureren\",\r\n \"migrationDialogStatusDeploying\": \"Implementeren\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Referenties voor nieuwe functie-app ophalen...\",\r\n \"migrationDialogErrorNoSubs\": \"Kan geen Azure-abonnementen vinden voor de huidige gebruiker.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Kan geen Azure-toegangstoken vinden voor de huidige gebruiker.\",\r\n \"migrationDialogErrorNoLocations\": \"Kan geen locaties vinden voor het geselecteerde Azure-abonnement.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Kan geen Azure-opslagaccountnaam vinden in de app-config.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"App-naam is niet beschikbaar.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Ongeldige app-naam.\",\r\n \"migrationDialogErrorNoBotType\": \"Huidige bot heeft geen geldig type.\",\r\n \"migrationDialogErrorBotInvalid\": \"Deze bot kan niet worden gemigreerd omdat de bot ongeldig is.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Deze bot kan niet worden gemigreerd omdat het eindpunt ontbreekt.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Deze bot kan niet worden gemigreerd omdat de inrichtingsinformatie ontbreekt.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Deze bot kan niet worden gemigreerd omdat de resourcegroepsnaam ontbreekt.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Deze bot kan niet worden gemigreerd omdat de Azure-abonnements-id ontbreekt.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Deze bot kan niet worden gemigreerd omdat de Azure-sitenaam ontbreekt.\",\r\n \"migrationDialogABSv2TitleText\": \"Migratie niet beschikbaar\",\r\n \"migrationDialogABSv2BodyText\": \"Migratie is momenteel uitgeschakeld voor Conversation Designer-bots (ABSv2).\",\r\n \"migrationDialogRegistrationBodyText\": \"Migratie is momenteel uitgeschakeld voor '{0}'-bots.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Azure-token is verlopen.\",\r\n \"migrationDialogRefreshPage\": \"Vernieuw de pagina en probeer de migratie opnieuw.\",\r\n \"migrationSubscriptionDisabled\": \"Het geselecteerde Azure-abonnement is uitgeschakeld. Schakel dit in om door te gaan met de migratie.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Deze map bevat geen abonnement.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Azure Functions-pakket is vereist voor migratie van deze bot\",\r\n \"migrationDialogFuncPackBotMessage\": \"Node Functions-bots moeten worden geleverd bij het Azure Functions-pakket voordat ze kunnen worden gemigreerd.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Meer informatie over het uitvoeren van het Azure Functions-pakket op uw botcode\",\r\n \"tosDialog_Header\": \"Gebruiksvoorwaarden\",\r\n \"tosDialog_AgreeButton\": \"Akkoord\",\r\n \"tosDialog_MessageChannels\": \"De voorwaarden voor Online Services zijn niet van toepassing op publicatie op kanalen. De publicatievoorwaarden voor Microsoft-kanalen omvatten bijvoorbeeld geen voorwaarden voor gegevensverwerking.\",\r\n \"tosDialog_MessageMigration\": \"Lees de volgende voorwaarden en ga ermee akkoord.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Ik ga ermee akkoord dat het gebruik van de Bot Framework-site onderhevig is aan de {0} en de {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Ik ga akkoord met de {0} en de {1} voor mijn implementatie voor het Cortana-kanaal.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Ik ga akkoord met de {0} en de {1} voor mijn implementatie voor het <%= channelslist %>-kanaal.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Ik ga akkoord met de {0} en de {1} voor mijn implementatie voor de <%= channelslist %>-kanalen.\",\r\n \"tosDialog_ABSTerms\": \"voorwaarden voor mijn abonnement voor Azure Bot Service\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Publicatievoorwaarden voor Cortana-kanaal\",\r\n \"tosDialog_MSPublicationTerms\": \"Publicatievoorwaarden voor Microsoft Channel\",\r\n \"tosDialog_MSPrivacyStatement\": \"Privacyverklaringen van Microsoft\",\r\n \"notice\": \" OPMERKING: \",\r\n \"listElem\": \"{0}, \",\r\n \"andListEnd\": \"{0} en {1}\",\r\n \"analyticsChannelsDropdown\": \"Kanalenfilter\",\r\n \"analyticsPeriodDropdown\": \"Tijdsperiode\",\r\n \"deprecatedChannel\": \"(afgeschaft)\",\r\n \"openInComposer\": \"openen in composer\",\r\n \"downloadComposer\": \"Composer downloaden\",\r\n };\r\n var Resources_hu = {\r\n \"unsupportedBrowser_Azure\": \"Az Azure Bot Service még nem támogatja ezt a böngészőt.\",\r\n \"unsupportedBrowser\": \"A Bot keretrendszer még nem támogatja ezt a böngészőt.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Bejelentkezés\",\r\n \"loadingBot\": \"Bot betöltése...\",\r\n \"botIsNotReady\": \"Várakozás a robot készen állására\",\r\n \"analyticsNotReady\": \"Várakozás az Application Insights konfigurálása\",\r\n \"authorizingWebChat\": \"Csevegés engedélyezése robottal\",\r\n \"signInFailure\": \"Hiba történt a bejelentkezéskor. Ellenőrizze, hogy a harmadik féltől származó cookie-k engedélyezve vannak-e a böngészőben.\",\r\n \"getChatTokenFailure\": \"A Csevegés engedélyezési token megszerzésénél hiba történt. Frissítse, és próbálkozzon újra.\",\r\n \"refreshSignInFailure\": \"Hiba történt a bejelentkezési információk frissítésekor. Ellenőrizze, hogy a harmadik féltől származó cookie-k engedélyezve vannak-e a böngészőben.\",\r\n \"xhrResponse_400\": \"A művelet vagy a megadott értékek érvénytelenek.\",\r\n \"xhrResponse_403\": \"Ez az elem nem érhető el és nem módosítható.\",\r\n \"xhrResponse_404\": \"Az elem nem található.\",\r\n \"xhrResponse_500\": \"Belső hiba történt a kiszolgálón.\",\r\n \"xhrResponse_501\": \"Ez a művelet nem támogatott.\",\r\n \"xhrResponse_Message\": \"Hiba: %1\",\r\n \"xhrResponse_Unknown\": \"Ismeretlen hiba történt.\",\r\n \"AddAFeaturedChannelTitle\": \"Kiemelt csatorna hozzáadása\",\r\n \"ConnectToChannelsTitle\": \"Csatlakozás csatornákhoz\",\r\n \"NoChannelsConfigured\": \"Még egyik csatornához sem csatlakozott. Válasszon ki egy csatornát a csatlakozáshoz.\",\r\n \"MoreChannelsTitle\": \"Több csatorna\",\r\n \"test\": \"Teszt\",\r\n \"startOver\": \"Újrakezdés\",\r\n \"retentionTitle\": \"Megőrzés\",\r\n \"retentionDescription\": \"% felhasználók, akik újból üzentek (utolsó 10 nap)\",\r\n \"retentionHeader\": \"Nappal később\",\r\n \"retentionDate\": \"Dátum\",\r\n \"retentionUsers\": \"Felhasználók\",\r\n \"undetermined\": \"Meghatározatlan\",\r\n \"loading\": \"Betöltés...\",\r\n \"noAnalyticsData\": \"Nincsenek adatok\",\r\n \"timespanLastHour\": \"Utolsó óra\",\r\n \"timespanLastDay\": \"Utolsó nap\",\r\n \"timespanLastWeek\": \"Előző hét\",\r\n \"timespanLastMonth\": \"Múlt hónap\",\r\n \"timespanLast90Days\": \"Elmúlt 90 nap\",\r\n \"timespanUnknown\": \"Ismeretlen időtartam\",\r\n \"timelineCardUsersTitle\": \"Felhasználók\",\r\n \"timelineCardMessagesTitle\": \"Tevékenységek\",\r\n \"totalsCardTitle\": \"Végösszegek\",\r\n \"analyticsNotConfigured\": \"Ön még nem engedélyezte az Analytics via Azure Application Insights funkciót.\",\r\n \"analyticsNotConfiguredAction\": \"Adja meg az Application Insights kulcsokat és a bot azonosítóját a következő lapon: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Adja meg az Application Insights kulcsokat és a bot azonosítóját a beállítások lapon.\",\r\n \"learnMore\": \"További információ\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - hiba: %2\",\r\n \"timelineTableLabel\": \"%1 idő szerint, idővonaltábla hozzárendelése\",\r\n \"timelineChartLabel\": \"%1 idő szerint, idővonal-diagram hozzárendelése\",\r\n \"published\": \"Közzétéve\",\r\n \"health\": \"Egészség\",\r\n \"channelname\": \"Név\",\r\n \"edit\": \"Szerkesztés\",\r\n \"running\": \"Futás\",\r\n \"issuesTemplate\": \"Problémák (<%= length %>)\",\r\n \"warningTemplate\": \"Figyelmeztetések (<%= length %>)\",\r\n \"channelPublished\": \"Közzétéve\",\r\n \"tryOnCortana\": \"Próbálja meg ezt: <%= Name %> - megtudhatja, hogyan\",\r\n \"tryOnChannel\": \"Próbálja meg ezt: <%= Name %>\",\r\n \"manageInCortana\": \"Kezelés Cortana irányítópultban\",\r\n \"channelRejected\": \"Elutasítva\",\r\n \"channelMoreDetails\": \"További részletek\",\r\n \"channelResubmit\": \"Küldje el ellenőrzésre újból...\",\r\n \"channelGetEmbedCodes\": \"Bot beágyazási kódok beolvasása\",\r\n \"channelConfigDeleteMessage\": \"Ez a művelet törli az összes csatorna konfigurációs adatait. Biztosan folytatni kívánja?\",\r\n \"channelConfigDeleteHeader\": \"Csatorna törlése\",\r\n \"channelConfigDeleteOk\": \"Igen, törlöm\",\r\n \"channelConfigDeleteCancel\": \"Nem, tartsa meg\",\r\n \"channelConfigLeaveMessage\": \"Nem mentett módosítások vannak ebben a dokumentumban. Biztosan el akarja hagyni ezt az oldalt?\",\r\n \"channelConfigLeaveHeader\": \"Módosítások elvetése\",\r\n \"channelConfigLeaveOk\": \"Igen, elhagyom az oldalt\",\r\n \"channelConfigLeaveCancel\": \"Nem, maradjon a lapon\",\r\n \"channelEdit\": \"Szerkesztés\",\r\n \"dialogPleaseWait\": \"Kis türelmet...\",\r\n \"embedPanelTitle\": \"Bot beágyazási kód\",\r\n \"embedPanelDescription\": \"Válasszon egy csatornát a hozzá tartozó beágyazási kód beolvasásához. Másolja le és illessze be a kódot a webhelyére.\",\r\n \"embedPanelFacebookFooter\": \"A Facebook beágyazás használatához szükséges, hogy az Ön oldala tartalmazza a Facebook JavaScript SDK-ját.\",\r\n \"embedPanelLearnMore\": \"További információ\",\r\n \"embedPanelChannelMovedHeader\": \"%1 beágyazási kódját áthelyezték\",\r\n \"embedPanelChannelMovedInstructions\": \"Kattintson ide a %1 konfigurációs lap megnyitásához\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Beágyazási kód ehhez: %1\",\r\n \"embedPanelGettingCodes\": \"Kódok beolvasása...\",\r\n \"embedPanelNoCodeAvailable\": \"Nem érhető el beágyazási kód ehhez a bothoz.\",\r\n \"channelIssuesPanelSubtitle\": \"Legutóbbi problémák\",\r\n \"channelIssuesPanelClearall\": \"Összes törlése\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Idő\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Üzenet\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"Korrelációazonosító\",\r\n \"unsavedChangesWillBeLost\": \"A nem mentett változtatások elvesznek.\",\r\n \"altImageChannel\": \"%1 csatorna konfigurálása\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"E-mail\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype vállalati verzió\",\r\n \"_SkypeforBusiness\": \"Skype for business márka\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"A ROBOT ÁTTELEPÍTÉSE\",\r\n \"migrationBannerCTAStartMigrating\": \"ÁTTELEPÍTÉS INDÍTÁSA\",\r\n \"migrationBannerBlurb1\": \"Az új Azure Bot Service elindításával minden robotot áttelepítünk az új szolgáltatásba 2018/3/31-ig.\",\r\n \"migrationBannerBlurb2\": \"az áttelepítésről.\",\r\n \"migrationBannerSuggestedBlurb\": \"Az Azure Bot Service-be való áttelepítés nem kötelező ennél a robotnál.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Az Azure Bot Service-be áttelepítést igénylő robotokat most kell áttelepíteni a szolgáltatás megszakadásának elkerülése érdekében.\",\r\n \"migrationBannerBlockedBlurb\": \"A robot áttelepítésének határideje lejárt, telepítse át most a szolgáltatás megszakadásának elkerülése érdekében.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Ha beállítja ezt a csatornát, a robotot át kell telepítenie az Azure Bot Service-be 2018. 3. 31.-ig. Biztosan be szeretné állítani a csatornát?\",\r\n \"channelRequiresMigrationDialogMessage\": \"A csatorna csak az Azure Bot Service-be telepített robotok számára áll rendelkezésre. Szeretné áttelepíteni a robotot?\",\r\n \"channelRequiresABSBot\": \"A csatorna csak az Azure Bot Service-be telepített robotok számára áll rendelkezésre.\",\r\n \"botRequiresMigrationDialogHeader\": \"Robot áttelepítése szükséges\",\r\n \"botRequiresMigrationDialogMessage\": \"A robot áttelepítésének határideje lejárt, telepítse át most a szolgáltatás megszakadásának elkerülése érdekében.\",\r\n \"yesMigrateThisBot\": \"Igen, telepítse át a robotot\",\r\n \"myBotsMigrationStatusMigrated\": \"Áttelepítve\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Szükséges\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Nem szükséges\",\r\n \"myBotsMigrationButtonMigrate\": \"Áttelepít\",\r\n \"myBotsMigrationButtonRollback\": \"Áttelepítés visszaállítás\",\r\n \"deleteBotDialogDeleteButtonText\": \"Robot törlése\",\r\n \"cancelButtonText\": \"Mégse\",\r\n \"deleteBotDialogTitleText\": \"Törölni készül ezt a robotot\",\r\n \"deleteBotDialogBodyText\": \"Ez a művelet a robothoz társított összes adatot törli, és nem vonható vissza. Biztos benne?\",\r\n \"deleteBotDialogStatusDeleting\": \"Robot törlése...\",\r\n \"deleteBotDialogStatusDeleted\": \"Robot törölve\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Igen, állítsa vissza\",\r\n \"rollbackBotDialogTitleText\": \"Valóban visszaállítja?\",\r\n \"rollbackBotDialogBodyText\": \"Ez a művelet teljesen visszaállítja az áttelepítést, és az áttelepítési folyamatot előlről el kell indítania. Biztosan folytatni kívánja?\",\r\n \"rollbackBotDialogErrorInfo\": \"Hiba történt a robot adatainak kiszolgálóról való lekérése közben.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"A visszaállítás nem hajtható végre. Nem található visszaállítási végpont.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"A visszaállítás nem hajtható végre. Nem sikerült Azure tokent találni az Azure-hoz való kapcsolódáshoz.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Robot információ gyűjtése...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Robot előkészítése...\",\r\n \"rollbackBotDialogStatusReverting\": \"Robot visszaállítása..\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Frissített alkalmazás törlése...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Telepítési bejegyzés törlése...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Visszaállítás befejezve\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"visszaállítás sikeresen megtörtént.\",\r\n \"okButtonText\": \"Ok\",\r\n \"errorMessageErrorOccurred\": \"Hiba történt\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Robot információ lekérdezése...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Azure információk lekérdezése...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Robotalkalmazás beállításainak lekérdezése...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Áttelepített robot inicializálása...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Robotszolgáltatás regisztrálása Azure-ban...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Robot bejegyzés frissítése...\",\r\n \"migrationDialogStatusCreatingRG\": \"Erőforráscsoport létrehozása...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Fájlok áttelepítése új robothoz...\",\r\n \"migrationDialogStatusWrappingUp\": \"Telepítés befejezése...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Robot csatlakoztatása meglévő tárolóhoz...\",\r\n \"migrationDialogStatusDeployingSite\": \"Webhely üzembe helyezése\",\r\n \"migrationDialogStatusConfiguringSite\": \"Webhely konfigurálása\",\r\n \"migrationDialogStatusDeploying\": \"Üzembe helyezés\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Új függvényalkalmazás hitelesítő adatainak beolvasása...\",\r\n \"migrationDialogErrorNoSubs\": \"Nem sikerült az aktuális felhasználóhoz tartozó Azure előfizetést találni.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Nem sikerült Azure hozzáférési tokent találni az aktuális felhasználóhoz.\",\r\n \"migrationDialogErrorNoLocations\": \"Nem sikerült a kijelölt Azure előfizetéshez tartozó helyet találni.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Nem sikerült Azure tárfiók nevet találni az alkalmazáskonfigurációban.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Alkalmazás neve nem elérhető.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Érvénytelen alkalmazásnév.\",\r\n \"migrationDialogErrorNoBotType\": \"Az aktuális robot nem rendelkezik érvényes típussal.\",\r\n \"migrationDialogErrorBotInvalid\": \"A robot nem telepíthető át, mert érvénytelen.\",\r\n \"migrationDialogErrorEndpointMissing\": \"A robot nem telepíthető át, mert hiányzik a végpont.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"A robot nem telepíthető át, mert az üzembe helyezési információk hiányoznak.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"A robot nem telepíthető át, mert hiányzik az erőforráscsoport neve.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"A robot nem telepíthető át, mert hiányzik az Azure előfizetés azonosítója.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"A robot nem telepíthető át, mert hiányzik az Azure webhely neve.\",\r\n \"migrationDialogABSv2TitleText\": \"Az áttelepítés nem elérhető\",\r\n \"migrationDialogABSv2BodyText\": \"Az áttelepítés jelenleg le van tiltva a beszélgetéstervező (ABSv2) robotoknál.\",\r\n \"migrationDialogRegistrationBodyText\": \"Az áttelepítés jelenleg le van tiltva a(z) '{0}' robotoknál.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Az Azure token lejárt.\",\r\n \"migrationDialogRefreshPage\": \"Frissítse a lapot, és próbálja meg újra az áttelepítést.\",\r\n \"migrationSubscriptionDisabled\": \"A kiválasztott Azure előfizetés le van tiltva. Engedélyezze az áttelepítés folytatásához.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Ez a könyvtár nem tartalmaz előfizetést.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Azure Functions Pack szükséges a robot áttelepítéséhez\",\r\n \"migrationDialogFuncPackBotMessage\": \"A Node Functions robotokat be kell csomagolni az Azure Functions Pack segítségével, mielőtt áttelepítésre kerülhetnének.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Ismerje meg, hogyan futtatható az Azure Functions Pack a robot kódján\",\r\n \"tosDialog_Header\": \"Szolgáltatási feltételek\",\r\n \"tosDialog_AgreeButton\": \"Megállapodnak abban\",\r\n \"tosDialog_MessageChannels\": \"Az online szolgáltatások feltételei nem vonatkoznak a csatornákon történő közzétételre. Például a Microsoft csatornákon való közzététel feltételei nem kínálnak adatfeldolgozási feltételeket.\",\r\n \"tosDialog_MessageMigration\": \"Olvassa el, és fogadja el a következő feltételeket.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Elfogadom, hogy a robot keretrendszer webhelyének használata {0} és a(z) {1} hatálya alá tartozik.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Elfogadom a Cortana csatonában való közzétételemre vonatkozóan a {0} és {1} dokumentumokban foglaltakat.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Elfogadom a(z) <%= channelslist %> csatonában való közzétételemre vonatkozóan a {0} és {1} dokumentumokban foglaltakat.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Elfogadom a(z) <%= channelslist %> csatonákban való közzétételemre vonatkozóan a {0} és {1} dokumentumokban foglaltakat.\",\r\n \"tosDialog_ABSTerms\": \"saját Azure Bot Service előfizetés feltételei\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Cortana csatorna közzétételi feltételek\",\r\n \"tosDialog_MSPublicationTerms\": \"Közzétételi feltételek Microsoft csatornán\",\r\n \"tosDialog_MSPrivacyStatement\": \"A Microsoft adatvédelmi nyilatkozata\",\r\n \"notice\": \" MEGJEGYZÉS: \",\r\n \"listElem\": \"{0}, \",\r\n \"andListEnd\": \"{0} és {1}\",\r\n \"analyticsChannelsDropdown\": \"Csatornaszűrő\",\r\n \"analyticsPeriodDropdown\": \"Időszak\",\r\n \"deprecatedChannel\": \"(elavult)\",\r\n \"openInComposer\": \"megnyitás a Composerben\",\r\n \"downloadComposer\": \"A Composer letöltése\",\r\n };\r\n var Resources_pl = {\r\n \"unsupportedBrowser_Azure\": \"Usługa Azure Bot Service nie obsługuje jeszcze Twojej przeglądarki.\",\r\n \"unsupportedBrowser\": \"Platforma Bot Framework nie obsługuje jeszcze Twojej przeglądarki.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Logowanie\",\r\n \"loadingBot\": \"Trwa ładowanie bota...\",\r\n \"botIsNotReady\": \"Oczekiwanie, aż bot będzie gotowy\",\r\n \"analyticsNotReady\": \"Oczekiwanie na skonfigurowanie usługi Application Insights\",\r\n \"authorizingWebChat\": \"Autoryzowanie rozmowy z botem\",\r\n \"signInFailure\": \"Wystąpił błąd podczas logowania. Upewnij się, że pliki cookie innych firm są włączone w przeglądarce\",\r\n \"getChatTokenFailure\": \"Wystąpił błąd podczas pobierania tokenu autoryzacji rozmowy. Odśwież i spróbuj ponownie.\",\r\n \"refreshSignInFailure\": \"Wystąpił błąd podczas odświeżania informacji logowania. Upewnij się, że w przeglądarce włączone są pliki cookie innych firm.\",\r\n \"xhrResponse_400\": \"Akcja lub podane wartości są nieprawidłowe.\",\r\n \"xhrResponse_403\": \"Nie można uzyskać dostępu do tego elementu albo go zmodyfikować.\",\r\n \"xhrResponse_404\": \"Nie można odnaleźć elementu.\",\r\n \"xhrResponse_500\": \"Wystąpił błąd wewnętrzny na serwerze.\",\r\n \"xhrResponse_501\": \"Ta operacja jest nieobsługiwana.\",\r\n \"xhrResponse_Message\": \"Błąd: %1\",\r\n \"xhrResponse_Unknown\": \"Wystąpił nieznany błąd.\",\r\n \"AddAFeaturedChannelTitle\": \"Dodaj polecany kanał\",\r\n \"ConnectToChannelsTitle\": \"Połącz z kanałami\",\r\n \"NoChannelsConfigured\": \"Nie połączono się jeszcze z żadnym kanałem. Wybierz kanał, aby się z nim połączyć.\",\r\n \"MoreChannelsTitle\": \"Więcej kanałów\",\r\n \"test\": \"Testuj\",\r\n \"startOver\": \"Zacznij od nowa\",\r\n \"retentionTitle\": \"Utrzymanie\",\r\n \"retentionDescription\": \"% użytkowników, którzy ponownie przesłali wiadomość (ostatnie 10 dni)\",\r\n \"retentionHeader\": \"Dni później\",\r\n \"retentionDate\": \"Data\",\r\n \"retentionUsers\": \"Użytkownicy\",\r\n \"undetermined\": \"Nieokreślone\",\r\n \"loading\": \"trwa ładowanie...\",\r\n \"noAnalyticsData\": \"brak danych\",\r\n \"timespanLastHour\": \"Ostatnia godzina\",\r\n \"timespanLastDay\": \"Ostatni dzień\",\r\n \"timespanLastWeek\": \"Ostatni tydzień\",\r\n \"timespanLastMonth\": \"Ostatni miesiąc\",\r\n \"timespanLast90Days\": \"Ostatnie 90 dni\",\r\n \"timespanUnknown\": \"Nieznany przedział czasu\",\r\n \"timelineCardUsersTitle\": \"Użytkownicy\",\r\n \"timelineCardMessagesTitle\": \"Działania\",\r\n \"totalsCardTitle\": \"Sumy końcowe\",\r\n \"analyticsNotConfigured\": \"Nie włączono jeszcze funkcji analiz za pośrednictwem usługi Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Podaj klucze i identyfikator usługi Application Insights dla tego bota na następującej stronie: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Podaj klucze i identyfikator usługi Application Insights dla tego bota na stronie ustawień.\",\r\n \"learnMore\": \"Dowiedz się więcej\",\r\n \"cardTitleLoading\": \"%1 — %2\",\r\n \"cardTitleError\": \"%1 — błąd: %2\",\r\n \"timelineTableLabel\": \"Tabela osi czasu mapująca wykres %1 według godzin\",\r\n \"timelineChartLabel\": \"Wykres osi czasu mapujący wykres %1 według godzin\",\r\n \"published\": \"Opublikowano\",\r\n \"health\": \"Kondycja\",\r\n \"channelname\": \"Nazwa\",\r\n \"edit\": \"Edytuj\",\r\n \"running\": \"Uruchomiono\",\r\n \"issuesTemplate\": \"Problemy (<%= length %>)\",\r\n \"warningTemplate\": \"Ostrzeżenia (<%= length %>)\",\r\n \"channelPublished\": \"Opublikowano\",\r\n \"tryOnCortana\": \"Wypróbuj w kanale <%= Name %> — dowiedz się, jak\",\r\n \"tryOnChannel\": \"Wypróbuj w kanale <%= Name %>\",\r\n \"manageInCortana\": \"Zarządzaj na pulpicie nawigacyjnym Cortany\",\r\n \"channelRejected\": \"Odrzucono\",\r\n \"channelMoreDetails\": \"Więcej szczegółów\",\r\n \"channelResubmit\": \"Wyślij ponownie do przeglądu...\",\r\n \"channelGetEmbedCodes\": \"Pobierz kody osadzania bota\",\r\n \"channelConfigDeleteMessage\": \"Wykonanie tej akcji spowoduje usunięcie wszystkich informacji dotyczących konfiguracji kanału. Czy na pewno chcesz kontynuować?\",\r\n \"channelConfigDeleteHeader\": \"Usuń kanał\",\r\n \"channelConfigDeleteOk\": \"Tak, usuń go\",\r\n \"channelConfigDeleteCancel\": \"Nie, zachowaj go\",\r\n \"channelConfigLeaveMessage\": \"Masz niezapisane zmiany w tym dokumencie. Czy na pewno chcesz opuścić tę stronę?\",\r\n \"channelConfigLeaveHeader\": \"Odrzuć zmiany\",\r\n \"channelConfigLeaveOk\": \"Tak, opuść stronę\",\r\n \"channelConfigLeaveCancel\": \"Nie, zostań na stronie\",\r\n \"channelEdit\": \"Edytuj\",\r\n \"dialogPleaseWait\": \"Czekaj...\",\r\n \"embedPanelTitle\": \"Kod osadzania bota\",\r\n \"embedPanelDescription\": \"Wybierz kanał, aby pobrać dla niego kod osadzania. Skopiuj ten kod i wklej go w swojej witrynie internetowej.\",\r\n \"embedPanelFacebookFooter\": \"Aby używać tego osadzenia, musisz dołączyć zestaw JavaScript SDK Facebooka do swojej strony.\",\r\n \"embedPanelLearnMore\": \"Dowiedz się więcej.\",\r\n \"embedPanelChannelMovedHeader\": \"Kod osadzania dla kanału %1 został przeniesiony\",\r\n \"embedPanelChannelMovedInstructions\": \"Kliknij tutaj, aby otworzyć stronę konfiguracji kanału %1\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Kod osadzania dla kanału %1\",\r\n \"embedPanelGettingCodes\": \"Trwa pobieranie kodów...\",\r\n \"embedPanelNoCodeAvailable\": \"Brak dostępnego kodu osadzania dla tego bota.\",\r\n \"channelIssuesPanelSubtitle\": \"Ostatnie problemy\",\r\n \"channelIssuesPanelClearall\": \"Wyczyść wszystko\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Godzina\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Wiadomość\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"Identyfikator korelacji\",\r\n \"unsavedChangesWillBeLost\": \"Niezapisane zmiany zostaną utracone.\",\r\n \"altImageChannel\": \"Konfiguruj kanał %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"Poczta e-mail\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype dla firm\",\r\n \"_SkypeforBusiness\": \"Marka Skype dla firm\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRUJ TEGO BOTA\",\r\n \"migrationBannerCTAStartMigrating\": \"ROZPOCZNIJ MIGROWANIE\",\r\n \"migrationBannerBlurb1\": \"Z powodu uruchomienia nowej usługi Azure Bot Service będziemy migrować wszystkie boty do nowej usługi do 31 marca 2018.\",\r\n \"migrationBannerBlurb2\": \"o migracji.\",\r\n \"migrationBannerSuggestedBlurb\": \"W przypadku tego bota migracja do Azure Bot Service jest opcjonalna.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"W celu uniknięcia przerwy w świadczeniu usług, konieczna jest teraz migracja botów, które tego wymagają do Azure Bot Service. \",\r\n \"migrationBannerBlockedBlurb\": \"Zaległa migracja bota, dokonaj teraz migracji w celu uniknięcia przerwy w świadczeniu usługi.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Jeśli skonfigurujesz ten kanał, nastąpi konieczność migracji bota do Azure Bot Service najpóźniej do 3.31.2018 r. Czy na pewno chcesz konfigurować ten kanał?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Ten kanał jest dostępny tylko w dla botów w Azure Bot Service. Czy chcesz dokonać migracji tego bota?\",\r\n \"channelRequiresABSBot\": \"Ten kanał jest dostępny tylko dla botów w usłudze Azure Bot Service.\",\r\n \"botRequiresMigrationDialogHeader\": \"Bot wymaga migracji\",\r\n \"botRequiresMigrationDialogMessage\": \"Zaległa migracja bota, dokonaj teraz migracji w celu uniknięcia przerwy w świadczeniu usługi.\",\r\n \"yesMigrateThisBot\": \"Tak, dokonaj migracji tego bota\",\r\n \"myBotsMigrationStatusMigrated\": \"Zmigrowano\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Wymagane\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Niewymagane\",\r\n \"myBotsMigrationButtonMigrate\": \"Migruj\",\r\n \"myBotsMigrationButtonRollback\": \"Wycofaj migrację\",\r\n \"deleteBotDialogDeleteButtonText\": \"Usuń bota\",\r\n \"cancelButtonText\": \"Anuluj\",\r\n \"deleteBotDialogTitleText\": \"Zamierzasz usunąć tego bota\",\r\n \"deleteBotDialogBodyText\": \"Wykonanie tej akcji spowoduje wymazanie wszystkich danych skojarzonych z tym botem i nie będzie można jej cofnąć. Czy na pewno?\",\r\n \"deleteBotDialogStatusDeleting\": \"Trwa usuwanie bota...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot usunięty\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Tak, wycofaj\",\r\n \"rollbackBotDialogTitleText\": \"Czy na pewno chcesz wykonać wycofywanie?\",\r\n \"rollbackBotDialogBodyText\": \"Ta akcja spowoduje całkowite wycofanie migracji i trzeba będzie rozpocząć proces migracji od początku. Czy na pewno chcesz kontynuować?\",\r\n \"rollbackBotDialogErrorInfo\": \"Błąd pobierania informacji dotyczących bota z serwera.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Nie można wykonać wycofywania. Nie znaleziono punktu końcowego wycofywania.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Nie można wykonać wycofywania. Nie można odnaleźć tokenu platformy Azure umożliwiającego kontaktowanie się z platformą Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Trwa zbieranie informacji dotyczących bota...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Trwa przygotowywanie bota...\",\r\n \"rollbackBotDialogStatusReverting\": \"Trwa przywracanie bota...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Trwa usuwanie uaktualnionej aplikacji...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Trwa usuwanie rekordu wdrożenia...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Wycofywanie zakończone\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"została wycofana pomyślnie.\",\r\n \"okButtonText\": \"OK\",\r\n \"errorMessageErrorOccurred\": \"Wystąpił błąd\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Trwa pobieranie informacji dotyczących bota...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Trwa pobieranie informacji dotyczących platformy Azure...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Trwa pobieranie ustawień aplikacji bota...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Trwa inicjowanie zmigrowanego bota...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Trwa rejestrowanie usługi Bot Service na platformie Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Trwa aktualizowanie rekordu bota...\",\r\n \"migrationDialogStatusCreatingRG\": \"Trwa tworzenie grupy zasobów...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Trwa migrowanie plików do nowego bota...\",\r\n \"migrationDialogStatusWrappingUp\": \"Trwa tworzenie otoki wdrożenia...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Trwa podłączanie bota do istniejącego magazynu...\",\r\n \"migrationDialogStatusDeployingSite\": \"Wdrażanie witryny internetowej\",\r\n \"migrationDialogStatusConfiguringSite\": \"Konfigurowanie witryny internetowej\",\r\n \"migrationDialogStatusDeploying\": \"Wdrażanie\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Trwa pobieranie nowych poświadczeń aplikacji funkcji...\",\r\n \"migrationDialogErrorNoSubs\": \"Nie można odnaleźć subskrypcji platformy Azure dla bieżącego użytkownika.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Nie można odnaleźć tokenu dostępu platformy Azure dla bieżącego użytkownika.\",\r\n \"migrationDialogErrorNoLocations\": \"Nie można odnaleźć lokalizacji dla wybranej subskrypcji platformy Azure.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Nie można znaleźć nazwy konta usługi Azure Storage w konfiguracji aplikacji.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Nazwa aplikacji jest niedostępna.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Nieprawidłowa nazwa aplikacji.\",\r\n \"migrationDialogErrorNoBotType\": \"Bieżący bot nie ma prawidłowego typu.\",\r\n \"migrationDialogErrorBotInvalid\": \"Nie można zmigrować tego bota, ponieważ jest on nieprawidłowy.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Nie można zmigrować tego bota z powodu braku punktu końcowego.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Nie można zmigrować tego bota z powodu braku informacji dotyczących inicjowania obsługi.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Nie można zmigrować tego bota z powodu braku nazwy grupy zasobów.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Nie można zmigrować tego bota z powodu braku identyfikatora subskrypcji platformy Azure.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Nie można zmigrować tego bota z powodu braku nazwy lokacji platformy Azure.\",\r\n \"migrationDialogABSv2TitleText\": \"Migracja niedostępna\",\r\n \"migrationDialogABSv2BodyText\": \"Migracja botów projektanta konwersacji (ABSv2) jest obecnie wyłączona.\",\r\n \"migrationDialogRegistrationBodyText\": \"Migracja botów „{0}” jest obecnie wyłączona.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Token platformy Azure wygasł.\",\r\n \"migrationDialogRefreshPage\": \"Odśwież stronę i ponów próbę wykonania migracji.\",\r\n \"migrationSubscriptionDisabled\": \"Wybrana subskrypcja platformy Azure jest wyłączona. Włącz ją, aby kontynuować migrację.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Ten katalog nie zawiera subskrypcji.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Do wykonania migracji tego bota wymagany jest pakiet Azure Functions Pack\",\r\n \"migrationDialogFuncPackBotMessage\": \"Boty funkcji węzłów muszą zostać umieszczone w pakiecie z pakietem Azure Functions Pack, aby można było wykonać ich migrację.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Dowiedz się, jak uruchomić pakiet Azure Functions Pack w kodzie bota\",\r\n \"tosDialog_Header\": \"Warunki świadczenia usługi\",\r\n \"tosDialog_AgreeButton\": \"Zgadzam się\",\r\n \"tosDialog_MessageChannels\": \"Warunki opisane na stronie Online Services — warunki nie dotyczą publikowania w kanałach. Na przykład warunki publikowania w kanałach firmy Microsoft nie obejmują warunków przetwarzania danych.\",\r\n \"tosDialog_MessageMigration\": \"Przeczytaj i zaakceptuj poniższe warunki.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Zgadzam się, że korzystanie z witryny Bot Framework jest regulowane przez {0} i {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Akceptuję {0} i {1} odnośnie mojego wdrożenia w kanale Cortana.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Akceptuję {0} i {1} odnośnie mojego wdrożenia w kanale <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Akceptuję {0} i {1} odnośnie mojego wdrożenia w kanałach <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"warunki mojej subskrypcji usługi Azure Bot Service\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Warunki publikacji w kanale Cortana\",\r\n \"tosDialog_MSPublicationTerms\": \"Warunki publikacji w kanałach firmy Microsoft\",\r\n \"tosDialog_MSPrivacyStatement\": \"Oświadczenie firmy Microsoft o ochronie prywatności\",\r\n \"notice\": \" POWIADOMIENIE: \",\r\n \"listElem\": \"{0}, \",\r\n \"andListEnd\": \"{0} i {1}\",\r\n \"analyticsChannelsDropdown\": \"Filtr kanałów\",\r\n \"analyticsPeriodDropdown\": \"Okres\",\r\n \"deprecatedChannel\": \"(przestarzały)\",\r\n \"openInComposer\": \"otwórz w kompozytorze\",\r\n \"downloadComposer\": \"Pobierz kompozytora\",\r\n };\r\n var Resources_sv = {\r\n \"unsupportedBrowser_Azure\": \"Azure Bot Service har inte stöd för din webbläsare än.\",\r\n \"unsupportedBrowser\": \"Botsystemet har inte stöd för din webbläsare än.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Loggar in\",\r\n \"loadingBot\": \"Läser in bot...\",\r\n \"botIsNotReady\": \"Väntar på bot\",\r\n \"analyticsNotReady\": \"Väntar på att Application Insights ska konfigureras\",\r\n \"authorizingWebChat\": \"Godkänner chatt med bot\",\r\n \"signInFailure\": \"Ett fel inträffade vid inloggningen. Kontrollera att cookies från tredje part är aktiverade i webbläsaren.\",\r\n \"getChatTokenFailure\": \"Det gick inte att få en autentiseringskod för chatt. Uppdatera och försök igen.\",\r\n \"refreshSignInFailure\": \"Ett fel inträffade när din inloggningsinformation uppdaterades. Kontrollera att cookies från tredje part är aktiverade i webbläsaren.\",\r\n \"xhrResponse_400\": \"Åtgärden eller de angivna värdena är ogiltiga.\",\r\n \"xhrResponse_403\": \"Objektet kan inte nås eller modifieras.\",\r\n \"xhrResponse_404\": \"Objektet hittades inte.\",\r\n \"xhrResponse_500\": \"Ett internt fel uppstod hos servern.\",\r\n \"xhrResponse_501\": \"Den här åtgärden stöds inte.\",\r\n \"xhrResponse_Message\": \"Fel: %1\",\r\n \"xhrResponse_Unknown\": \"Ett okänt fel har uppstått.\",\r\n \"AddAFeaturedChannelTitle\": \"Lägg till en aktuell kanal\",\r\n \"ConnectToChannelsTitle\": \"Anslut till kanaler\",\r\n \"NoChannelsConfigured\": \"Du har inte anslutit några kanaler ännu. Välj en kanal att ansluta.\",\r\n \"MoreChannelsTitle\": \"Fler kanaler\",\r\n \"test\": \"Test\",\r\n \"startOver\": \"Börja om\",\r\n \"retentionTitle\": \"Bibehållning\",\r\n \"retentionDescription\": \"% användare som skickade meddelande igen (senaste 10 dagarna)\",\r\n \"retentionHeader\": \"Dagar senare\",\r\n \"retentionDate\": \"Datum\",\r\n \"retentionUsers\": \"Användare\",\r\n \"undetermined\": \"Obestämt\",\r\n \"loading\": \"läser in…\",\r\n \"noAnalyticsData\": \"inga data\",\r\n \"timespanLastHour\": \"Senaste timmen\",\r\n \"timespanLastDay\": \"Senaste dagen\",\r\n \"timespanLastWeek\": \"Senaste veckan\",\r\n \"timespanLastMonth\": \"Senaste månaden\",\r\n \"timespanLast90Days\": \"Senaste 90 dagarna\",\r\n \"timespanUnknown\": \"Okänd tidsrymd\",\r\n \"timelineCardUsersTitle\": \"Användare\",\r\n \"timelineCardMessagesTitle\": \"Aktiviteter\",\r\n \"totalsCardTitle\": \"Totalsumma\",\r\n \"analyticsNotConfigured\": \"Du har inte aktiverat statistik via Azure Application Insights än.\",\r\n \"analyticsNotConfiguredAction\": \"Ange dina Application Insights-nycklar och id för denna bot på följande sida:\",\r\n \"analyticsNotConfiguredActionIbiza\": \"Ange dina Application Insights-nycklar och id för denna bot i inställningarna.\",\r\n \"learnMore\": \"Mer information\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - fel: %2\",\r\n \"timelineTableLabel\": \"Mappning av tidslinjetabell %1 efter tid\",\r\n \"timelineChartLabel\": \"Mappning av tidslinjediagram %1 efter tid\",\r\n \"published\": \"Publicerad\",\r\n \"health\": \"Hälsa\",\r\n \"channelname\": \"Namn\",\r\n \"edit\": \"Redigera\",\r\n \"running\": \"Löpning\",\r\n \"issuesTemplate\": \"Problem (<%= length %>)\",\r\n \"warningTemplate\": \"Varningar (<%= length %>)\",\r\n \"channelPublished\": \"Publicerad\",\r\n \"tryOnCortana\": \"Prova i <%= Name %> – ta reda på hur\",\r\n \"tryOnChannel\": \"Prova i <%= Name %>\",\r\n \"manageInCortana\": \"Hantera i kontrollpanelen för Cortana\",\r\n \"channelRejected\": \"Avvisad\",\r\n \"channelMoreDetails\": \"Fler detaljer\",\r\n \"channelResubmit\": \"Skicka till granskning igen...\",\r\n \"channelGetEmbedCodes\": \"Skaffa inbäddade botkoder\",\r\n \"channelConfigDeleteMessage\": \"Den här åtgärden tar bort all information om kanalkonfigurationen. Vill du fortsätta?\",\r\n \"channelConfigDeleteHeader\": \"Ta bort kanal\",\r\n \"channelConfigDeleteOk\": \"Ja, ta bort den\",\r\n \"channelConfigDeleteCancel\": \"Nej, behåll\",\r\n \"channelConfigLeaveMessage\": \"Du har ändringar som inte sparats i detta dokument. Vill du lämna den här sidan?\",\r\n \"channelConfigLeaveHeader\": \"Ta bort ändringar\",\r\n \"channelConfigLeaveOk\": \"Ja, lämna sidan\",\r\n \"channelConfigLeaveCancel\": \"Nej, stanna kvar på sidan\",\r\n \"channelEdit\": \"Redigera\",\r\n \"dialogPleaseWait\": \"Vänta...\",\r\n \"embedPanelTitle\": \"Inbäddad botkod\",\r\n \"embedPanelDescription\": \"Välj en kanal so koden ska bäddas in i. Kopiera och klistra koden till din webbplats.\",\r\n \"embedPanelFacebookFooter\": \"Facebook kräver att du inkluderar deras JavaScript SDK på sidan för att använda inbäddningen.\",\r\n \"embedPanelLearnMore\": \"Mer information.\",\r\n \"embedPanelChannelMovedHeader\": \"Inbäddad kod för %1 har flyttats\",\r\n \"embedPanelChannelMovedInstructions\": \"Klicka här för att öppna konfigurationssidan för %1\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Inbäddad kod för %1\",\r\n \"embedPanelGettingCodes\": \"Hämtar koder...\",\r\n \"embedPanelNoCodeAvailable\": \"Inga inbäddade koder är tillgängliga för boten.\",\r\n \"channelIssuesPanelSubtitle\": \"Senaste problemen\",\r\n \"channelIssuesPanelClearall\": \"Rensa alla\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Tid\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Meddelande\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"Korrelations-ID\",\r\n \"unsavedChangesWillBeLost\": \"Ändringar som inte sparats går förlorade.\",\r\n \"altImageChannel\": \"Konfigurera kanalen %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"E-postadress\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype för företag\",\r\n \"_SkypeforBusiness\": \"Skype för företag-märke\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRERA BOT\",\r\n \"migrationBannerCTAStartMigrating\": \"BÖRJA MIGRERA\",\r\n \"migrationBannerBlurb1\": \"Vi lanserar en ny Azure Bot Service och migrerar alla bottar till den nya tjänsten senast 2018-03-31.\",\r\n \"migrationBannerBlurb2\": \"om migreringen.\",\r\n \"migrationBannerSuggestedBlurb\": \"Migrering till Azure Bot Service är valfri för den här roboten.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Robotar som måste migreras till Azure Bot Service måste migreras nu för att undvika avbrott i tjänsten.\",\r\n \"migrationBannerBlockedBlurb\": \"Robotmigrering är försenad. Migrera nu för att undvika avbrott i tjänsten.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Om du konfigurerar den här kanalen måste din robot migreras till Azure Bot Service senast 2018-03-31. Vill du konfigurera den här kanalen?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Den här kanalen är bara tillgänglig för robotar i Azure Bot Service. Vill du migrera denna robot?\",\r\n \"channelRequiresABSBot\": \"Den här kanalen är bara tillgänglig för robotar i Azure Bot Service.\",\r\n \"botRequiresMigrationDialogHeader\": \"Migrering krävs för robot\",\r\n \"botRequiresMigrationDialogMessage\": \"Robotmigrering är försenad. Migrera nu för att undvika avbrott i tjänsten.\",\r\n \"yesMigrateThisBot\": \"Ja, migrera denna robot\",\r\n \"myBotsMigrationStatusMigrated\": \"Migrerad\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Krävs\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Ej obligatoriskt\",\r\n \"myBotsMigrationButtonMigrate\": \"Migrera\",\r\n \"myBotsMigrationButtonRollback\": \"Återställ migrering\",\r\n \"deleteBotDialogDeleteButtonText\": \"Ta bort bot\",\r\n \"cancelButtonText\": \"Avbryt\",\r\n \"deleteBotDialogTitleText\": \"Botten tas bort om du fortsätter\",\r\n \"deleteBotDialogBodyText\": \"Den här åtgärden raderar all data som är associerad med botten och går inte att ångra. Är du säker?\",\r\n \"deleteBotDialogStatusDeleting\": \"Tar bort bot …\",\r\n \"deleteBotDialogStatusDeleted\": \"Botten har tagits bort\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Ja, återställ\",\r\n \"rollbackBotDialogTitleText\": \"Vill du återställa?\",\r\n \"rollbackBotDialogBodyText\": \"Migreringen återställs helt och du måste börja om från början med migreringsprocessen. Vill du fortsätta?\",\r\n \"rollbackBotDialogErrorInfo\": \"Det gick inte att hämta botinformation från servern.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Det går inte att återställa. Det finns ingen slutpunkt för återställning.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Det går inte att återställa. Hittade ingen Azure-token att kontakta Azure med.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Samlar botinfo …\",\r\n \"rollbackBotDialogStatusPreparing\": \"Förbereder bot …\",\r\n \"rollbackBotDialogStatusReverting\": \"Återställer bot …\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Tar bort uppgraderad app …\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Tar bort distributionsregister …\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Återställning klar\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"har återställts.\",\r\n \"okButtonText\": \"OK\",\r\n \"errorMessageErrorOccurred\": \"Ett fel uppstod\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Hämtar botinfo …\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Hämtar Azure-info …\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Hämtar bottens appinställningar …\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Initierar migrerad bot …\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Registrerar Bot Service hos Azure …\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Uppdaterar botregister …\",\r\n \"migrationDialogStatusCreatingRG\": \"Skapar resursgrupp …\",\r\n \"migrationDialogStatusMigratingFiles\": \"Migrerar filer till ny bot …\",\r\n \"migrationDialogStatusWrappingUp\": \"Avslutar distribuering …\",\r\n \"migrationDialogStatusDeployingStorage\": \"Ansluter bot till befintlig lagring …\",\r\n \"migrationDialogStatusDeployingSite\": \"Webbplatsen distribueras\",\r\n \"migrationDialogStatusConfiguringSite\": \"Konfigurerar webbplats\",\r\n \"migrationDialogStatusDeploying\": \"Distribuerar\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Hämtar nya autentiseringsuppgifter för funktionsappen …\",\r\n \"migrationDialogErrorNoSubs\": \"Det gick inte att hitta några Azure-prenumerationer för användaren.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Hittade ingen Azure-åtkomsttoken för användaren.\",\r\n \"migrationDialogErrorNoLocations\": \"Det gick inte att hitta några platser för den valda Azure-prenumerationen.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Hittade inget Azure Storage-kontonamn i appkonfigurationen.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Appnamnet är inte tillgängligt.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Ogiltigt appnamn.\",\r\n \"migrationDialogErrorNoBotType\": \"Botten har ingen giltig typ.\",\r\n \"migrationDialogErrorBotInvalid\": \"Det går inte att migrera botten eftersom den är ogiltig.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Det går inte att migrera botten eftersom slutpunkten saknas.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Det går inte att migrera botten eftersom etableringsinfo saknas.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Det går inte att migrera botten eftersom resursgruppnamnet saknas.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Det går inte att migrera botten eftersom Azure-prenumerations-id saknas.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Det går inte att migrera botten eftersom Azure-platsnamnet saknas.\",\r\n \"migrationDialogABSv2TitleText\": \"Migrering är inte tillgänglig\",\r\n \"migrationDialogABSv2BodyText\": \"Migrering är för närvarande inaktiverat för konversationsdesignbottar (ABSv2).\",\r\n \"migrationDialogRegistrationBodyText\": \"Migrering är inaktiverad för bottar av typen '{0}'.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Azure-token har upphört.\",\r\n \"migrationDialogRefreshPage\": \"Uppdatera sidan och försök migrera igen.\",\r\n \"migrationSubscriptionDisabled\": \"Den valda Azure-prenumerationen är inaktiverad. Aktivera om du vill fortsätta migreringen.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Den här katalogen innehåller inte någon prenumeration.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Azure Functions Pack krävs för att den här boten ska kunna migreras\",\r\n \"migrationDialogFuncPackBotMessage\": \"Nodfunktionsbotar måste paketeras med Azure Functions Pack innan de kan migreras.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Läs mer om hur du kör Azure Functions Pack på din botkod\",\r\n \"tosDialog_Header\": \"Villkor för tjänsten\",\r\n \"tosDialog_AgreeButton\": \"Godkänn\",\r\n \"tosDialog_MessageChannels\": \"Villkoren för onlinetjänster gäller inte för publicering på kanaler. Villkoren för publicering på Microsoft-kanaler innehåller till exempel inte databehandlingsvillkor.\",\r\n \"tosDialog_MessageMigration\": \"Läs och godkänn följande villkor.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Jag samtycker till att användningen av Bot Framework-webbplatsen omfattas av {0} och {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Jag godkänner {0} och {1} för min distribuering på Cortana-kanalen.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Jag godkänner {0} och {1} för min distribuering på kanalen <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Jag godkänner {0} och {1} för min distribuering på kanalerna <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"villkor för min Azure Bot Service-prenumeration\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Publiceringsvillkor för Cortana-kanal\",\r\n \"tosDialog_MSPublicationTerms\": \"Villkor för Microsoft Channel Publication\",\r\n \"tosDialog_MSPrivacyStatement\": \"Microsofts sekretesspolicyer\",\r\n \"notice\": \" OBS!\",\r\n \"listElem\": \"{0}, \",\r\n \"andListEnd\": \"{0} och {1}\",\r\n \"analyticsChannelsDropdown\": \"Kanalfilter\",\r\n \"analyticsPeriodDropdown\": \"Tidsperiod\",\r\n \"deprecatedChannel\": \"(inaktuell)\",\r\n \"openInComposer\": \"öppna i Composer\",\r\n \"downloadComposer\": \"Hämta Composer\",\r\n };\r\n var Resources_tr = {\r\n \"unsupportedBrowser_Azure\": \"Azure Bot Hizmeti henüz tarayıcınızı desteklemiyor.\",\r\n \"unsupportedBrowser\": \"Bot Framework henüz tarayıcınızı desteklemiyor.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Oturum açılıyor\",\r\n \"loadingBot\": \"Bot yükleniyor...\",\r\n \"botIsNotReady\": \"Botun hazır olması bekleniyor\",\r\n \"analyticsNotReady\": \"Application Insights'ın yapılandırılması bekleniyor\",\r\n \"authorizingWebChat\": \"Bot ile Sohbet Yetkilendiriliyor\",\r\n \"signInFailure\": \"Oturumunuz açılırken bir hata oluştu. Tarayıcıda üçüncü taraf çerezlerin etkinleştirildiğinden emin olun.\",\r\n \"getChatTokenFailure\": \"Sohbet yetkilendirme belirteci alınırken bir hata oluştu. Yenileyin ve tekrar deneyin.\",\r\n \"refreshSignInFailure\": \"Oturum açma bilgilerinizi yenilerken bir hata oluştu. Tarayıcıda üçüncü taraf çerezlerin etkinleştirildiğinden emin olun.\",\r\n \"xhrResponse_400\": \"Eylem veya sağlanan değerler geçersiz.\",\r\n \"xhrResponse_403\": \"Bu öğeye erişilemiyor veya öğe değiştirilemiyor.\",\r\n \"xhrResponse_404\": \"Öğe bulunamadı.\",\r\n \"xhrResponse_500\": \"Sunucuda iç hata oluştu.\",\r\n \"xhrResponse_501\": \"Bu işlem desteklenmiyor.\",\r\n \"xhrResponse_Message\": \"Hata: %1\",\r\n \"xhrResponse_Unknown\": \"Bilinmeyen bir hata oluştu.\",\r\n \"AddAFeaturedChannelTitle\": \"Öne çıkan kanal ekleyin\",\r\n \"ConnectToChannelsTitle\": \"Kanallara bağlan\",\r\n \"NoChannelsConfigured\": \"Henüz kanal bağlamadınız. Bağlanacak bir kanal seçin.\",\r\n \"MoreChannelsTitle\": \"Daha fazla kanal\",\r\n \"test\": \"Test\",\r\n \"startOver\": \"Baştan başla\",\r\n \"retentionTitle\": \"Tutma\",\r\n \"retentionDescription\": \"% kullanıcı yeniden ileti gönderdi (son 10 gün)\",\r\n \"retentionHeader\": \"Geçen gün sayısı\",\r\n \"retentionDate\": \"Tarih\",\r\n \"retentionUsers\": \"Kullanıcılar\",\r\n \"undetermined\": \"Belirsiz\",\r\n \"loading\": \"yükleniyor...\",\r\n \"noAnalyticsData\": \"veri yok\",\r\n \"timespanLastHour\": \"Son Saat\",\r\n \"timespanLastDay\": \"Son Gün\",\r\n \"timespanLastWeek\": \"Geçen Hafta\",\r\n \"timespanLastMonth\": \"Geçen Ay\",\r\n \"timespanLast90Days\": \"Son 90 Gün\",\r\n \"timespanUnknown\": \"Bilinmeyen zaman aralığı\",\r\n \"timelineCardUsersTitle\": \"Kullanıcılar\",\r\n \"timelineCardMessagesTitle\": \"Etkinlikler\",\r\n \"totalsCardTitle\": \"Genel Toplamlar\",\r\n \"analyticsNotConfigured\": \"Henüz Azure Application Insights aracılığıyla Analiz'i etkinleştirmediniz.\",\r\n \"analyticsNotConfiguredAction\": \"Şu sayfada bu bot için Application Insights Anahtarlarınızı ve Kimliğinizi sağlayın: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Ayarlar sayfasında bu bot için Application Insights Anahtarlarınızı ve Kimliğinizi sağlayın.\",\r\n \"learnMore\": \"Daha fazla bilgi edinin\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - hata: %2\",\r\n \"timelineTableLabel\": \"Zamana göre zaman çizelgesi %1 tablosu eşleme\",\r\n \"timelineChartLabel\": \"Zamana göre zaman çizelgesi %1 grafiği eşleme\",\r\n \"published\": \"Yayımlandı\",\r\n \"health\": \"Sistem Durumu\",\r\n \"channelname\": \"Ad\",\r\n \"edit\": \"Düzenle\",\r\n \"running\": \"Çalışıyor\",\r\n \"issuesTemplate\": \"Sorunlar (<%= length %>)\",\r\n \"warningTemplate\": \"Uyarılar (<%= length %>)\",\r\n \"channelPublished\": \"Yayımlandı\",\r\n \"tryOnCortana\": \"<%= Name %> kanalında deneyin. Nasıl yapılacağını öğrenin\",\r\n \"tryOnChannel\": \"<%= Name %> kanalında deneyin\",\r\n \"manageInCortana\": \"Cortana panosunda yönet\",\r\n \"channelRejected\": \"Reddedildi\",\r\n \"channelMoreDetails\": \"Diğer ayrıntılar\",\r\n \"channelResubmit\": \"Gözden geçirme için yeniden gönder...\",\r\n \"channelGetEmbedCodes\": \"Bot ekleme kodlarını alın\",\r\n \"channelConfigDeleteMessage\": \"Bu eylem tüm kanal yapılandırması bilgilerini silecek. Devam etmek istediğinizden emin misiniz?\",\r\n \"channelConfigDeleteHeader\": \"Kanalı sil\",\r\n \"channelConfigDeleteOk\": \"Evet, sil\",\r\n \"channelConfigDeleteCancel\": \"Hayır, kalsın\",\r\n \"channelConfigLeaveMessage\": \"Bu belgede kaydedilmemiş değişiklikleriniz var. Bu sayfadan ayrılmak istediğinizden emin misiniz?\",\r\n \"channelConfigLeaveHeader\": \"Değişiklikleri at\",\r\n \"channelConfigLeaveOk\": \"Evet, sayfadan ayrıl\",\r\n \"channelConfigLeaveCancel\": \"Hayır, sayfada kal\",\r\n \"channelEdit\": \"Düzenle\",\r\n \"dialogPleaseWait\": \"Lütfen bekleyin...\",\r\n \"embedPanelTitle\": \"Bot ekleme kodu\",\r\n \"embedPanelDescription\": \"Bir kanalın ekleme kodunu almak için kanalı seçin. Kodu kopyalayıp web sitenize yapıştırın.\",\r\n \"embedPanelFacebookFooter\": \"Facebook, bu eklemeyi kullanabilmeniz için sayfanıza Facebook'un JavaScript SDK'sını eklemenizi gerektirir.\",\r\n \"embedPanelLearnMore\": \"Daha fazla bilgi edinin.\",\r\n \"embedPanelChannelMovedHeader\": \"%1 için ekleme kodu taşındı\",\r\n \"embedPanelChannelMovedInstructions\": \"%1 yapılandırma sayfasını açmak için buraya tıklayın\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"%1 için ekleme kodu\",\r\n \"embedPanelGettingCodes\": \"Kodlar alınıyor...\",\r\n \"embedPanelNoCodeAvailable\": \"Bu bot için kullanılabilir ekleme kodu yok.\",\r\n \"channelIssuesPanelSubtitle\": \"En son sorunlar\",\r\n \"channelIssuesPanelClearall\": \"Tümünü Temizle\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Saat\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"İleti\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"Bağıntı Kimliği\",\r\n \"unsavedChangesWillBeLost\": \"Kaydedilmeyen değişiklikler kaybolacak.\",\r\n \"altImageChannel\": \"%1 kanalını yapılandır\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Doğrudan Hat\",\r\n \"Email\": \"E-posta\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype Kurumsal\",\r\n \"_SkypeforBusiness\": \"Skype Kurumsal markası\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"BU BOTA GEÇİR\",\r\n \"migrationBannerCTAStartMigrating\": \"GEÇİŞİ BAŞLAT\",\r\n \"migrationBannerBlurb1\": \"Yeni Azure Bot Hizmeti'nin başlamasıyla, 31.03.2018 tarihi itibariyle tüm botları yeni hizmete geçiriyoruz.\",\r\n \"migrationBannerBlurb2\": \"geçiş hakkında.\",\r\n \"migrationBannerSuggestedBlurb\": \"Bu bot için Azure Bot Hizmeti'ne geçiş isteğe bağlıdır.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Azure Bot Hizmeti'ne taşıma gerektiren botlar hizmet kesintisi olmaması için şimdi taşınmalıdır.\",\r\n \"migrationBannerBlockedBlurb\": \"Bot taşıma işlemi gecikmiş. Hizmet kesintisi olmaması için lütfen şimdi taşıyın.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Bu kanalı yapılandırırsanız, botunuzun 31.03.2018 tarihine kadar Azure Bot Hizmeti'ne taşınması gerekir. Bu kanalı yapılandırmak istediğinizden emin misiniz?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Bu kanal sadece Azure Bot Hizmeti'ndeki botların kullanımı içindir. Bu botu taşımak istiyor musunuz?\",\r\n \"channelRequiresABSBot\": \"Bu kanal sadece Azure Bot Hizmeti'ndeki botların kullanımına açıktır.\",\r\n \"botRequiresMigrationDialogHeader\": \"Botun taşınması gerekiyor\",\r\n \"botRequiresMigrationDialogMessage\": \"Bot taşıma işlemi gecikmiş. Hizmet kesintisi olmaması için lütfen şimdi taşıyın.\",\r\n \"yesMigrateThisBot\": \"Evet, bu botu taşı\",\r\n \"myBotsMigrationStatusMigrated\": \"Geçirildi\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Gerekli\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Gerekli değil\",\r\n \"myBotsMigrationButtonMigrate\": \"Geçir\",\r\n \"myBotsMigrationButtonRollback\": \"Geçişi geri al\",\r\n \"deleteBotDialogDeleteButtonText\": \"Botu sil\",\r\n \"cancelButtonText\": \"İptal\",\r\n \"deleteBotDialogTitleText\": \"Bu botu silmek üzeresiniz\",\r\n \"deleteBotDialogBodyText\": \"Bu işlem, bu bot ile ilişkilendirilmiş tüm verileri siler ve geri alınamaz. Emin misiniz?\",\r\n \"deleteBotDialogStatusDeleting\": \"Bot siliniyor...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot silindi\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Evet, geri al\",\r\n \"rollbackBotDialogTitleText\": \"Geri almak istediğinizden emin misiniz?\",\r\n \"rollbackBotDialogBodyText\": \"Bu işlem geçişi tamamen geri alır ve geçiş sürecini en baştan başlatmanız gerekir. Devam etmek istediğinizden emin misiniz?\",\r\n \"rollbackBotDialogErrorInfo\": \"Bot bilgileri sunucudan alınırken hata oluştu.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Geri alma gerçekleştirilemiyor. Hiçbir geri alma uç noktası bulunamadı.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Geri alma gerçekleştirilemiyor. Azure ile iletişime geçmek için Azure Belirteci bulunamadı.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Bot bilgileri toplanıyor...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Bot hazırlanıyor...\",\r\n \"rollbackBotDialogStatusReverting\": \"Bot önceki durumuna döndürülüyor...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Yükseltilen uygulama siliniyor...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Dağıtım kaydı siliniyor...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Geri alma tamamlandı\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"başarıyla geri alındı.\",\r\n \"okButtonText\": \"Tamam\",\r\n \"errorMessageErrorOccurred\": \"Bir hata oluştu\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Bot bilgileri alınıyor...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Azure bilgileri alınıyor...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Bot uygulaması ayarları alınıyor...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Geçirilen bot başlatılıyor...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Bot Hizmeti Azure'a kaydettiriliyor...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Bot kaydı güncelleniyor...\",\r\n \"migrationDialogStatusCreatingRG\": \"Kaynak grubu oluşturuluyor...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Dosyalar yeni bota geçiriliyor...\",\r\n \"migrationDialogStatusWrappingUp\": \"Dağıtım tamamlanıyor...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Bot, mevcut depolamaya bağlanıyor...\",\r\n \"migrationDialogStatusDeployingSite\": \"Web sitesi dağıtılıyor\",\r\n \"migrationDialogStatusConfiguringSite\": \"Web sitesi yapılandırılıyor\",\r\n \"migrationDialogStatusDeploying\": \"Dağıtılıyor\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Yeni işlev uygulaması kimlik bilgileri alınıyor...\",\r\n \"migrationDialogErrorNoSubs\": \"Geçerli kullanıcı için hiçbir Azure aboneliği bulunamadı.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Geçerli kullanıcı için Azure erişim belirteci bulunamadı.\",\r\n \"migrationDialogErrorNoLocations\": \"Seçili Azure aboneliği için hiçbir konum bulunamadı.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Uygulama yapılandırmasında Azure depolama hesabı adı bulunamadı.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Uygulama adı kullanılamıyor.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Geçersiz uygulama adı.\",\r\n \"migrationDialogErrorNoBotType\": \"Geçerli bot geçerli bir türe sahip değil.\",\r\n \"migrationDialogErrorBotInvalid\": \"Bot geçersiz olduğu için bu bot geçirilemiyor.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Uç noktası eksik olduğu için bu bot geçirilemiyor.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Sağlama bilgisi eksik olduğu için bu bot geçirilemiyor.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Kaynak grubu adı eksik olduğu için bu bot geçirilemiyor.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Azure abonelik kimliği eksik olduğu için bu bot geçirilemiyor.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Azure site adı eksik olduğu için bu bot geçirilemiyor.\",\r\n \"migrationDialogABSv2TitleText\": \"Geçiş kullanılamıyor\",\r\n \"migrationDialogABSv2BodyText\": \"Konuşma Tasarımcısı (ABSv2) botları için geçiş şu anda devre dışı.\",\r\n \"migrationDialogRegistrationBodyText\": \"\\\"{0}\\\" botları için geçiş şu anda devre dışı.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Azure belirtecinin süresi doldu.\",\r\n \"migrationDialogRefreshPage\": \"Lütfen sayfayı yenileyin ve geçişi yeniden deneyin.\",\r\n \"migrationSubscriptionDisabled\": \"Seçili Azure aboneliği devre dışı. Lütfen geçişe devam etmek için etkinleştirin.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Bu dizin hiçbir abonelik içermiyor.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Bu botu taşımak için Azure İşlevleri Paketi gereklidir\",\r\n \"migrationDialogFuncPackBotMessage\": \"Düğüm İşlevleri botlarının taşınabilmesi için Azure İşlevleri Paketi ile paketlenmeleri gerekir.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Azure İşlevleri Paketini bot kodunuzda nasıl çalıştıracağınızı öğrenin\",\r\n \"tosDialog_Header\": \"Hizmet Şartları\",\r\n \"tosDialog_AgreeButton\": \"Kabul Et\",\r\n \"tosDialog_MessageChannels\": \"Çevrimiçi Hizmet Şartları, kanallardaki yayınlar için geçerli değildir. Örneğin Microsoft kanallarındaki yayınlara ilişkin şartlar, veri işleme şartları sunmamaktadır.\",\r\n \"tosDialog_MessageMigration\": \"Lütfen aşağıdaki şartları okuyun ve kabul edin.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Bot Framework sitesi kullanımımın {0} ve {1} hükümlerine tabi olduğunu kabul ederim.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Cortana kanalına yönelik dağıtım işlemim için {0} ve {1} kabul ediyorum.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"<%= channelslist %> kanalına yönelik dağıtım işlemim için {0} ve {1} kabul ediyorum.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"<%= channelslist %> kanallarına yönelik dağıtım işlemim için {0} ve {1} kabul ediyorum.\",\r\n \"tosDialog_ABSTerms\": \"Azure Bot Hizmeti için aboneliğimin şartları\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Cortana Kanalı Yayımlama Şartları\",\r\n \"tosDialog_MSPublicationTerms\": \"Microsoft Kanal Yayınlama Şartları\",\r\n \"tosDialog_MSPrivacyStatement\": \"Microsoft Gizlilik Bildirimlerini\",\r\n \"notice\": \" UYARI:\",\r\n \"listElem\": \"{0},\",\r\n \"andListEnd\": \"{0} ve {1}\",\r\n \"analyticsChannelsDropdown\": \"Kanal filtresi\",\r\n \"analyticsPeriodDropdown\": \"Zaman aralığı\",\r\n \"deprecatedChannel\": \"(kullanım dışı)\",\r\n \"openInComposer\": \"Composer'da aç\",\r\n \"downloadComposer\": \"Composer'ı indir\",\r\n };\r\n var Resources_pt_br = {\r\n \"unsupportedBrowser_Azure\": \"O Serviço de Bot do Azure ainda não oferece suporte ao seu navegador.\",\r\n \"unsupportedBrowser\": \"O Bot Framework ainda não dá suporte para seu navegador.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Fazendo login\",\r\n \"loadingBot\": \"Carregando bot...\",\r\n \"botIsNotReady\": \"Aguardando que o bot esteja pronto\",\r\n \"analyticsNotReady\": \"Aguardando que o Application Insights seja configurado\",\r\n \"authorizingWebChat\": \"Autorizando Chat com Bot\",\r\n \"signInFailure\": \"Ocorreu um erro na sua entrada. Verifique se cookies de terceiros estão habilitados no navegador.\",\r\n \"getChatTokenFailure\": \"Ocorreu um erro ao obter um token de autorização do Chat. Atualize e tente novamente.\",\r\n \"refreshSignInFailure\": \"Ocorreu um erro ao atualizar suas informações de entrada. Verifique se cookies de terceiros estão habilitados no navegador.\",\r\n \"xhrResponse_400\": \"A ação ou os valores fornecidos são inválidos.\",\r\n \"xhrResponse_403\": \"Este item não pode ser acessado ou modificado.\",\r\n \"xhrResponse_404\": \"O item não foi encontrado.\",\r\n \"xhrResponse_500\": \"Ocorreu um erro interno no servidor.\",\r\n \"xhrResponse_501\": \"Esta operação não tem suporte.\",\r\n \"xhrResponse_Message\": \"Erro: %1\",\r\n \"xhrResponse_Unknown\": \"Ocorreu um erro desconhecido.\",\r\n \"AddAFeaturedChannelTitle\": \"Adicionar um canal de destaque\",\r\n \"ConnectToChannelsTitle\": \"Conectar-se a canais\",\r\n \"NoChannelsConfigured\": \"Você ainda não se conectou a qualquer canal. Selecione um canal para se conectar.\",\r\n \"MoreChannelsTitle\": \"Mais canais\",\r\n \"test\": \"Exame\",\r\n \"startOver\": \"Recomeçar\",\r\n \"retentionTitle\": \"Retenção\",\r\n \"retentionDescription\": \"% usuários que enviaram a mensagem novamente (últimos 10 dias)\",\r\n \"retentionHeader\": \"Dias depois\",\r\n \"retentionDate\": \"Data\",\r\n \"retentionUsers\": \"Usuários\",\r\n \"undetermined\": \"Indeterminado\",\r\n \"loading\": \"carregando...\",\r\n \"noAnalyticsData\": \"sem dados\",\r\n \"timespanLastHour\": \"Última Hora\",\r\n \"timespanLastDay\": \"Último Dia\",\r\n \"timespanLastWeek\": \"Última Semana\",\r\n \"timespanLastMonth\": \"Último Mês\",\r\n \"timespanLast90Days\": \"Últimos 90 Dias\",\r\n \"timespanUnknown\": \"Período desconhecido\",\r\n \"timelineCardUsersTitle\": \"Usuários\",\r\n \"timelineCardMessagesTitle\": \"Atividades\",\r\n \"totalsCardTitle\": \"Totais Gerais\",\r\n \"analyticsNotConfigured\": \"Você ainda não habilitou Análises via Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Forneça as Chaves e ID do Application Insights para este bot na página a seguir: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Forneça as Chaves e ID do Application Insights para este bot na página de configurações. \",\r\n \"learnMore\": \"Saiba mais\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - erro: %2\",\r\n \"timelineTableLabel\": \"Mapeamento de tabela de linha do tempo %1 por tempo\",\r\n \"timelineChartLabel\": \"Mapeamento de gráfico de linha do tempo %1 por tempo\",\r\n \"published\": \"Publicado\",\r\n \"health\": \"Integridade\",\r\n \"channelname\": \"Nome\",\r\n \"edit\": \"Editar\",\r\n \"running\": \"Corrida\",\r\n \"issuesTemplate\": \"Problemas (<%= length %>)\",\r\n \"warningTemplate\": \"Avisos (<%= length %>)\",\r\n \"channelPublished\": \"Publicado\",\r\n \"tryOnCortana\": \"Tente em <%= Name %> - saiba como\",\r\n \"tryOnChannel\": \"Tente em <%= Name %>\",\r\n \"manageInCortana\": \"Gerenciar no painel da Cortana\",\r\n \"channelRejected\": \"Rejeitado\",\r\n \"channelMoreDetails\": \"Mais detalhes\",\r\n \"channelResubmit\": \"Reenviar para análise...\",\r\n \"channelGetEmbedCodes\": \"Obter códigos de inserção de bot\",\r\n \"channelConfigDeleteMessage\": \"Esta ação excluirá todas as informações de configuração do canal. Tem certeza de que deseja continuar?\",\r\n \"channelConfigDeleteHeader\": \"Excluir canal\",\r\n \"channelConfigDeleteOk\": \"Sim, excluir\",\r\n \"channelConfigDeleteCancel\": \"Não, manter\",\r\n \"channelConfigLeaveMessage\": \"Não foram salvas alterações neste documento. Tem certeza de que deseja sair desta página?\",\r\n \"channelConfigLeaveHeader\": \"Descartar alterações\",\r\n \"channelConfigLeaveOk\": \"Sim, sair da página\",\r\n \"channelConfigLeaveCancel\": \"Não, permanecer na página\",\r\n \"channelEdit\": \"Editar\",\r\n \"dialogPleaseWait\": \"Aguarde...\",\r\n \"embedPanelTitle\": \"Código de inserção do bot\",\r\n \"embedPanelDescription\": \"Escolha um canal para obter o código de inserção para ele. Copie e cole o código em seu site.\",\r\n \"embedPanelFacebookFooter\": \"Para usar este código de inserção, o Facebook exige que você inclua o SDK do JavaScript dele em sua página.\",\r\n \"embedPanelLearnMore\": \"Saiba mais.\",\r\n \"embedPanelChannelMovedHeader\": \"O código de inserção para %1 foi movido\",\r\n \"embedPanelChannelMovedInstructions\": \"Clique aqui para abrir a página de configuração de %1\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Código de inserção para %1\",\r\n \"embedPanelGettingCodes\": \"Obtendo códigos...\",\r\n \"embedPanelNoCodeAvailable\": \"Nenhum código de inserção disponível para este bot.\",\r\n \"channelIssuesPanelSubtitle\": \"Problemas recentes\",\r\n \"channelIssuesPanelClearall\": \"Limpar Tudo\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Hora\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Mensagem\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"ID de Correlação\",\r\n \"unsavedChangesWillBeLost\": \"As alterações não salvas serão perdidas.\",\r\n \"altImageChannel\": \"Configurar canal %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"Email\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype for Business\",\r\n \"_SkypeforBusiness\": \"Marca Skype for Business\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRAR ESTE BOT\",\r\n \"migrationBannerCTAStartMigrating\": \"INICIAR MIGRAÇÃO\",\r\n \"migrationBannerBlurb1\": \"Com o lançamento do Serviço de Bot do Azure, estamos migrando todos os bots para o novo serviço até 31/03/2018.\",\r\n \"migrationBannerBlurb2\": \"sobre a migração.\",\r\n \"migrationBannerSuggestedBlurb\": \"A migração para o Serviço de Bot do Azure é opcional para este bot.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Os bots que requerem a migração para o Serviço de Bot do Azure devem migrar agora para evitar a interrupção do serviço.\",\r\n \"migrationBannerBlockedBlurb\": \"O prazo para a migração do bot venceu. Migre-o agora para evitar a interrupção do serviço.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Se você configurar este canal, seu bot deverá migrar para o Serviço de Bot do Azure até 31/3/2018. Tem certeza de que deseja configurar este canal?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Este canal está disponível apenas para bots do Serviço de Bot do Azure. Deseja migrar este bot?\",\r\n \"channelRequiresABSBot\": \"Este canal está disponível apenas para bots do Serviço de Bot do Azure.\",\r\n \"botRequiresMigrationDialogHeader\": \"O bot requer migração\",\r\n \"botRequiresMigrationDialogMessage\": \"O prazo para a migração do bot venceu. Migre-o agora para evitar a interrupção do serviço.\",\r\n \"yesMigrateThisBot\": \"Sim, migrar este bot\",\r\n \"myBotsMigrationStatusMigrated\": \"Migração concluída\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Obrigatório\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Não é obrigatório\",\r\n \"myBotsMigrationButtonMigrate\": \"Migrar\",\r\n \"myBotsMigrationButtonRollback\": \"Reverter migração\",\r\n \"deleteBotDialogDeleteButtonText\": \"Excluir bot\",\r\n \"cancelButtonText\": \"Cancelar\",\r\n \"deleteBotDialogTitleText\": \"Você está prestes a excluir este bot\",\r\n \"deleteBotDialogBodyText\": \"Este ação apagará todos os dados associados com este bot e não pode ser desfeita. Tem certeza?\",\r\n \"deleteBotDialogStatusDeleting\": \"Excluindo bot...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot excluído\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Sim, reverter\",\r\n \"rollbackBotDialogTitleText\": \"Tem certeza de que deseja reverter?\",\r\n \"rollbackBotDialogBodyText\": \"Esta ação reverterá completamente a migração e você terá que iniciar o processo de migração novamente do início. Tem certeza de que deseja prosseguir?\",\r\n \"rollbackBotDialogErrorInfo\": \"Erro ao recuperar informações do bot do servidor.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Não é possível executar a reversão. Não foi encontrado nenhum ponto de extremidade de reversão.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Não é possível executar a reversão. Falha em localizar um Token do Azure para contatar o Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Reunindo informações do bot...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Preparando bot...\",\r\n \"rollbackBotDialogStatusReverting\": \"Revertendo bot..\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Excluindo aplicativo com upgrade...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Excluindo registro de implantação...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Reversão concluída\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"foi revertida com êxito.\",\r\n \"okButtonText\": \"Ok\",\r\n \"errorMessageErrorOccurred\": \"Ocorreu um erro\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Obtendo as informações do bot...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Obtendo as informações do Azure...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Obtendo as configurações de aplicativo do bot...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Inicializando o bot migrado...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Registrando o Serviço do Bot com o Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Atualizando o registro do bot...\",\r\n \"migrationDialogStatusCreatingRG\": \"Criando um grupo de recursos...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Migrando arquivos para o novo bot...\",\r\n \"migrationDialogStatusWrappingUp\": \"Finalizando implantação...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Conectando o bot ao armazenamento...\",\r\n \"migrationDialogStatusDeployingSite\": \"Implantando o site\",\r\n \"migrationDialogStatusConfiguringSite\": \"Configurando o site\",\r\n \"migrationDialogStatusDeploying\": \"Implantando\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Obtendo as novas credenciais de função do aplicativo...\",\r\n \"migrationDialogErrorNoSubs\": \"Falha em localizar as assinaturas do Azure para o usuário atual.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Falha em localizar o token de acesso do Azure para o usuário atual.\",\r\n \"migrationDialogErrorNoLocations\": \"Falha em localizar os locais para a assinatura selecionada do Azure.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Falha em localizar o nome da conta de armazenamento do Azure na configuração do aplicativo.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"O nome do aplicativo não está disponível.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Nome de aplicativo inválido.\",\r\n \"migrationDialogErrorNoBotType\": \"O bot atual não tem um tipo válido.\",\r\n \"migrationDialogErrorBotInvalid\": \"Este bot não pode ser migrado porque ele é inválido.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Este bot não pode ser migrado porque falta o ponto de extremidade.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Este bot não pode ser migrado porque não há informações de provisionamento.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Este bot não pode ser migrado porque falta o nome do grupo de recursos.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Este bot não pode ser migrado porque falta a ID da assinatura do Azure.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Este bot não pode ser migrado porque falta o nome do site do Azure.\",\r\n \"migrationDialogABSv2TitleText\": \"Migração indisponível\",\r\n \"migrationDialogABSv2BodyText\": \"A migração está desabilitada atualmente para os bots (ABSv2) do Designer de Conversa.\",\r\n \"migrationDialogRegistrationBodyText\": \"No momento, a migração está desabilitada para '{0}' bots.\",\r\n \"migrationDialogFailedTokenRefresh\": \"O token do Azure expirou.\",\r\n \"migrationDialogRefreshPage\": \"Atualize a página e tente a migração novamente.\",\r\n \"migrationSubscriptionDisabled\": \"A assinatura selecionada do Azure está desabilitada. Habilite-a para prosseguir com a migração.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Este diretório não contém nenhuma assinatura.\",\r\n \"migrationDialogFuncPackBotTitle\": \"O Azure Functions Pack é necessário para a migração deste bot\",\r\n \"migrationDialogFuncPackBotMessage\": \"Os bots de Node Functions precisam ser empacotados com o Azure Functions Pack antes de poderem ser migrados.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Saiba como executar o Azure Functions Pack no código do seu bot\",\r\n \"tosDialog_Header\": \"Termos do Serviço\",\r\n \"tosDialog_AgreeButton\": \"Concordar\",\r\n \"tosDialog_MessageChannels\": \"Os Termos dos Serviços Online não se aplicam à publicação em canais. Por exemplo, os termos para a publicação em canais da Microsoft não oferecem termos de processamento de dados.\",\r\n \"tosDialog_MessageMigration\": \"Leia e concorde com os termos a seguir.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Concordo que o uso do site do Bot Framework está sujeito dos {0} e a {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Concordo com os {0} e a {1} para minha implantação do canal Cortana.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Concordo com os {0} e a {1} para minha implantação do canal <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Concordo com os {0} e a {1} para minha implantação dos canais <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"termos da minha assinatura do Serviço de Bot do Azure\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Termos de Publicação de Canal da Cortana\",\r\n \"tosDialog_MSPublicationTerms\": \"Termos de Publicação dos Canais da Microsoft\",\r\n \"tosDialog_MSPrivacyStatement\": \"Políticas de Privacidade da Microsoft\",\r\n \"notice\": \" AVISO: \",\r\n \"listElem\": \"{0},\",\r\n \"andListEnd\": \"{0} e {1}\",\r\n \"analyticsChannelsDropdown\": \"Filtro Canais\",\r\n \"analyticsPeriodDropdown\": \"Período de tempo\",\r\n \"deprecatedChannel\": \"(preterido)\",\r\n \"openInComposer\": \"abrir no Composer\",\r\n \"downloadComposer\": \"Baixar o Composer\",\r\n };\r\n var Resources_pt_pt = {\r\n \"unsupportedBrowser_Azure\": \"O Azure Bot Service ainda não suporta o seu browser.\",\r\n \"unsupportedBrowser\": \"O Bot Framework ainda não suporta o seu browser.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"A iniciar sessão\",\r\n \"loadingBot\": \"A carregar o bot...\",\r\n \"botIsNotReady\": \"A aguardar que o bot esteja preparado\",\r\n \"analyticsNotReady\": \"A aguardar que o Application Insights seja configurado\",\r\n \"authorizingWebChat\": \"A Autorizar o Chat com o Bot\",\r\n \"signInFailure\": \"Ocorreu um erro ao iniciar a sua sessão. Certifique-se de que os cookies de terceiros estão ativados no browser.\",\r\n \"getChatTokenFailure\": \"Ocorreu um erro ao obter um token de autorização de Chat. Atualize e tente novamente.\",\r\n \"refreshSignInFailure\": \"Ocorreu um erro ao atualizar as suas informações de início de sessão. Certifique-se de que os cookies de terceiros estão ativados no browser.\",\r\n \"xhrResponse_400\": \"A ação ou os valores fornecidos são inválidos.\",\r\n \"xhrResponse_403\": \"Não é possível aceder ou modificar este item.\",\r\n \"xhrResponse_404\": \"Não é possível localizar o item.\",\r\n \"xhrResponse_500\": \"Ocorreu um erro interno no servidor.\",\r\n \"xhrResponse_501\": \"Esta operação não é suportada.\",\r\n \"xhrResponse_Message\": \"Erro: %1\",\r\n \"xhrResponse_Unknown\": \"Ocorreu um erro desconhecido.\",\r\n \"AddAFeaturedChannelTitle\": \"Adicionar um canal em destaque\",\r\n \"ConnectToChannelsTitle\": \"Ligar aos canais\",\r\n \"NoChannelsConfigured\": \"Ainda não ligou nenhum canal. Selecione um canal para ligar.\",\r\n \"MoreChannelsTitle\": \"Mais canais\",\r\n \"test\": \"Testar\",\r\n \"startOver\": \"Recomeçar\",\r\n \"retentionTitle\": \"Retenção\",\r\n \"retentionDescription\": \"% de utilizadores que enviaram mensagens novamente (últimos 10 dias)\",\r\n \"retentionHeader\": \"Dias mais tarde\",\r\n \"retentionDate\": \"Data\",\r\n \"retentionUsers\": \"Utilizadores\",\r\n \"undetermined\": \"Indeterminado\",\r\n \"loading\": \"a carregar...\",\r\n \"noAnalyticsData\": \"sem dados\",\r\n \"timespanLastHour\": \"Última Hora\",\r\n \"timespanLastDay\": \"Último Dia\",\r\n \"timespanLastWeek\": \"Última Semana\",\r\n \"timespanLastMonth\": \"Último Mês\",\r\n \"timespanLast90Days\": \"Últimos 90 Dias\",\r\n \"timespanUnknown\": \"Período de tempo desconhecido\",\r\n \"timelineCardUsersTitle\": \"Utilizadores\",\r\n \"timelineCardMessagesTitle\": \"Atividades\",\r\n \"totalsCardTitle\": \"Totais Gerais\",\r\n \"analyticsNotConfigured\": \"Ainda não ativou a Análise através do Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Forneça as Chaves e o ID do Application Insights para este bot na página seguinte: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Forneça as Chaves e o ID do Application Insights para este bot na página de definições. \",\r\n \"learnMore\": \"Mais informações\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - erro: %2\",\r\n \"timelineTableLabel\": \"Mapeamento de tabelas de linha cronológica de %1 por hora\",\r\n \"timelineChartLabel\": \"Mapeamento de gráficos de linha cronológica de %1 por hora\",\r\n \"published\": \"Publicado\",\r\n \"health\": \"Estado de Funcionamento\",\r\n \"channelname\": \"Nome\",\r\n \"edit\": \"Editar\",\r\n \"running\": \"Em execução\",\r\n \"issuesTemplate\": \"Problemas (<%= length %>)\",\r\n \"warningTemplate\": \"Avisos (<%= length %>)\",\r\n \"channelPublished\": \"Publicado\",\r\n \"tryOnCortana\": \"Experimentar em <%= Name %> - saiba como\",\r\n \"tryOnChannel\": \"Experimentar em <%= Name %>\",\r\n \"manageInCortana\": \"Gerir no dashboard da Cortana\",\r\n \"channelRejected\": \"Rejeitado\",\r\n \"channelMoreDetails\": \"Mais detalhes\",\r\n \"channelResubmit\": \"Submeter novamente para revisão...\",\r\n \"channelGetEmbedCodes\": \"Obter códigos de incorporação do bot\",\r\n \"channelConfigDeleteMessage\": \"Esta ação irá eliminar todas as informações de configuração do canal. Tem a certeza de que pretende continuar?\",\r\n \"channelConfigDeleteHeader\": \"Eliminar canal\",\r\n \"channelConfigDeleteOk\": \"Sim, eliminar\",\r\n \"channelConfigDeleteCancel\": \"Não, manter\",\r\n \"channelConfigLeaveMessage\": \"Tem alterações não guardadas neste documento. Tem a certeza de que pretende sair desta página?\",\r\n \"channelConfigLeaveHeader\": \"Eliminar alterações\",\r\n \"channelConfigLeaveOk\": \"Sim, sair da página\",\r\n \"channelConfigLeaveCancel\": \"Não, ficar na página\",\r\n \"channelEdit\": \"Editar\",\r\n \"dialogPleaseWait\": \"Aguarde...\",\r\n \"embedPanelTitle\": \"Código de incorporação do bot\",\r\n \"embedPanelDescription\": \"Escolha um canal para obter o código de incorporação deste. Copie e cole o código no seu site.\",\r\n \"embedPanelFacebookFooter\": \"Para utilizar esta incorporação, o Facebook necessita que inclua o respetivo JavaScript SDK na sua página.\",\r\n \"embedPanelLearnMore\": \"Mais informações.\",\r\n \"embedPanelChannelMovedHeader\": \"O código de incorporação para %1 foi movido\",\r\n \"embedPanelChannelMovedInstructions\": \"Clique aqui para abrir a página de configuração de %1\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Código de incorporação para %1\",\r\n \"embedPanelGettingCodes\": \"A obter os códigos...\",\r\n \"embedPanelNoCodeAvailable\": \"Não existe nenhum código de incorporação disponível para este bot.\",\r\n \"channelIssuesPanelSubtitle\": \"Problemas recentes\",\r\n \"channelIssuesPanelClearall\": \"Limpar Tudo\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Hora\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Mensagem\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"ID de Correlação\",\r\n \"unsavedChangesWillBeLost\": \"As alterações não guardadas serão perdidas.\",\r\n \"altImageChannel\": \"Configurar o canal %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"E-mail\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype para Empresas\",\r\n \"_SkypeforBusiness\": \"Marca Skype para Empresas\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRAR ESTE BOT\",\r\n \"migrationBannerCTAStartMigrating\": \"INICIAR MIGRAÇÃO\",\r\n \"migrationBannerBlurb1\": \"Com o lançamento do novo Azure Bot Service, estamos a migrar todos os bots para o novo serviço até 31/03/2018.\",\r\n \"migrationBannerBlurb2\": \"acerca da migração.\",\r\n \"migrationBannerSuggestedBlurb\": \"A migração para o Azure Bot Service é opcional para este bot.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Os bots que necessitam de migração para o Azure Bot Service têm de ser migrados agora para evitar a interrupção do serviço.\",\r\n \"migrationBannerBlockedBlurb\": \"A migração do bot está em atraso. Migre-o agora para evitar a interrupção do serviço.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Se configurar este canal, o seu bot terá de ser migrado para o Azure Bot Service até 31/03/2018. Tem a certeza de que pretende configurar este canal?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Esta canal só está disponível para bots no Azure Bot Service. Pretende migrar este bot?\",\r\n \"channelRequiresABSBot\": \"Esta canal só está disponível para bots no Azure Bot Service.\",\r\n \"botRequiresMigrationDialogHeader\": \"O bot necessita de migração\",\r\n \"botRequiresMigrationDialogMessage\": \"A migração do bot está em atraso. Migre-o agora para evitar a interrupção do serviço.\",\r\n \"yesMigrateThisBot\": \"Sim, migrar este bot\",\r\n \"myBotsMigrationStatusMigrated\": \"Migrado\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Obrigatório\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Não necessário\",\r\n \"myBotsMigrationButtonMigrate\": \"Migrar\",\r\n \"myBotsMigrationButtonRollback\": \"Reverter migração\",\r\n \"deleteBotDialogDeleteButtonText\": \"Eliminar bot\",\r\n \"cancelButtonText\": \"Cancelar\",\r\n \"deleteBotDialogTitleText\": \"Está prestes a eliminar este bot\",\r\n \"deleteBotDialogBodyText\": \"Esta ação irá apagar todos os dados associados a este bot e não pode ser anulada. Tem a certeza?\",\r\n \"deleteBotDialogStatusDeleting\": \"A eliminar o bot...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot eliminado\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Sim, reverter\",\r\n \"rollbackBotDialogTitleText\": \"Tem a certeza de que pretende reverter?\",\r\n \"rollbackBotDialogBodyText\": \"Esta ação irá reverter totalmente a migração e terá de iniciar o processo de migração a partir do princípio. Tem a certeza de que pretende continuar?\",\r\n \"rollbackBotDialogErrorInfo\": \"Erro ao obter informações do bot a partir do servidor.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Não é possível efetuar a reversão. Não foi encontrado nenhum ponto final de reversão.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Não é possível efetuar a reversão. Falha ao localizar um Token do Azure para contactar o Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"A recolher informações do bot...\",\r\n \"rollbackBotDialogStatusPreparing\": \"A preparar o bot...\",\r\n \"rollbackBotDialogStatusReverting\": \"A reverter o bot...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"A eliminar a aplicação atualizada...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"A eliminar o registo de implementação...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Reversão concluída\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"foi revertido com êxito.\",\r\n \"okButtonText\": \"OK\",\r\n \"errorMessageErrorOccurred\": \"Ocorreu um erro\",\r\n \"migrationDialogStatusGettingBotInfo\": \"A obter informações do bot...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"A obter informações do Azure...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"A obter as definições da aplicação de bot...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"A inicializar o bot migrado...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"A registar o Bot Service no Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"A atualizar o registo do bot...\",\r\n \"migrationDialogStatusCreatingRG\": \"A criar o grupo de recursos...\",\r\n \"migrationDialogStatusMigratingFiles\": \"A migrar os ficheiros para o novo bot...\",\r\n \"migrationDialogStatusWrappingUp\": \"A concluir a implementação...\",\r\n \"migrationDialogStatusDeployingStorage\": \"A ligar o bot ao armazenamento existente...\",\r\n \"migrationDialogStatusDeployingSite\": \"A implementar o site\",\r\n \"migrationDialogStatusConfiguringSite\": \"A configurar o site\",\r\n \"migrationDialogStatusDeploying\": \"A implementar\",\r\n \"migrationDialogStatusFunctionCredentials\": \"A obter as novas credenciais da aplicação de funções...\",\r\n \"migrationDialogErrorNoSubs\": \"Falha ao localizar quaisquer subscrições do Azure para o utilizador atual.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Falha ao localizar o token de acesso do Azure para o utilizador atual.\",\r\n \"migrationDialogErrorNoLocations\": \"Falha ao localizar quaisquer localizações para a subscrição do Azure selecionada.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Falha ao localizar o nome de uma conta de armazenamento do Azure na configuração da aplicação.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"O nome da aplicação não está disponível.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Nome de aplicação inválido.\",\r\n \"migrationDialogErrorNoBotType\": \"O bot atual não tem um tipo válido.\",\r\n \"migrationDialogErrorBotInvalid\": \"Não é possível migrar este bot porque o mesmo é inválido.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Não é possível migrar este bot porque o ponto final está em falta.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Não é possível migrar este bot porque as informações de aprovisionamento estão em falta.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Não é possível migrar este bot porque o nome do grupo de recursos está em falta.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Não é possível migrar este bot porque o ID da subscrição do Azure está em falta.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Não é possível migrar este bot porque o nome do site do Azure está em falta.\",\r\n \"migrationDialogABSv2TitleText\": \"Migração indisponível\",\r\n \"migrationDialogABSv2BodyText\": \"A migração está atualmente desativada para bots do Estruturador de Conversações (ABSv2).\",\r\n \"migrationDialogRegistrationBodyText\": \"A migração está atualmente desativada para bots de \\\"{0}\\\".\",\r\n \"migrationDialogFailedTokenRefresh\": \"O token do Azure expirou.\",\r\n \"migrationDialogRefreshPage\": \"Atualize a página e tente efetuar a migração novamente.\",\r\n \"migrationSubscriptionDisabled\": \"A subscrição do Azure selecionada está desativada. Ative-a para continuar a migração.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Este diretório não contém nenhuma subscrição.\",\r\n \"migrationDialogFuncPackBotTitle\": \"O Pack de Funções do Azure é necessário para migrar este bot\",\r\n \"migrationDialogFuncPackBotMessage\": \"Os bots de Funções de Nó tem de ser empacotados com o Pack de Funções do Azure antes de poderem ser migrados.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Obter informações sobre como executar o Pack de Funções do Azure no código do seu bot\",\r\n \"tosDialog_Header\": \"Termos de Serviço\",\r\n \"tosDialog_AgreeButton\": \"Aceito\",\r\n \"tosDialog_MessageChannels\": \"Os Termos dos Serviços Online não se aplicam à publicação em canais. Por exemplo, os termos de publicação em canais da Microsoft não oferecem termos de processamento de dados.\",\r\n \"tosDialog_MessageMigration\": \"Leia e aceite os termos seguintes.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Aceito que a utilização do site do Bot Framework esteja sujeita aos {0} e às {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Aceito os {0} e as {1} para a minha implementação no canal da Cortana.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Aceito os {0} e as {1} para a minha implementação no canal <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Aceito os {0} e as {1} para a minha implementação nos canais <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"termos da minha subscrição do Azure Bot Service\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Termos de Publicação de Canais da Cortana\",\r\n \"tosDialog_MSPublicationTerms\": \"Termos de Publicação de Canais da Microsoft\",\r\n \"tosDialog_MSPrivacyStatement\": \"Declarações de Privacidade da Microsoft\",\r\n \"notice\": \" AVISO: \",\r\n \"listElem\": \"{0}, \",\r\n \"andListEnd\": \"{0} e {1}\",\r\n \"analyticsChannelsDropdown\": \"Filtro de canais\",\r\n \"analyticsPeriodDropdown\": \"Período de tempo\",\r\n \"deprecatedChannel\": \"(preterido)\",\r\n \"openInComposer\": \"abrir no Composer\",\r\n \"downloadComposer\": \"Transferir Composer\",\r\n };\r\n var Resources_zh_hans = {\r\n \"unsupportedBrowser_Azure\": \"Azure 机器人服务尚不支持你的浏览器。\",\r\n \"unsupportedBrowser\": \"Bot Framework 尚不支持你的浏览器。\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"正在登录\",\r\n \"loadingBot\": \"正在加载机器人...\",\r\n \"botIsNotReady\": \"等待机器人准备就绪\",\r\n \"analyticsNotReady\": \"正在等待配置 Application Insights\",\r\n \"authorizingWebChat\": \"正在授权与机器人聊天\",\r\n \"signInFailure\": \"登录时出错。请确保浏览器中启用了第三方 Cookie。\",\r\n \"getChatTokenFailure\": \"获取聊天授权令牌时出错。请刷新并重试。\",\r\n \"refreshSignInFailure\": \"刷新你的登录信息时出错。请确保浏览器中启用了第三方 Cookie。\",\r\n \"xhrResponse_400\": \"该操作或提供的值无效。\",\r\n \"xhrResponse_403\": \"无法访问或修改此项。\",\r\n \"xhrResponse_404\": \"找不到该项。\",\r\n \"xhrResponse_500\": \"服务器发生内部错误。\",\r\n \"xhrResponse_501\": \"不支持此操作。\",\r\n \"xhrResponse_Message\": \"错误: %1\",\r\n \"xhrResponse_Unknown\": \"发生未知错误。\",\r\n \"AddAFeaturedChannelTitle\": \"添加一个特色信道\",\r\n \"ConnectToChannelsTitle\": \"连接至信道\",\r\n \"NoChannelsConfigured\": \"你尚未连接任何信道。请选择一个信道进行连接。\",\r\n \"MoreChannelsTitle\": \"更多信道\",\r\n \"test\": \"测试\",\r\n \"startOver\": \"重新开始\",\r\n \"retentionTitle\": \"保留\",\r\n \"retentionDescription\": \"重发消息联系的用户百分比(%)(过去 10 天)\",\r\n \"retentionHeader\": \"几天后\",\r\n \"retentionDate\": \"日期\",\r\n \"retentionUsers\": \"用户\",\r\n \"undetermined\": \"未决定\",\r\n \"loading\": \"正在加载...\",\r\n \"noAnalyticsData\": \"无数据\",\r\n \"timespanLastHour\": \"前一个小时\",\r\n \"timespanLastDay\": \"昨天\",\r\n \"timespanLastWeek\": \"上周\",\r\n \"timespanLastMonth\": \"上个月\",\r\n \"timespanLast90Days\": \"过去 90 天\",\r\n \"timespanUnknown\": \"未知时间跨度\",\r\n \"timelineCardUsersTitle\": \"用户\",\r\n \"timelineCardMessagesTitle\": \"活动\",\r\n \"totalsCardTitle\": \"总计\",\r\n \"analyticsNotConfigured\": \"你尚未通过 Azure Application Insights 启用分析。\",\r\n \"analyticsNotConfiguredAction\": \"在以下页面中为此机器人提供 Application Insights 密钥和 ID: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"在设置页面中为此机器人提供 Application Insights 密钥和 ID。\",\r\n \"learnMore\": \"了解更多\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - 错误: %2\",\r\n \"timelineTableLabel\": \"时间表映射%1(按时间)\",\r\n \"timelineChartLabel\": \"时间图表映射%1(按时间)\",\r\n \"published\": \"已发布\",\r\n \"health\": \"运行状况\",\r\n \"channelname\": \"名称\",\r\n \"edit\": \"编辑\",\r\n \"running\": \"正在运行\",\r\n \"issuesTemplate\": \"问题(<%= length %>)\",\r\n \"warningTemplate\": \"警告(<%= length %>)\",\r\n \"channelPublished\": \"已发布\",\r\n \"tryOnCortana\": \"尝试 <%= Name %> - 了解操作方法\",\r\n \"tryOnChannel\": \"尝试 <%= Name %>\",\r\n \"manageInCortana\": \"在 Cortana 仪表板中管理\",\r\n \"channelRejected\": \"已拒绝\",\r\n \"channelMoreDetails\": \"更多详细信息\",\r\n \"channelResubmit\": \"重新提交以供审查...\",\r\n \"channelGetEmbedCodes\": \"获取机器人嵌入代码\",\r\n \"channelConfigDeleteMessage\": \"此操作将删除所有信道配置信息。是否确定要继续?\",\r\n \"channelConfigDeleteHeader\": \"删除信道\",\r\n \"channelConfigDeleteOk\": \"是,删除它\",\r\n \"channelConfigDeleteCancel\": \"否,继续保留\",\r\n \"channelConfigLeaveMessage\": \"该文档中有未保存的更改。是否确定要离开此页面?\",\r\n \"channelConfigLeaveHeader\": \"放弃更改\",\r\n \"channelConfigLeaveOk\": \"是,离开页面\",\r\n \"channelConfigLeaveCancel\": \"否,留在该页面\",\r\n \"channelEdit\": \"编辑\",\r\n \"dialogPleaseWait\": \"请稍候...\",\r\n \"embedPanelTitle\": \"机器人嵌入代码\",\r\n \"embedPanelDescription\": \"选择一个信道以获取其嵌入代码。将该代码复制并粘贴到你的网站。\",\r\n \"embedPanelFacebookFooter\": \"要使用该嵌入,Facebook 要求你的页面中包含他们的 JavaScript SDK。\",\r\n \"embedPanelLearnMore\": \"了解更多。\",\r\n \"embedPanelChannelMovedHeader\": \"%1 的嵌入代码已移动\",\r\n \"embedPanelChannelMovedInstructions\": \"单击此处以打开 %1 配置页面\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"%1 的嵌入代码\",\r\n \"embedPanelGettingCodes\": \"正在获取代码...\",\r\n \"embedPanelNoCodeAvailable\": \"无可用于此机器人的嵌入代码。\",\r\n \"channelIssuesPanelSubtitle\": \"最新问题\",\r\n \"channelIssuesPanelClearall\": \"全部清除\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"时间\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"消息\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"相关 ID\",\r\n \"unsavedChangesWillBeLost\": \"未保存的更改将丢失。\",\r\n \"altImageChannel\": \"配置 %1 信道\",\r\n \"Bing\": \"必应\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"电子邮件\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype for Business\",\r\n \"_SkypeforBusiness\": \"Skype for Business 品牌\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (短信)\",\r\n \"migrationBannerCTAMigrateBot\": \"迁移此机器人\",\r\n \"migrationBannerCTAStartMigrating\": \"开始迁移\",\r\n \"migrationBannerBlurb1\": \"随着新的 Azure 机器人服务的发布,我们将在 2018 年 3 月 31 日之前将所有机器人迁移到新服务。\",\r\n \"migrationBannerBlurb2\": \"关于迁移。\",\r\n \"migrationBannerSuggestedBlurb\": \"对于此机器人,迁移到 Azure 机器人服务为可选操作。\",\r\n \"migrationBannerPostDeadlineBlurb\": \"为了避免服务中断,必须立即迁移需要迁移到 Azure 机器人服务的机器人。\",\r\n \"migrationBannerBlockedBlurb\": \"机器人迁移已过期,请立即迁移机器人以避免服务中断。\",\r\n \"migrationWillBeRequiredDialogMessage\": \"如果你配置此信道,则你的机器人将需要在 2018 年 3 月 31 日之前迁移到 Azure 机器人服务。是否确定要配置此信道?\",\r\n \"channelRequiresMigrationDialogMessage\": \"此信道仅适用于 Azure 机器人服务中的机器人。是否要迁移此机器人?\",\r\n \"channelRequiresABSBot\": \"此频道仅适用于 Azure 机器人服务中的机器人。\",\r\n \"botRequiresMigrationDialogHeader\": \"机器人需要迁移\",\r\n \"botRequiresMigrationDialogMessage\": \"机器人迁移已过期,请立即迁移机器人以避免服务中断。\",\r\n \"yesMigrateThisBot\": \"是,迁移此机器人\",\r\n \"myBotsMigrationStatusMigrated\": \"已迁移\",\r\n \"myBotsMigrationStatusNotMigrated\": \"必需\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"不需要\",\r\n \"myBotsMigrationButtonMigrate\": \"迁移\",\r\n \"myBotsMigrationButtonRollback\": \"回滚迁移\",\r\n \"deleteBotDialogDeleteButtonText\": \"删除机器人\",\r\n \"cancelButtonText\": \"取消\",\r\n \"deleteBotDialogTitleText\": \"你将要删除此机器人\",\r\n \"deleteBotDialogBodyText\": \"此操作将擦除与此机器人关联的所有数据且无法撤销。是否确定?\",\r\n \"deleteBotDialogStatusDeleting\": \"正在删除机器人...\",\r\n \"deleteBotDialogStatusDeleted\": \"机器人已删除\",\r\n \"rollbackBotDialogRollbackButtonText\": \"是,回滚\",\r\n \"rollbackBotDialogTitleText\": \"是否确实要回滚?\",\r\n \"rollbackBotDialogBodyText\": \"此操作将完全回滚迁移,你将不得不从头开始迁移过程。是否确实要继续?\",\r\n \"rollbackBotDialogErrorInfo\": \"从服务器检索机器人信息时出错。\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"无法执行回滚。找不到回滚终结点。\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"无法执行回滚。未能找到用于联系 Azure 的 Azure 令牌。\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"正在收集机器人信息...\",\r\n \"rollbackBotDialogStatusPreparing\": \"正在准备机器人...\",\r\n \"rollbackBotDialogStatusReverting\": \"正在恢复机器人..\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"正在删除已升级的应用...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"正在删除部署记录...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"回滚已完成\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"已成功回滚。\",\r\n \"okButtonText\": \"确定\",\r\n \"errorMessageErrorOccurred\": \"出现错误\",\r\n \"migrationDialogStatusGettingBotInfo\": \"正在获取机器人信息...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"正在获取 Azure 信息…\",\r\n \"migrationDialogStatusGettingAppSettings\": \"正在获取机器人应用设置...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"正在初始化已迁移的机器人...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"正在向 Azure 注册机器人服务...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"正在更新机器人记录...\",\r\n \"migrationDialogStatusCreatingRG\": \"正在创建资源组…\",\r\n \"migrationDialogStatusMigratingFiles\": \"正在将文件迁移到新的机器人...\",\r\n \"migrationDialogStatusWrappingUp\": \"正在完成部署...\",\r\n \"migrationDialogStatusDeployingStorage\": \"正在将机器人连接到现有存储...\",\r\n \"migrationDialogStatusDeployingSite\": \"正在部署网站\",\r\n \"migrationDialogStatusConfiguringSite\": \"正在配置网站\",\r\n \"migrationDialogStatusDeploying\": \"正在部署\",\r\n \"migrationDialogStatusFunctionCredentials\": \"正在获取新的功能应用凭据...\",\r\n \"migrationDialogErrorNoSubs\": \"未能找到当前用户的任何 Azure 订阅。\",\r\n \"migrationDialogErrorNoAzureToken\": \"未能找到当前用户的 Azure 访问令牌。\",\r\n \"migrationDialogErrorNoLocations\": \"未能找到所选 Azure 订阅的任何位置。\",\r\n \"migrationDialogErrorNoAzureStorage\": \"未能在应用程序配置中找到 Azure 存储帐户名称。\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"应用名称不可用。\",\r\n \"migrationDialogErrorAppNameInvalid\": \"应用名称无效。\",\r\n \"migrationDialogErrorNoBotType\": \"当前机器人没有有效类型。\",\r\n \"migrationDialogErrorBotInvalid\": \"由于机器人无效,无法迁移此机器人。\",\r\n \"migrationDialogErrorEndpointMissing\": \"由于终结点缺失,无法迁移此机器人。\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"由于预配信息缺失,无法迁移此机器人。\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"由于资源组名称缺失,无法迁移此机器人。\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"由于 Azure 订阅 ID 缺失,无法迁移此机器人。\",\r\n \"migrationDialogErrorSiteNameMissing\": \"由于 Azure 站点名称缺失,无法迁移此机器人。\",\r\n \"migrationDialogABSv2TitleText\": \"迁移不可用\",\r\n \"migrationDialogABSv2BodyText\": \"目前已对对话设计器(ABSv2)机器人禁用迁移。\",\r\n \"migrationDialogRegistrationBodyText\": \"目前已对“{0}”机器人禁用迁移。\",\r\n \"migrationDialogFailedTokenRefresh\": \"Azure 令牌已过期。\",\r\n \"migrationDialogRefreshPage\": \"请刷新页面并重新尝试迁移。\",\r\n \"migrationSubscriptionDisabled\": \"所选 Azure 订阅已禁用。请启用以继续迁移。\",\r\n \"migrationTenantHasNoSubscriptions\": \"该目录不包含任何订阅。\",\r\n \"migrationDialogFuncPackBotTitle\": \"若要迁移此机器人,需要 Azure Functions 包\",\r\n \"migrationDialogFuncPackBotMessage\": \"节点功能机器人需要与 Azure Functions 包一起打包,才能进行迁移。\",\r\n \"migrationDialogFuncPackBotLinkText\": \"了解如何在你的机器人代码上运行 Azure Functions 包\",\r\n \"tosDialog_Header\": \"服务条款\",\r\n \"tosDialog_AgreeButton\": \"同意\",\r\n \"tosDialog_MessageChannels\": \"Online Services 条款不适用于有关信道的发布。例如,有关 Microsoft 信道发布的条款不提供数据处理条款。\",\r\n \"tosDialog_MessageMigration\": \"请阅读并同意以下条款。\",\r\n \"tosDialog_AzureTermsCheckbox\": \"我同意 Bot Framework 站点的使用受 {0} 和 {1} 的约束。\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"对 Cortana 信道的部署,我同意 {0} 和 {1}。\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"对 <%= channelslist %> 信道的部署,我同意 {0} 和 {1}。\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"对 <%= channelslist %> 信道的部署,我同意 {0} 和 {1}。\",\r\n \"tosDialog_ABSTerms\": \"我的 Azure 机器人服务订阅的条款\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Cortana 信道发布条款\",\r\n \"tosDialog_MSPublicationTerms\": \"Microsoft 信道发布条款\",\r\n \"tosDialog_MSPrivacyStatement\": \"Microsoft 隐私声明\",\r\n \"notice\": \" 通知: \",\r\n \"listElem\": \"{0}、\",\r\n \"andListEnd\": \"{0} 和 {1}\",\r\n \"analyticsChannelsDropdown\": \"信道筛选器\",\r\n \"analyticsPeriodDropdown\": \"时间段\",\r\n \"deprecatedChannel\": \"(已弃用)\",\r\n \"openInComposer\": \"在编辑器中打开\",\r\n \"downloadComposer\": \"下载编辑器\",\r\n };\r\n var Resources_zh_hant = {\r\n \"unsupportedBrowser_Azure\": \"Azure Bot 服務尚未支援您的瀏覽器。\",\r\n \"unsupportedBrowser\": \"Bot Framework 尚未支援您的瀏覽器。\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"正在登入...\",\r\n \"loadingBot\": \"載入機器人...\",\r\n \"botIsNotReady\": \"等待機器人設定完成\",\r\n \"analyticsNotReady\": \"等候 Application Insights 設定完成\",\r\n \"authorizingWebChat\": \"授權與機器人交談\",\r\n \"signInFailure\": \"當您登入時發生錯誤。請確定已在瀏覽器中啟用第三方 cookie。\",\r\n \"getChatTokenFailure\": \"獲得交談授權權杖時發生錯誤。重新整理並再次嘗試。\",\r\n \"refreshSignInFailure\": \"重新整理您的登入資訊時發生錯誤。請確定已在瀏覽器中啟用第三方 cookie。\",\r\n \"xhrResponse_400\": \"此動作或提供的值無效。\",\r\n \"xhrResponse_403\": \"此項目無法存取或修改。\",\r\n \"xhrResponse_404\": \"找不到此項目。\",\r\n \"xhrResponse_500\": \"伺服器發生內部錯誤。\",\r\n \"xhrResponse_501\": \"不支援這項作業。\",\r\n \"xhrResponse_Message\": \"錯誤: %1\",\r\n \"xhrResponse_Unknown\": \"發生未知的錯誤。\",\r\n \"AddAFeaturedChannelTitle\": \"新增熱門頻道\",\r\n \"ConnectToChannelsTitle\": \"連線至頻道\",\r\n \"NoChannelsConfigured\": \"您尚未連線至任何頻道。選取頻道以連線。\",\r\n \"MoreChannelsTitle\": \"更多頻道\",\r\n \"test\": \"測試\",\r\n \"startOver\": \"重新開始\",\r\n \"retentionTitle\": \"保留期\",\r\n \"retentionDescription\": \"% 再次傳送訊息的的使用者 (近10天)\",\r\n \"retentionHeader\": \"天後\",\r\n \"retentionDate\": \"日期\",\r\n \"retentionUsers\": \"使用者\",\r\n \"undetermined\": \"未定\",\r\n \"loading\": \"正在載入...\",\r\n \"noAnalyticsData\": \"無資料\",\r\n \"timespanLastHour\": \"過去一小時\",\r\n \"timespanLastDay\": \"過去一天\",\r\n \"timespanLastWeek\": \"過去一週\",\r\n \"timespanLastMonth\": \"過去一個月\",\r\n \"timespanLast90Days\": \"過去 90 天\",\r\n \"timespanUnknown\": \"未知的時間跨度\",\r\n \"timelineCardUsersTitle\": \"使用者\",\r\n \"timelineCardMessagesTitle\": \"活動\",\r\n \"totalsCardTitle\": \"總計\",\r\n \"analyticsNotConfigured\": \"您尚未透過 Azure Application Insights 啟用分析。\",\r\n \"analyticsNotConfiguredAction\": \"在下列頁面中為此機器人提供您的 Application Insights 金鑰與識別碼: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"在設定頁面上為此機器人提供您的 Application Insights 金鑰與識別碼。\",\r\n \"learnMore\": \"深入了解\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - 錯誤: %2\",\r\n \"timelineTableLabel\": \"依時間的時間軸表格對應%1\",\r\n \"timelineChartLabel\": \"依時間的時間軸圖表對應%1\",\r\n \"published\": \"已發佈\",\r\n \"health\": \"健康\",\r\n \"channelname\": \"名稱\",\r\n \"edit\": \"編輯\",\r\n \"running\": \"跑步\",\r\n \"issuesTemplate\": \"問題 (<%= length %>)\",\r\n \"warningTemplate\": \"警告 (<%= length %>)\",\r\n \"channelPublished\": \"已發佈\",\r\n \"tryOnCortana\": \"嘗試 <%= Name %> - 學習方法\",\r\n \"tryOnChannel\": \"嘗試 <%= Name %>\",\r\n \"manageInCortana\": \"在 Cortana 儀表板中管理\",\r\n \"channelRejected\": \"已拒絕\",\r\n \"channelMoreDetails\": \"更多細節\",\r\n \"channelResubmit\": \"重新提交供檢閱...\",\r\n \"channelGetEmbedCodes\": \"取得機器人內嵌程式碼\",\r\n \"channelConfigDeleteMessage\": \"此動作將會刪除所有頻道的設定資訊. 您是否確定要繼續?\",\r\n \"channelConfigDeleteHeader\": \"刪除頻道\",\r\n \"channelConfigDeleteOk\": \"是,刪除它\",\r\n \"channelConfigDeleteCancel\": \"否,保留它\",\r\n \"channelConfigLeaveMessage\": \"您在此文件中有未儲存的變更. 您是否確定要離開此頁面?\",\r\n \"channelConfigLeaveHeader\": \"捨棄變更\",\r\n \"channelConfigLeaveOk\": \"是,離開頁面\",\r\n \"channelConfigLeaveCancel\": \"不,留在此頁面\",\r\n \"channelEdit\": \"編輯\",\r\n \"dialogPleaseWait\": \"請稍候...\",\r\n \"embedPanelTitle\": \"機器人內嵌程式碼\",\r\n \"embedPanelDescription\": \"選擇一個頻道,並取得其內嵌程式碼。複製並將程式碼貼至您的網站上。\",\r\n \"embedPanelFacebookFooter\": \"為了使用此 Facebook 內嵌,您的頁面上必須包含他們的 JavaScript SDK。\",\r\n \"embedPanelLearnMore\": \"深入了解。\",\r\n \"embedPanelChannelMovedHeader\": \"%1 的內嵌程式碼已移除\",\r\n \"embedPanelChannelMovedInstructions\": \"按這裡開啟 %1 設定頁\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"%1 的內嵌程式碼\",\r\n \"embedPanelGettingCodes\": \"取得代碼...\",\r\n \"embedPanelNoCodeAvailable\": \"此機器人沒有可用的內嵌程式碼。\",\r\n \"channelIssuesPanelSubtitle\": \"最近的問題\",\r\n \"channelIssuesPanelClearall\": \"全部清除\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"時間\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"訊息\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"相互關聯識別碼\",\r\n \"unsavedChangesWillBeLost\": \"未儲存的變更將會遺失。\",\r\n \"altImageChannel\": \"設定 %1 頻道\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"電子郵件\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"商務用 Skype\",\r\n \"_SkypeforBusiness\": \"商務用 Skype 商標\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"移轉此機器人\",\r\n \"migrationBannerCTAStartMigrating\": \"開始移轉\",\r\n \"migrationBannerBlurb1\": \"隨著新 Azure 機器人服務的啟用,我們會在 2018 年 3 月 31 號前將所有機器人移轉至新服務。\",\r\n \"migrationBannerBlurb2\": \"關於移轉。\",\r\n \"migrationBannerSuggestedBlurb\": \"此機器人可自由選擇是否要轉移至 Azure 機器人服務。\",\r\n \"migrationBannerPostDeadlineBlurb\": \"需要轉移至 Azure 機器人服務的機器人必須立即轉移,避免服務中斷。\",\r\n \"migrationBannerBlockedBlurb\": \"機器人轉移已經過期,請立即轉移以避免服務中斷。\",\r\n \"migrationWillBeRequiredDialogMessage\": \"如果您設定這個頻道, 您的機器人會被要求在 2018 年 3 月 31 日前轉移至 Azure 機器人服務. 您確定要設定此頻道嗎?\",\r\n \"channelRequiresMigrationDialogMessage\": \"只有這個頻道適用有 Azure 機器人服務的機器人. 您要轉移這個機器人嗎?\",\r\n \"channelRequiresABSBot\": \"這個頻道只適用Azure Bot 服務的 Bot。\",\r\n \"botRequiresMigrationDialogHeader\": \"機器人需要轉移\",\r\n \"botRequiresMigrationDialogMessage\": \"機器人轉移已經過期,請立即轉移以避免服務中斷。\",\r\n \"yesMigrateThisBot\": \"是,轉移此機器人\",\r\n \"myBotsMigrationStatusMigrated\": \"已移轉\",\r\n \"myBotsMigrationStatusNotMigrated\": \"必要項目\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"非必填\",\r\n \"myBotsMigrationButtonMigrate\": \"移轉\",\r\n \"myBotsMigrationButtonRollback\": \"復原移轉\",\r\n \"deleteBotDialogDeleteButtonText\": \"刪除機器人\",\r\n \"cancelButtonText\": \"取消\",\r\n \"deleteBotDialogTitleText\": \"您即將刪除此機器人\",\r\n \"deleteBotDialogBodyText\": \"這動作會清除此機器人的所有相關資料, 且無法復原. 是否確定要清除?\",\r\n \"deleteBotDialogStatusDeleting\": \"正在刪除機器人...\",\r\n \"deleteBotDialogStatusDeleted\": \"機器人已刪除\",\r\n \"rollbackBotDialogRollbackButtonText\": \"確定復原\",\r\n \"rollbackBotDialogTitleText\": \"您確定要復原?\",\r\n \"rollbackBotDialogBodyText\": \"此動作將會完全復原移轉, 您必須從頭開始移轉程序. 是否確定要繼續?\",\r\n \"rollbackBotDialogErrorInfo\": \"從伺服器擷取機器人資訊時發生錯誤。\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"無法執行復原。找不到復原端點。\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"無法執行復原。找不到 Azure權杖以連絡 Azure。\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"正在收集機器人資訊...\",\r\n \"rollbackBotDialogStatusPreparing\": \"正在準備機器人...\",\r\n \"rollbackBotDialogStatusReverting\": \"正在還原機器人...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"正在刪除已升級的應用程式...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"正在刪除部署記錄...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"復原完成\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"已成功地復原移轉。\",\r\n \"okButtonText\": \"確定\",\r\n \"errorMessageErrorOccurred\": \"發生錯誤\",\r\n \"migrationDialogStatusGettingBotInfo\": \"正在取得機器人資訊...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"正在取得 Azure 資訊...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"正在取得機器人應用程式設定...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"正在初始化已移轉的機器人...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"正在向 Azure 註冊機器人服務...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"正在更新機器人記錄...\",\r\n \"migrationDialogStatusCreatingRG\": \"正在建立資源群組...\",\r\n \"migrationDialogStatusMigratingFiles\": \"正在將檔案移轉到新的機器人...\",\r\n \"migrationDialogStatusWrappingUp\": \"正在完成部署...\",\r\n \"migrationDialogStatusDeployingStorage\": \"正在將機器人連線到現有的儲存體...\",\r\n \"migrationDialogStatusDeployingSite\": \"部署網站\",\r\n \"migrationDialogStatusConfiguringSite\": \"設定網站\",\r\n \"migrationDialogStatusDeploying\": \"部署\",\r\n \"migrationDialogStatusFunctionCredentials\": \"正在取得新的函數應用程式認證...\",\r\n \"migrationDialogErrorNoSubs\": \"找不到任何目前使用者的 Azure 訂用帳戶。\",\r\n \"migrationDialogErrorNoAzureToken\": \"找不到目前使用者的 Azure 存取權杖。\",\r\n \"migrationDialogErrorNoLocations\": \"找不到任何已選取的 Azure 訂用帳戶的位置。\",\r\n \"migrationDialogErrorNoAzureStorage\": \"無法在應用程式設定中找到 Azure 儲存體帳戶。\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"應用程式名稱無法使用。\",\r\n \"migrationDialogErrorAppNameInvalid\": \"無效的應用程式名稱。\",\r\n \"migrationDialogErrorNoBotType\": \"目前的機器人並沒有有效的類別。\",\r\n \"migrationDialogErrorBotInvalid\": \"由於此機器人無效,無法移轉此機器人。\",\r\n \"migrationDialogErrorEndpointMissing\": \"由於端點遺失,無法移轉此機器人。\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"由於佈建資訊遺失,無法移轉此機器人。\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"由於資源群組的名稱遺失,無法移轉此機器人。\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"由於 Azure 訂訂用帳戶的名稱遺失,無法移轉此機器人。\",\r\n \"migrationDialogErrorSiteNameMissing\": \"由於 Azure 站點的名稱遺失,無法移轉此機器人。\",\r\n \"migrationDialogABSv2TitleText\": \"無法使用的移轉\",\r\n \"migrationDialogABSv2BodyText\": \"移轉功能目前因對話設計 (ABSv2) 機器人而停用。\",\r\n \"migrationDialogRegistrationBodyText\": \"'{0}' 機器人目前無法移轉。\",\r\n \"migrationDialogFailedTokenRefresh\": \"Azure 權杖已經過期。\",\r\n \"migrationDialogRefreshPage\": \"請重新整理頁面,再次嘗試移轉。\",\r\n \"migrationSubscriptionDisabled\": \"選取的 Azure 訂用帳戶已停用。請啟用以繼續移轉。\",\r\n \"migrationTenantHasNoSubscriptions\": \"此目錄未包含任何訂閱。\",\r\n \"migrationDialogFuncPackBotTitle\": \"需要 Azure Functions 套件才能移轉此 Bot\",\r\n \"migrationDialogFuncPackBotMessage\": \"節點函數 Bot 必須在可以被移轉前,隨附在 Azure Functions 套件上。\",\r\n \"migrationDialogFuncPackBotLinkText\": \"了解如何在您 Bot 程式碼上執行 Azure Functions 套件\",\r\n \"tosDialog_Header\": \"服務條款\",\r\n \"tosDialog_AgreeButton\": \"同意\",\r\n \"tosDialog_MessageChannels\": \"線上服務條款並不適用於通道上的發行。例如,Microsoft 通道上發佈的條款並不包括資料處理條款。\",\r\n \"tosDialog_MessageMigration\": \"請閱讀並同意以下條款。\",\r\n \"tosDialog_AzureTermsCheckbox\": \"我同意 Bot Framework 的用途主要是 {0} 和 {1}。\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"我同意將 {0} 和 {1} 部署至 Cortana 通道。\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"我同意將 {0} 和 {1} 部署至 <%= channelslist %> 通道。\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"我同意將 {0} 和 {1} 部署至 <%= channelslist %> 通道。\",\r\n \"tosDialog_ABSTerms\": \"我的 Azure 機器人服務訂用帳戶條款\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Cortana 頻道發佈條款\",\r\n \"tosDialog_MSPublicationTerms\": \"Microsoft 通道公開條款\",\r\n \"tosDialog_MSPrivacyStatement\": \"Microsoft 隱私權聲明\",\r\n \"notice\": \"注意: \",\r\n \"listElem\": \"{0},\",\r\n \"andListEnd\": \"{0} 和 {1}\",\r\n \"analyticsChannelsDropdown\": \"通道篩選器\",\r\n \"analyticsPeriodDropdown\": \"時間週期\",\r\n \"deprecatedChannel\": \"(已過時)\",\r\n \"openInComposer\": \"在 Composer 中開啟\",\r\n \"downloadComposer\": \"下載 Composer\",\r\n };\r\n var Resources_id = {\r\n \"unsupportedBrowser_Azure\": \"Azure Bot Service belum mendukung browser Anda.\",\r\n \"unsupportedBrowser\": \"Kerangkat kerja bot belum mendukung browser Anda.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Masuk\",\r\n \"loadingBot\": \"Memuat bot...\",\r\n \"botIsNotReady\": \"Menunggu agar bot siap\",\r\n \"analyticsNotReady\": \"Menunggu Application Insights untuk dikonfigurasi\",\r\n \"authorizingWebChat\": \"Mengotorisasi Chat dengan Bot\",\r\n \"signInFailure\": \"Terjadi kesalahan saat memproses Anda masuk. Pastikan cookie pihak ketiga diaktifkan di browser.\",\r\n \"getChatTokenFailure\": \"Terjadi kesalahan saat mendapatkan token otorisasi Obrolan. Segarkan dan coba lagi.\",\r\n \"refreshSignInFailure\": \"Terjadi kesalahan saat menyegarkan informasi masuk. Pastikan cookie pihak ketiga diaktifkan di browser.\",\r\n \"xhrResponse_400\": \"Tindakan atau nilai yang diberikan tidak valid.\",\r\n \"xhrResponse_403\": \"Item ini tidak dapat diakses atau diubah.\",\r\n \"xhrResponse_404\": \"Item tidak dapat ditemukan.\",\r\n \"xhrResponse_500\": \"Terjadi kesalahan internal di server.\",\r\n \"xhrResponse_501\": \"Operasi ini tidak didukung.\",\r\n \"xhrResponse_Message\": \"Kesalahan: %1\",\r\n \"xhrResponse_Unknown\": \"Terjadi kesalahan yang tidak dikenal.\",\r\n \"AddAFeaturedChannelTitle\": \"Tambahkan saluran unggulan\",\r\n \"ConnectToChannelsTitle\": \"Sambungkan ke saluran\",\r\n \"NoChannelsConfigured\": \"Anda belum memiliki saluran yang terhubung. Pilih saluran yang akan dihubungkan.\",\r\n \"MoreChannelsTitle\": \"Lebih banyak saluran\",\r\n \"test\": \"Uji\",\r\n \"startOver\": \"Mulai dari awal\",\r\n \"retentionTitle\": \"Retensi\",\r\n \"retentionDescription\": \"% pengguna yang mengirim pesan lagi (10 hari terakhir)\",\r\n \"retentionHeader\": \"Hari kemudian\",\r\n \"retentionDate\": \"Tanggal\",\r\n \"retentionUsers\": \"Pengguna\",\r\n \"undetermined\": \"Tidak ditentukan\",\r\n \"loading\": \"memuat...\",\r\n \"noAnalyticsData\": \"tidak ada data\",\r\n \"timespanLastHour\": \"Jam Terakhir\",\r\n \"timespanLastDay\": \"Hari Terakhir\",\r\n \"timespanLastWeek\": \"Minggu Lalu\",\r\n \"timespanLastMonth\": \"Bulan Lalu\",\r\n \"timespanLast90Days\": \"90 Hari Terakhir\",\r\n \"timespanUnknown\": \"Timespan tidak diketahui\",\r\n \"timelineCardUsersTitle\": \"Pengguna\",\r\n \"timelineCardMessagesTitle\": \"Aktivitas\",\r\n \"totalsCardTitle\": \"Total Akhir\",\r\n \"analyticsNotConfigured\": \"Anda belum mengaktifkan Analytics melalui Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Berikan Kunci dan ID Application Insights Anda untuk bot ini di halaman berikut: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Berikan Kunci dan ID Application Insights Anda untuk bot ini pada halaman pengaturan.\",\r\n \"learnMore\": \"Pelajari lebih lanjut\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - kesalahan: %2\",\r\n \"timelineTableLabel\": \"Pemetaan tabel garis waktu %1 berdasarkan waktu\",\r\n \"timelineChartLabel\": \"Pemetaan diagram garis waktu %1\",\r\n \"published\": \"Diterbitkan\",\r\n \"health\": \"Kesehatan\",\r\n \"actions\": \"Tindakan\",\r\n \"channelname\": \"Nama\",\r\n \"edit\": \"Edit\",\r\n \"running\": \"Berjalan\",\r\n \"issuesTemplate\": \"Masalah (<%= length %>)\",\r\n \"warningTemplate\": \"Peringatan (<%= length %>)\",\r\n \"channelPublished\": \"Diterbitkan\",\r\n \"tryOnCortana\": \"Coba di <%= Name %> - pelajari caranya\",\r\n \"tryOnChannel\": \"Coba di <%= Name %>\",\r\n \"manageInCortana\": \"Kelola di dasbor Cortana\",\r\n \"channelRejected\": \"Ditolak\",\r\n \"channelMoreDetails\": \"Detail selengkapnya\",\r\n \"channelResubmit\": \"Kirim ulang untuk ditinjau...\",\r\n \"channelGetEmbedCodes\": \"Dapatkan kode semat bot\",\r\n \"channelConfigDeleteMessage\": \"Tindakan ini akan menghapus semua informasi konfigurasi saluran. Yakin ingin melanjutkan?\",\r\n \"channelConfigDeleteHeader\": \"Hapus saluran\",\r\n \"channelConfigDeleteOk\": \"Ya, hapus\",\r\n \"channelConfigDeleteCancel\": \"Tidak, pertahankan\",\r\n \"channelConfigLeaveMessage\": \"Anda memiliki perubahan yang belum disimpan dalam dokumen ini. Yakin ingin beralih dari halaman ini?\",\r\n \"channelConfigLeaveHeader\": \"Batalkan perubahan\",\r\n \"channelConfigLeaveOk\": \"Ya, keluar dari halaman\",\r\n \"channelConfigLeaveCancel\": \"Tidak, tetap di halaman\",\r\n \"channelEdit\": \"Edit\",\r\n \"dialogPleaseWait\": \"Tunggu...\",\r\n \"embedPanelTitle\": \"Kode semat bot\",\r\n \"embedPanelDescription\": \"Pilih saluran untuk mendapatkan kode semat. Salin dan tempelkan kode ke situs web Anda.\",\r\n \"embedPanelFacebookFooter\": \"Agar dapat menggunakan Facebook semat ini, Anda harus menyertakan SDK JavaScript-nya di halaman Anda.\",\r\n \"embedPanelLearnMore\": \"Pelajari selengkapnya.\",\r\n \"embedPanelChannelMovedHeader\": \"Kode semat untuk %1 telah dipindahkan\",\r\n \"embedPanelChannelMovedInstructions\": \"Klik di sini untuk membuka halaman konfigurasi %1\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Kode semat untuk %1\",\r\n \"embedPanelGettingCodes\": \"Mengambil kode...\",\r\n \"embedPanelNoCodeAvailable\": \"Tidak ada kode semat yang tersedia untuk bot ini.\",\r\n \"channelIssuesPanelSubtitle\": \"Masalah terbaru\",\r\n \"channelIssuesPanelClearall\": \"Hapus Semua\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Waktu\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Pesan\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"ID Korelasi\",\r\n \"unsavedChangesWillBeLost\": \"Perubahan yang belum disimpan akan hilang.\",\r\n \"altImageChannel\": \"Konfigurasikan saluran %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Saluran Langsung\",\r\n \"Email\": \"Email\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype for Business\",\r\n \"_SkypeforBusiness\": \"Merek Skype for Business\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRASIKAN BOT INI\",\r\n \"migrationBannerCTAStartMigrating\": \"MULAI MIGRASI\",\r\n \"migrationBannerBlurb1\": \"Dengan peluncuran Azure Bot Service baru, kami memigrasikan semua bot ke layanan baru ini paling lambat pada 31/3/2018.\",\r\n \"migrationBannerBlurb2\": \"tentang migrasi.\",\r\n \"migrationBannerSuggestedBlurb\": \"Migrasi ke Azure Bot Service bersifat opsional untuk bot ini.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Bot yang memerlukan migrasi ke Azure Bot Service harus dimigrasikan sekarang untuk menghindari gangguan layanan.\",\r\n \"migrationBannerBlockedBlurb\": \"Migrasi bot sudah lewat jatuh tempo, harap migrasikan sekarang untuk menghindari gangguan layanan.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Jika Anda mengonfigurasi saluran ini, bot Anda akan diperlukan untuk bermigrasi ke layanan Azure bot paling lambat pada 31/3/2018. Yakin ingin mengonfigurasi saluran ini?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Saluran ini hanya tersedia untuk bot di Azure Bot Service. Ingin memigrasikan bot ini?\",\r\n \"channelRequiresABSBot\": \"Saluran ini hanya tersedia untuk bot di Azure Bot Service.\",\r\n \"botRequiresMigrationDialogHeader\": \"Bot memerlukan migrasi\",\r\n \"botRequiresMigrationDialogMessage\": \"Migrasi bot sudah lewat jatuh tempo, harap migrasikan sekarang untuk menghindari gangguan layanan.\",\r\n \"yesMigrateThisBot\": \"Ya, migrasikan bot ini\",\r\n \"myBotsMigrationStatusMigrated\": \"Dimigrasikan\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Diperlukan\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Tidak diperlukan\",\r\n \"myBotsMigrationButtonMigrate\": \"Migrasi\",\r\n \"myBotsMigrationButtonRollback\": \"Gulung balik migrasi\",\r\n \"deleteBotDialogDeleteButtonText\": \"Hapus bot\",\r\n \"cancelButtonText\": \"Batal\",\r\n \"deleteBotDialogTitleText\": \"Anda akan menghapus bot ini\",\r\n \"deleteBotDialogBodyText\": \"Tindakan ini akan menghapus semua data yang terkait dengan bot ini dan tidak dapat diurungkan. Anda yakin?\",\r\n \"deleteBotDialogStatusDeleting\": \"Menghapus bot...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot dihapus\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Ya, gulung balik\",\r\n \"rollbackBotDialogTitleText\": \"Yakin ingin menggulung balik?\",\r\n \"rollbackBotDialogBodyText\": \"Tindakan ini akan mengembalikan sepenuhnya migrasi dan Anda harus memulai proses migrasi dari awal. Anda yakin ingin melanjutkan?\",\r\n \"rollbackBotDialogErrorInfo\": \"Terjadi kesalahan saat mengambil informasi bot dari server.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Tidak dapat menggulung balik. Tidak ada titik akhir gulung balik yang ditemukan.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Tidak dapat menggulung balik. Gagal menemukan token Azure untuk menghubungi Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Mengumpulkan info bot...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Menyiapkan bot...\",\r\n \"rollbackBotDialogStatusReverting\": \"Mengembalikan bot..\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Menghapus aplikasi yang ditingkatkan...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Menghapus data penyebaran...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Penggulungan kembali selesai\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"berhasil digulung kembali.\",\r\n \"okButtonText\": \"Oke\",\r\n \"errorMessageErrorOccurred\": \"Terjadi kesalahan\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Mengambil info bot...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Mendapatkan info Azure...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Mendapatkan pengaturan aplikasi bot...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Menginisialisasi bot yang dimigrasikan...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Mendaftarkan Layanan Bot dengan Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Memperbarui catatan bot...\",\r\n \"migrationDialogStatusCreatingRG\": \"Membuat grup sumber daya...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Memigrasi file ke bot baru...\",\r\n \"migrationDialogStatusWrappingUp\": \"Membungkus penyebaran...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Menyambungkan bot ke penyimpanan yang ada...\",\r\n \"migrationDialogStatusDeployingSite\": \"Menyebarkan situs web\",\r\n \"migrationDialogStatusConfiguringSite\": \"Mengonfigurasi situs web\",\r\n \"migrationDialogStatusDeploying\": \"Menyebarkan\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Mendapatkan kredensial aplikasi fungsi baru...\",\r\n \"migrationDialogErrorNoSubs\": \"Gagal menemukan langganan Azure untuk pengguna saat ini.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Gagal menemukan token akses Azure untuk pengguna saat ini.\",\r\n \"migrationDialogErrorNoLocations\": \"Gagal menemukan lokasi apa pun untuk langganan Azure yang dipilih.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Gagal menemukan nama akun penyimpanan Azure di konfigurasi aplikasi.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Nama domain tidak tersedia.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Nama aplikasi tidak valid.\",\r\n \"migrationDialogErrorNoBotType\": \"Bot saat ini tidak memiliki tipe yang valid.\",\r\n \"migrationDialogErrorBotInvalid\": \"Bot ini tidak dapat dimigrasikan karena bot tidak valid.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Bot ini tidak dapat dimigrasikan karena titik akhir tidak ada.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Bot ini tidak dapat dimigrasikan karena info penyediaan tidak ada.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Bot ini tidak dapat dimigrasikan karena nama grup sumber daya tidak ada.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Bot ini tidak dapat dimigrasikan karena id langganan Azure tidak ada.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Bot ini tidak dapat dimigrasikan karena nama situs Azure tidak ada.\",\r\n \"migrationDialogABSv2TitleText\": \"Migrasi tidak tersedia\",\r\n \"migrationDialogABSv2BodyText\": \"Migrasi saat ini dinonaktifkan untuk bot Desainer Percakapan (ABSv2).\",\r\n \"migrationDialogRegistrationBodyText\": \"Migrasi saat ini dinonaktifkan untuk bot '{0}'.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Token Azure telah kedaluwarsa.\",\r\n \"migrationDialogRefreshPage\": \"Segarkan halaman dan coba lagi migrasi.\",\r\n \"migrationSubscriptionDisabled\": \"Langganan Azure yang dipilih dinonaktifkan. Aktifkan untuk melanjutkan migrasi.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Direktori ini tidak berisi langganan apa pun.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Paket Azure Functions diperlukan untuk memigrasikan bot ini\",\r\n \"migrationDialogFuncPackBotMessage\": \"Bot fungsi node harus dikemas dengan paket Azure Functions sebelum dapat dimigrasikan.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Pelajari cara menjalankan Azure Functions Pack pada kode bot Anda\",\r\n \"tosDialog_Header\": \"Ketentuan Layanan\",\r\n \"tosDialog_AgreeButton\": \"Setuju\",\r\n \"tosDialog_MessageChannels\": \"Ketentuan Layanan Online tidak berlaku untuk publikasi di saluran. Misalnya, persyaratan untuk publikasi di saluran Microsoft tidak menawarkan persyaratan pemrosesan data.\",\r\n \"tosDialog_MessageMigration\": \"Harap baca dan setujui persyaratan berikut.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Saya setuju bahwa penggunaan situs kerangka bot tunduk pada {0} dan {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Saya menyetujui {0} dan {1} untuk penyebaran saya ke saluran Cortana.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Saya menyetujui {0} dan {1} untuk penyebaran saya ke saluran <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Saya menyetujui {0} dan {1} untuk penyebaran saya ke saluran <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"ketentuan langganan saya untuk Azure Bot Service\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Ketentuan Publikasi Saluran Cortana\",\r\n \"tosDialog_MSPublicationTerms\": \"Ketentuan Publikasi Saluran Microsoft\",\r\n \"tosDialog_MSPrivacyStatement\": \"Pernyataan Privasi Microsoft\",\r\n \"notice\": \" PEMBERITAHUAN: \",\r\n \"listElem\": \"{0}, \",\r\n \"andListEnd\": \"{0} dan {1}\",\r\n \"analyticsChannelsDropdown\": \"Filter saluran\",\r\n \"analyticsPeriodDropdown\": \"Periode waktu\",\r\n \"deprecatedChannel\": \"(tidak digunakan lagi)\",\r\n \"openInComposer\": \"buka di penyusun\",\r\n \"downloadComposer\": \"Unduh penyusun\"\r\n };\r\n var ResourcesMap = {\r\n \"de\": Resources_de,\r\n \"es\": Resources_es,\r\n \"fr\": Resources_fr,\r\n \"it\": Resources_it,\r\n \"id\": Resources_id,\r\n \"ja\": Resources_ja,\r\n \"ko\": Resources_ko,\r\n \"ru\": Resources_ru,\r\n \"cs\": Resources_cs,\r\n \"nl\": Resources_nl,\r\n \"hu\": Resources_hu,\r\n \"pl\": Resources_pl,\r\n \"sv\": Resources_sv,\r\n \"tr\": Resources_tr,\r\n \"pt-br\": Resources_pt_br,\r\n \"pt-pt\": Resources_pt_pt,\r\n \"zh-hans\": Resources_zh_hans,\r\n \"zh-hant\": Resources_zh_hant,\r\n };\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"o\", function() { return getValueByDataKey; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return getDomainOfDataByKey; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"m\", function() { return calculateActiveTickIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"n\", function() { return getMainColorOfGraphicItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"u\", function() { return getLegendProps; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"p\", function() { return getBarSizeList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"r\", function() { return getBarPosition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"t\", function() { return appendOffsetOfLegend; });\n/* unused harmony export getDomainOfErrorBars */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return parseErrorBarsOfAxis; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return getDomainOfItemsWithSameAxis; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return isCategorialAxis; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return getCoordinatesOfGrid; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return getTicksOfAxis; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return combineEventHandlers; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"v\", function() { return parseScale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"w\", function() { return checkDomainOfScale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"z\", function() { return findPositionOfBar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"B\", function() { return truncateByDomain; });\n/* unused harmony export offsetSign */\n/* unused harmony export getStackedData */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"s\", function() { return getStackGroupsByAxisId; });\n/* unused harmony export calculateDomainOfTicks */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"x\", function() { return getTicksOfScale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"y\", function() { return getCateCoordinateOfLine; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"C\", function() { return getCateCoordinateOfBar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A\", function() { return getBaseValueOfBar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"D\", function() { return ifOverflowMatches; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return detectReferenceElementsDomain; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"q\", function() { return getStackedDataOfItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return getDomainOfStackGroups; });\n/* unused harmony export MIN_VALUE_REG */\n/* unused harmony export MAX_VALUE_REG */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"l\", function() { return parseSpecifiedDomain; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return getBandSizeOfAxis; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return parseDomainOfCategoryAxis; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__ = __webpack_require__(22);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_sortBy__ = __webpack_require__(211);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_sortBy___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_sortBy__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isNaN__ = __webpack_require__(131);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isNaN___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_isNaN__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_isString__ = __webpack_require__(134);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_isString___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_lodash_isString__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_isArray__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_isArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_lodash_isArray__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lodash_max__ = __webpack_require__(374);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lodash_max___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_lodash_max__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_lodash_min__ = __webpack_require__(376);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_lodash_min___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_lodash_min__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_lodash_flatMap__ = __webpack_require__(765);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_lodash_flatMap___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_lodash_flatMap__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_lodash_get__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_lodash_get___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_lodash_get__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_lodash_isNil__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_lodash_isNil___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_lodash_isNil__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_recharts_scale__ = __webpack_require__(866);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_recharts_scale___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_recharts_scale__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_d3_scale__ = __webpack_require__(315);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_d3_shape__ = __webpack_require__(183);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__cartesian_ReferenceDot__ = __webpack_require__(406);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__cartesian_ReferenceLine__ = __webpack_require__(407);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__cartesian_ReferenceArea__ = __webpack_require__(405);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__cartesian_ErrorBar__ = __webpack_require__(96);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__component_Legend__ = __webpack_require__(229);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__ReactUtils__ = __webpack_require__(2);\n\n\n\n\n\n\n\n\n\n\n\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n\n\n\n\nvar getValueByDataKey = function getValueByDataKey(obj, dataKey, defaultValue) {\n if (__WEBPACK_IMPORTED_MODULE_10_lodash_isNil___default()(obj) || __WEBPACK_IMPORTED_MODULE_10_lodash_isNil___default()(dataKey)) {\n return defaultValue;\n }\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"f\" /* isNumOrStr */])(dataKey)) {\n return __WEBPACK_IMPORTED_MODULE_9_lodash_get___default()(obj, dataKey, defaultValue);\n }\n\n if (__WEBPACK_IMPORTED_MODULE_8_lodash_isFunction___default()(dataKey)) {\n return dataKey(obj);\n }\n\n return defaultValue;\n};\n/**\n * Get domain of data by key\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\n\nvar getDomainOfDataByKey = function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = __WEBPACK_IMPORTED_MODULE_7_lodash_flatMap___default()(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n\n if (type === 'number') {\n var domain = flattenData.filter(function (entry) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"a\" /* isNumber */])(entry) || parseFloat(entry, 10);\n });\n return domain.length ? [__WEBPACK_IMPORTED_MODULE_6_lodash_min___default()(domain), __WEBPACK_IMPORTED_MODULE_5_lodash_max___default()(domain)] : [Infinity, -Infinity];\n }\n\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !__WEBPACK_IMPORTED_MODULE_10_lodash_isNil___default()(entry);\n }) : flattenData;\n return validateData.map(function (entry) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"f\" /* isNumOrStr */])(entry) ? entry : '';\n });\n};\nvar calculateActiveTickIndex = function calculateActiveTickIndex(coordinate, ticks, unsortedTicks, axis) {\n var index = -1;\n var len = ticks.length;\n\n if (len > 1) {\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range; // ticks are distributed in a circle\n\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"g\" /* mathSign */])(cur - before) !== __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"g\" /* mathSign */])(after - cur)) {\n var diffInterval = [];\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"g\" /* mathSign */])(after - cur) === __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"g\" /* mathSign */])(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var min = Math.min(before, after);\n var max = Math.max(before, after);\n\n if (coordinate > (min + cur) / 2 && coordinate <= (max + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n } else {\n index = 0;\n }\n\n return index;\n};\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\n\nvar getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var displayName = item.type.displayName;\n var result;\n\n switch (displayName) {\n case 'Line':\n case 'Area':\n case 'Radar':\n result = item.props.stroke;\n break;\n\n default:\n result = item.props.fill;\n break;\n }\n\n return result;\n};\nvar getLegendProps = function getLegendProps(_ref) {\n var children = _ref.children,\n formatedGraphicalItems = _ref.formatedGraphicalItems,\n legendWidth = _ref.legendWidth,\n legendContent = _ref.legendContent;\n var legendItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_20__ReactUtils__[\"f\" /* findChildByType */])(children, __WEBPACK_IMPORTED_MODULE_19__component_Legend__[\"a\" /* default */]);\n\n if (!legendItem) {\n return null;\n }\n\n var legendData;\n\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formatedGraphicalItems || []).reduce(function (result, _ref2) {\n var item = _ref2.item,\n props = _ref2.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formatedGraphicalItems || []).map(function (_ref3) {\n var item = _ref3.item;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n name = _item$props.name,\n legendType = _item$props.legendType,\n hide = _item$props.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendItem.props.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n payload: item.props\n };\n });\n }\n\n return _objectSpread({}, legendItem.props, __WEBPACK_IMPORTED_MODULE_19__component_Legend__[\"a\" /* default */].getWithHeight(legendItem, legendWidth), {\n payload: legendData,\n item: legendItem\n });\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\n\nvar getBarSizeList = function getBarSizeList(_ref4) {\n var globalSize = _ref4.barSize,\n _ref4$stackGroups = _ref4.stackGroups,\n stackGroups = _ref4$stackGroups === void 0 ? {} : _ref4$stackGroups;\n\n if (!stackGroups) {\n return {};\n }\n\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_20__ReactUtils__[\"k\" /* getDisplayName */])(item.type).indexOf('Bar') >= 0;\n });\n\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n\n if (!result[cateId]) {\n result[cateId] = [];\n }\n\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: __WEBPACK_IMPORTED_MODULE_10_lodash_isNil___default()(selfSize) ? globalSize : selfSize\n });\n }\n }\n }\n\n return result;\n};\n/**\n * Calculate the size of each bar and the gap between two bars\n * @param {Number} bandSize The size of each category\n * @param {sizeList} sizeList The size of all groups\n * @param {maxBarSize} maxBarSize The maximum size of bar\n * @return {Number} The size of each bar and the gap between two bars\n */\n\nvar getBarPosition = function getBarPosition(_ref5) {\n var barGap = _ref5.barGap,\n barCategoryGap = _ref5.barCategoryGap,\n bandSize = _ref5.bandSize,\n _ref5$sizeList = _ref5.sizeList,\n sizeList = _ref5$sizeList === void 0 ? [] : _ref5$sizeList,\n maxBarSize = _ref5.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"h\" /* getPercentValue */])(barGap, bandSize, 0, true);\n var result; // whether or not is barSize setted by user\n\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newRes = _toConsumableArray(res).concat([{\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n size: useFull ? fullBarSize : entry.barSize\n }\n }]);\n\n prev = newRes[newRes.length - 1].position;\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n\n return newRes;\n }, []);\n } else {\n var _offset = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"h\" /* getPercentValue */])(barCategoryGap, bandSize, 0, true);\n\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = _toConsumableArray(res).concat([{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n\n return newRes;\n }, []);\n }\n\n return result;\n};\nvar appendOffsetOfLegend = function appendOffsetOfLegend(offset, items, props, legendBox) {\n var children = props.children,\n width = props.width,\n height = props.height,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n var legendProps = getLegendProps({\n children: children,\n items: items,\n legendWidth: legendWidth,\n legendHeight: legendHeight\n });\n var newOffset = offset;\n\n if (legendProps) {\n var box = legendBox || {};\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'center') && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"a\" /* isNumber */])(offset[align])) {\n newOffset = _objectSpread({}, offset, _defineProperty({}, align, newOffset[align] + (box.width || 0)));\n }\n\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"a\" /* isNumber */])(offset[verticalAlign])) {\n newOffset = _objectSpread({}, offset, _defineProperty({}, verticalAlign, newOffset[verticalAlign] + (box.height || 0)));\n }\n }\n\n return newOffset;\n};\nvar getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, axisType) {\n var children = item.props.children;\n var errorBars = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_20__ReactUtils__[\"h\" /* findAllByType */])(children, __WEBPACK_IMPORTED_MODULE_18__cartesian_ErrorBar__[\"a\" /* default */]).filter(function (errorBarChild) {\n var direction = errorBarChild.props.direction;\n return __WEBPACK_IMPORTED_MODULE_10_lodash_isNil___default()(direction) || __WEBPACK_IMPORTED_MODULE_10_lodash_isNil___default()(axisType) ? true : axisType.indexOf(direction) >= 0;\n });\n\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey, 0);\n var mainValue = __WEBPACK_IMPORTED_MODULE_4_lodash_isArray___default()(entryValue) ? [__WEBPACK_IMPORTED_MODULE_6_lodash_min___default()(entryValue), __WEBPACK_IMPORTED_MODULE_5_lodash_max___default()(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(__WEBPACK_IMPORTED_MODULE_4_lodash_isArray___default()(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(__WEBPACK_IMPORTED_MODULE_4_lodash_isArray___default()(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\nvar parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, axisType);\n }).filter(function (entry) {\n return !__WEBPACK_IMPORTED_MODULE_10_lodash_isNil___default()(entry);\n });\n\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\n\nvar getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n var tag = {}; // Get the union set of category axis\n\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n if (!tag[entry[i]]) {\n tag[entry[i]] = true;\n result.push(entry[i]);\n }\n }\n\n return result;\n }, []);\n};\nvar isCategorialAxis = function isCategorialAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} min The minimun value of axis\n * @param {Number} max The maximun value of axis\n * @return {Array} Coordinates\n */\n\nvar getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, min, max) {\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === min) {\n hasMin = true;\n }\n\n if (entry.coordinate === max) {\n hasMax = true;\n }\n\n return entry.coordinate;\n });\n\n if (!hasMin) {\n values.push(min);\n }\n\n if (!hasMax) {\n values.push(max);\n }\n\n return values;\n};\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\n\nvar getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / 2 : 0;\n offset = axis.axisType === 'angleAxis' ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"g\" /* mathSign */])(range[0] - range[1]) * 2 * offset : offset; // The ticks setted by user should only affect the ticks adjacent to axis line\n\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n return (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n }\n\n if (axis.isCategorial && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry),\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis has duplicated text, serial numbers are used to generate scale\n\n\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} parentHandler Handler function specified in parent component\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\n\nvar combineEventHandlers = function combineEventHandlers(defaultHandler, parentHandler, childHandler) {\n var customizedHandler;\n\n if (__WEBPACK_IMPORTED_MODULE_8_lodash_isFunction___default()(childHandler)) {\n customizedHandler = childHandler;\n } else if (__WEBPACK_IMPORTED_MODULE_8_lodash_isFunction___default()(parentHandler)) {\n customizedHandler = parentHandler;\n }\n\n if (__WEBPACK_IMPORTED_MODULE_8_lodash_isFunction___default()(defaultHandler) || customizedHandler) {\n return function (arg1, arg2, arg3, arg4) {\n if (__WEBPACK_IMPORTED_MODULE_8_lodash_isFunction___default()(defaultHandler)) {\n defaultHandler(arg1, arg2, arg3, arg4);\n }\n\n if (__WEBPACK_IMPORTED_MODULE_8_lodash_isFunction___default()(customizedHandler)) {\n customizedHandler(arg1, arg2, arg3, arg4);\n }\n };\n }\n\n return null;\n};\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @return {Function} The scale funcion\n */\n\nvar parseScale = function parseScale(axis, chartType) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: __WEBPACK_IMPORTED_MODULE_12_d3_scale__[\"scaleBand\"](),\n realScaleType: 'band'\n };\n }\n\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: __WEBPACK_IMPORTED_MODULE_12_d3_scale__[\"scaleLinear\"](),\n realScaleType: 'linear'\n };\n }\n\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0)) {\n return {\n scale: __WEBPACK_IMPORTED_MODULE_12_d3_scale__[\"scalePoint\"](),\n realScaleType: 'point'\n };\n }\n\n if (type === 'category') {\n return {\n scale: __WEBPACK_IMPORTED_MODULE_12_d3_scale__[\"scaleBand\"](),\n realScaleType: 'band'\n };\n }\n\n return {\n scale: __WEBPACK_IMPORTED_MODULE_12_d3_scale__[\"scaleLinear\"](),\n realScaleType: 'linear'\n };\n }\n\n if (__WEBPACK_IMPORTED_MODULE_3_lodash_isString___default()(scale)) {\n var name = \"scale\".concat(scale.slice(0, 1).toUpperCase()).concat(scale.slice(1));\n return {\n scale: (__WEBPACK_IMPORTED_MODULE_12_d3_scale__[name] || __WEBPACK_IMPORTED_MODULE_12_d3_scale__[\"scalePoint\"])(),\n realScaleType: __WEBPACK_IMPORTED_MODULE_12_d3_scale__[name] ? name : 'point'\n };\n }\n\n return __WEBPACK_IMPORTED_MODULE_8_lodash_isFunction___default()(scale) ? {\n scale: scale\n } : {\n scale: __WEBPACK_IMPORTED_MODULE_12_d3_scale__[\"scalePoint\"](),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nvar checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n\n if (!domain || domain.length <= 2) {\n return;\n }\n\n var len = domain.length;\n var range = scale.range();\n var min = Math.min(range[0], range[1]) - EPS;\n var max = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n\n if (first < min || first > max || last < min || last > max) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nvar findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n\n return null;\n};\nvar truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"a\" /* isNumber */])(domain[0]) || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"a\" /* isNumber */])(domain[1])) {\n return value;\n }\n\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n\n if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"a\" /* isNumber */])(value[0]) || value[0] < min) {\n result[0] = min;\n }\n\n if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"a\" /* isNumber */])(value[1]) || value[1] > max) {\n result[1] = max;\n }\n\n if (result[0] > max) {\n result[0] = max;\n }\n\n if (result[1] < min) {\n result[1] = min;\n }\n\n return result;\n};\n/* eslint no-param-reassign: 0 */\n\nvar offsetSign = function offsetSign(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = __WEBPACK_IMPORTED_MODULE_2_lodash_isNaN___default()(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n expand: __WEBPACK_IMPORTED_MODULE_13_d3_shape__[\"a\" /* stackOffsetExpand */],\n none: __WEBPACK_IMPORTED_MODULE_13_d3_shape__[\"b\" /* stackOffsetNone */],\n silhouette: __WEBPACK_IMPORTED_MODULE_13_d3_shape__[\"c\" /* stackOffsetSilhouette */],\n wiggle: __WEBPACK_IMPORTED_MODULE_13_d3_shape__[\"d\" /* stackOffsetWiggle */]\n};\nvar getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var stack = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13_d3_shape__[\"e\" /* stack */])().keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(__WEBPACK_IMPORTED_MODULE_13_d3_shape__[\"f\" /* stackOrderNone */]).offset(STACK_OFFSET_MAP[offsetType]);\n return stack(data);\n};\nvar getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n } // reversing items to affect render order (for layering)\n\n\n var items = reverseStackOrder ? _items.reverse() : _items;\n var stackGroups = items.reduce(function (result, item) {\n var _item$props2 = item.props,\n stackId = _item$props2.stackId,\n hide = _item$props2.hide;\n\n if (hide) {\n return result;\n }\n\n var axisId = item.props[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"f\" /* isNumOrStr */])(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"d\" /* uniqueId */])('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n\n return _objectSpread({}, result, _defineProperty({}, axisId, parentGroup));\n }, {});\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n\n if (group.hasStack) {\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _objectSpread({}, res, _defineProperty({}, stackId, {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType)\n }));\n }, {});\n }\n\n return _objectSpread({}, result, _defineProperty({}, axisId, group));\n }, {});\n};\n/**\n * get domain of ticks\n * @param {Array} ticks Ticks of axis\n * @param {String} type The type of axis\n * @return {Array} domain\n */\n\nvar calculateDomainOfTicks = function calculateDomainOfTicks(ticks, type) {\n if (type === 'number') {\n return [__WEBPACK_IMPORTED_MODULE_6_lodash_min___default()(ticks), __WEBPACK_IMPORTED_MODULE_5_lodash_max___default()(ticks)];\n }\n\n return ticks;\n};\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\n\nvar getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n var tickValues = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11_recharts_scale__[\"getNiceTickValues\"])(domain, tickCount, allowDecimals);\n scale.domain(calculateDomainOfTicks(tickValues, type));\n return {\n niceTicks: tickValues\n };\n }\n\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n\n var _tickValues = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11_recharts_scale__[\"getTickValuesFixedDomain\"])(_domain, tickCount, allowDecimals);\n\n return {\n niceTicks: _tickValues\n };\n }\n\n return null;\n};\nvar getCateCoordinateOfLine = function getCateCoordinateOfLine(_ref6) {\n var axis = _ref6.axis,\n ticks = _ref6.ticks,\n bandSize = _ref6.bandSize,\n entry = _ref6.entry,\n index = _ref6.index,\n dataKey = _ref6.dataKey;\n\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n if (!axis.allowDuplicatedCategory && axis.dataKey && !__WEBPACK_IMPORTED_MODULE_10_lodash_isNil___default()(entry[axis.dataKey])) {\n var matchedTick = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"c\" /* findEntryInArray */])(ticks, 'value', entry[axis.dataKey]);\n\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n\n var value = getValueByDataKey(entry, !__WEBPACK_IMPORTED_MODULE_10_lodash_isNil___default()(dataKey) ? dataKey : axis.dataKey);\n return !__WEBPACK_IMPORTED_MODULE_10_lodash_isNil___default()(value) ? axis.scale(value) : null;\n};\nvar getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref7) {\n var axis = _ref7.axis,\n ticks = _ref7.ticks,\n offset = _ref7.offset,\n bandSize = _ref7.bandSize,\n entry = _ref7.entry,\n index = _ref7.index;\n\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !__WEBPACK_IMPORTED_MODULE_10_lodash_isNil___default()(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nvar getBaseValueOfBar = function getBaseValueOfBar(_ref8) {\n var numericAxis = _ref8.numericAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n\n if (min <= 0 && max >= 0) {\n return 0;\n }\n\n if (max < 0) {\n return max;\n }\n\n return min;\n }\n\n return domain[0];\n};\nvar ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n\n return ifOverflow === value;\n};\nvar detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_20__ReactUtils__[\"h\" /* findAllByType */])(children, __WEBPACK_IMPORTED_MODULE_16__cartesian_ReferenceLine__[\"a\" /* default */]);\n var dots = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_20__ReactUtils__[\"h\" /* findAllByType */])(children, __WEBPACK_IMPORTED_MODULE_15__cartesian_ReferenceDot__[\"a\" /* default */]);\n var elements = lines.concat(dots);\n var areas = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_20__ReactUtils__[\"h\" /* findAllByType */])(children, __WEBPACK_IMPORTED_MODULE_17__cartesian_ReferenceArea__[\"a\" /* default */]);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"a\" /* isNumber */])(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n\n return result;\n }, finalDomain);\n }\n\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"a\" /* isNumber */])(el.props[key1]) && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"a\" /* isNumber */])(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n\n return result;\n }, finalDomain);\n }\n\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"a\" /* isNumber */])(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n\n return result;\n }, finalDomain);\n }\n\n return finalDomain;\n};\nvar getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var stackId = item.props.stackId;\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"f\" /* isNumOrStr */])(stackId)) {\n var group = stackGroups[stackId];\n\n if (group && group.items.length) {\n var itemIndex = -1;\n\n for (var i = 0, len = group.items.length; i < len; i++) {\n if (group.items[i] === item) {\n itemIndex = i;\n break;\n }\n }\n\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n\n return null;\n};\n\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [__WEBPACK_IMPORTED_MODULE_6_lodash_min___default()(entry.concat([result[0]]).filter(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"a\" /* isNumber */])), __WEBPACK_IMPORTED_MODULE_5_lodash_max___default()(entry.concat([result[1]]).filter(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"a\" /* isNumber */]))];\n }, [Infinity, -Infinity]);\n};\n\nvar getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nvar MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nvar MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nvar parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (!__WEBPACK_IMPORTED_MODULE_4_lodash_isArray___default()(specifiedDomain)) {\n return dataDomain;\n }\n\n var domain = [];\n /* eslint-disable prefer-destructuring */\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"a\" /* isNumber */])(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (__WEBPACK_IMPORTED_MODULE_8_lodash_isFunction___default()(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__DataUtils__[\"a\" /* isNumber */])(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n\n domain[1] = dataDomain[1] + _value;\n } else if (__WEBPACK_IMPORTED_MODULE_8_lodash_isFunction___default()(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n\n return domain;\n};\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @return {Number} Size\n */\n\nvar getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks) {\n if (axis && axis.scale && axis.scale.bandwidth) {\n return axis.scale.bandwidth();\n }\n\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = __WEBPACK_IMPORTED_MODULE_1_lodash_sortBy___default()(ticks, function (o) {\n return o.coordinate;\n });\n\n var bandSize = Infinity;\n\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n\n return bandSize === Infinity ? 0 : bandSize;\n }\n\n return 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis element\n * @returns {Array} domains\n */\n\nvar parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n\n if (__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default()(specifiedDomain, __WEBPACK_IMPORTED_MODULE_9_lodash_get___default()(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n\n return specifiedDomain;\n};\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n exports.resourceStrings = {\r\n appId: 'Microsoft App ID',\r\n featuredBotsTitle: 'Featured bots',\r\n directoryHeroTitle: 'Meet the bots',\r\n directoryHeroText: 'Say hello! Try out a bot and add it to your favorite conversation\\u00a0experiences.',\r\n botBuilder: 'Bot Builder',\r\n botConnector: 'Bot Connector',\r\n botDirectory: 'Bot Directory',\r\n botEndpoint: 'Messaging endpoint',\r\n botEnableStreamingEndpoint: 'Enable Streaming Endpoint',\r\n botSchemaTransformationVersion: 'Schema Transformation Version:',\r\n botEndpointBlank: 'Not set',\r\n botFramework: 'Bot Framework',\r\n botFrameworkExtended: 'Microsoft Bot Framework',\r\n botId: 'Bot handle',\r\n maximize: 'Expand',\r\n minimize: 'Done',\r\n cancel: 'Cancel',\r\n edit: 'Edit',\r\n register: 'Register',\r\n deleteBot: 'Delete bot',\r\n channelTestLink: 'Test link',\r\n channelLog: 'Issues',\r\n channelEnabled: 'Enabled',\r\n channelPublished: 'Published',\r\n readMore: 'Read more.',\r\n readLess: 'Read less.',\r\n learnMore: 'Learn more',\r\n buttonOk: 'OK',\r\n buttonCancel: 'Cancel',\r\n buttonNo: 'No',\r\n buttonYes: 'Yes',\r\n botDisclaimer: \"Your interactions with this bot are also subject to the conversational channel's applicable terms of use, privacy and data collection policies.\",\r\n v3LandingTitle: 'Get building',\r\n v3LandingTexts: {\r\n sdk: { title: 'Build a great bot', text: 'Download the SDKs for Node.js, .NET or REST; leverage the chat emulator and more\\u2026' },\r\n channels: { title: 'Connect to channels', text: 'Connect your bot to the world\\'s best conversation experiences.' },\r\n directory: { title: 'Meet the bots', text: 'Visit the Bot Directory, try a bot, and add it to your favorite conversation experiences.' },\r\n congnitive: { title: 'Add smarts with Cognitive Services', text: 'Enable your bot to see, hear and interpret in more human ways.' },\r\n skype: { title: 'Build a Skype bot', text: 'Make the world\\'s conversations rich, productive, and fun.' },\r\n teams: { title: 'Build a Teams bot', text: 'Microsoft Teams is the chat-based workspace for Office 365.' },\r\n },\r\n v3Update: \"This bot is no longer compatible with the Bot Framework. Update your bot now to get it working again.\",\r\n v3Warning: \"We revised our security protocols on July 31, 2017. Update to Bot Builder 3.9+ or compatible security configuration to keep your bot working.\",\r\n tooltips: {\r\n channelConfig: {\r\n title: 'Skype and Web chat channels have been auto configured.',\r\n text: 'Click \\'Edit\\' to fine tune channel specific capabilities and settings.'\r\n }\r\n },\r\n errors: {\r\n noMarketsSelected: 'You must select at least one market',\r\n agreementNotChecked: 'You must agree to the Privacy Statement, Terms of Use, and Code of Conduct.'\r\n },\r\n botPageTabs: ['Develop', 'Channels', 'Settings', 'Publish'],\r\n initializing: 'Initializing',\r\n loadingBotApp: 'Loading bot app',\r\n deployingBotApp: 'Deploying bot app',\r\n botEditorUpdated: 'Bot registration updated',\r\n botSettingsUpdated: 'Bot updated',\r\n msaAppSecret: 'App secret',\r\n msaDescription: 'In order to authenticate your bot with the Bot Framework, you\\'ll need to register your application and generate an App ID and password.',\r\n msaLabelRegister: 'Register your bot with Microsoft to generate a new App ID and password',\r\n msaLearnMore: 'Learn how to create a new App Registration',\r\n msaLabelPasteAppId: 'Paste your app ID below to continue',\r\n msaLabelPasteAppIdAndPwd: 'Paste your App ID and password below to continue',\r\n loadingBotWebChat: 'Loading chat interface\\u2026',\r\n subscriptionConsentDialog: {\r\n title: \"Subscribe to Microsoft Bot Framework\",\r\n description: \"Let's keep in touch! Signup to receive the latest news about Microsoft Bot Framework, bots and more.\",\r\n selectCountryLabel: \"Select your country/region:\",\r\n agreementHeading: \"Terms of service\",\r\n agreementDescription: \"Please read and agree to the following terms. NOTICE: The Online Services Terms do not apply to publication on channels. For example, terms for publication on Microsoft channels do not offer data processing terms.\",\r\n allowPromotionalEmailLabelHtml: \"Contact me with promotional offers and updates about Microsoft Bot Framework services.\",\r\n countrySpecificPromotionalEmailLablesHtml: {\r\n CA: 'I would like to hear from Microsoft and its family of companies via email and phone about Bot Framework and other Microsoft products and services. ' +\r\n 'To withdraw consent or manage your contact preferences, visit the Promotional Communications Manager. '\r\n },\r\n agreementLabelHtml: 'I agree that my use of the Bot Framework service is subject to the same terms under which I use the Azure Bot Service through Azure. If I do not use the Azure Bot Service through Azure, I agree that my use of this service is subject to the Microsoft Online Service Terms. By using the Bot Framework service, I acknowledge the Privacy & Cookies statement.',\r\n luisAgreementLabelHtml: 'I agree that this service is subject to the same terms under which I subscribe to Cognitive Services through Azure, including the Online Services Terms. I acknowledge the Privacy & Cookies statement.',\r\n saveButtonLabel: \"Save\",\r\n cancelButtonLabel: \"Cancel\",\r\n updateErrorMessage: \"Unable to update your subscription preferences\"\r\n },\r\n iframeTitleLuis: \"Language Understanding Intelligent Service\",\r\n iframeTitleQna: \"QnA Maker\",\r\n v4: {\r\n botPageTabs: ['Build', 'Analytics', 'Settings', 'Channels', 'Build'],\r\n analyticsNotConfigured: \"You haven't enabled Analytics via Azure Application Insights yet.\",\r\n nobotsPrompt: \"You don't have any bots or skills yet.\",\r\n newBotPrompt: \"Create a bot or skill.\",\r\n createBotSDKLink: \"Download the Bot Builder SDK\",\r\n createBotLabel: \"Build a bot using the Bot Builder SDK and optionally provision your bot in Microsoft Azure.\"\r\n },\r\n channels: {\r\n published: \"Published\",\r\n health: \"Health\",\r\n name: \"Name\",\r\n edit: \"Edit\",\r\n configure: \"Configure\",\r\n running: \"Running\",\r\n issuesTemplate: \"Issues (<%= length %>)\",\r\n warningTemplate: \"Warnings (<%= length %>)\"\r\n },\r\n embedPanel: {\r\n title: \"Bot embed code\",\r\n description: \"Choose a channel to get the embed code for it. Copy and paste the code to your website.\",\r\n facebookFooter: \"In order to use this embed Facebook requires you to include their JavaScript SDK in your page.\",\r\n },\r\n channelConfig: {\r\n deleteMessage: \"This action will delete all channel configuration information. Are you sure you want to proceed?\",\r\n deleteHeader: \"Delete channel\",\r\n deleteOk: \"Yes, delete it\",\r\n deleteCancel: \"No, keep it\",\r\n leaveMessage: \"You have unsaved changes in this document. Are you sure you want to navigate away from this page?\",\r\n leaveHeader: \"Discard changes\",\r\n leaveOk: \"Yes, leave page\",\r\n leaveCancel: \"No, stay on page\",\r\n },\r\n expiredAzureSubscription: 'Your Azure subscription is no longer active',\r\n announcements: {\r\n types: {\r\n error: \"Error\",\r\n good: \"Normal\",\r\n info: \"Information\",\r\n warn: \"Warning\"\r\n },\r\n ok: {\r\n productArea: 'All Bot Framework services',\r\n text: 'Services are operating normally.'\r\n },\r\n link: \"See details\"\r\n }\r\n };\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = newInterval;\nvar t0 = new Date,\n t1 = new Date;\n\nfunction newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = new Date(+date)), date;\n }\n\n interval.floor = interval;\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n function isInFrame() {\r\n return window.parent !== window;\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = isInFrame;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = initRange;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = initInterpolator;\nfunction initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nfunction initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.interpolator(domain); break;\n default: this.interpolator(interpolator).domain(domain); break;\n }\n return this;\n}\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\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(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsEqual = __webpack_require__(196);\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseMatches = __webpack_require__(677),\n baseMatchesProperty = __webpack_require__(678),\n identity = __webpack_require__(53),\n isArray = __webpack_require__(12),\n property = __webpack_require__(777);\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Animate__ = __webpack_require__(384);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easing__ = __webpack_require__(385);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util__ = __webpack_require__(137);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__AnimateGroup__ = __webpack_require__(803);\n/* unused harmony reexport configSpring */\n/* unused harmony reexport configBezier */\n/* unused harmony reexport AnimateGroup */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_2__util__[\"c\"]; });\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__WEBPACK_IMPORTED_MODULE_0__Animate__[\"a\" /* default */]);\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n var Environment = (function () {\r\n function Environment() {\r\n }\r\n return Environment;\r\n }());\r\n Environment.isInBotFrameworkAzureExtension = false;\r\n Environment.isInAzurePortal = false;\r\n exports.Environment = Environment;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(101), __webpack_require__(455), __webpack_require__(17)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, DialogBase_1, Views, Strings_1) {\r\n var MessageBox = (function (_super) {\r\n __extends(MessageBox, _super);\r\n function MessageBox(options) {\r\n var _this = _super.call(this) || this;\r\n _this.options = $.extend({}, DefaultMessageBoxOptions, options);\r\n return _this;\r\n }\r\n MessageBox.prototype.render = function () {\r\n var _this = this;\r\n var props = {\r\n okButtonClass: this.options.okButtonClass,\r\n okButtonLabel: this.options.okButtonLabel,\r\n cancelButtonLabel: this.options.cancelButtonLabel,\r\n hideCancelButton: this.options.hideCancelButton,\r\n message: this.message,\r\n header: this.header,\r\n className: this.options.className\r\n };\r\n var element = React.createElement(Views.MessageBoxPanel, props);\r\n ReactDOM.render(element, this.$el[0], function () {\r\n _this.init();\r\n });\r\n };\r\n MessageBox.prototype.init = function () {\r\n _super.prototype.init.call(this);\r\n };\r\n MessageBox.show = function (message) {\r\n var mb = new MessageBox({ hideCancelButton: true });\r\n mb.message = message;\r\n return mb.showDialog();\r\n };\r\n MessageBox.ask = function (message) {\r\n var mb = new MessageBox({ okButtonLabel: Strings_1.resourceStrings.buttonYes, cancelButtonLabel: Strings_1.resourceStrings.buttonNo });\r\n mb.message = message;\r\n return mb.showDialog();\r\n };\r\n return MessageBox;\r\n }(DialogBase_1.DialogBase));\r\n exports.MessageBox = MessageBox;\r\n var DefaultMessageBoxOptions = {\r\n hideCancelButton: false,\r\n okButtonLabel: Strings_1.resourceStrings.buttonOk,\r\n cancelButtonLabel: Strings_1.resourceStrings.buttonCancel\r\n };\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar freeGlobal = __webpack_require__(359);\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return RADIAN; });\n/* unused harmony export degreeToRadian */\n/* unused harmony export radianToDegree */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return polarToCartesian; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return getMaxRadius; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return formatAxisMap; });\n/* unused harmony export distanceBetweenPoints */\n/* unused harmony export getAngleOfPoint */\n/* unused harmony export formatAngleOfSector */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return inRangeOfSector; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isNil__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isNil___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isNil__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ChartUtils__ = __webpack_require__(16);\n\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n\n\nvar RADIAN = Math.PI / 180;\nvar degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nvar radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nvar polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nvar getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nvar formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__DataUtils__[\"h\" /* getPercentValue */])(props.cx, width, width / 2);\n var cy = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__DataUtils__[\"h\" /* getPercentValue */])(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__DataUtils__[\"h\" /* getPercentValue */])(props.innerRadius, maxRadius, 0);\n var outerRadius = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__DataUtils__[\"h\" /* getPercentValue */])(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n\n if (__WEBPACK_IMPORTED_MODULE_0_lodash_isNil___default()(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n\n var _range2 = _slicedToArray(_range, 2);\n\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n\n var _parseScale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__ChartUtils__[\"v\" /* parseScale */])(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n\n scale.domain(domain).range(range);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__ChartUtils__[\"w\" /* checkDomainOfScale */])(scale);\n var ticks = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__ChartUtils__[\"x\" /* getTicksOfScale */])(scale, _objectSpread({}, axis, {\n realScaleType: realScaleType\n }));\n\n var finalAxis = _objectSpread({}, axis, ticks, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n\n return _objectSpread({}, result, _defineProperty({}, id, finalAxis));\n }, {});\n};\nvar distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nvar getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nvar formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\n\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\n\nvar inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n\n if (radius === 0) {\n return true;\n }\n\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n\n var formatAngle = angle;\n var inRange;\n\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n\n if (inRange) {\n return _objectSpread({}, sector, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n\n return null;\n};\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(7), __webpack_require__(271), __webpack_require__(27), __webpack_require__(14), __webpack_require__(15), __webpack_require__(8), __webpack_require__(60), __webpack_require__(19), __webpack_require__(26), __webpack_require__(40), __webpack_require__(99), __webpack_require__(61), __webpack_require__(156), __webpack_require__(256), __webpack_require__(58), __webpack_require__(155), __webpack_require__(159), __webpack_require__(257)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, Rest, Views, Dialogs, index_1, Intercom_Resources_DevPortal_1, ClientAppSettings_1, index_2, InFrame_1, Environment_1, Links_1, SupportedFeatureUtility_1, logger_1, FlightUtils_1, parseApiError_1, HeaderKind_1, Environment_2, AuthenticationUtility_1, AzurePortalMessenger_1) {\r\n function isBrowserSupported() {\r\n return true;\r\n }\r\n exports.isBrowserSupported = isBrowserSupported;\r\n function refreshClientAppSettings() {\r\n return Rest.AccountClient.getClientSettings().done(function (settings) {\r\n _.extend(ClientAppSettings_1.clientAppSettings, settings, _.pick(ClientAppSettings_1.clientAppSettings, 'homeUrl'));\r\n });\r\n }\r\n exports.refreshClientAppSettings = refreshClientAppSettings;\r\n var PageStatusFlags;\r\n (function (PageStatusFlags) {\r\n PageStatusFlags[PageStatusFlags[\"Ready\"] = 0] = \"Ready\";\r\n PageStatusFlags[PageStatusFlags[\"LoadingBot\"] = 1] = \"LoadingBot\";\r\n PageStatusFlags[PageStatusFlags[\"LoggingIn\"] = 2] = \"LoggingIn\";\r\n PageStatusFlags[PageStatusFlags[\"WaitingForBotReady\"] = 4] = \"WaitingForBotReady\";\r\n PageStatusFlags[PageStatusFlags[\"WaitingForAppInsightsReady\"] = 8] = \"WaitingForAppInsightsReady\";\r\n })(PageStatusFlags = exports.PageStatusFlags || (exports.PageStatusFlags = {}));\r\n var ControllerBase = (function (_super) {\r\n __extends(ControllerBase, _super);\r\n function ControllerBase(app, headerKind) {\r\n if (headerKind === void 0) { headerKind = HeaderKind_1.HeaderKind.Small; }\r\n var _this = _super.call(this) || this;\r\n _this.app = app;\r\n _this.headerKind = headerKind;\r\n _this.handlersAttached = false;\r\n _this.activeDropdownMenu = null;\r\n _this._pageStatus = PageStatusFlags.Ready;\r\n return _this;\r\n }\r\n ControllerBase.prototype.IsUserMSA = function () {\r\n return this.app.signedInUser && this.app.signedInUser.IdentityProvider === 'live.com';\r\n };\r\n ControllerBase.prototype.setPageStatusFlag = function (flag) {\r\n var hasFlag = this.hasPageStatusFlag(flag);\r\n this._pageStatus |= flag;\r\n return hasFlag;\r\n };\r\n ControllerBase.prototype.clearPageStatusFlag = function (flag) {\r\n var hasFlag = this.hasPageStatusFlag(flag);\r\n this._pageStatus &= ~flag;\r\n return hasFlag;\r\n };\r\n ControllerBase.prototype.hasPageStatusFlag = function (flag) {\r\n return (this._pageStatus & flag) === flag;\r\n };\r\n ControllerBase.prototype.setBotAppSettings = function (x) {\r\n if (this.containerController) {\r\n this.containerController.setBotAppSettings(x);\r\n }\r\n };\r\n ControllerBase.prototype.isLoaded = function () {\r\n return this.containerController ? this.containerController.isLoaded() : _super.prototype.isLoaded.call(this);\r\n };\r\n Object.defineProperty(ControllerBase.prototype, \"pageContent\", {\r\n get: function () {\r\n return this.containerController ? this.containerController.pageContent : this.masterPage.pageContent;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ControllerBase.prototype.hideActiveDropdownMenu = function () {\r\n if (!this.activeDropdownMenu)\r\n return;\r\n this.activeDropdownMenu.hide();\r\n this.activeDropdownMenu = null;\r\n };\r\n ControllerBase.prototype.isAdminOrSupport = function () {\r\n var env = Environment_2.Environment.portalEnvironment();\r\n if (env == \"scratch\" || env == \"ppe\") {\r\n return this.app.signedInUser != null && this.app.signedInUser.Roles != null && (this.app.signedInUser.Roles.indexOf('IntAdmin') >= 0 || this.app.signedInUser.Roles.indexOf('IntSupport') >= 0);\r\n }\r\n else {\r\n return this.app.signedInUser != null && this.app.signedInUser.Roles != null && (this.app.signedInUser.Roles.indexOf('ProdAdmin') >= 0 || this.app.signedInUser.Roles.indexOf('ProdSupport') >= 0);\r\n }\r\n };\r\n ControllerBase.prototype.isReviewer = function () {\r\n return this.app.signedInUser != null && this.app.signedInUser.Roles.indexOf('reviewer') >= 0;\r\n };\r\n ControllerBase.prototype.setSearchState = function (search, searchOpened) {\r\n this.masterPage.setState(_.extend(this.masterPageState, { searchString: search, expandSearch: searchOpened }));\r\n };\r\n ControllerBase.prototype.setAnnouncementState = function (announcements) {\r\n if (this.masterPage) {\r\n this.masterPage.setState({ announcements: announcements });\r\n }\r\n };\r\n ControllerBase.prototype.load = function (params) {\r\n var _this = this;\r\n _super.prototype.load.call(this, params);\r\n this.detachHandlers();\r\n this.params = params;\r\n ControllerBase.setEnvironment(this.params);\r\n if (Environment_1.Environment.isInBotFrameworkAzureExtension) {\r\n this._initializeForAzure();\r\n }\r\n if (this.pageRequiresSignIn()) {\r\n if (!isBrowserSupported()) {\r\n this.renderCommon(true);\r\n this.updateState(false, null, function () {\r\n });\r\n }\r\n else if (this.app.signedInUser) {\r\n this.clearPageStatusFlag(PageStatusFlags.LoggingIn);\r\n this.renderCommon();\r\n this.updateState(false, null, function () {\r\n _this.render(params);\r\n });\r\n }\r\n else {\r\n Rest.AccountClient.getSignedInUser().done(function (user) {\r\n if (_this.needSignInAndCanRedirect(user)) {\r\n var signinUri = _this.getSignInUrl();\r\n window.location.replace(signinUri);\r\n }\r\n else {\r\n logger_1.default.debug('ControllerBase: Signed in user via DevPortal. Setting and refreshing view.');\r\n _this.app.signedInUser = user;\r\n if (!AuthenticationUtility_1.AuthenticationUtility.setRequestVerificationHeader()) {\r\n logger_1.default.debug(\"ControllerBase: Failed to set request verification header when getting signed in user.\");\r\n }\r\n _this.clearPageStatusFlag(PageStatusFlags.LoggingIn);\r\n _this.renderCommon();\r\n refreshClientAppSettings().then(function () {\r\n _this.updateState(false, null, function () { return _this.render(params); });\r\n });\r\n }\r\n }).fail(function () {\r\n if (InFrame_1.default() || Environment_1.Environment.isInBotFrameworkAzureExtension) {\r\n logger_1.default.debug('ControllerBase: Waiting for cross-frame message');\r\n }\r\n else {\r\n _this.app.signedInUser = null;\r\n _this.renderCommon(true);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n this.renderCommon(InFrame_1.default());\r\n this.showProgressMask = false;\r\n this.updateState(false, null, function () {\r\n _this.render(params);\r\n });\r\n }\r\n this.addRemoveCssClass(true);\r\n this.app.trackingCookieConsent.loadPageTrackingIfInformed();\r\n };\r\n ControllerBase.prototype.needSignInAndCanRedirect = function (user) {\r\n var canRedirect = !InFrame_1.default() && !Environment_1.Environment.isInBotFrameworkAzureExtension;\r\n var needSignIn = (FlightUtils_1.FlightUtils.IsFirstPartyAuthFlighted || (user.FlightedFeatures && user.FlightedFeatures.indexOf('firstPartyAuth') >= 0)) && !this.isBfAppId(user);\r\n return canRedirect && needSignIn;\r\n };\r\n ControllerBase.prototype.isBfAppId = function (user) {\r\n var bfAppId = ClientAppSettings_1.clientAppSettings.appId.toUpperCase();\r\n var isBfApp = user.AppId.toUpperCase() === bfAppId;\r\n return isBfApp;\r\n };\r\n ControllerBase.prototype.getSignInUrl = function () {\r\n var paramValue = encodeURIComponent(Links_1.relativeUrl(window.location));\r\n return \"/Identity/SignIn?requestUrl=\" + paramValue;\r\n };\r\n ControllerBase.prototype.unload = function () {\r\n if (this._appInsightsStatusTimer) {\r\n clearTimeout(this._appInsightsStatusTimer);\r\n this._appInsightsStatusTimer = undefined;\r\n }\r\n if (this._onReceiveInfo) {\r\n this._azurePortalMessenger.unlistenForInfo(this._onReceiveInfo);\r\n this._onReceiveInfo = undefined;\r\n }\r\n if (this._onReceiveAzureToken) {\r\n this._azurePortalMessenger.unlistenForAuthenticationTokens(this._onReceiveAzureToken);\r\n this._onReceiveAzureToken = undefined;\r\n }\r\n if (this._onReceiveEndpointStatus) {\r\n this._azurePortalMessenger.unlistenForEndpointStatus(this._onReceiveEndpointStatus);\r\n this._onReceiveEndpointStatus = undefined;\r\n }\r\n if (this._onReceiveAppInsightsStatus) {\r\n this._azurePortalMessenger.unlistenForAppInsightsStatus(this._onReceiveAppInsightsStatus);\r\n this._onReceiveAppInsightsStatus = undefined;\r\n }\r\n if (this._azurePortalMessenger) {\r\n this._azurePortalMessenger = undefined;\r\n }\r\n this.statusBar = null;\r\n this.showProgressMask = false;\r\n this.detachHandlers();\r\n this.hideActiveDropdownMenu();\r\n this.addRemoveCssClass(false);\r\n this.app.trackingCookieConsent.markAsInformed();\r\n };\r\n ControllerBase.prototype.addRemoveCssClass = function (add) {\r\n var cssClass = this.getCssClass();\r\n if (cssClass) {\r\n var $appBody = $(this.app.getAppBody());\r\n if (add) {\r\n $appBody.addClass(cssClass);\r\n }\r\n else {\r\n $appBody.removeClass(cssClass);\r\n }\r\n }\r\n };\r\n ControllerBase.prototype.getCssClass = function () {\r\n return null;\r\n };\r\n ControllerBase.prototype.pageRequiresSignIn = function () {\r\n return true;\r\n };\r\n ControllerBase.prototype.refreshSignedInUser = function () {\r\n if (!AuthenticationUtility_1.AuthenticationUtility.setRequestVerificationHeader()) {\r\n logger_1.default.debug(\"ControllerBase: Failed to set request verification header when refreshing signed in user.\");\r\n }\r\n if (!this.app.signedInUser) {\r\n logger_1.default.debug('begin refresh signed user');\r\n this.load(this.params);\r\n }\r\n };\r\n ControllerBase.prototype.renderCommon = function (checkBrowserSupport) {\r\n var _this = this;\r\n var props = {\r\n controller: this,\r\n isAdmin: function () { return _this.isAdminOrSupport(); },\r\n isReviewer: function () { return _this.isReviewer(); },\r\n signInRequired: this.pageRequiresSignIn(),\r\n onSearch: function (s) { return _this.handleSearch(s); },\r\n onSignOutClicked: function () { return _this.onSignOutClicked(); },\r\n onUserAccountClicked: function () { return _this.onUserAccountClicked(); },\r\n refreshSignedInUser: function () { return _this.refreshSignedInUser(); },\r\n headerKind: this.headerKind,\r\n isRoutableUrl: function (url) {\r\n return !(/^https?:/i.test(url) || /^\\/\\//.test(url));\r\n }\r\n };\r\n var element = React.createElement(Views.MasterPage, props);\r\n this.masterPage = ReactDOM.render(element, this.app.getAppBody(), function () {\r\n _this.attachHandlers();\r\n });\r\n var state = {\r\n unsupportedBrowser: checkBrowserSupport && !isBrowserSupported(),\r\n announcements: this.app.announcements\r\n };\r\n if (Environment_1.Environment.isInBotFrameworkAzureExtension) {\r\n logger_1.default.debug(\"ControllerBase: Rendering with azure page state: \" + this._pageStatus);\r\n var statusMessage = this._getStatusBarMessageFromPageStatus();\r\n if (statusMessage) {\r\n state.statusBar = React.createElement(index_2.BotProgress, { progress: statusMessage });\r\n }\r\n else {\r\n state.statusBar = undefined;\r\n }\r\n }\r\n this.masterPage.setState(state);\r\n };\r\n ControllerBase.prototype._getStatusBarMessageFromPageStatus = function () {\r\n if (this.hasPageStatusFlag(PageStatusFlags.LoggingIn)) {\r\n return Intercom_Resources_DevPortal_1.Resources.loadingBot;\r\n }\r\n if (this.hasPageStatusFlag(PageStatusFlags.LoadingBot)) {\r\n return Intercom_Resources_DevPortal_1.Resources.loadingBot;\r\n }\r\n if (this.hasPageStatusFlag(PageStatusFlags.WaitingForBotReady)) {\r\n return Intercom_Resources_DevPortal_1.Resources.botIsNotReady;\r\n }\r\n if (this.hasPageStatusFlag(PageStatusFlags.WaitingForAppInsightsReady)) {\r\n return Intercom_Resources_DevPortal_1.Resources.analyticsNotReady;\r\n }\r\n return undefined;\r\n };\r\n Object.defineProperty(ControllerBase.prototype, \"statusBar\", {\r\n get: function () {\r\n if (this.containerController) {\r\n return this.containerController.statusBar;\r\n }\r\n else {\r\n return this.masterPage.state.statusBar;\r\n }\r\n },\r\n set: function (bar) {\r\n if (Environment_1.Environment.isInBotFrameworkAzureExtension) {\r\n return;\r\n }\r\n if (this.containerController) {\r\n this.containerController.statusBar = bar;\r\n }\r\n else {\r\n this.masterPage.setState({ statusBar: bar, statusBarScrolls: false });\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ControllerBase.prototype, \"showProgressMask\", {\r\n set: function (show) {\r\n if (this.containerController) {\r\n this.containerController.showProgressMask = show;\r\n }\r\n else {\r\n this.masterPage.setState({ showProgressMask: show });\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ControllerBase.prototype.updateTitle = function (title) {\r\n $('head title').text(title || index_1.resourceStrings.botFrameworkExtended);\r\n };\r\n ControllerBase.prototype.render = function (params) {\r\n this.updateTitle(null);\r\n $('.action-sheet').toggleClass(\"hidden\", true);\r\n };\r\n ControllerBase.prototype.updateState = function (signInInProgress, signInError, callback) {\r\n var curActiveLink = this.masterPageState ? this.masterPageState.activeLink : index_1.NavLinks.root;\r\n this.masterPageState = _.extend({}, this.masterPageState, {\r\n signInState: this.masterPageState ? this.masterPageState.signInState : null,\r\n signedInUser: this.app.signedInUser,\r\n signInInProgress: signInInProgress,\r\n signInError: signInError,\r\n activeLink: curActiveLink,\r\n searchString: null\r\n });\r\n this.masterPage.setState(this.masterPageState, function () {\r\n if (callback)\r\n callback();\r\n });\r\n };\r\n ControllerBase.prototype.setActiveJumboActiveLink = function (activeLink) {\r\n if (this.masterPage) {\r\n this.masterPageState.activeLink = activeLink;\r\n this.masterPage.setState(this.masterPageState);\r\n }\r\n };\r\n ControllerBase.prototype.handleSearch = function (s) {\r\n if (s.trim()) {\r\n this.app.navigate(ClientAppSettings_1.clientAppSettings.searchRoute || '/bots', { s: s });\r\n }\r\n };\r\n Object.defineProperty(ControllerBase.prototype, \"azureAccessToken\", {\r\n get: function () {\r\n var token = this.app.signedInUser ? this.app.signedInUser.AzureToken : null;\r\n if (token == null && window.location.host === 'localhost:3003') {\r\n token = sessionStorage.getItem('BF_OAUTH_TOKEN');\r\n }\r\n return token;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ControllerBase.prototype.attachHandlers = function () {\r\n var _this = this;\r\n if (this.handlersAttached)\r\n return;\r\n this.handlersAttached = true;\r\n var $appBody = $(this.app.getAppBody());\r\n $appBody.on('click', '.signed-in-user', function () { return _this.onSignedInUserClicked(); });\r\n $appBody.on('click', '.header-announcement', function () { return _this.onAnnouncementsClicked(); });\r\n $appBody.on('click', '.waitlist-request', function () { return _this.onWaitListButtonClicked(); });\r\n };\r\n ControllerBase.prototype.detachHandlers = function () {\r\n var $appBody = $(this.app.getAppBody());\r\n $appBody.off();\r\n this.handlersAttached = false;\r\n };\r\n ControllerBase.prototype.extractErrorFromXHR = function (xhr) {\r\n var apiErr = parseApiError_1.parseApiError(xhr);\r\n if (apiErr && apiErr.message) {\r\n return apiErr.message;\r\n }\r\n if (xhr && xhr.responseText) {\r\n try {\r\n var error = $.parseJSON(xhr.responseText);\r\n if (error) {\r\n error = error.Errors && error.Errors.length > 0 ? error.Errors[0] : error;\r\n var message = error.Message || (error.Error ? error.Error.Message : null);\r\n if (message) {\r\n return message;\r\n }\r\n }\r\n }\r\n catch (ex) {\r\n }\r\n }\r\n return null;\r\n };\r\n ControllerBase.prototype.handleHttpResponseError = function (xhr) {\r\n var errorMessage = this.extractErrorFromXHR(xhr);\r\n var promise;\r\n if (errorMessage) {\r\n promise = Dialogs.MessageBox.show(errorMessage);\r\n }\r\n else {\r\n switch (xhr.status) {\r\n case 400:\r\n promise = Dialogs.MessageBox.show(Intercom_Resources_DevPortal_1.Resources.xhrResponse_400);\r\n break;\r\n case 401: {\r\n var deferred_1 = $.Deferred();\r\n this.app.signedInUser = null;\r\n if (this.isLoaded()) {\r\n this.updateState(false, null, function () { deferred_1.resolve(null); });\r\n }\r\n else {\r\n deferred_1.resolve(null);\r\n }\r\n promise = deferred_1.promise();\r\n break;\r\n }\r\n case 403:\r\n promise = Dialogs.MessageBox.show(Intercom_Resources_DevPortal_1.Resources.xhrResponse_403);\r\n break;\r\n case 404:\r\n promise = Dialogs.MessageBox.show(Intercom_Resources_DevPortal_1.Resources.xhrResponse_404);\r\n break;\r\n case 500:\r\n promise = Dialogs.MessageBox.show(Intercom_Resources_DevPortal_1.Resources.xhrResponse_500);\r\n break;\r\n case 501:\r\n promise = Dialogs.MessageBox.show(Intercom_Resources_DevPortal_1.Resources.xhrResponse_501);\r\n break;\r\n default:\r\n if (xhr.statusText)\r\n promise = Dialogs.MessageBox.show(Intercom_Resources_DevPortal_1.Resources.xhrResponse_Unknown.replace(\"%1\", xhr.statusText));\r\n else\r\n promise = Dialogs.MessageBox.show(Intercom_Resources_DevPortal_1.Resources.xhrResponse_Unknown);\r\n break;\r\n }\r\n }\r\n return promise;\r\n };\r\n ControllerBase.prototype.redirectIfNeeded = function () {\r\n var prefix = \"?appapiret=\";\r\n var index = window.location.href.indexOf(prefix);\r\n if (index === -1)\r\n return false;\r\n var ret = window.location.href.substr(index + prefix.length);\r\n if (ret) {\r\n window.location.assign(decodeURIComponent(ret));\r\n return true;\r\n }\r\n return false;\r\n };\r\n ControllerBase.prototype.onSignedInUserClicked = function () {\r\n var userMenu = this.masterPage.pageHeader.refs[\"userMenu\"];\r\n var wasThisMenu = this.activeDropdownMenu === userMenu && this.activeDropdownMenu.state.visible;\r\n this.hideActiveDropdownMenu();\r\n if (!wasThisMenu) {\r\n this.activeDropdownMenu = userMenu;\r\n this.activeDropdownMenu.displayBelow($('.signed-in-user'), $('.rhs'));\r\n }\r\n };\r\n ControllerBase.prototype.onAnnouncementsClicked = function () {\r\n var announcementsMenu = this.masterPage.pageHeader.refs[\"announcementsMenu\"];\r\n var wasThisMenu = this.activeDropdownMenu === announcementsMenu && this.activeDropdownMenu.state.visible;\r\n this.hideActiveDropdownMenu();\r\n if (!wasThisMenu) {\r\n this.activeDropdownMenu = announcementsMenu;\r\n this.activeDropdownMenu.displayBelow($('.header-announcement'), $('.rhs'));\r\n this.app.announcements.addShown();\r\n }\r\n };\r\n ControllerBase.prototype.cleanupErrorMessage = function (message) {\r\n return message.replace(/\\+/g, ' ');\r\n };\r\n ControllerBase.prototype.handleIntercomLoginError = function (xhr, accessToken) {\r\n var signInState = xhr.responseJSON.Message;\r\n switch (signInState) {\r\n case \"SignedUp\":\r\n case \"NotSignedUp\":\r\n this.accessToken = accessToken;\r\n this.masterPageState.signInState = signInState;\r\n this.updateState(false, null);\r\n return true;\r\n }\r\n return false;\r\n };\r\n ControllerBase.prototype.onWaitListButtonClicked = function () {\r\n var _this = this;\r\n Rest.AccountClient.addUserToWaitlist().done(function () {\r\n _this.masterPageState.signInState = \"SignedUp\";\r\n _this.updateState(false, null);\r\n }).fail(function (xhr) {\r\n _this.handleHttpResponseError(xhr);\r\n });\r\n };\r\n ControllerBase.prototype.onSignOutClicked = function () {\r\n var path = ClientAppSettings_1.clientAppSettings.applicationPath === '/' ? '' : ClientAppSettings_1.clientAppSettings.applicationPath;\r\n window.location.assign(path + '/signout_all.aspx');\r\n };\r\n ControllerBase.prototype.onUserAccountClicked = function () {\r\n var deleteAccountAllowed = SupportedFeatureUtility_1.SupportedFeatureUtility.isSupported(Rest.DevPortalFeatureFlags.SupportNonAzureUsers);\r\n if (deleteAccountAllowed) {\r\n window.location.href = '/account';\r\n }\r\n };\r\n ControllerBase.prototype.scrollToTop = function () {\r\n if (this.masterPage) {\r\n this.masterPage.pageContent.scrollTop = 0;\r\n }\r\n };\r\n ControllerBase.prototype.hasUnsavedChanges = function () {\r\n return false;\r\n };\r\n ControllerBase.setEnvironment = function (queryParams) {\r\n var environmentQueryStringKey = \"ioenv\";\r\n if (!queryParams || !queryParams.hasOwnProperty(environmentQueryStringKey)) {\r\n return;\r\n }\r\n var environmentQueryStringValue = queryParams[environmentQueryStringKey];\r\n if (environmentQueryStringValue.toLowerCase() === \"ibiza\") {\r\n Environment_1.Environment.isInBotFrameworkAzureExtension = true;\r\n }\r\n };\r\n ControllerBase.prototype.isWebChatRoute = function (path) {\r\n var normalizedPath = path ? path.toLowerCase().trim() : \"\";\r\n return normalizedPath === \"/bots/webchat\";\r\n };\r\n ControllerBase.prototype._isAnalyticsRoute = function (path) {\r\n var normalizedPath = path ? path.toLowerCase().trim() : \"\";\r\n return normalizedPath === \"/bots/analytics\";\r\n };\r\n ControllerBase.prototype._initializeForAzure = function () {\r\n var _this = this;\r\n this.headerKind = HeaderKind_1.HeaderKind.None;\r\n if (!this._azurePortalMessenger) {\r\n var matches = decodeURIComponent(window.location.search).match(/trustedAuthority=([^&]+)/);\r\n if (matches) {\r\n logger_1.default.debug(\"ControllerBase: Starting to listen to Azure cross frame messages\");\r\n var trustedAuthority = matches[1];\r\n var signatureMatches = decodeURIComponent(window.location.search).match(/framesignature=([^&]+)/);\r\n var signature = AzurePortalMessenger_1.DefaultPortalSignature;\r\n if (signatureMatches) {\r\n signature = signatureMatches[1];\r\n }\r\n this._azurePortalMessenger = new AzurePortalMessenger_1.AzurePortalMessenger(trustedAuthority, signature);\r\n var blockUIUntilBotReady = this.isWebChatRoute(this.app.getCurrentPagePath());\r\n if (blockUIUntilBotReady) {\r\n this.setPageStatusFlag(PageStatusFlags.WaitingForBotReady);\r\n this._onReceiveEndpointStatus = this._refreshViewBasedOnEndpointStatus.bind(this);\r\n this._azurePortalMessenger.listenForEndpointStatus(this._onReceiveEndpointStatus);\r\n }\r\n var blockUIUntilAppInsightsReady = this._isAnalyticsRoute(this.app.getCurrentPagePath());\r\n if (blockUIUntilAppInsightsReady) {\r\n this.setPageStatusFlag(PageStatusFlags.WaitingForAppInsightsReady);\r\n this._appInsightsStatusTimer = setTimeout(function () {\r\n logger_1.default.debug(\"ControllerBase: Failed to get app insights status fast enough. Clearing wait status.\");\r\n _this._appInsightsStatusTimer = undefined;\r\n if (_this.clearPageStatusFlag(PageStatusFlags.WaitingForAppInsightsReady)) {\r\n _this.renderCommon();\r\n }\r\n }, 2 * 60 * 1000);\r\n this._onReceiveAppInsightsStatus = this._refreshViewBasedOnAppInsightsStatus.bind(this);\r\n this._azurePortalMessenger.listenForAppInsightsStatus(this._onReceiveAppInsightsStatus);\r\n }\r\n this.setPageStatusFlag(PageStatusFlags.LoggingIn);\r\n this._onReceiveInfo = this._onReceiveInfoFromIFrame.bind(this);\r\n this._azurePortalMessenger.listenForInfo(this._onReceiveInfo);\r\n this._onReceiveAzureToken = this._refreshAuthenticationTokens.bind(this);\r\n this._azurePortalMessenger.listenForAuthenticationTokens(this._onReceiveAzureToken);\r\n this._azurePortalMessenger.postReady();\r\n this._azurePortalMessenger.initializationComplete();\r\n this._azurePortalMessenger.requestInfo();\r\n this._azurePortalMessenger.requestAuthenticationTokens();\r\n if (blockUIUntilBotReady) {\r\n this._azurePortalMessenger.requestEndpointStatus();\r\n }\r\n if (blockUIUntilAppInsightsReady) {\r\n this._azurePortalMessenger.requestAppInsightsStatus();\r\n }\r\n }\r\n }\r\n };\r\n ControllerBase.prototype._onReceiveInfoFromIFrame = function (info) {\r\n logger_1.default.debug(\"ControllerBase: Got Azure Extension version: \" + info.version);\r\n this._azurePortalMessenger.unlistenForInfo(this._onReceiveInfo);\r\n this._onReceiveInfo = undefined;\r\n };\r\n ControllerBase.prototype._handleRefreshAuthenticationFailure = function () {\r\n this.app.signedInUser = null;\r\n Dialogs.MessageBox.show(Intercom_Resources_DevPortal_1.Resources.refreshSignInFailure);\r\n };\r\n ControllerBase.prototype._refreshAuthenticationTokens = function (tokens) {\r\n var _this = this;\r\n var armToken = tokens.armToken;\r\n var selfToken = tokens.selfToken;\r\n var useSelfToken = selfToken && ClientAppSettings_1.clientAppSettings.flightedFeatures.indexOf(\"firstPartyAuth\") >= 0;\r\n var token = useSelfToken ? selfToken : armToken;\r\n var csrfToken = AuthenticationUtility_1.AuthenticationUtility.getCsrfToken();\r\n if (!csrfToken) {\r\n logger_1.default.debug(\"ControllerBase: Failed to get CSRF token from cookie.\");\r\n this._handleRefreshAuthenticationFailure();\r\n return;\r\n }\r\n logger_1.default.debug(\"ControllerBase: Azure sent us Authentication tokens - Refreshing.\");\r\n $.ajax(\"/refreshLogin\", {\r\n data: { token: token, '__RequestVerificationToken': csrfToken },\r\n type: \"POST\"\r\n })\r\n .then(function () {\r\n Rest.ajaxHeaders = _.extend(Rest.ajaxHeaders || {}, { Authorization: \"Bearer \" + token });\r\n logger_1.default.debug(\"ControllerBase: Getting signed in user.\");\r\n return Rest.AccountClient.getSignedInUser();\r\n })\r\n .then(function (authData) {\r\n logger_1.default.debug(\"ControllerBase: Got authenticated user.\");\r\n if (_this.app.signedInUser) {\r\n AuthenticationUtility_1.AuthenticationUtility.bindAzureAccessToken(_this.app.signedInUser, armToken, true);\r\n if (_this.clearPageStatusFlag(PageStatusFlags.LoggingIn)) {\r\n _this.renderCommon();\r\n }\r\n }\r\n else {\r\n _this.app.signedInUser = authData;\r\n AuthenticationUtility_1.AuthenticationUtility.bindAzureAccessToken(_this.app.signedInUser, armToken, true);\r\n _this.clearPageStatusFlag(PageStatusFlags.LoggingIn);\r\n _this.renderCommon();\r\n refreshClientAppSettings().then(function () {\r\n return _this.updateState(false, null, function () {\r\n _this.render(_this.params);\r\n });\r\n });\r\n }\r\n })\r\n .fail(function (xhr) {\r\n if (_this.clearPageStatusFlag(PageStatusFlags.LoggingIn)) {\r\n _this.renderCommon();\r\n }\r\n _this.handleHttpResponseError(xhr);\r\n });\r\n };\r\n ControllerBase.prototype._refreshViewBasedOnEndpointStatus = function (status) {\r\n logger_1.default.debug(\"ControllerBase: Got new bot status from Azure: \" + status.status);\r\n var stateChanged;\r\n switch (status.status) {\r\n case \"not-ready\":\r\n stateChanged = this.setPageStatusFlag(PageStatusFlags.WaitingForBotReady);\r\n break;\r\n case \"ready\":\r\n case \"no-endpoint\":\r\n case \"error\":\r\n default:\r\n stateChanged = this.clearPageStatusFlag(PageStatusFlags.WaitingForBotReady);\r\n break;\r\n }\r\n if (stateChanged) {\r\n this.renderCommon();\r\n }\r\n };\r\n ControllerBase.prototype._refreshViewBasedOnAppInsightsStatus = function (status) {\r\n logger_1.default.debug(\"ControllerBase: Got new app insights status from Azure: \" + status.status);\r\n var stateChanged;\r\n switch (status.status) {\r\n case \"not-ready\":\r\n if (this._appInsightsStatusTimer) {\r\n stateChanged = this.setPageStatusFlag(PageStatusFlags.WaitingForAppInsightsReady);\r\n }\r\n break;\r\n case \"ready\":\r\n case \"not-configured\":\r\n case \"error\":\r\n stateChanged = this.clearPageStatusFlag(PageStatusFlags.WaitingForAppInsightsReady);\r\n default:\r\n }\r\n if (stateChanged) {\r\n this.renderCommon();\r\n }\r\n };\r\n return ControllerBase;\r\n }(SimpleMvc.Controller));\r\n exports.ControllerBase = ControllerBase;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__bisect__ = __webpack_require__(292);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_0__bisect__[\"a\"]; });\n/* unused harmony reexport bisectRight */\n/* unused harmony reexport bisectLeft */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ascending__ = __webpack_require__(63);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return __WEBPACK_IMPORTED_MODULE_1__ascending__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__bisector__ = __webpack_require__(293);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return __WEBPACK_IMPORTED_MODULE_2__bisector__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cross__ = __webpack_require__(540);\n/* unused harmony reexport cross */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__descending__ = __webpack_require__(541);\n/* unused harmony reexport descending */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__deviation__ = __webpack_require__(294);\n/* unused harmony reexport deviation */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__extent__ = __webpack_require__(295);\n/* unused harmony reexport extent */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__histogram__ = __webpack_require__(542);\n/* unused harmony reexport histogram */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__threshold_freedmanDiaconis__ = __webpack_require__(552);\n/* unused harmony reexport thresholdFreedmanDiaconis */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__threshold_scott__ = __webpack_require__(553);\n/* unused harmony reexport thresholdScott */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__threshold_sturges__ = __webpack_require__(299);\n/* unused harmony reexport thresholdSturges */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__max__ = __webpack_require__(544);\n/* unused harmony reexport max */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__mean__ = __webpack_require__(545);\n/* unused harmony reexport mean */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__median__ = __webpack_require__(546);\n/* unused harmony reexport median */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__merge__ = __webpack_require__(547);\n/* unused harmony reexport merge */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__min__ = __webpack_require__(296);\n/* unused harmony reexport min */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__pairs__ = __webpack_require__(297);\n/* unused harmony reexport pairs */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__permute__ = __webpack_require__(548);\n/* unused harmony reexport permute */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__quantile__ = __webpack_require__(172);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return __WEBPACK_IMPORTED_MODULE_18__quantile__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__range__ = __webpack_require__(298);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return __WEBPACK_IMPORTED_MODULE_19__range__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__scan__ = __webpack_require__(549);\n/* unused harmony reexport scan */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__shuffle__ = __webpack_require__(550);\n/* unused harmony reexport shuffle */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__sum__ = __webpack_require__(551);\n/* unused harmony reexport sum */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__ticks__ = __webpack_require__(300);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_23__ticks__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return __WEBPACK_IMPORTED_MODULE_23__ticks__[\"c\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_23__ticks__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__transpose__ = __webpack_require__(301);\n/* unused harmony reexport transpose */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__variance__ = __webpack_require__(302);\n/* unused harmony reexport variance */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__zip__ = __webpack_require__(554);\n/* unused harmony reexport zip */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = __webpack_require__(796);\n} else {\n module.exports = __webpack_require__(795);\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(7)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, Rest) {\r\n var BotTypes;\r\n (function (BotTypes) {\r\n BotTypes[BotTypes[\"None\"] = 0] = \"None\";\r\n BotTypes[BotTypes[\"SDK\"] = 1] = \"SDK\";\r\n BotTypes[BotTypes[\"ABSv1\"] = 2] = \"ABSv1\";\r\n BotTypes[BotTypes[\"ABSv2\"] = 3] = \"ABSv2\";\r\n BotTypes[BotTypes[\"ABSCode\"] = 4] = \"ABSCode\";\r\n BotTypes[BotTypes[\"ABSGACreate\"] = 5] = \"ABSGACreate\";\r\n })(BotTypes = exports.BotTypes || (exports.BotTypes = {}));\r\n function getDeploymentState(bot) {\r\n if (bot === void 0) { bot = {}; }\r\n var deployment = bot.ProvisionInfo ? bot.ProvisionInfo.Deployment : {};\r\n return deployment && deployment.properties ? deployment.properties.provisioningState : null;\r\n }\r\n exports.getDeploymentState = getDeploymentState;\r\n exports.RollbackEndpointVersionName = 'rollback_to';\r\n var BotUtilsV2 = (function () {\r\n function BotUtilsV2() {\r\n }\r\n BotUtilsV2.isRegistrationBot = function (bot) {\r\n return BotUtilsV2._isBotKind(bot, \"bot\");\r\n };\r\n BotUtilsV2.isFunctionsBot = function (bot) {\r\n return BotUtilsV2._isBotKind(bot, \"function\");\r\n };\r\n BotUtilsV2.isSdkBot = function (bot) {\r\n return BotUtilsV2._isBotKind(bot, \"sdk\");\r\n };\r\n BotUtilsV2.isConversationDesignerBot = function (bot) {\r\n return BotUtilsV2._isBotKind(bot, \"designer\");\r\n };\r\n BotUtilsV2.isMigratedBot = function (bot) {\r\n if (!bot) {\r\n throw new Error(\"bot must be defined\");\r\n }\r\n return bot.Kind && bot.Endpoints && bot.Endpoints.some(function (ep) { return ep.Version === exports.RollbackEndpointVersionName; });\r\n };\r\n BotUtilsV2.needsMigration = function (bot) {\r\n if (!bot) {\r\n throw new Error(\"bot must be defined\");\r\n }\r\n return !bot.Kind && bot.BotServiceRuntimeVersion !== \"ABSv2\";\r\n };\r\n BotUtilsV2.isMigratedBotDocument = function (bot) {\r\n if (!bot) {\r\n throw new Error(\"bot must be defined\");\r\n }\r\n if (!bot.Kind || !bot.Endpoints) {\r\n return false;\r\n }\r\n if (bot.Endpoints) {\r\n try {\r\n var endpoints = JSON.parse(bot.Endpoints);\r\n return Array.isArray(endpoints) && endpoints.some(function (x) {\r\n return (x.Version || x.version) === exports.RollbackEndpointVersionName;\r\n });\r\n }\r\n catch (e) {\r\n }\r\n }\r\n return false;\r\n };\r\n BotUtilsV2.isAzureIbizaBot = function (bot) {\r\n if (!bot) {\r\n throw new Error(\"bot must be defined\");\r\n }\r\n return !!bot.Kind;\r\n };\r\n BotUtilsV2.isMigrationOptional = function (bot) {\r\n if (this.isAzureIbizaBot(bot)) {\r\n return false;\r\n }\r\n if (!bot.ConfiguredChannels) {\r\n return false;\r\n }\r\n if (bot.SystemHashtags.indexOf(\"bingbizbot\") >= 0\r\n || bot.SystemHashtags.indexOf(\"skypeOA\") >= 0\r\n || bot.SystemHashtags.indexOf(\"cernerbots\") >= 0\r\n || bot.SystemHashtags.indexOf(\"migrationOptional\") >= 0) {\r\n return true;\r\n }\r\n if (bot.SystemHashtags.indexOf(\"absLegacy\") >= 0) {\r\n return false;\r\n }\r\n var hasAtLeastOne = false;\r\n for (var i = 0; i < bot.ConfiguredChannels.length; i++) {\r\n var channel = bot.ConfiguredChannels[i].toLowerCase();\r\n if (this.migrationOptionalChannels.indexOf(channel) < 0) {\r\n return false;\r\n }\r\n else if (channel !== \"webchat\") {\r\n hasAtLeastOne = true;\r\n }\r\n }\r\n return hasAtLeastOne;\r\n };\r\n BotUtilsV2._isBotKind = function (bot, kind) {\r\n if (!bot) {\r\n throw new Error(\"bot must be defined\");\r\n }\r\n return bot.Kind === kind;\r\n };\r\n return BotUtilsV2;\r\n }());\r\n BotUtilsV2.migrationOptionalChannels = [\"cortana\", \"skype\", \"msteams\", \"webchat\", \"outlook\", \"m365extensions\"];\r\n exports.BotUtilsV2 = BotUtilsV2;\r\n var BotUtils = (function () {\r\n function BotUtils() {\r\n }\r\n BotUtils.isABSv1Bot = function (bot) {\r\n return !!(bot && bot.ProvisionInfo && !bot.ProvisionInfo.BotRunTimeVersion);\r\n };\r\n BotUtils.isABSv2Bot = function (bot) {\r\n return !!(bot && bot.ProvisionInfo && bot.ProvisionInfo.BotRunTimeVersion);\r\n };\r\n BotUtils.isABSBot = function (bot) {\r\n return !!(bot && bot.ProvisionInfo);\r\n };\r\n BotUtils.isSDKBot = function (bot) {\r\n return !!(bot && !bot.ProvisionInfo);\r\n };\r\n BotUtils.isABSCodeBot = function (bot) {\r\n return !!(bot && bot.ProvisionInfo && bot.ProvisionInfo.HostingEnvironment === Rest.HostingEnvironment.AzureWebApp);\r\n };\r\n BotUtils.getBotType = function (bot) {\r\n if (this.isSDKBot(bot))\r\n return BotTypes.SDK;\r\n if (this.isABSCodeBot(bot))\r\n return BotTypes.ABSCode;\r\n if (this.isABSv1Bot(bot))\r\n return BotTypes.ABSv1;\r\n if (this.isABSv2Bot(bot))\r\n return BotTypes.ABSv2;\r\n return BotTypes.None;\r\n };\r\n BotUtils.isDeploymentFinished = function (bot) {\r\n var state = getDeploymentState(bot);\r\n var deployment = bot.ProvisionInfo ? bot.ProvisionInfo.Deployment : {};\r\n var pending = !bot.Endpoint && deployment && deployment.properties ? deployment.properties.intercom_pending_function_url : false;\r\n return !pending && (state == \"Succeeded\" || state == \"Failed\");\r\n };\r\n return BotUtils;\r\n }());\r\n exports.BotUtils = BotUtils;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return durationSecond; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return durationMinute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return durationHour; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return durationDay; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return durationWeek; });\nvar durationSecond = 1e3;\nvar durationMinute = 6e4;\nvar durationHour = 36e5;\nvar durationDay = 864e5;\nvar durationWeek = 6048e5;\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (prefixedValue, value, keepUnprefixed) {\n return keepUnprefixed ? [prefixedValue, value] : prefixedValue;\n};\n\nmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 37 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_every__ = __webpack_require__(370);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_every___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_every__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_find__ = __webpack_require__(763);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_find___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_find__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_sortBy__ = __webpack_require__(211);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_sortBy___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_sortBy__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_range__ = __webpack_require__(377);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_range___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_lodash_range__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lodash_throttle__ = __webpack_require__(781);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lodash_throttle___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_lodash_throttle__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_lodash_isNil__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_lodash_isNil__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__container_Surface__ = __webpack_require__(97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__component_Tooltip__ = __webpack_require__(140);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__component_Legend__ = __webpack_require__(229);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__shape_Curve__ = __webpack_require__(74);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__shape_Cross__ = __webpack_require__(412);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__shape_Sector__ = __webpack_require__(144);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__shape_Dot__ = __webpack_require__(56);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__shape_Rectangle__ = __webpack_require__(75);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__cartesian_CartesianAxis__ = __webpack_require__(404);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__cartesian_Brush__ = __webpack_require__(403);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__util_DOMUtils__ = __webpack_require__(145);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__util_PolarUtils__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__util_Events__ = __webpack_require__(889);\n\n\n\n\n\n\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n};\n\nvar generateCategoricalChart = function generateCategoricalChart(_ref) {\n var chartName = _ref.chartName,\n GraphicalChild = _ref.GraphicalChild,\n _ref$eventType = _ref.eventType,\n eventType = _ref$eventType === void 0 ? 'axis' : _ref$eventType,\n axisComponents = _ref.axisComponents,\n legendContent = _ref.legendContent,\n formatAxisMap = _ref.formatAxisMap,\n defaultProps = _ref.defaultProps,\n propTypes = _ref.propTypes;\n\n var CategoricalChartWrapper =\n /*#__PURE__*/\n function (_Component) {\n _inherits(CategoricalChartWrapper, _Component);\n\n /**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\n function CategoricalChartWrapper(_props) {\n var _this;\n\n _classCallCheck(this, CategoricalChartWrapper);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(CategoricalChartWrapper).call(this, _props));\n\n _this.handleLegendBBoxUpdate = function (box) {\n if (box && _this.legendInstance) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n\n _this.setState(_this.updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }));\n }\n };\n\n _this.handleReceiveSyncEvent = function (cId, chartId, data) {\n var _this$props = _this.props,\n syncId = _this$props.syncId,\n layout = _this$props.layout;\n var updateId = _this.state.updateId;\n\n if (syncId === cId && chartId !== _this.uniqueChartId) {\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n\n if (!__WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(data.dataStartIndex) || !__WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(data.dataEndIndex)) {\n _this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, _this.updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n })));\n } else if (!__WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(data.activeTooltipIndex)) {\n var chartX = data.chartX,\n chartY = data.chartY,\n activeTooltipIndex = data.activeTooltipIndex;\n var _this$state2 = _this.state,\n offset = _this$state2.offset,\n tooltipTicks = _this$state2.tooltipTicks;\n\n if (!offset) {\n return;\n }\n\n var viewBox = _objectSpread({}, offset, {\n x: offset.left,\n y: offset.top\n }); // When a categotical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n\n\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n\n var activePayload = _this.getTooltipContent(activeTooltipIndex);\n\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n\n _this.setState(_objectSpread({}, data, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload\n }));\n } else {\n _this.setState(data);\n }\n }\n };\n\n _this.handleBrushChange = function (_ref2) {\n var startIndex = _ref2.startIndex,\n endIndex = _ref2.endIndex;\n\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, _this.updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }));\n });\n\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n };\n\n _this.handleMouseEnter = function (e) {\n var onMouseEnter = _this.props.onMouseEnter;\n\n var mouse = _this.getMouseInfo(e);\n\n if (mouse) {\n var nextState = _objectSpread({}, mouse, {\n isTooltipActive: true\n });\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(onMouseEnter)) {\n onMouseEnter(nextState, e);\n }\n }\n };\n\n _this.triggeredAfterMouseMove = function (e) {\n var onMouseMove = _this.props.onMouseMove;\n\n var mouse = _this.getMouseInfo(e);\n\n var nextState = mouse ? _objectSpread({}, mouse, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n };\n\n _this.handleItemMouseEnter = function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n };\n\n _this.handleItemMouseLeave = function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n };\n\n _this.handleMouseMove = function (e) {\n if (e && __WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(e.persist)) {\n e.persist();\n }\n\n _this.triggeredAfterMouseMove(e);\n };\n\n _this.handleMouseLeave = function (e) {\n var onMouseLeave = _this.props.onMouseLeave;\n var nextState = {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n };\n\n _this.handleOuterEvent = function (e) {\n var eventName = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"e\" /* getReactEventByType */])(e);\n\n if (eventName && __WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(_this.props[eventName])) {\n var mouse = _this.getMouseInfo(e);\n\n var handler = _this.props[eventName];\n handler(mouse, e);\n }\n };\n\n _this.handleClick = function (e) {\n var onClick = _this.props.onClick;\n\n if (__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(onClick)) {\n var mouse = _this.getMouseInfo(e);\n\n onClick(mouse, e);\n }\n };\n\n _this.handleMouseDown = function (e) {\n var onMouseDown = _this.props.onMouseDown;\n\n if (__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(onMouseDown)) {\n var mouse = _this.getMouseInfo(e);\n\n onMouseDown(mouse, e);\n }\n };\n\n _this.handleMouseUp = function (e) {\n var onMouseUp = _this.props.onMouseUp;\n\n if (__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(onMouseUp)) {\n var mouse = _this.getMouseInfo(e);\n\n onMouseUp(mouse, e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseMove(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchStart = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchEnd = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n };\n\n _this.verticalCoordinatesGenerator = function (_ref3) {\n var xAxis = _ref3.xAxis,\n width = _ref3.width,\n height = _ref3.height,\n offset = _ref3.offset;\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"a\" /* getCoordinatesOfGrid */])(__WEBPACK_IMPORTED_MODULE_20__cartesian_CartesianAxis__[\"a\" /* default */].getTicks(_objectSpread({}, __WEBPACK_IMPORTED_MODULE_20__cartesian_CartesianAxis__[\"a\" /* default */].defaultProps, xAxis, {\n ticks: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"b\" /* getTicksOfAxis */])(xAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.left, offset.left + offset.width);\n };\n\n _this.horizontalCoordinatesGenerator = function (_ref4) {\n var yAxis = _ref4.yAxis,\n width = _ref4.width,\n height = _ref4.height,\n offset = _ref4.offset;\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"a\" /* getCoordinatesOfGrid */])(__WEBPACK_IMPORTED_MODULE_20__cartesian_CartesianAxis__[\"a\" /* default */].getTicks(_objectSpread({}, __WEBPACK_IMPORTED_MODULE_20__cartesian_CartesianAxis__[\"a\" /* default */].defaultProps, yAxis, {\n ticks: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"b\" /* getTicksOfAxis */])(yAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.top, offset.top + offset.height);\n };\n\n _this.axesTicksGenerator = function (axis) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"b\" /* getTicksOfAxis */])(axis, true);\n };\n\n _this.tooltipTicksGenerator = function (axisMap) {\n var axis = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"b\" /* getAnyElementOfObject */])(axisMap);\n var tooltipTicks = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"b\" /* getTicksOfAxis */])(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: __WEBPACK_IMPORTED_MODULE_2_lodash_sortBy___default()(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"c\" /* getBandSizeOfAxis */])(axis)\n };\n };\n\n _this.renderCursor = function (element) {\n var _this$state3 = _this.state,\n isTooltipActive = _this$state3.isTooltipActive,\n activeCoordinate = _this$state3.activeCoordinate,\n activePayload = _this$state3.activePayload,\n offset = _this$state3.offset;\n\n if (!element || !element.props.cursor || !isTooltipActive || !activeCoordinate) {\n return null;\n }\n\n var layout = _this.props.layout;\n var restProps;\n var cursorComp = __WEBPACK_IMPORTED_MODULE_14__shape_Curve__[\"a\" /* default */];\n\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = __WEBPACK_IMPORTED_MODULE_15__shape_Cross__[\"a\" /* default */];\n } else if (chartName === 'BarChart') {\n restProps = _this.getCursorRectangle();\n cursorComp = __WEBPACK_IMPORTED_MODULE_18__shape_Rectangle__[\"a\" /* default */];\n } else if (layout === 'radial') {\n var _this$getCursorPoints = _this.getCursorPoints(),\n cx = _this$getCursorPoints.cx,\n cy = _this$getCursorPoints.cy,\n radius = _this$getCursorPoints.radius,\n startAngle = _this$getCursorPoints.startAngle,\n endAngle = _this$getCursorPoints.endAngle;\n\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = __WEBPACK_IMPORTED_MODULE_16__shape_Sector__[\"a\" /* default */];\n } else {\n restProps = {\n points: _this.getCursorPoints()\n };\n cursorComp = __WEBPACK_IMPORTED_MODULE_14__shape_Curve__[\"a\" /* default */];\n }\n\n var key = element.key || '_recharts-cursor';\n\n var cursorProps = _objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset, restProps, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(element.props.cursor), {\n payload: activePayload,\n key: key,\n className: 'recharts-tooltip-cursor'\n });\n\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_react__[\"isValidElement\"])(element.props.cursor) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_react__[\"cloneElement\"])(element.props.cursor, cursorProps) : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_react__[\"createElement\"])(cursorComp, cursorProps);\n };\n\n _this.renderPolarAxis = function (element, displayName, index) {\n var axisType = element.type.axisType;\n\n var axisMap = _this.state[\"\".concat(axisType, \"Map\")];\n\n var axisOption = axisMap[element.props[\"\".concat(axisType, \"Id\")]];\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_react__[\"cloneElement\"])(element, _objectSpread({}, axisOption, {\n className: axisType,\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"b\" /* getTicksOfAxis */])(axisOption, true)\n }));\n };\n\n _this.renderXAxis = function (element, displayName, index) {\n var xAxisMap = _this.state.xAxisMap;\n var axisObj = xAxisMap[element.props.xAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n };\n\n _this.renderYAxis = function (element, displayName, index) {\n var yAxisMap = _this.state.yAxisMap;\n var axisObj = yAxisMap[element.props.yAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n };\n\n _this.renderGrid = function (element) {\n var _this$state4 = _this.state,\n xAxisMap = _this$state4.xAxisMap,\n yAxisMap = _this$state4.yAxisMap,\n offset = _this$state4.offset;\n var _this$props2 = _this.props,\n width = _this$props2.width,\n height = _this$props2.height;\n var xAxis = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"b\" /* getAnyElementOfObject */])(xAxisMap);\n\n var yAxisWithFiniteDomain = __WEBPACK_IMPORTED_MODULE_1_lodash_find___default()(yAxisMap, function (axis) {\n return __WEBPACK_IMPORTED_MODULE_0_lodash_every___default()(axis.domain, Number.isFinite);\n });\n\n var yAxis = yAxisWithFiniteDomain || __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"b\" /* getAnyElementOfObject */])(yAxisMap);\n var props = element.props || {};\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_react__[\"cloneElement\"])(element, {\n key: element.key || 'grid',\n x: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"a\" /* isNumber */])(props.x) ? props.x : offset.left,\n y: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"a\" /* isNumber */])(props.y) ? props.y : offset.top,\n width: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"a\" /* isNumber */])(props.width) ? props.width : offset.width,\n height: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"a\" /* isNumber */])(props.height) ? props.height : offset.height,\n xAxis: xAxis,\n yAxis: yAxis,\n offset: offset,\n chartWidth: width,\n chartHeight: height,\n verticalCoordinatesGenerator: props.verticalCoordinatesGenerator || _this.verticalCoordinatesGenerator,\n horizontalCoordinatesGenerator: props.horizontalCoordinatesGenerator || _this.horizontalCoordinatesGenerator\n });\n };\n\n _this.renderPolarGrid = function (element) {\n var _this$state5 = _this.state,\n radiusAxisMap = _this$state5.radiusAxisMap,\n angleAxisMap = _this$state5.angleAxisMap;\n var radiusAxis = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"b\" /* getAnyElementOfObject */])(radiusAxisMap);\n var angleAxis = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"b\" /* getAnyElementOfObject */])(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_react__[\"cloneElement\"])(element, {\n polarAngles: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"b\" /* getTicksOfAxis */])(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"b\" /* getTicksOfAxis */])(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid'\n });\n };\n\n _this.renderBrush = function (element) {\n var _this$props3 = _this.props,\n margin = _this$props3.margin,\n data = _this$props3.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId; // TODO: update brush when children update\n\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_react__[\"cloneElement\"])(element, {\n key: element.key || '_recharts-brush',\n onChange: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"d\" /* combineEventHandlers */])(_this.handleBrushChange, null, element.props.onChange),\n data: data,\n x: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"a\" /* isNumber */])(element.props.x) ? element.props.x : offset.left,\n y: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"a\" /* isNumber */])(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"a\" /* isNumber */])(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n };\n\n _this.renderReferenceElement = function (element, displayName, index) {\n if (!element) {\n return null;\n }\n\n var _assertThisInitialize = _assertThisInitialized(_assertThisInitialized(_this)),\n clipPathId = _assertThisInitialize.clipPathId;\n\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var _element$props = element.props,\n xAxisId = _element$props.xAxisId,\n yAxisId = _element$props.yAxisId;\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_react__[\"cloneElement\"])(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n };\n\n _this.renderGraphicChild = function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n\n if (!item) {\n return null;\n }\n\n var graphicalItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_react__[\"cloneElement\"])(element, item.props);\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"f\" /* findChildByType */])(children, __WEBPACK_IMPORTED_MODULE_12__component_Tooltip__[\"a\" /* default */]);\n var _item$props = item.props,\n points = _item$props.points,\n isRange = _item$props.isRange,\n baseLine = _item$props.baseLine;\n var _item$item$props = item.item.props,\n activeDot = _item$item$props.activeDot,\n hide = _item$item$props.hide;\n var hasActive = !hide && isTooltipActive && tooltipItem && activeDot && activeTooltipIndex >= 0;\n\n if (hasActive) {\n var activePoint, basePoint;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n activePoint = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"c\" /* findEntryInArray */])(points, \"payload.\".concat(tooltipAxis.dataKey), activeLabel);\n basePoint = isRange && baseLine && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"c\" /* findEntryInArray */])(baseLine, \"payload.\".concat(tooltipAxis.dataKey), activeLabel);\n } else {\n activePoint = points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n\n if (!__WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n }\n\n if (isRange) {\n return [graphicalItem, null, null];\n }\n\n return [graphicalItem, null];\n };\n\n _this.renderCustomized = function (element) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_react__[\"cloneElement\"])(element, _objectSpread({}, _this.props, _this.state));\n };\n\n var defaultState = _this.constructor.createDefaultState(_props);\n\n var _updateId = 0;\n _this.state = _objectSpread({}, defaultState, {\n updateId: 0\n }, _this.updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: _props\n }, defaultState, {\n updateId: _updateId\n })));\n _this.uniqueChartId = __WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(_props.id) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"d\" /* uniqueId */])('recharts') : _props.id;\n _this.clipPathId = \"\".concat(_this.uniqueChartId, \"-clip\");\n\n if (_props.throttleDelay) {\n _this.triggeredAfterMouseMove = __WEBPACK_IMPORTED_MODULE_5_lodash_throttle___default()(_this.triggeredAfterMouseMove, _props.throttleDelay);\n }\n\n return _this;\n }\n /* eslint-disable react/no-did-mount-set-state */\n\n\n _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!__WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(this.props.syncId)) {\n this.addListener();\n }\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this2 = this;\n\n var _this$props4 = this.props,\n data = _this$props4.data,\n children = _this$props4.children,\n width = _this$props4.width,\n height = _this$props4.height,\n layout = _this$props4.layout,\n stackOffset = _this$props4.stackOffset,\n margin = _this$props4.margin;\n var updateId = this.state.updateId;\n\n if (nextProps.data !== data || nextProps.width !== width || nextProps.height !== height || nextProps.layout !== layout || nextProps.stackOffset !== stackOffset || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_26__util_PureRender__[\"b\" /* shallowEqual */])(nextProps.margin, margin)) {\n var defaultState = this.constructor.createDefaultState(nextProps);\n this.setState(_objectSpread({}, defaultState, {\n updateId: updateId + 1\n }, this.updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, defaultState, {\n updateId: updateId + 1\n }))));\n } else if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"g\" /* isChildrenEqual */])(nextProps.children, children)) {\n // update configuration in chilren\n var hasGlobalData = !__WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(nextProps.data);\n var newUpdateId = hasGlobalData ? updateId : updateId + 1;\n this.setState(function (prevState) {\n return _objectSpread({\n updateId: newUpdateId\n }, _this2.updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, prevState, {\n updateId: newUpdateId\n })));\n });\n } // add syncId\n\n\n if (__WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(this.props.syncId) && !__WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(nextProps.syncId)) {\n this.addListener();\n } // remove syncId\n\n\n if (!__WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(this.props.syncId) && __WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(nextProps.syncId)) {\n this.removeListener();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!__WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(this.props.syncId)) {\n this.removeListener();\n }\n\n if (typeof this.triggeredAfterMouseMove.cancel === 'function') {\n this.triggeredAfterMouseMove.cancel();\n }\n }\n /**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n }, {\n key: \"getAxisMap\",\n value: function getAxisMap(props, _ref5) {\n var _ref5$axisType = _ref5.axisType,\n axisType = _ref5$axisType === void 0 ? 'xAxis' : _ref5$axisType,\n AxisComp = _ref5.AxisComp,\n graphicalItems = _ref5.graphicalItems,\n stackGroups = _ref5.stackGroups,\n dataStartIndex = _ref5.dataStartIndex,\n dataEndIndex = _ref5.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\"); // Get all the instance of Axis\n\n var axes = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"h\" /* findAllByType */])(children, AxisComp);\n var axisMap = {};\n\n if (axes && axes.length) {\n axisMap = this.getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = this.getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n\n return axisMap;\n }\n /**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n }, {\n key: \"getAxisMapByAxes\",\n value: function getAxisMapByAxes(props, _ref6) {\n var _this3 = this;\n\n var axes = _ref6.axes,\n graphicalItems = _ref6.graphicalItems,\n axisType = _ref6.axisType,\n axisIdKey = _ref6.axisIdKey,\n stackGroups = _ref6.stackGroups,\n dataStartIndex = _ref6.dataStartIndex,\n dataEndIndex = _ref6.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorial = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"e\" /* isCategorialAxis */])(layout, axisType); // Eliminate duplicated axes\n\n var axisMap = axes.reduce(function (result, child) {\n var _child$props = child.props,\n type = _child$props.type,\n dataKey = _child$props.dataKey,\n allowDataOverflow = _child$props.allowDataOverflow,\n allowDuplicatedCategory = _child$props.allowDuplicatedCategory,\n scale = _child$props.scale,\n ticks = _child$props.ticks;\n var axisId = child.props[axisIdKey];\n\n var displayedData = _this3.constructor.getDisplayedData(props, {\n graphicalItems: graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n\n var len = displayedData.length;\n\n if (!result[axisId]) {\n var domain, duplicateDomain, categoricalDomain;\n\n if (dataKey) {\n domain = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"f\" /* getDomainOfDataByKey */])(displayedData, dataKey, type);\n\n if (type === 'category' && isCategorial) {\n var duplicate = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"e\" /* hasDuplicate */])(domain);\n\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain; // When category axis has duplicated text, serial numbers are used to generate scale\n\n domain = __WEBPACK_IMPORTED_MODULE_4_lodash_range___default()(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"g\" /* parseDomainOfCategoryAxis */])(child.props.domain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : _toConsumableArray(finalDomain).concat([entry]);\n }, []);\n }\n } else if (type === 'category') {\n if (!allowDuplicatedCategory) {\n domain = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"g\" /* parseDomainOfCategoryAxis */])(child.props.domain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || __WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(entry) ? finalDomain : _toConsumableArray(finalDomain).concat([entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !__WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(entry);\n });\n }\n } else if (type === 'number') {\n var errorBarsDomain = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"h\" /* parseErrorBarsOfAxis */])(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), dataKey, axisType);\n\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n\n if (isCategorial && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"f\" /* getDomainOfDataByKey */])(displayedData, dataKey, 'category');\n }\n } else if (isCategorial) {\n domain = __WEBPACK_IMPORTED_MODULE_4_lodash_range___default()(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"i\" /* getDomainOfStackGroups */])(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"j\" /* getDomainOfItemsWithSameAxis */])(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), type, true);\n }\n\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"k\" /* detectReferenceElementsDomain */])(children, domain, axisId, axisType, ticks);\n\n if (child.props.domain) {\n domain = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"l\" /* parseSpecifiedDomain */])(child.props.domain, domain, allowDataOverflow);\n }\n }\n\n return _objectSpread({}, result, _defineProperty({}, axisId, _objectSpread({}, child.props, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: child.props.domain,\n isCategorial: isCategorial,\n layout: layout\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n }\n /**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n }, {\n key: \"getAxisMapByItems\",\n value: function getAxisMapByItems(props, _ref7) {\n var graphicalItems = _ref7.graphicalItems,\n Axis = _ref7.Axis,\n axisType = _ref7.axisType,\n axisIdKey = _ref7.axisIdKey,\n stackGroups = _ref7.stackGroups,\n dataStartIndex = _ref7.dataStartIndex,\n dataEndIndex = _ref7.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = this.constructor.getDisplayedData(props, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorial = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"e\" /* isCategorialAxis */])(layout, axisType);\n var index = -1; // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n\n var axisMap = graphicalItems.reduce(function (result, child) {\n var axisId = child.props[axisIdKey];\n\n if (!result[axisId]) {\n index++;\n var domain;\n\n if (isCategorial) {\n domain = __WEBPACK_IMPORTED_MODULE_4_lodash_range___default()(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"i\" /* getDomainOfStackGroups */])(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"k\" /* detectReferenceElementsDomain */])(children, domain, axisId, axisType);\n } else {\n domain = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"l\" /* parseSpecifiedDomain */])(Axis.defaultProps.domain, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"j\" /* getDomainOfItemsWithSameAxis */])(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), 'number'), Axis.defaultProps.allowDataOverflow);\n domain = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"k\" /* detectReferenceElementsDomain */])(children, domain, axisId, axisType);\n }\n\n return _objectSpread({}, result, _defineProperty({}, axisId, _objectSpread({\n axisType: axisType\n }, Axis.defaultProps, {\n hide: true,\n orientation: ORIENT_MAP[axisType] && ORIENT_MAP[axisType][index % 2],\n domain: domain,\n originalDomain: Axis.defaultProps.domain,\n isCategorial: isCategorial,\n layout: layout // specify scale when no Axis\n // scale: isCategorial ? 'band' : 'linear',\n\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n }\n }, {\n key: \"getActiveCoordinate\",\n value: function getActiveCoordinate(tooltipTicks, activeIndex, rangeObj) {\n var layout = this.props.layout;\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread({}, rangeObj, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_25__util_PolarUtils__[\"a\" /* polarToCartesian */])(rangeObj.cx, rangeObj.cy, _radius, _angle), {\n angle: _angle,\n radius: _radius\n });\n }\n\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread({}, rangeObj, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_25__util_PolarUtils__[\"a\" /* polarToCartesian */])(rangeObj.cx, rangeObj.cy, radius, angle), {\n angle: angle,\n radius: radius\n });\n }\n\n return originCoordinate;\n }\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {Object} event The event object\n * @return {Object} Mouse data\n */\n\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n\n var containerOffset = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_22__util_DOMUtils__[\"a\" /* getOffset */])(this.container);\n var e = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_22__util_DOMUtils__[\"b\" /* calculateChartCoordinate */])(event, containerOffset);\n var rangeObj = this.inRange(e.chartX, e.chartY);\n\n if (!rangeObj) {\n return null;\n }\n\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n\n if (eventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"b\" /* getAnyElementOfObject */])(xAxisMap).scale;\n var yScale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"b\" /* getAnyElementOfObject */])(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread({}, e, {\n xValue: xValue,\n yValue: yValue\n });\n }\n\n var _this$state10 = this.state,\n ticks = _this$state10.orderedTooltipTicks,\n axis = _this$state10.tooltipAxis,\n tooltipTicks = _this$state10.tooltipTicks;\n var pos = this.calculateTooltipPos(rangeObj);\n var activeIndex = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"m\" /* calculateActiveTickIndex */])(pos, ticks, tooltipTicks, axis);\n\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = this.getTooltipContent(activeIndex, activeLabel);\n var activeCoordinate = this.getActiveCoordinate(ticks, activeIndex, rangeObj);\n return _objectSpread({}, e, {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n });\n }\n\n return null;\n }\n /**\n * Get the content to be displayed in the tooltip\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\n\n }, {\n key: \"getTooltipContent\",\n value: function getTooltipContent(activeIndex, activeLabel) {\n var _this$state11 = this.state,\n graphicalItems = _this$state11.graphicalItems,\n tooltipAxis = _this$state11.tooltipAxis;\n var displayedData = this.constructor.getDisplayedData(this.props, this.state);\n\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n } // get data by activeIndex when the axis don't allow duplicated category\n\n\n return graphicalItems.reduce(function (result, child) {\n var hide = child.props.hide;\n\n if (hide) {\n return result;\n }\n\n var _child$props2 = child.props,\n dataKey = _child$props2.dataKey,\n name = _child$props2.name,\n unit = _child$props2.unit,\n formatter = _child$props2.formatter,\n data = _child$props2.data,\n tooltipType = _child$props2.tooltipType;\n var payload;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n payload = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"c\" /* findEntryInArray */])(data || displayedData, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = displayedData[activeIndex];\n }\n\n if (!payload) {\n return result;\n }\n\n return _toConsumableArray(result).concat([_objectSpread({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(child), {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"n\" /* getMainColorOfGraphicItem */])(child),\n value: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"o\" /* getValueByDataKey */])(payload, dataKey),\n type: tooltipType,\n payload: payload\n })]);\n }, []);\n }\n }, {\n key: \"getFormatItems\",\n value: function getFormatItems(props, currentState) {\n var _this4 = this;\n\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n\n var _this$constructor$get = this.constructor.getAxisNameByLayout(layout),\n numericAxisName = _this$constructor$get.numericAxisName,\n cateAxisName = _this$constructor$get.cateAxisName;\n\n var hasBar = this.constructor.hasBar(graphicalItems);\n var sizeList = hasBar && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"p\" /* getBarSizeList */])({\n barSize: barSize,\n stackGroups: stackGroups\n });\n var formatedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = _this4.constructor.getDisplayedData(props, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, item);\n\n var _item$props2 = item.props,\n dataKey = _item$props2.dataKey,\n childMaxBarSize = _item$props2.maxBarSize;\n var numericAxisId = item.props[\"\".concat(numericAxisName, \"Id\")];\n var cateAxisId = item.props[\"\".concat(cateAxisName, \"Id\")];\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _objectSpread4;\n\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n var id = item.props[\"\".concat(entry.axisType, \"Id\")];\n var axis = axisMap && axisMap[id];\n return _objectSpread({}, result, (_objectSpread4 = {}, _defineProperty(_objectSpread4, entry.axisType, axis), _defineProperty(_objectSpread4, \"\".concat(entry.axisType, \"Ticks\"), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"b\" /* getTicksOfAxis */])(axis)), _objectSpread4));\n }, {});\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"q\" /* getStackedDataOfItem */])(item, stackGroups[numericAxisId].stackGroups);\n var bandSize = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"c\" /* getBandSizeOfAxis */])(cateAxis, cateTicks);\n var maxBarSize = __WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barPosition = hasBar && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"r\" /* getBarPosition */])({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n var componsedFn = item && item.type && item.type.getComposedData;\n\n if (componsedFn) {\n var _objectSpread5;\n\n formatedItems.push({\n props: _objectSpread({}, componsedFn(_objectSpread({}, axisObj, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n onItemMouseLeave: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"d\" /* combineEventHandlers */])(_this4.handleItemMouseLeave, null, item.props.onMouseLeave),\n onItemMouseEnter: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"d\" /* combineEventHandlers */])(_this4.handleItemMouseEnter, null, item.props.onMouseEnter)\n })), (_objectSpread5 = {\n key: item.key || \"item-\".concat(index)\n }, _defineProperty(_objectSpread5, numericAxisName, axisObj[numericAxisName]), _defineProperty(_objectSpread5, cateAxisName, axisObj[cateAxisName]), _defineProperty(_objectSpread5, \"animationId\", updateId), _objectSpread5)),\n childIndex: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"i\" /* parseChildIndex */])(item, props.children),\n item: item\n });\n }\n });\n return formatedItems;\n }\n }, {\n key: \"getCursorRectangle\",\n value: function getCursorRectangle() {\n var layout = this.props.layout;\n var _this$state12 = this.state,\n activeCoordinate = _this$state12.activeCoordinate,\n offset = _this$state12.offset,\n tooltipAxisBandSize = _this$state12.tooltipAxisBandSize;\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n }\n }, {\n key: \"getCursorPoints\",\n value: function getCursorPoints() {\n var layout = this.props.layout;\n var _this$state13 = this.state,\n activeCoordinate = _this$state13.activeCoordinate,\n offset = _this$state13.offset;\n var x1, y1, x2, y2;\n\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (!__WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(activeCoordinate.cx) || !__WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(activeCoordinate.cy)) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_25__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, innerRadius, angle);\n var outerPoint = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_25__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n var _cx = activeCoordinate.cx,\n _cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_25__util_PolarUtils__[\"a\" /* polarToCartesian */])(_cx, _cy, radius, startAngle);\n var endPoint = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_25__util_PolarUtils__[\"a\" /* polarToCartesian */])(_cx, _cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: _cx,\n cy: _cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n }\n }\n\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n }\n }, {\n key: \"calculateTooltipPos\",\n value: function calculateTooltipPos(rangeObj) {\n var layout = this.props.layout;\n\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n\n return rangeObj.radius;\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var layout = this.props.layout;\n\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = x >= offset.left && x <= offset.left + offset.width && y >= offset.top && y <= offset.top + offset.height;\n return isInRange ? {\n x: x,\n y: y\n } : null;\n }\n\n var _this$state14 = this.state,\n angleAxisMap = _this$state14.angleAxisMap,\n radiusAxisMap = _this$state14.radiusAxisMap;\n\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"b\" /* getAnyElementOfObject */])(angleAxisMap);\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_25__util_PolarUtils__[\"b\" /* inRangeOfSector */])({\n x: x,\n y: y\n }, angleAxis);\n }\n\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"f\" /* findChildByType */])(children, __WEBPACK_IMPORTED_MODULE_12__component_Tooltip__[\"a\" /* default */]);\n var tooltipEvents = tooltipItem && eventType === 'axis' ? {\n onMouseEnter: this.handleMouseEnter,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n } : {};\n var outerEvents = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"b\" /* filterEventAttributes */])(this.props, this.handleOuterEvent);\n return _objectSpread({}, outerEvents, tooltipEvents);\n }\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @param {Number} updateId The update id\n * @return {Object} state New state to set\n */\n\n }, {\n key: \"updateStateOfAxisMapsOffsetAndStackGroups\",\n value: function updateStateOfAxisMapsOffsetAndStackGroups(_ref8) {\n var _this5 = this;\n\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n\n if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"j\" /* validateWidthHeight */])({\n props: props\n })) {\n return null;\n }\n\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n\n var _this$constructor$get2 = this.constructor.getAxisNameByLayout(layout),\n numericAxisName = _this$constructor$get2.numericAxisName,\n cateAxisName = _this$constructor$get2.cateAxisName;\n\n var graphicalItems = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"h\" /* findAllByType */])(children, GraphicalChild);\n var stackGroups = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"s\" /* getStackGroupsByAxisId */])(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread({}, result, _defineProperty({}, name, _this5.getAxisMap(props, _objectSpread({}, entry, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = this.calculateOffset(_objectSpread({}, axisObj, {\n props: props,\n graphicalItems: graphicalItems\n }));\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = this.tooltipTicksGenerator(cateAxisMap);\n var formatedGraphicalItems = this.getFormatItems(props, _objectSpread({}, axisObj, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread({\n formatedGraphicalItems: formatedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj, axisObj);\n }\n /* eslint-disable no-underscore-dangle */\n\n }, {\n key: \"addListener\",\n value: function addListener() {\n __WEBPACK_IMPORTED_MODULE_27__util_Events__[\"a\" /* eventCenter */].on(__WEBPACK_IMPORTED_MODULE_27__util_Events__[\"b\" /* SYNC_EVENT */], this.handleReceiveSyncEvent);\n\n if (__WEBPACK_IMPORTED_MODULE_27__util_Events__[\"a\" /* eventCenter */].setMaxListeners && __WEBPACK_IMPORTED_MODULE_27__util_Events__[\"a\" /* eventCenter */]._maxListeners) {\n __WEBPACK_IMPORTED_MODULE_27__util_Events__[\"a\" /* eventCenter */].setMaxListeners(__WEBPACK_IMPORTED_MODULE_27__util_Events__[\"a\" /* eventCenter */]._maxListeners + 1);\n }\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n __WEBPACK_IMPORTED_MODULE_27__util_Events__[\"a\" /* eventCenter */].removeListener(__WEBPACK_IMPORTED_MODULE_27__util_Events__[\"b\" /* SYNC_EVENT */], this.handleReceiveSyncEvent);\n\n if (__WEBPACK_IMPORTED_MODULE_27__util_Events__[\"a\" /* eventCenter */].setMaxListeners && __WEBPACK_IMPORTED_MODULE_27__util_Events__[\"a\" /* eventCenter */]._maxListeners) {\n __WEBPACK_IMPORTED_MODULE_27__util_Events__[\"a\" /* eventCenter */].setMaxListeners(__WEBPACK_IMPORTED_MODULE_27__util_Events__[\"a\" /* eventCenter */]._maxListeners - 1);\n }\n }\n /**\n * Calculate the offset of main part in the svg element\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {Object} xAxisMap The configuration of x-axis\n * @param {Object} yAxisMap The configuration of y-axis\n * @return {Object} The offset of main part in the svg element\n */\n\n }, {\n key: \"calculateOffset\",\n value: function calculateOffset(_ref9) {\n var props = _ref9.props,\n graphicalItems = _ref9.graphicalItems,\n _ref9$xAxisMap = _ref9.xAxisMap,\n xAxisMap = _ref9$xAxisMap === void 0 ? {} : _ref9$xAxisMap,\n _ref9$yAxisMap = _ref9.yAxisMap,\n yAxisMap = _ref9$yAxisMap === void 0 ? {} : _ref9$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"f\" /* findChildByType */])(children, __WEBPACK_IMPORTED_MODULE_21__cartesian_Brush__[\"a\" /* default */]);\n var legendItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"f\" /* findChildByType */])(children, __WEBPACK_IMPORTED_MODULE_13__component_Legend__[\"a\" /* default */]);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread({}, result, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread({}, result, _defineProperty({}, orientation, result[orientation] + entry.height));\n }\n\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n\n var offset = _objectSpread({}, offsetV, offsetH);\n\n var brushBottom = offset.bottom;\n\n if (brushItem) {\n offset.bottom += brushItem.props.height || __WEBPACK_IMPORTED_MODULE_21__cartesian_Brush__[\"a\" /* default */].defaultProps.height;\n }\n\n if (legendItem && this.legendInstance) {\n var legendBox = this.legendInstance.getBBox();\n offset = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"t\" /* appendOffsetOfLegend */])(offset, graphicalItems, props, legendBox);\n }\n\n return _objectSpread({\n brushBottom: brushBottom\n }, offset, {\n width: width - offset.left - offset.right,\n height: height - offset.top - offset.bottom\n });\n }\n }, {\n key: \"triggerSyncEvent\",\n value: function triggerSyncEvent(data) {\n var syncId = this.props.syncId;\n\n if (!__WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(syncId)) {\n __WEBPACK_IMPORTED_MODULE_27__util_Events__[\"a\" /* eventCenter */].emit(__WEBPACK_IMPORTED_MODULE_27__util_Events__[\"b\" /* SYNC_EVENT */], syncId, this.uniqueChartId, data);\n }\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formatedGraphicalItems = this.state.formatedGraphicalItems;\n\n for (var i = 0, len = formatedGraphicalItems.length; i < len; i++) {\n var entry = formatedGraphicalItems[i];\n\n if (entry.item === item || entry.props.key === item.key || displayName === __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"k\" /* getDisplayName */])(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n\n return null;\n }\n }, {\n key: \"renderAxis\",\n\n /**\n * Draw axis\n * @param {Object} axisOptions The options of axis\n * @param {Object} element The axis element\n * @param {String} displayName The display name of axis\n * @param {Number} index The index of element\n * @return {ReactElement} The instance of x-axes\n */\n value: function renderAxis(axisOptions, element, displayName, index) {\n var _this$props5 = this.props,\n width = _this$props5.width,\n height = _this$props5.height;\n return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_20__cartesian_CartesianAxis__[\"a\" /* default */], _extends({}, axisOptions, {\n className: \"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: this.axesTicksGenerator\n }));\n }\n /**\n * Draw grid\n * @param {ReactElement} element the grid item\n * @return {ReactElement} The instance of grid\n */\n\n }, {\n key: \"renderLegend\",\n\n /**\n * Draw legend\n * @return {ReactElement} The instance of Legend\n */\n value: function renderLegend() {\n var _this6 = this;\n\n var formatedGraphicalItems = this.state.formatedGraphicalItems;\n var _this$props6 = this.props,\n children = _this$props6.children,\n width = _this$props6.width,\n height = _this$props6.height;\n var margin = this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n var props = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"u\" /* getLegendProps */])({\n children: children,\n formatedGraphicalItems: formatedGraphicalItems,\n legendWidth: legendWidth,\n legendHeight: legendHeight,\n legendContent: legendContent\n });\n\n if (!props) {\n return null;\n }\n\n var item = props.item,\n otherProps = _objectWithoutProperties(props, [\"item\"]);\n\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_react__[\"cloneElement\"])(item, _objectSpread({}, otherProps, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n ref: function ref(legend) {\n _this6.legendInstance = legend;\n },\n onBBoxUpdate: this.handleLegendBBoxUpdate\n }));\n }\n /**\n * Draw Tooltip\n * @return {ReactElement} The instance of Tooltip\n */\n\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n var children = this.props.children;\n var tooltipItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"f\" /* findChildByType */])(children, __WEBPACK_IMPORTED_MODULE_12__component_Tooltip__[\"a\" /* default */]);\n\n if (!tooltipItem) {\n return null;\n }\n\n var _this$state15 = this.state,\n isTooltipActive = _this$state15.isTooltipActive,\n activeCoordinate = _this$state15.activeCoordinate,\n activePayload = _this$state15.activePayload,\n activeLabel = _this$state15.activeLabel,\n offset = _this$state15.offset;\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_react__[\"cloneElement\"])(tooltipItem, {\n viewBox: _objectSpread({}, offset, {\n x: offset.left,\n y: offset.top\n }),\n active: isTooltipActive,\n label: activeLabel,\n payload: isTooltipActive ? activePayload : [],\n coordinate: activeCoordinate\n });\n }\n }, {\n key: \"renderActivePoints\",\n value: function renderActivePoints(_ref10) {\n var item = _ref10.item,\n activePoint = _ref10.activePoint,\n basePoint = _ref10.basePoint,\n childIndex = _ref10.childIndex,\n isRange = _ref10.isRange;\n var result = [];\n var key = item.props.key;\n var _item$item$props2 = item.item.props,\n activeDot = _item$item$props2.activeDot,\n dataKey = _item$item$props2.dataKey;\n\n var dotProps = _objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_24__util_ChartUtils__[\"n\" /* getMainColorOfGraphicItem */])(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value,\n key: \"\".concat(key, \"-activePoint-\").concat(childIndex)\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(activeDot), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"b\" /* filterEventAttributes */])(activeDot));\n\n result.push(this.constructor.renderActiveDot(activeDot, dotProps, childIndex));\n\n if (basePoint) {\n result.push(this.constructor.renderActiveDot(activeDot, _objectSpread({}, dotProps, {\n cx: basePoint.x,\n cy: basePoint.y,\n key: \"\".concat(key, \"-basePoint-\").concat(childIndex)\n }), childIndex));\n } else if (isRange) {\n result.push(null);\n }\n\n return result;\n }\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(\"defs\", null, __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(\"clipPath\", {\n id: clipPathId\n }, __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this7 = this;\n\n if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"j\" /* validateWidthHeight */])(this)) {\n return null;\n }\n\n var _this$props7 = this.props,\n children = _this$props7.children,\n className = _this$props7.className,\n width = _this$props7.width,\n height = _this$props7.height,\n style = _this$props7.style,\n compact = _this$props7.compact,\n others = _objectWithoutProperties(_this$props7, [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\"]);\n\n var attrs = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(others);\n var map = {\n CartesianGrid: {\n handler: this.renderGrid,\n once: true\n },\n ReferenceArea: {\n handler: this.renderReferenceElement\n },\n ReferenceLine: {\n handler: this.renderReferenceElement\n },\n ReferenceDot: {\n handler: this.renderReferenceElement\n },\n XAxis: {\n handler: this.renderXAxis\n },\n YAxis: {\n handler: this.renderYAxis\n },\n Brush: {\n handler: this.renderBrush,\n once: true\n },\n Bar: {\n handler: this.renderGraphicChild\n },\n Line: {\n handler: this.renderGraphicChild\n },\n Area: {\n handler: this.renderGraphicChild\n },\n Radar: {\n handler: this.renderGraphicChild\n },\n RadialBar: {\n handler: this.renderGraphicChild\n },\n Scatter: {\n handler: this.renderGraphicChild\n },\n Pie: {\n handler: this.renderGraphicChild\n },\n Funnel: {\n handler: this.renderGraphicChild\n },\n Tooltip: {\n handler: this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: this.renderPolarAxis\n },\n Customized: {\n handler: this.renderCustomized\n }\n }; // The \"compact\" mode is mainly used as the panorama within Brush\n\n if (compact) {\n return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__container_Surface__[\"a\" /* default */], _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"l\" /* renderByOrder */])(children, map));\n }\n\n var events = this.parseEventsOfWrapper();\n return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(\"div\", _extends({\n className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this7.container = node;\n }\n }), __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__container_Surface__[\"a\" /* default */], _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"l\" /* renderByOrder */])(children, map)), this.renderLegend(), this.renderTooltip());\n }\n }], [{\n key: \"getAxisNameByLayout\",\n value: function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n }\n }, {\n key: \"renderActiveDot\",\n value: function renderActiveDot(option, props) {\n var dot;\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_react__[\"isValidElement\"])(option)) {\n dot = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_react__[\"cloneElement\"])(option, props);\n } else if (__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(option)) {\n dot = option(props);\n } else {\n dot = __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_17__shape_Dot__[\"a\" /* default */], props);\n }\n\n return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__container_Layer__[\"a\" /* default */], {\n className: \"recharts-active-dot\",\n key: props.key\n }, dot);\n }\n }]);\n\n return CategoricalChartWrapper;\n }(__WEBPACK_IMPORTED_MODULE_7_react__[\"Component\"]);\n\n CategoricalChartWrapper.displayName = chartName;\n CategoricalChartWrapper.propTypes = _objectSpread({\n syncId: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number]),\n compact: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool,\n width: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number,\n data: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.object),\n layout: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOf(['horizontal', 'vertical']),\n stackOffset: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOf(['sign', 'expand', 'none', 'wiggle', 'silhouette']),\n throttleDelay: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number,\n margin: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.shape({\n top: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number,\n right: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number,\n bottom: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number,\n left: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number\n }),\n barCategoryGap: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string]),\n barGap: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string]),\n barSize: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string]),\n maxBarSize: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number,\n style: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.object,\n className: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string,\n children: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.node), __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.node]),\n defaultShowTooltip: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool,\n onClick: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func,\n onMouseLeave: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func,\n onMouseEnter: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func,\n onMouseMove: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func,\n onMouseDown: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func,\n onMouseUp: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func,\n reverseStackOrder: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool,\n id: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string\n }, propTypes);\n CategoricalChartWrapper.defaultProps = _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false\n }, defaultProps);\n\n CategoricalChartWrapper.createDefaultState = function (props) {\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"f\" /* findChildByType */])(children, __WEBPACK_IMPORTED_MODULE_21__cartesian_Brush__[\"a\" /* default */]);\n var startIndex = brushItem && brushItem.props && brushItem.props.startIndex || 0;\n var endIndex = brushItem && brushItem.props && brushItem.props.endIndex || props.data && props.data.length - 1 || 0;\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: !__WEBPACK_IMPORTED_MODULE_6_lodash_isNil___default()(defaultShowTooltip) ? defaultShowTooltip : false\n };\n };\n\n CategoricalChartWrapper.hasBar = function (graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n\n return graphicalItems.some(function (item) {\n var name = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_ReactUtils__[\"k\" /* getDisplayName */])(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n };\n\n CategoricalChartWrapper.getDisplayedData = function (props, _ref11, item) {\n var graphicalItems = _ref11.graphicalItems,\n dataStartIndex = _ref11.dataStartIndex,\n dataEndIndex = _ref11.dataEndIndex;\n var itemsData = (graphicalItems || []).reduce(function (result, child) {\n var itemData = child.props.data;\n\n if (itemData && itemData.length) {\n return _toConsumableArray(result).concat(_toConsumableArray(itemData));\n }\n\n return result;\n }, []);\n\n if (itemsData && itemsData.length > 0) {\n return itemsData;\n }\n\n if (item && item.props && item.props.data && item.props.data.length > 0) {\n return item.props.data;\n }\n\n var data = props.data;\n\n if (data && data.length && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"a\" /* isNumber */])(dataStartIndex) && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_23__util_DataUtils__[\"a\" /* isNumber */])(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n\n return [];\n };\n\n return CategoricalChartWrapper;\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (generateCategoricalChart);\n\n/***/ }),\n/* 38 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isObject__ = __webpack_require__(21);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isObject___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isObject__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isNil__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_isNil__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_last__ = __webpack_require__(372);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_last___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_lodash_last__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_isArray__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_isArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_lodash_isArray__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Label__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__util_ChartUtils__ = __webpack_require__(16);\n\n\n\n\n\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\n\n\n\n\nvar propTypes = {\n id: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n data: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object),\n valueAccessor: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func,\n clockWise: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool,\n dataKey: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func])\n};\nvar defaultProps = {\n valueAccessor: function valueAccessor(entry) {\n return __WEBPACK_IMPORTED_MODULE_4_lodash_isArray___default()(entry.value) ? __WEBPACK_IMPORTED_MODULE_3_lodash_last___default()(entry.value) : entry.value;\n }\n};\n\nfunction LabelList(props) {\n var data = props.data,\n valueAccessor = props.valueAccessor,\n dataKey = props.dataKey,\n clockWise = props.clockWise,\n id = props.id,\n others = _objectWithoutProperties(props, [\"data\", \"valueAccessor\", \"dataKey\", \"clockWise\", \"id\"]);\n\n if (!data || !data.length) {\n return null;\n }\n\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = __WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default()(dataKey) ? valueAccessor(entry, index) : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_ChartUtils__[\"o\" /* getValueByDataKey */])(entry && entry.payload, dataKey);\n var idProps = __WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default()(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__Label__[\"a\" /* default */], _extends({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(entry), others, idProps, {\n index: index,\n value: value,\n viewBox: __WEBPACK_IMPORTED_MODULE_7__Label__[\"a\" /* default */].parseViewBox(__WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default()(clockWise) ? entry : _objectSpread({}, entry, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index)\n }));\n }));\n}\n\nLabelList.propTypes = propTypes;\nLabelList.displayName = 'LabelList';\n\nvar parseLabelList = function parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n\n if (__WEBPACK_IMPORTED_MODULE_5_react___default.a.isValidElement(label) || __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default()(label)) {\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n\n if (__WEBPACK_IMPORTED_MODULE_0_lodash_isObject___default()(label)) {\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n\n return null;\n};\n\nvar renderCallByParent = function renderCallByParent(parentProps, data) {\n var ckeckPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && ckeckPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var explicitChilren = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"h\" /* findAllByType */])(children, LabelList).map(function (child, index) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5_react__[\"cloneElement\"])(child, {\n data: data,\n key: \"labelList-\".concat(index)\n });\n });\n\n if (!ckeckPropsLabel) {\n return explicitChilren;\n }\n\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChilren));\n};\n\nLabelList.renderCallByParent = renderCallByParent;\nLabelList.defaultProps = defaultProps;\n/* harmony default export */ __webpack_exports__[\"a\"] = (LabelList);\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports) {\n\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\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(8), __webpack_require__(155)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, ClientAppSettings_1, Environment_1) {\r\n function botDirectoryLink(bot) {\r\n return '/';\r\n }\r\n exports.botDirectoryLink = botDirectoryLink;\r\n function botEditLink(bot) {\r\n return \"/bots/edit?id=\" + encodeURIComponent(bot.Id);\r\n }\r\n exports.botEditLink = botEditLink;\r\n function botViewLink(bot) {\r\n return \"/bots?id=\" + encodeURIComponent(bot.Id);\r\n }\r\n exports.botViewLink = botViewLink;\r\n function getAzureIbizaBotUrl(subscriptionId, resourceGroupName, botId) {\r\n var url = Environment_1.Environment.azurePortalUrl() + \"?\";\r\n var envQSParams = getAzureIbizaBotEnvironmentQSParameters();\r\n if (envQSParams) {\r\n url += envQSParams;\r\n }\r\n return url + \"#resource/subscriptions/\" + subscriptionId + \"/resourceGroups/\" + resourceGroupName + \"/providers/Microsoft.BotService/botServices/\" + botId;\r\n }\r\n exports.getAzureIbizaBotUrl = getAzureIbizaBotUrl;\r\n function getAzureIbizaBotEnvironmentQSParameters() {\r\n var env = (ClientAppSettings_1.clientAppSettings.environment).toLowerCase();\r\n switch (env) {\r\n case \"scratch\":\r\n case \"ppe\":\r\n case \"usgovppe\":\r\n return \"Microsoft_Azure_BotService_env=\" + env + \"&feature.showassettypes=Microsoft_Azure_BotService_BotService&feature.canmodifystamps=true&Microsoft_Azure_BotService=friendName\";\r\n case \"usgovprd\":\r\n default:\r\n return \"\";\r\n }\r\n }\r\n function relativeUrl(location) {\r\n return \"\" + location.pathname + location.search;\r\n }\r\n exports.relativeUrl = relativeUrl;\r\n function getSignInUrl() {\r\n var path = relativeUrl(window.location);\r\n var paramValue = encodeURIComponent(path);\r\n return \"/identity/signin?requestUrl=\" + paramValue;\r\n }\r\n exports.getSignInUrl = getSignInUrl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = identity;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = copy;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = transformer;\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = continuous;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__ = __webpack_require__(578);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__array__ = __webpack_require__(49);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constant__ = __webpack_require__(589);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__number__ = __webpack_require__(317);\n\n\n\n\n\n\nvar unit = [0, 1];\n\nfunction identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__constant__[\"a\" /* default */])(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(domain) {\n var a = domain[0], b = domain[domain.length - 1], t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"b\" /* bisect */])(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nfunction copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nfunction transformer() {\n var domain = unit,\n range = unit,\n interpolate = __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__[\"a\" /* interpolate */],\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__[\"b\" /* interpolateNumber */])))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = __WEBPACK_IMPORTED_MODULE_2__array__[\"a\" /* map */].call(_, __WEBPACK_IMPORTED_MODULE_4__number__[\"a\" /* default */]), clamp === identity || (clamp = clamper(domain)), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = __WEBPACK_IMPORTED_MODULE_2__array__[\"b\" /* slice */].call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = __WEBPACK_IMPORTED_MODULE_2__array__[\"b\" /* slice */].call(_), interpolate = __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__[\"c\" /* interpolateRound */], rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? clamper(domain) : identity, scale) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nfunction continuous(transform, untransform) {\n return transformer()(transform, untransform);\n}\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(66),\n getRawTag = __webpack_require__(717),\n objectToString = __webpack_require__(745);\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayLikeKeys = __webpack_require__(348),\n baseKeys = __webpack_require__(675),\n isArrayLike = __webpack_require__(54);\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/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\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 */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isObject__ = __webpack_require__(21);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isObject___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isObject__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isNil__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_isNil__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Text__ = __webpack_require__(55);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__util_PolarUtils__ = __webpack_require__(30);\n\n\n\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n\nvar cartesianViewBoxShape = __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.shape({\n x: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n width: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number\n});\nvar polarViewBoxShape = __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.shape({\n cx: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n cy: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n innerRadius: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n outerRadius: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n startAngle: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n endAngle: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number\n});\n\nvar propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], {\n viewBox: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([cartesianViewBoxShape, polarViewBoxShape]),\n formatter: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func,\n value: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string]),\n offset: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n position: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(['top', 'left', 'right', 'bottom', 'inside', 'outside', 'insideLeft', 'insideRight', 'insideTop', 'insideBottom', 'insideTopLeft', 'insideBottomLeft', 'insideTopRight', 'insideBottomRight', 'insideStart', 'insideEnd', 'end', 'center', 'centerTop', 'centerBottom']),\n children: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.node), __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.node]),\n className: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string,\n content: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func])\n});\n\nvar defaultProps = {\n offset: 5\n};\n\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = __WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default()(props.children) ? value : props.children;\n\n if (__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default()(formatter)) {\n return formatter(label);\n }\n\n return label;\n};\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"g\" /* mathSign */])(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\n\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var cx = viewBox.cx,\n cy = viewBox.cy,\n innerRadius = viewBox.innerRadius,\n outerRadius = viewBox.outerRadius,\n startAngle = viewBox.startAngle,\n endAngle = viewBox.endAngle,\n clockWise = viewBox.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, radius, labelAngle);\n var endPoint = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = __WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default()(labelProps.id) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"d\" /* uniqueId */])('recharts-radial-line-') : labelProps.id;\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: __WEBPACK_IMPORTED_MODULE_5_classnames___default()('recharts-radial-bar-label', className)\n }), __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(\"defs\", null, __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(\"path\", {\n id: id,\n d: path\n })), __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\n\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var cx = viewBox.cx,\n cy = viewBox.cy,\n innerRadius = viewBox.innerRadius,\n outerRadius = viewBox.outerRadius,\n startAngle = viewBox.startAngle,\n endAngle = viewBox.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n\n if (position === 'outside') {\n var _polarToCartesian = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n\n var r = (innerRadius + outerRadius) / 2;\n\n var _polarToCartesian2 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\n\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sign = height >= 0 ? 1 : -1;\n\n if (position === 'top') {\n return {\n x: x + width / 2,\n y: y - sign * offset,\n textAnchor: 'middle',\n verticalAnchor: sign > 0 ? 'end' : 'start'\n };\n }\n\n if (position === 'bottom') {\n return {\n x: x + width / 2,\n y: y + height + sign * offset,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'left') {\n return {\n x: x - offset,\n y: y + height / 2,\n textAnchor: 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'right') {\n return {\n x: x + width + offset,\n y: y + height / 2,\n textAnchor: 'start',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'insideLeft') {\n return {\n x: x + offset,\n y: y + height / 2,\n textAnchor: 'start',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'insideRight') {\n return {\n x: x + width - offset,\n y: y + height / 2,\n textAnchor: 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'insideTop') {\n return {\n x: x + width / 2,\n y: y + sign * offset,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'insideBottom') {\n return {\n x: x + width / 2,\n y: y + height - sign * offset,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n\n if (position === 'insideTopLeft') {\n return {\n x: x + offset,\n y: y + sign * offset,\n textAnchor: 'start',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'insideTopRight') {\n return {\n x: x + width - offset,\n y: y + sign * offset,\n textAnchor: 'end',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'insideBottomLeft') {\n return {\n x: x + offset,\n y: y + height - sign * offset,\n textAnchor: 'start',\n verticalAnchor: 'end'\n };\n }\n\n if (position === 'insideBottomRight') {\n return {\n x: x + width - offset,\n y: y + height - sign * offset,\n textAnchor: 'end',\n verticalAnchor: 'end'\n };\n }\n\n if (__WEBPACK_IMPORTED_MODULE_0_lodash_isObject___default()(position) && (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"a\" /* isNumber */])(position.x) || __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"k\" /* isPercent */])(position.x)) && (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"a\" /* isNumber */])(position.y) || __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"k\" /* isPercent */])(position.y))) {\n return {\n x: x + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"h\" /* getPercentValue */])(position.x, width),\n y: y + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"h\" /* getPercentValue */])(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n };\n }\n\n return {\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\n\nvar isPolar = function isPolar(viewBox) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"a\" /* isNumber */])(viewBox.cx);\n};\n\nfunction Label(props) {\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className;\n\n if (!viewBox || __WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default()(value) && __WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default()(children) && !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_react__[\"isValidElement\"])(content) && !__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default()(content)) {\n return null;\n }\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_react__[\"isValidElement\"])(content)) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_react__[\"cloneElement\"])(content, props);\n }\n\n var label;\n\n if (__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default()(content)) {\n label = content(props);\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_react__[\"isValidElement\"])(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n\n var isPolarLabel = isPolar(viewBox);\n var attrs = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(props);\n\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__Text__[\"a\" /* default */], _extends({\n className: __WEBPACK_IMPORTED_MODULE_5_classnames___default()('recharts-label', className)\n }, attrs, positionAttrs), label);\n}\n\nLabel.displayName = 'Label';\nLabel.defaultProps = defaultProps;\nLabel.propTypes = propTypes;\n\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise;\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"a\" /* isNumber */])(width) && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"a\" /* isNumber */])(height)) {\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"a\" /* isNumber */])(x) && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"a\" /* isNumber */])(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"a\" /* isNumber */])(top) && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"a\" /* isNumber */])(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"a\" /* isNumber */])(x) && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"a\" /* isNumber */])(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"a\" /* isNumber */])(cx) && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"a\" /* isNumber */])(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n\n if (props.viewBox) {\n return props.viewBox;\n }\n\n return {};\n};\n\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"f\" /* isNumOrStr */])(label)) {\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_react__[\"isValidElement\"])(label)) {\n if (label.type === Label) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_react__[\"cloneElement\"])(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default()(label)) {\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (__WEBPACK_IMPORTED_MODULE_0_lodash_isObject___default()(label)) {\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n\n return null;\n};\n\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var ckeckPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && ckeckPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChilren = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__[\"h\" /* findAllByType */])(children, Label).map(function (child, index) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_react__[\"cloneElement\"])(child, {\n viewBox: viewBox || parentViewBox,\n key: \"label-\".concat(index)\n });\n });\n\n if (!ckeckPropsLabel) {\n return explicitChilren;\n }\n\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChilren));\n};\n\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;\n/* harmony default export */ __webpack_exports__[\"a\"] = (Label);\n\n/***/ }),\n/* 45 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return formatAxisMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return rectWithPoints; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return rectWithCoords; });\n/* unused harmony export ScaleHelper */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return LabeledScaleHelper; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_every__ = __webpack_require__(370);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_every___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_every__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_mapValues__ = __webpack_require__(772);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_mapValues___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_mapValues__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ChartUtils__ = __webpack_require__(16);\n\n\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nvar formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var range, x, y, needSpace;\n\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0), offset.left + offset.width - (padding.right || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0), offset.top + offset.height - (padding.bottom || 0)];\n } else {\n range = axis.range;\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n\n var _parseScale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__ChartUtils__[\"v\" /* parseScale */])(axis, chartName),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n\n scale.domain(domain).range(range);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__ChartUtils__[\"w\" /* checkDomainOfScale */])(scale);\n var ticks = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__ChartUtils__[\"x\" /* getTicksOfScale */])(scale, _objectSpread({}, axis, {\n realScaleType: realScaleType\n }));\n\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n\n var finalAxis = _objectSpread({}, axis, ticks, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n\n finalAxis.bandSize = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__ChartUtils__[\"c\" /* getBandSizeOfAxis */])(finalAxis, ticks);\n\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n\n return _objectSpread({}, result, _defineProperty({}, id, finalAxis));\n }, {});\n};\nvar rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\n\nvar rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nvar ScaleHelper =\n/*#__PURE__*/\nfunction () {\n _createClass(ScaleHelper, null, [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n\n this.scale = scale;\n }\n\n _createClass(ScaleHelper, [{\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware;\n\n if (value === undefined) {\n return undefined;\n }\n\n if (bandAware) {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }, {\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }]);\n\n return ScaleHelper;\n}();\nScaleHelper.EPS = 1e-4;\nvar LabeledScaleHelper =\n/*#__PURE__*/\nfunction () {\n _createClass(LabeledScaleHelper, null, [{\n key: \"create\",\n value: function create(obj) {\n return new this(obj);\n }\n }]);\n\n function LabeledScaleHelper(scales) {\n _classCallCheck(this, LabeledScaleHelper);\n\n this.scales = __WEBPACK_IMPORTED_MODULE_1_lodash_mapValues___default()(scales, ScaleHelper.create);\n Object.assign(this, this.scales);\n }\n\n _createClass(LabeledScaleHelper, [{\n key: \"apply\",\n value: function apply(coords) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware;\n\n var scales = this.scales;\n return __WEBPACK_IMPORTED_MODULE_1_lodash_mapValues___default()(coords, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware\n });\n });\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(coords) {\n var scales = this.scales;\n return __WEBPACK_IMPORTED_MODULE_0_lodash_every___default()(coords, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n }]);\n\n return LabeledScaleHelper;\n}();\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports) {\n\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n var Scheme;\r\n (function (Scheme) {\r\n Scheme[Scheme[\"http\"] = 0] = \"http\";\r\n Scheme[Scheme[\"https\"] = 1] = \"https\";\r\n })(Scheme = exports.Scheme || (exports.Scheme = {}));\r\n var urlregex = /^(http:\\/\\/|https:\\/\\/)([^:\\/]+)(:[0-9]+){0,1}(\\/[^?]*){0,1}(\\?[^#]*){0,1}/;\r\n function parseUrl(url) {\r\n var matches = urlregex.exec(url);\r\n if (matches) {\r\n var schemestring = matches[1].substr(0, matches[1].length - 3);\r\n var host = matches[2];\r\n var port = matches[3];\r\n return {\r\n scheme: Scheme[schemestring],\r\n hostname: matches[2],\r\n port: matches[3] ? parseInt(matches[3].substr(1)) : undefined,\r\n path: matches[4],\r\n query: matches[5] ? parseQuery(matches[5].substr(1)) : undefined,\r\n format: function () { return formatUrl(this); }\r\n };\r\n }\r\n return null;\r\n }\r\n exports.parseUrl = parseUrl;\r\n function parseQuery(query) {\r\n if (!query)\r\n return undefined;\r\n return _.object(_.map(query.split('&'), function (exp) {\r\n return _.map(exp.split(/=(.+)?/, 2), function (v, i) { return i === 0 ? v : decodeURIComponent(v); });\r\n }));\r\n }\r\n exports.parseQuery = parseQuery;\r\n function formatUrl(url) {\r\n var querystring = '';\r\n if (url.query) {\r\n querystring = \"?\" + (_.isString(url.query) ? url.query : _.map(url.query, function (val, name) {\r\n return name + \"=\" + encodeURIComponent(val);\r\n }).join('&'));\r\n }\r\n var schemestring = _.isString(url.scheme) ? url.scheme : Scheme[url.scheme];\r\n return schemestring + \"://\" + url.hostname + (_.isUndefined(url.port) ? '' : ':' + url.port) + (url.path || '') + querystring;\r\n }\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return map; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return slice; });\nvar array = Array.prototype;\n\nvar map = array.map;\nvar slice = array.slice;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = linearish;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = linear;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__continuous__ = __webpack_require__(41);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__init__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__tickFormat__ = __webpack_require__(320);\n\n\n\n\n\nfunction linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"c\" /* ticks */])(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__tickFormat__[\"a\" /* default */])(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"d\" /* tickIncrement */])(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"d\" /* tickIncrement */])(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"d\" /* tickIncrement */])(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nfunction linear() {\n var scale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__continuous__[\"d\" /* default */])(__WEBPACK_IMPORTED_MODULE_1__continuous__[\"a\" /* identity */], __WEBPACK_IMPORTED_MODULE_1__continuous__[\"a\" /* identity */]);\n\n scale.copy = function() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__continuous__[\"c\" /* copy */])(scale, linear());\n };\n\n __WEBPACK_IMPORTED_MODULE_2__init__[\"b\" /* initRange */].apply(scale, arguments);\n\n return linearish(scale);\n}\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return function constant() {\n return x;\n };\n});\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsNative = __webpack_require__(672),\n getValue = __webpack_require__(718);\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 = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isFunction = __webpack_require__(9),\n isLength = __webpack_require__(210);\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isNil__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isNil___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isNil__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_reduce_css_calc__ = __webpack_require__(943);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_reduce_css_calc___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_reduce_css_calc__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__util_DOMUtils__ = __webpack_require__(145);\n\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\n\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\n\nvar calculateWordWidths = function calculateWordWidths(props) {\n try {\n var words = !__WEBPACK_IMPORTED_MODULE_0_lodash_isNil___default()(props.children) ? props.children.toString().split(BREAKING_SPACES) : [];\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__util_DOMUtils__[\"c\" /* getStringSize */])(word, props.style).width\n };\n });\n var spaceWidth = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__util_DOMUtils__[\"c\" /* getStringSize */])(\"\\xA0\", props.style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\n\nvar Text =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Text, _Component);\n\n function Text() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Text);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Text)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n wordsByLines: []\n };\n return _this;\n }\n\n _createClass(Text, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this.updateWordsByLines(this.props, true);\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var needCalculate = this.props.children !== nextProps.children || this.props.style !== nextProps.style;\n this.updateWordsByLines(nextProps, needCalculate);\n }\n }, {\n key: \"updateWordsByLines\",\n value: function updateWordsByLines(props, needCalculate) {\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((props.width || props.scaleToFit) && !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_ReactUtils__[\"m\" /* isSsr */])()) {\n if (needCalculate) {\n var wordWidths = calculateWordWidths(props);\n\n if (wordWidths) {\n var wordsWithComputedWidth = wordWidths.wordsWithComputedWidth,\n spaceWidth = wordWidths.spaceWidth;\n this.wordsWithComputedWidth = wordsWithComputedWidth;\n this.spaceWidth = spaceWidth;\n } else {\n this.updateWordsWithoutCalculate(props);\n return;\n }\n }\n\n var wordsByLines = this.calculateWordsByLines(this.wordsWithComputedWidth, this.spaceWidth, props.width);\n this.setState({\n wordsByLines: wordsByLines\n });\n } else {\n this.updateWordsWithoutCalculate(props);\n }\n }\n }, {\n key: \"updateWordsWithoutCalculate\",\n value: function updateWordsWithoutCalculate(props) {\n var words = !__WEBPACK_IMPORTED_MODULE_0_lodash_isNil___default()(props.children) ? props.children.toString().split(BREAKING_SPACES) : [];\n this.setState({\n wordsByLines: [{\n words: words\n }]\n });\n }\n }, {\n key: \"calculateWordsByLines\",\n value: function calculateWordsByLines(wordsWithComputedWidth, spaceWidth, lineWidth) {\n var scaleToFit = this.props.scaleToFit;\n return (wordsWithComputedWidth || []).reduce(function (result, _ref) {\n var word = _ref.word,\n width = _ref.width;\n var currentLine = result[result.length - 1];\n\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < lineWidth)) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n\n return result;\n }, []);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n dx = _this$props.dx,\n dy = _this$props.dy,\n textAnchor = _this$props.textAnchor,\n verticalAnchor = _this$props.verticalAnchor,\n scaleToFit = _this$props.scaleToFit,\n angle = _this$props.angle,\n lineHeight = _this$props.lineHeight,\n capHeight = _this$props.capHeight,\n className = _this$props.className,\n textProps = _objectWithoutProperties(_this$props, [\"dx\", \"dy\", \"textAnchor\", \"verticalAnchor\", \"scaleToFit\", \"angle\", \"lineHeight\", \"capHeight\", \"className\"]);\n\n var wordsByLines = this.state.wordsByLines;\n\n if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_DataUtils__[\"f\" /* isNumOrStr */])(textProps.x) || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_DataUtils__[\"f\" /* isNumOrStr */])(textProps.y)) {\n return null;\n }\n\n var x = textProps.x + (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_DataUtils__[\"a\" /* isNumber */])(dx) ? dx : 0);\n var y = textProps.y + (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_DataUtils__[\"a\" /* isNumber */])(dy) ? dy : 0);\n var startDy;\n\n switch (verticalAnchor) {\n case 'start':\n startDy = __WEBPACK_IMPORTED_MODULE_3_reduce_css_calc___default()(\"calc(\".concat(capHeight, \")\"));\n break;\n\n case 'middle':\n startDy = __WEBPACK_IMPORTED_MODULE_3_reduce_css_calc___default()(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n\n default:\n startDy = __WEBPACK_IMPORTED_MODULE_3_reduce_css_calc___default()(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n\n var transforms = [];\n\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n transforms.push(\"scale(\".concat(this.props.width / lineWidth, \")\"));\n }\n\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\"text\", _extends({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(textProps), {\n x: x,\n y: y,\n className: __WEBPACK_IMPORTED_MODULE_4_classnames___default()('recharts-text', className),\n textAnchor: textAnchor\n }), wordsByLines.map(function (line, index) {\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: index\n }, line.words.join(' '));\n }));\n }\n }]);\n\n return Text;\n}(__WEBPACK_IMPORTED_MODULE_1_react__[\"Component\"]);\n\nText.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_6__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], {\n scaleToFit: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool,\n angle: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n textAnchor: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOf(['start', 'middle', 'end', 'inherit']),\n verticalAnchor: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOf(['start', 'middle', 'end']),\n style: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object\n});\nText.defaultProps = {\n x: 0,\n y: 0,\n lineHeight: '1em',\n capHeight: '0.71em',\n // Magic number from d3\n scaleToFit: false,\n textAnchor: 'start',\n verticalAnchor: 'end' // Maintain compat with existing charts / default SVG behavior\n\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = (Text);\n\n/***/ }),\n/* 56 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__ = __webpack_require__(2);\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Dot\n */\n\n\n\n\n\n\nvar Dot = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Dot, _Component);\n\n function Dot() {\n _classCallCheck(this, Dot);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Dot).apply(this, arguments));\n }\n\n _createClass(Dot, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n r = _this$props.r,\n className = _this$props.className;\n var layerClass = __WEBPACK_IMPORTED_MODULE_2_classnames___default()('recharts-dot', className);\n\n if (cx === +cx && cy === +cy && r === +r) {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"circle\", _extends({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__[\"b\" /* filterEventAttributes */])(this.props, null, true), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n\n return null;\n }\n }]);\n\n return Dot;\n}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]), _class2.displayName = 'Dot', _class2.propTypes = {\n className: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n cx: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n cy: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n r: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Dot);\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports) {\n\nmodule.exports = jQuery;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n var HeaderKind;\r\n (function (HeaderKind) {\r\n HeaderKind[HeaderKind[\"None\"] = 1] = \"None\";\r\n HeaderKind[HeaderKind[\"Small\"] = 2] = \"Small\";\r\n HeaderKind[HeaderKind[\"Jumbo\"] = 3] = \"Jumbo\";\r\n })(HeaderKind = exports.HeaderKind || (exports.HeaderKind = {}));\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(158), __webpack_require__(8)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, botResourceId_1, ClientAppSettings_1) {\r\n var BladeType;\r\n (function (BladeType) {\r\n BladeType[BladeType[\"_none\"] = 0] = \"_none\";\r\n BladeType[BladeType[\"continuousIntegration\"] = 1] = \"continuousIntegration\";\r\n BladeType[BladeType[\"webConfig\"] = 2] = \"webConfig\";\r\n BladeType[BladeType[\"appSettings\"] = 3] = \"appSettings\";\r\n BladeType[BladeType[\"functionEditor\"] = 4] = \"functionEditor\";\r\n BladeType[BladeType[\"createAbs\"] = 5] = \"createAbs\";\r\n })(BladeType = exports.BladeType || (exports.BladeType = {}));\r\n function getEnvQuery() {\r\n var env = ClientAppSettings_1.clientAppSettings.environment.toLowerCase();\r\n switch (env) {\r\n case 'scratch':\r\n case 'ppe':\r\n return \"?appsvc.bots.env=\" + env;\r\n default:\r\n return '';\r\n }\r\n }\r\n function getAzurePortalBladeUrl(bot, domainName, bladType) {\r\n var portalHostName = domainName === 'microsoft.onmicrosoft.com' ? 'ms.portal.azure.com' : 'portal.azure.com';\r\n var azureDomainRoot = \"https://\" + portalHostName + \"/\" + (domainName ? \"signin/index/@\" + domainName : \"\") + \"/\" + getEnvQuery();\r\n var siteBladeUrl = azureDomainRoot + \"#resource\" + botResourceId_1.default(bot);\r\n switch (bladType) {\r\n case BladeType.continuousIntegration:\r\n return siteBladeUrl + \"/DeploymentSource\";\r\n case BladeType.webConfig:\r\n return siteBladeUrl + \"/application\";\r\n case BladeType.createAbs:\r\n return \"https://portal.azure.com/\" + getEnvQuery() + \"#create/Microsoft.BotApp\";\r\n case BladeType.appSettings:\r\n default:\r\n return siteBladeUrl;\r\n }\r\n }\r\n exports.getAzurePortalBladeUrl = getAzurePortalBladeUrl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(259), __webpack_require__(469), __webpack_require__(110), __webpack_require__(160), __webpack_require__(260), __webpack_require__(161), __webpack_require__(261), __webpack_require__(263), __webpack_require__(162), __webpack_require__(264), __webpack_require__(81), __webpack_require__(265), __webpack_require__(266), __webpack_require__(473), __webpack_require__(267), __webpack_require__(268), __webpack_require__(269), __webpack_require__(475), __webpack_require__(271), __webpack_require__(163), __webpack_require__(272), __webpack_require__(273), __webpack_require__(164), __webpack_require__(262), __webpack_require__(165), __webpack_require__(471), __webpack_require__(474), __webpack_require__(472)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, AnalyticsDashboard_1, AzurePortalPage_1, BotAppContinuousIntegration_1, BotAppSettings_1, BotChannelConfig_1, BotChannels_1, BotCodeEditor_1, BotCreateSwitch_1, BotEditor_1, BotEditorRow_1, BotPage_1, BotPageBody_1, BotPageHeader_1, BotSettingsTab_1, BotsPage_1, ChevronDropdownControl_1, CompactDropdownControl_1, EmptyBotPage_1, MasterPage_1, MasterPageHeader_1, RejectionDetailsPanel_1, TabControl_1, WebChat_1, BotCodeSetup_1, index_1, BotMigrationDialog_1, BotsPageRow_1, BotOpenComposer_1) {\r\n function __export(m) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n }\r\n __export(AnalyticsDashboard_1);\r\n __export(AzurePortalPage_1);\r\n __export(BotAppContinuousIntegration_1);\r\n __export(BotAppSettings_1);\r\n __export(BotChannelConfig_1);\r\n __export(BotChannels_1);\r\n __export(BotCodeEditor_1);\r\n __export(BotCreateSwitch_1);\r\n __export(BotEditor_1);\r\n __export(BotEditorRow_1);\r\n __export(BotPage_1);\r\n __export(BotPageBody_1);\r\n __export(BotPageHeader_1);\r\n __export(BotSettingsTab_1);\r\n __export(BotsPage_1);\r\n __export(ChevronDropdownControl_1);\r\n __export(CompactDropdownControl_1);\r\n __export(EmptyBotPage_1);\r\n __export(MasterPage_1);\r\n __export(MasterPageHeader_1);\r\n __export(RejectionDetailsPanel_1);\r\n __export(TabControl_1);\r\n __export(WebChat_1);\r\n __export(BotCodeSetup_1);\r\n __export(index_1);\r\n __export(BotMigrationDialog_1);\r\n __export(BotsPageRow_1);\r\n __export(BotOpenComposer_1);\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n var Logger = (function () {\r\n function Logger() {\r\n }\r\n Logger.prototype.debug = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n try {\r\n console.log.apply(console, args);\r\n }\r\n catch (ignored) {\r\n }\r\n };\r\n return Logger;\r\n }());\r\n var _logger = new Logger();\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = _logger;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React) {\r\n var ProgressRingControl = (function (_super) {\r\n __extends(ProgressRingControl, _super);\r\n function ProgressRingControl(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n ProgressRingControl.prototype.componentDidMount = function () {\r\n if (this.props.onMounted) {\r\n this.props.onMounted(this.div);\r\n }\r\n };\r\n ProgressRingControl.prototype.componentWillUnmount = function () {\r\n if (this.props.onUnmount) {\r\n this.props.onUnmount(this.div);\r\n }\r\n };\r\n ProgressRingControl.prototype.render = function () {\r\n var _this = this;\r\n return (React.createElement(\"div\", { className: \"progress-ring \" + (this.props.className || ''), ref: function (x) { return _this.div = x; } },\r\n React.createElement(\"div\", { className: \"progress-circle\" }),\r\n React.createElement(\"div\", { className: \"progress-circle\" }),\r\n React.createElement(\"div\", { className: \"progress-circle\" }),\r\n React.createElement(\"div\", { className: \"progress-circle\" }),\r\n React.createElement(\"div\", { className: \"progress-circle\" })));\r\n };\r\n return ProgressRingControl;\r\n }(React.Component));\r\n exports.ProgressRingControl = ProgressRingControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n});\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__color__ = __webpack_require__(174);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return __WEBPACK_IMPORTED_MODULE_0__color__[\"h\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return __WEBPACK_IMPORTED_MODULE_0__color__[\"g\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return __WEBPACK_IMPORTED_MODULE_0__color__[\"f\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__lab__ = __webpack_require__(562);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_1__lab__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_1__lab__[\"a\"]; });\n/* unused harmony reexport lch */\n/* unused harmony reexport gray */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__cubehelix__ = __webpack_require__(561);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_2__cubehelix__[\"a\"]; });\n\n\n\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = hue;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = gamma;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = nogamma;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constant__ = __webpack_require__(310);\n\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nfunction hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(isNaN(a) ? b : a);\n}\n\nfunction gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(isNaN(a) ? b : a);\n };\n}\n\nfunction nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(isNaN(a) ? b : a);\n}\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar root = __webpack_require__(28);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports) {\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\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 == null ? 0 : 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/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar assignValue = __webpack_require__(350),\n baseAssignValue = __webpack_require__(194);\n\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 identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGet = __webpack_require__(125);\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(42),\n isObjectLike = __webpack_require__(29);\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util_ReactUtils__ = __webpack_require__(2);\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview X Axis\n */\n\n\n\n\n\nvar XAxis = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(XAxis, _Component);\n\n function XAxis() {\n _classCallCheck(this, XAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(XAxis).apply(this, arguments));\n }\n\n _createClass(XAxis, [{\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return XAxis;\n}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]), _class2.displayName = 'XAxis', _class2.propTypes = {\n allowDecimals: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n allowDuplicatedCategory: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n hide: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n // The name of data displayed in the axis\n name: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number]),\n // The unit of data displayed in the axis\n unit: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number]),\n // The unique id of x-axis\n xAxisId: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number]),\n domain: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['auto', 'dataMin', 'dataMax'])])),\n // The key of data displayed in the axis\n dataKey: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func]),\n // The width of axis which is usually calculated internally\n width: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n // The height of axis, which need to be setted by user\n height: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n mirror: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n // The orientation of axis\n orientation: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['top', 'bottom']),\n type: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['number', 'category']),\n // Ticks can be any type when the axis is the type of category\n // Ticks must be numbers when the axis is the type of number\n ticks: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.array,\n // The count of ticks\n tickCount: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n // The formatter function of tick\n tickFormatter: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,\n padding: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n left: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n right: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number\n }),\n allowDataOverflow: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n scale: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_3__util_ReactUtils__[\"r\" /* SCALE_TYPES */]), __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func]),\n tick: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.element]),\n axisLine: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object]),\n tickLine: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object]),\n minTickGap: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n tickSize: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n interval: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['preserveStart', 'preserveEnd', 'preserveStartEnd'])]),\n reversed: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool\n}, _class2.defaultProps = {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n domain: [0, 'auto'],\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (XAxis);\n\n/***/ }),\n/* 72 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util_PureRender__ = __webpack_require__(3);\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Y Axis\n */\n\n\n\n\nvar YAxis = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(YAxis, _Component);\n\n function YAxis() {\n _classCallCheck(this, YAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(YAxis).apply(this, arguments));\n }\n\n _createClass(YAxis, [{\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return YAxis;\n}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]), _class2.displayName = 'YAxis', _class2.propTypes = {\n allowDecimals: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n allowDuplicatedCategory: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n hide: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n // The name of data displayed in the axis\n name: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number]),\n // The unit of data displayed in the axis\n unit: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number]),\n // The unique id of y-axis\n yAxisId: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number]),\n domain: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['auto', 'dataMin', 'dataMax'])])),\n // The key of data displayed in the axis\n dataKey: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func]),\n // Ticks can be any type when the axis is the type of category\n // Ticks must be numbers when the axis is the type of number\n ticks: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.array,\n // The count of ticks\n tickCount: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n // The formatter function of tick\n tickFormatter: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,\n // The width of axis, which need to be setted by user\n width: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n // The height of axis which is usually calculated in Chart\n height: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n mirror: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n // The orientation of axis\n orientation: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['left', 'right']),\n type: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['number', 'category']),\n padding: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n top: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n bottom: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number\n }),\n allowDataOverflow: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n scale: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold']), __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func]),\n tick: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.element]),\n axisLine: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object]),\n tickLine: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object]),\n minTickGap: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n tickSize: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n interval: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['preserveStart', 'preserveEnd', 'preserveStartEnd'])]),\n reversed: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool\n}, _class2.defaultProps = {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n domain: [0, 'auto'],\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (YAxis);\n\n/***/ }),\n/* 73 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_ReactUtils__ = __webpack_require__(2);\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * @fileOverview Cross\n */\n\n\nfunction Cell() {\n return null;\n}\n\nCell.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_0__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */]);\nCell.displayName = 'Cell';\n/* harmony default export */ __webpack_exports__[\"a\"] = (Cell);\n\n/***/ }),\n/* 74 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isArray__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isArray__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_d3_shape__ = __webpack_require__(183);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__util_DataUtils__ = __webpack_require__(11);\n\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Curve\n */\n\n\n\n\n\n\n\nvar CURVE_FACTORIES = {\n curveBasisClosed: __WEBPACK_IMPORTED_MODULE_4_d3_shape__[\"o\" /* curveBasisClosed */],\n curveBasisOpen: __WEBPACK_IMPORTED_MODULE_4_d3_shape__[\"p\" /* curveBasisOpen */],\n curveBasis: __WEBPACK_IMPORTED_MODULE_4_d3_shape__[\"q\" /* curveBasis */],\n curveLinearClosed: __WEBPACK_IMPORTED_MODULE_4_d3_shape__[\"r\" /* curveLinearClosed */],\n curveLinear: __WEBPACK_IMPORTED_MODULE_4_d3_shape__[\"s\" /* curveLinear */],\n curveMonotoneX: __WEBPACK_IMPORTED_MODULE_4_d3_shape__[\"t\" /* curveMonotoneX */],\n curveMonotoneY: __WEBPACK_IMPORTED_MODULE_4_d3_shape__[\"u\" /* curveMonotoneY */],\n curveNatural: __WEBPACK_IMPORTED_MODULE_4_d3_shape__[\"v\" /* curveNatural */],\n curveStep: __WEBPACK_IMPORTED_MODULE_4_d3_shape__[\"w\" /* curveStep */],\n curveStepAfter: __WEBPACK_IMPORTED_MODULE_4_d3_shape__[\"x\" /* curveStepAfter */],\n curveStepBefore: __WEBPACK_IMPORTED_MODULE_4_d3_shape__[\"y\" /* curveStepBefore */]\n};\n\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\n\nvar getX = function getX(p) {\n return p.x;\n};\n\nvar getY = function getY(p) {\n return p.y;\n};\n\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default()(type)) {\n return type;\n }\n\n var name = \"curve\".concat(type.slice(0, 1).toUpperCase()).concat(type.slice(1));\n\n if (name === 'curveMonotone' && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n\n return CURVE_FACTORIES[name] || __WEBPACK_IMPORTED_MODULE_4_d3_shape__[\"s\" /* curveLinear */];\n};\n\nvar Curve = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Curve, _Component);\n\n function Curve() {\n _classCallCheck(this, Curve);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Curve).apply(this, arguments));\n }\n\n _createClass(Curve, [{\n key: \"getPath\",\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n value: function getPath() {\n var _this$props = this.props,\n type = _this$props.type,\n points = _this$props.points,\n baseLine = _this$props.baseLine,\n layout = _this$props.layout,\n connectNulls = _this$props.connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n\n if (__WEBPACK_IMPORTED_MODULE_0_lodash_isArray___default()(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread({}, entry, {\n base: formatBaseLine[index]\n });\n });\n\n if (layout === 'vertical') {\n lineFunction = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4_d3_shape__[\"z\" /* area */])().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4_d3_shape__[\"z\" /* area */])().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n\n if (layout === 'vertical' && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"a\" /* isNumber */])(baseLine)) {\n lineFunction = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4_d3_shape__[\"z\" /* area */])().y(getY).x1(getX).x0(baseLine);\n } else if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_DataUtils__[\"a\" /* isNumber */])(baseLine)) {\n lineFunction = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4_d3_shape__[\"z\" /* area */])().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4_d3_shape__[\"A\" /* line */])().x(getX).y(getY);\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n points = _this$props2.points,\n path = _this$props2.path,\n pathRef = _this$props2.pathRef;\n\n if ((!points || !points.length) && !path) {\n return null;\n }\n\n var realPath = points && points.length ? this.getPath() : path;\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"path\", _extends({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__[\"b\" /* filterEventAttributes */])(this.props, null, true), {\n className: __WEBPACK_IMPORTED_MODULE_5_classnames___default()('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n }\n }]);\n\n return Curve;\n}(__WEBPACK_IMPORTED_MODULE_2_react__[\"Component\"]), _class2.displayName = 'Curve', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], {\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n type: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(['basis', 'basisClosed', 'basisOpen', 'linear', 'linearClosed', 'natural', 'monotoneX', 'monotoneY', 'monotone', 'step', 'stepBefore', 'stepAfter']), __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func]),\n layout: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(['horizontal', 'vertical']),\n baseLine: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.array]),\n points: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object),\n connectNulls: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n path: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n pathRef: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func\n}), _class2.defaultProps = {\n type: 'linear',\n points: [],\n connectNulls: false\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Curve);\n\n/***/ }),\n/* 75 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_smooth__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__ = __webpack_require__(2);\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Rectangle\n */\n\n\n\n\n\n\n\nvar getRectangePath = function getRectangePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [];\n\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n\n return path;\n};\n\nvar Rectangle = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Rectangle, _Component);\n\n function Rectangle() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Rectangle);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Rectangle)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n totalLength: -1\n };\n return _this;\n }\n\n _createClass(Rectangle, [{\n key: \"componentDidMount\",\n\n /* eslint-disable react/no-did-mount-set-state */\n value: function componentDidMount() {\n if (this.node && this.node.getTotalLength) {\n try {\n var totalLength = this.node.getTotalLength();\n\n if (totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n } catch (err) {// calculate total length error\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n radius = _this$props.radius,\n className = _this$props.className;\n var totalLength = this.state.totalLength;\n var _this$props2 = this.props,\n animationEasing = _this$props2.animationEasing,\n animationDuration = _this$props2.animationDuration,\n animationBegin = _this$props2.animationBegin,\n isAnimationActive = _this$props2.isAnimationActive,\n isUpdateAnimationActive = _this$props2.isUpdateAnimationActive;\n\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n\n var layerClass = __WEBPACK_IMPORTED_MODULE_2_classnames___default()('recharts-rectangle', className);\n\n if (!isUpdateAnimationActive) {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"path\", _extends({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"b\" /* filterEventAttributes */])(this.props), {\n className: layerClass,\n d: getRectangePath(x, y, width, height, radius)\n }));\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3_react_smooth__[\"a\" /* default */], {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3_react_smooth__[\"a\" /* default */], {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"path\", _extends({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(_this2.props), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"b\" /* filterEventAttributes */])(_this2.props), {\n className: layerClass,\n d: getRectangePath(currX, currY, currWidth, currHeight, radius),\n ref: function ref(node) {\n _this2.node = node;\n }\n })));\n });\n }\n }]);\n\n return Rectangle;\n}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]), _class2.displayName = 'Rectangle', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], __WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"d\" /* EVENT_ATTRIBUTES */], {\n className: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n x: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n width: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n radius: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.array]),\n isAnimationActive: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n isUpdateAnimationActive: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n animationBegin: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n animationDuration: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n animationEasing: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear'])\n}), _class2.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Rectangle);\n\n/***/ }),\n/* 76 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return warn; });\n/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nvar warn = function warn(condition, format, a, b, c, d, e, f) {\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(6)))\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(46)(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n function combineClassNames() {\r\n var arr = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n arr[_i] = arguments[_i];\r\n }\r\n return arr.filter(function (s) { return s && s.length; }).join(\" \");\r\n }\r\n exports.combineClassNames = combineClassNames;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(282)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, TooltipControl_1) {\r\n var BlockRowInputLabel = (function (_super) {\r\n __extends(BlockRowInputLabel, _super);\r\n function BlockRowInputLabel(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.onHideToolTip = function () {\r\n _this._setTooltipVisibility(false, false);\r\n };\r\n _this._onWindowClickHandler = _this._onWindowClick.bind(_this);\r\n _this.state = {\r\n showTooltip: false\r\n };\r\n return _this;\r\n }\r\n BlockRowInputLabel.prototype.componentWillUnmount = function () {\r\n window.removeEventListener(\"click\", this._onWindowClickHandler);\r\n };\r\n BlockRowInputLabel.prototype.notifyTooltipVisibilityChanged = function () {\r\n if (!this.props.onTooltipVisibilityChanged) {\r\n return;\r\n }\r\n this.props.onTooltipVisibilityChanged(this.state.showTooltip, this.state.showTooltip ? this.onHideToolTip : null);\r\n };\r\n BlockRowInputLabel.prototype._setTooltipVisibility = function (visible, shouldNotifyChanged) {\r\n var _this = this;\r\n if (this.state.showTooltip === visible) {\r\n return;\r\n }\r\n this.setState({ showTooltip: visible }, function () {\r\n var toolTipControl = _this.refs['tooltip'];\r\n if (toolTipControl) {\r\n toolTipControl.anchorTo($(_this.refs['upper-label']));\r\n window.addEventListener(\"click\", _this._onWindowClickHandler);\r\n }\r\n else {\r\n window.removeEventListener(\"click\", _this._onWindowClickHandler);\r\n }\r\n if (shouldNotifyChanged) {\r\n _this.notifyTooltipVisibilityChanged();\r\n }\r\n });\r\n };\r\n BlockRowInputLabel.prototype.renderTooltip = function () {\r\n var tipText = this.props.tip;\r\n if (!tipText || !this.state.showTooltip) {\r\n return null;\r\n }\r\n var tipContent = null;\r\n if (this.props.tipAsHtml) {\r\n tipContent = (React.createElement(\"span\", { dangerouslySetInnerHTML: { __html: tipText } }));\r\n }\r\n else {\r\n tipContent = React.createElement(\"span\", null, tipText);\r\n }\r\n return React.createElement(TooltipControl_1.TooltipControl, { ref: 'tooltip', tipId: 'fieldTooltip', anchorBorder: TooltipControl_1.Borders.Left, className: tipText ? \"modeless\" : \"hidden\" }, tipContent);\r\n };\r\n BlockRowInputLabel.prototype.render = function () {\r\n var _this = this;\r\n return React.createElement(\"label\", { tabIndex: 0, ref: \"upper-label\", htmlFor: this.props.for, className: \"label-above \" + (this.props.tip ? \"icon-help\" : \"\"), onMouseEnter: _.debounce(function (x) { return _this._setTooltipVisibility(true, true); }, 100, true), onMouseLeave: _.debounce(function (x) { return _this._setTooltipVisibility(false, true); }, 100, true), onFocus: _.debounce(function (x) { return _this._setTooltipVisibility(true, true); }, 100, true), onBlur: _.debounce(function (x) { return _this._setTooltipVisibility(false, true); }, 100, true) },\r\n this.props.required ? '*' : '',\r\n \"\\u00A0\",\r\n this.props.text,\r\n this.renderTooltip());\r\n };\r\n BlockRowInputLabel.prototype._onWindowClick = function () {\r\n this._setTooltipVisibility(false, true);\r\n };\r\n return BlockRowInputLabel;\r\n }(React.Component));\r\n exports.BlockRowInputLabel = BlockRowInputLabel;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(266), __webpack_require__(265), __webpack_require__(26)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, BotPageHeader_1, BotPageBody_1, Environment_1) {\r\n function getDeploymentState(bot) {\r\n if (bot === void 0) { bot = {}; }\r\n var deployment = bot.ProvisionInfo ? bot.ProvisionInfo.Deployment : {};\r\n return deployment && deployment.properties ? deployment.properties.provisioningState : null;\r\n }\r\n exports.getDeploymentState = getDeploymentState;\r\n function isDeploymentFinished(bot) {\r\n var state = getDeploymentState(bot);\r\n var deployment = bot.ProvisionInfo ? bot.ProvisionInfo.Deployment : {};\r\n var pending = !bot.Endpoint && deployment && deployment.properties ? deployment.properties.intercom_pending_function_url : false;\r\n var finished = !pending && (state === \"Succeeded\" || state === \"Failed\");\r\n return finished;\r\n }\r\n exports.isDeploymentFinished = isDeploymentFinished;\r\n function isStillDeploying(bot) {\r\n if (bot === void 0) { bot = {}; }\r\n return bot.ProvisionInfo && !isDeploymentFinished(bot);\r\n }\r\n exports.isStillDeploying = isStillDeploying;\r\n var BotTabs;\r\n (function (BotTabs) {\r\n BotTabs[BotTabs[\"Build\"] = 0] = \"Build\";\r\n BotTabs[BotTabs[\"Analytics\"] = 1] = \"Analytics\";\r\n BotTabs[BotTabs[\"Settings\"] = 2] = \"Settings\";\r\n BotTabs[BotTabs[\"Channels\"] = 3] = \"Channels\";\r\n BotTabs[BotTabs[\"Develop\"] = 4] = \"Develop\";\r\n })(BotTabs = exports.BotTabs || (exports.BotTabs = {}));\r\n var BotPage = (function (_super) {\r\n __extends(BotPage, _super);\r\n function BotPage(props, context) {\r\n var _this = _super.call(this, props, context) || this;\r\n _this.state = {\r\n bot: props.initialBot,\r\n subscriptionKeys: props.initialSubkeys,\r\n selectedTab: props.initialSelectedTab,\r\n showWebChat: props.initialShowWebChat,\r\n channel: props.initialChannel || \"\",\r\n authoringDirty: props.initialAuthoringDirty,\r\n authoringError: props.initialAuthoringError\r\n };\r\n return _this;\r\n }\r\n BotPage.prototype.componentDidMount = function () {\r\n $('#page-content').scrollTop(0);\r\n };\r\n BotPage.prototype.render = function () {\r\n var renderWebChat = !Environment_1.Environment.isInBotFrameworkAzureExtension;\r\n var isAdmin = this.props.controller.isAdminOrSupport();\r\n return (React.createElement(\"div\", { className: \"bot-page\" },\r\n React.createElement(BotPageHeader_1.BotPageHeader, { bot: this.state.bot, routes: this.props.routes, selectedTab: this.state.selectedTab, authoringToolDirty: this.state.authoringDirty, showWebChat: this.state.showWebChat, controller: this.props.controller, isAdmin: this.props.botSettingsTabProps.isAdmin, isReviewer: this.props.botSettingsTabProps.isReviewer, tabClickHandler: this.props.tabClickHandler, testClickHandler: this.props.testClickHandler, importBotHandler: this.props.importBotHandler, announcements: this.state.announcements }),\r\n React.createElement(BotPageBody_1.BotPageBody, { bot: this.state.bot, botSettingsTabProps: this.props.botSettingsTabProps, botEditorProps: this.props.botEditorProps, botCodeEditorProps: this.props.botCodeEditorProps, botCodeSetupProps: this.props.botCodeSetupProps, authoringDirty: this.state.authoringDirty, authoringError: this.state.authoringError, tabClickHandler: this.props.tabClickHandler, selectedTab: this.state.selectedTab, renderWebChat: renderWebChat, showWebChat: this.state.showWebChat, showWebChatPending: this.state.showWebChatPending, channel: this.state.channel, onSetBotAppSettings: this.props.onSetBotAppSettings, channelConfigClickHandler: this.props.channelConfigClickHandler, channelConfigInterface: this.props.channelConfigInterface, azureToken: this.props.azureToken, canWriteToBot: this.props.canWriteToBot })));\r\n };\r\n return BotPage;\r\n }(React.Component));\r\n exports.BotPage = BotPage;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React) {\r\n var BotImageControl = (function (_super) {\r\n __extends(BotImageControl, _super);\r\n function BotImageControl(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {};\r\n return _this;\r\n }\r\n BotImageControl.hashString = function (s) {\r\n if (!s) {\r\n return 0;\r\n }\r\n var hash = 0;\r\n for (var i = 0; i < s.length; i++) {\r\n var chr = s.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + chr;\r\n hash |= 0;\r\n hash = Math.abs(hash);\r\n }\r\n return hash;\r\n };\r\n BotImageControl.prototype.isDefaultIcon = function () {\r\n var bot = this.props.bot;\r\n if (!bot || !bot.IconUrl) {\r\n return true;\r\n }\r\n var defaultIconUrl = this.props.defaultIconUrl;\r\n var prefix = defaultIconUrl.substr(0, defaultIconUrl.lastIndexOf('.'));\r\n return bot.IconUrl.indexOf(prefix) === 0;\r\n };\r\n BotImageControl.prototype.mapColorClassName = function () {\r\n var colorClass = \"two-tone-11\";\r\n var bot = this.props.bot;\r\n if (this.isDefaultIcon()) {\r\n var paletteIndex = BotImageControl.paletteIndex(bot);\r\n colorClass = \"two-tone-\" + paletteIndex;\r\n }\r\n return colorClass;\r\n };\r\n BotImageControl.skipConflictingColorClasses = function (classIndex) {\r\n if (classIndex === 6 || classIndex === 7 || classIndex === 8) {\r\n return ((classIndex + 3) % 10) + 1;\r\n }\r\n return classIndex;\r\n };\r\n BotImageControl.paletteIndex = function (bot) {\r\n var paletteSize = 10;\r\n var classNum = (BotImageControl.hashString(bot.DefaultIconColorHash || bot.Id) % paletteSize) + 1;\r\n return BotImageControl.skipConflictingColorClasses(classNum);\r\n };\r\n BotImageControl.hashDefaultIconFileName = function (bot) {\r\n return \"bot-framework-default-\" + BotImageControl.paletteIndex(bot) + \".png\";\r\n };\r\n BotImageControl.prototype.render = function () {\r\n var imageClass = (this.props.className || '') + \" \" + (this.props.transparentBackground ? '' : this.mapColorClassName());\r\n return (React.createElement(\"div\", { className: imageClass },\r\n React.createElement(\"img\", { className: \"highlight\", alt: \"bot icon\", src: this.props.bot.IconUrl })));\r\n };\r\n return BotImageControl;\r\n }(React.Component));\r\n exports.BotImageControl = BotImageControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nvar core = module.exports = {version: '1.2.6'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\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\n/***/ }),\n/* 85 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return x === null ? NaN : +x;\n});\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__path__ = __webpack_require__(587);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__path__[\"a\"]; });\n\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return abs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"m\", function() { return atan2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return cos; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return max; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return min; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return sin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return sqrt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return epsilon; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return pi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return halfPi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return tau; });\n/* harmony export (immutable) */ __webpack_exports__[\"l\"] = acos;\n/* harmony export (immutable) */ __webpack_exports__[\"k\"] = asin;\nvar abs = Math.abs;\nvar atan2 = Math.atan2;\nvar cos = Math.cos;\nvar max = Math.max;\nvar min = Math.min;\nvar sin = Math.sin;\nvar sqrt = Math.sqrt;\n\nvar epsilon = 1e-12;\nvar pi = Math.PI;\nvar halfPi = pi / 2;\nvar tau = 2 * pi;\n\nfunction acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nfunction asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n});\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n});\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseForOwn = __webpack_require__(352),\n createBaseEach = __webpack_require__(707);\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar eq = __webpack_require__(130),\n isArrayLike = __webpack_require__(54),\n isIndex = __webpack_require__(202),\n isObject = __webpack_require__(21);\n\n/**\n * Checks if the given 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,\n * 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 ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isSymbol = __webpack_require__(70);\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = __webpack_require__(33);\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(816)(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = __webpack_require__(815)();\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 96 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util_ReactUtils__ = __webpack_require__(2);\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Render a group of error bar\n*/\n\n\n\n\n\nvar ErrorBar =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ErrorBar, _Component);\n\n function ErrorBar() {\n _classCallCheck(this, ErrorBar);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ErrorBar).apply(this, arguments));\n }\n\n _createClass(ErrorBar, [{\n key: \"renderErrorBars\",\n value: function renderErrorBars() {\n var _this$props = this.props,\n offset = _this$props.offset,\n layout = _this$props.layout,\n width = _this$props.width,\n dataKey = _this$props.dataKey,\n data = _this$props.data,\n dataPointFormatter = _this$props.dataPointFormatter,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis,\n others = _objectWithoutProperties(_this$props, [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"]);\n\n var props = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(others);\n return data.map(function (entry, i) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n\n if (!errorVal) {\n return null;\n }\n\n var xMid, yMid, xMin, yMin, xMax, yMax, scale, coordsTop, coordsMid, coordsBot, lowBound, highBound;\n\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n\n if (layout === 'vertical') {\n scale = xAxis.scale;\n xMid = value;\n yMid = y + offset;\n xMin = scale(xMid - lowBound);\n yMin = yMid + width;\n xMax = scale(xMid + highBound);\n yMax = yMid - width;\n coordsTop = {\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n };\n coordsMid = {\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n };\n coordsBot = {\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n };\n } else if (layout === 'horizontal') {\n scale = yAxis.scale;\n xMid = x + offset;\n yMid = value;\n xMin = xMid - width;\n xMax = xMid + width;\n yMin = scale(yMid - lowBound);\n yMax = scale(yMid + highBound);\n coordsTop = {\n x1: xMin,\n y1: yMax,\n x2: xMax,\n y2: yMax\n };\n coordsMid = {\n x1: xMid,\n y1: yMin,\n x2: xMid,\n y2: yMax\n };\n coordsBot = {\n x1: xMin,\n y1: yMin,\n x2: xMax,\n y2: yMin\n };\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__container_Layer__[\"a\" /* default */], _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(i)\n }, props), __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"line\", coordsTop), __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"line\", coordsMid), __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"line\", coordsBot));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__container_Layer__[\"a\" /* default */], {\n className: \"recharts-errorBars\"\n }, this.renderErrorBars());\n }\n }]);\n\n return ErrorBar;\n}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]);\n\nErrorBar.propTypes = {\n dataKey: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func]).isRequired,\n data: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.array,\n xAxis: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object,\n yAxis: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object,\n layout: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n dataPointFormatter: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,\n stroke: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n strokeWidth: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n width: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n offset: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number\n};\nErrorBar.defaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = (ErrorBar);\n\n/***/ }),\n/* 97 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util_ReactUtils__ = __webpack_require__(2);\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Surface\n */\n\n\n\n\nvar propTypes = {\n width: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number.isRequired,\n height: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number.isRequired,\n viewBox: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n x: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n width: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number\n }),\n className: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n style: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object,\n children: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.node), __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.node])\n};\n\nfunction Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n others = _objectWithoutProperties(props, [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\"]);\n\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = __WEBPACK_IMPORTED_MODULE_2_classnames___default()('recharts-surface', className);\n var attrs = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(others);\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"svg\", _extends({}, attrs, {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height),\n version: \"1.1\"\n }), children);\n}\n\nSurface.propTypes = propTypes;\n/* harmony default export */ __webpack_exports__[\"a\"] = (Surface);\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(258), __webpack_require__(8)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, FlagUtility_1, ClientAppSettings_1) {\r\n var SupportedFeatureUtility = (function () {\r\n function SupportedFeatureUtility() {\r\n }\r\n SupportedFeatureUtility.isSupported = function (feature) {\r\n return FlagUtility_1.FlagUtility.hasFlag(ClientAppSettings_1.clientAppSettings.enabledFeatures, feature);\r\n };\r\n return SupportedFeatureUtility;\r\n }());\r\n exports.SupportedFeatureUtility = SupportedFeatureUtility;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(438)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, lazy_1) {\r\n function __export(m) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n }\r\n __export(lazy_1);\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(248), __webpack_require__(0), __webpack_require__(5), __webpack_require__(165)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, KeyCodes, React, ReactDOM, index_1) {\r\n var DialogBase = (function () {\r\n function DialogBase() {\r\n this.dfd = $.Deferred();\r\n this.$mask = $('
').appendTo($(document.body));\r\n this.$statusPane = $('
').appendTo($(this.$mask));\r\n this.$el = $('
').appendTo(this.$mask);\r\n }\r\n DialogBase.prototype.render = function () {\r\n };\r\n DialogBase.prototype.init = function () {\r\n this.$okButton = this.$el.find(\".ok-button\");\r\n this.$cancelButton = this.$el.find(\".cancel-button\");\r\n this.$dialogCloseButton = this.$el.find(\".dialog-close-button\");\r\n this.centerDialog();\r\n this.handleEvents();\r\n this.$okButton.focus();\r\n };\r\n DialogBase.prototype.handleEvents = function () {\r\n var _this = this;\r\n this.$okButton.click(function () { return _this.onOK(); });\r\n this.$cancelButton.click(function () { return _this.onCancel(); });\r\n this.$el.keydown(function (ev) { return _this.onKeyDown(ev); });\r\n };\r\n DialogBase.prototype.onKeyDown = function (ev) {\r\n switch (ev.which) {\r\n case KeyCodes.KeyCodes.Enter:\r\n if (this.onEnterKeyPressed()) {\r\n ev.preventDefault();\r\n }\r\n break;\r\n case KeyCodes.KeyCodes.Escape:\r\n if (this.$cancelButton.is(\":visible\") || this.$dialogCloseButton.is(\":visible\")) {\r\n this.onEscapeKeyPressed();\r\n }\r\n ev.preventDefault();\r\n break;\r\n }\r\n };\r\n DialogBase.prototype.onEnterKeyPressed = function () {\r\n if (this.$okButton.length > 0) {\r\n this.onOK();\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n DialogBase.prototype.onEscapeKeyPressed = function () {\r\n this.onCancel();\r\n };\r\n DialogBase.prototype.centerDialog = function () {\r\n var t = ($(window).height() - this.$el.outerHeight()) / 3;\r\n var l = ($(window).width() - this.$el.outerWidth()) / 2;\r\n t = Math.max(0, t);\r\n l = Math.max(0, l);\r\n this.$el.css({ top: t + 'px', left: l + 'px' });\r\n };\r\n DialogBase.prototype.showDialog = function (_lastParentFocus) {\r\n this.lastParentFocus = _lastParentFocus;\r\n this.render();\r\n return this.dfd.promise();\r\n };\r\n DialogBase.prototype.closeDialog = function () {\r\n this.$el.remove();\r\n this.$statusPane.remove();\r\n this.$mask.remove();\r\n this.returnFocusToParent();\r\n };\r\n DialogBase.prototype.returnFocusToParent = function () {\r\n if (this.lastParentFocus != null) {\r\n var lastParentFocusElement = ReactDOM.findDOMNode(this.lastParentFocus);\r\n lastParentFocusElement && lastParentFocusElement.focus();\r\n }\r\n };\r\n DialogBase.prototype.showStatus = function (statusMessage) {\r\n if (!this.$el.hasClass(\"dialog-hidden\")) {\r\n this.$el.addClass(\"dialog-hidden\");\r\n }\r\n var status = React.createElement(index_1.DialogStatus, { statusMessage: statusMessage });\r\n this.status = ReactDOM.render(status, this.$statusPane[0]);\r\n this.status.setState({ showing: true });\r\n };\r\n DialogBase.prototype.hideStatus = function () {\r\n if (this.status) {\r\n this.status.setState({ showing: false });\r\n }\r\n if (this.$el.hasClass(\"dialog-hidden\")) {\r\n this.$el.removeClass(\"dialog-hidden\");\r\n }\r\n };\r\n DialogBase.prototype.onCancel = function () {\r\n this.closeDialog();\r\n this.dfd.reject();\r\n };\r\n DialogBase.prototype.onOK = function () {\r\n this.closeDialog();\r\n this.dfd.resolve();\r\n };\r\n DialogBase.prototype.resolve = function () {\r\n var values = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n values[_i] = arguments[_i];\r\n }\r\n return this.dfd.resolve.apply(this.dfd, values);\r\n };\r\n return DialogBase;\r\n }());\r\n exports.DialogBase = DialogBase;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(101)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, DialogBase_1) {\r\n var GenericDialog = (function (_super) {\r\n __extends(GenericDialog, _super);\r\n function GenericDialog(componentClass, props, options) {\r\n var _this = _super.call(this) || this;\r\n _this.componentClass = componentClass;\r\n _this.props = props;\r\n _this.options = $.extend({}, DefaultGenericDialogOptions, options || {});\r\n if (_this.options.dialogClass) {\r\n _this.$el.addClass(_this.options.dialogClass);\r\n }\r\n return _this;\r\n }\r\n GenericDialog.prototype.render = function () {\r\n var _this = this;\r\n var element = React.createElement(this.componentClass, this.props);\r\n this.panel = ReactDOM.render(element, this.$el[0], function () {\r\n _this.init();\r\n });\r\n };\r\n GenericDialog.prototype.init = function () {\r\n _super.prototype.init.call(this);\r\n };\r\n GenericDialog.prototype.handleEvents = function () {\r\n var _this = this;\r\n _super.prototype.handleEvents.call(this);\r\n this.$el.on('click', '.dialog-close-button', function () {\r\n _this.onCancel();\r\n });\r\n };\r\n return GenericDialog;\r\n }(DialogBase_1.DialogBase));\r\n exports.GenericDialog = GenericDialog;\r\n var DefaultGenericDialogOptions = {};\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(101), __webpack_require__(456), __webpack_require__(15)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, DialogBase_1, Views, Intercom_Resources_DevPortal_1) {\r\n var ProgressDialog = (function (_super) {\r\n __extends(ProgressDialog, _super);\r\n function ProgressDialog(options) {\r\n var _this = _super.call(this) || this;\r\n _this.options = $.extend({}, DefaultProgressDialogOptions, options);\r\n return _this;\r\n }\r\n ProgressDialog.prototype.render = function () {\r\n var _this = this;\r\n var props = {\r\n message: this.options.message\r\n };\r\n var element = React.createElement(Views.ProgressPanel, props);\r\n ReactDOM.render(element, this.$el[0], function () {\r\n _this.init();\r\n });\r\n };\r\n ProgressDialog.prototype.init = function () {\r\n _super.prototype.init.call(this);\r\n };\r\n ProgressDialog.show = function (message) {\r\n var dialog = new ProgressDialog({ message: message });\r\n dialog.showDialog();\r\n return dialog;\r\n };\r\n return ProgressDialog;\r\n }(DialogBase_1.DialogBase));\r\n exports.ProgressDialog = ProgressDialog;\r\n var DefaultProgressDialogOptions = {\r\n message: Intercom_Resources_DevPortal_1.Resources.dialogPleaseWait\r\n };\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n var defaultPollingModel = {\r\n defaultInterval: 3000,\r\n maxPendingPollRequests: 1\r\n };\r\n var Poller = (function () {\r\n function Poller(model, poll, onResult) {\r\n this.poll = poll;\r\n this.onResult = onResult;\r\n this.subscribers = [];\r\n this.model = _.extend({}, defaultPollingModel, model || undefined);\r\n this.pending = [];\r\n this.currentInterval = this.model.defaultInterval;\r\n this.stopped = true;\r\n }\r\n Poller.prototype.getCurrentInterval = function () {\r\n return this.currentInterval;\r\n };\r\n Poller.prototype.invokePoll = function (timeout) {\r\n var _this = this;\r\n this.poll().done(function (data) {\r\n _this.onResult(data);\r\n _this.pending = _.filter(_this.pending, function (x) { return x !== timeout; });\r\n if (!_this.stopped) {\r\n _this.start();\r\n }\r\n });\r\n };\r\n Poller.prototype.start = function () {\r\n this.stopped = false;\r\n if (this.pending.length < this.model.maxPendingPollRequests) {\r\n var cur_1 = this;\r\n var timeout = setTimeout(function () {\r\n cur_1.invokePoll(timeout);\r\n }, this.getCurrentInterval());\r\n this.pending.push(timeout);\r\n }\r\n };\r\n Poller.prototype.stop = function () {\r\n this.stopped = true;\r\n _.each(this.pending, clearTimeout);\r\n this.pending = [];\r\n this.subscribers.forEach(function (fn) { return fn(); });\r\n };\r\n Poller.prototype.isStopped = function () {\r\n return this.stopped;\r\n };\r\n Poller.prototype.onStop = function (handler) {\r\n this.subscribers.push(handler);\r\n };\r\n return Poller;\r\n }());\r\n exports.Poller = Poller;\r\n function pollerPromise(inner, interval, maxDuration) {\r\n var deferred = $.Deferred();\r\n var start = new Date().getTime();\r\n var action = function () {\r\n inner().then(function (x) { return deferred.resolve(x); }, function (e) {\r\n var now = new Date().getTime();\r\n if (maxDuration > 0 && now - start >= maxDuration) {\r\n deferred.reject(e);\r\n }\r\n else {\r\n setTimeout(action, interval);\r\n }\r\n });\r\n };\r\n action();\r\n return deferred;\r\n }\r\n exports.pollerPromise = pollerPromise;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n var Culture = (function () {\r\n function Culture() {\r\n }\r\n Object.defineProperty(Culture, \"Lang\", {\r\n get: function () {\r\n return this._lang;\r\n },\r\n set: function (lang) {\r\n this._lang = lang;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Culture, \"CultureCode\", {\r\n get: function () {\r\n return this._cutlureCode;\r\n },\r\n set: function (cultureCode) {\r\n this._cutlureCode = cultureCode;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Culture;\r\n }());\r\n exports.Culture = Culture;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n var supportedLanguages = [\"en\", \"de\", \"es\", \"fr\", \"it\", \"id\", \"ja\", \"ko\", \"ru\", \"cs\", \"nl\", \"hu\", \"pl\", \"sv\", \"tr\", \"pt-br\", \"pt-pt\", \"zh-hans\", \"zh-hant\"];\r\n var CultureUtility = (function () {\r\n function CultureUtility() {\r\n }\r\n Object.defineProperty(CultureUtility, \"rawLocale\", {\r\n get: function () {\r\n return this._rawLocale;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CultureUtility, \"displayLanguage\", {\r\n get: function () {\r\n return this._displayLanguage;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CultureUtility, \"cultureCode\", {\r\n get: function () {\r\n return this._cultureCode;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n CultureUtility.setLocale = function (rawLocale) {\r\n this._rawLocale = rawLocale;\r\n this._displayLanguage = this.toSupportedDisplayLanguage(this._rawLocale);\r\n this._cultureCode = this.toCultureCode(this._rawLocale);\r\n };\r\n CultureUtility.toSupportedDisplayLanguage = function (langCode) {\r\n if (!langCode) {\r\n return undefined;\r\n }\r\n var displayLanguage;\r\n var parts = langCode.toLowerCase().split(\".\");\r\n if (parts.length > 2) {\r\n return undefined;\r\n }\r\n displayLanguage = parts[0];\r\n if (supportedLanguages.indexOf(displayLanguage) !== -1) {\r\n return displayLanguage;\r\n }\r\n parts = displayLanguage.split(\"-\");\r\n if (parts.length === 2 && parts[0].length == 2 && supportedLanguages.indexOf(parts[0]) !== -1) {\r\n return parts[0];\r\n }\r\n return undefined;\r\n };\r\n CultureUtility.toCultureCode = function (rawLocale) {\r\n if (!rawLocale) {\r\n return undefined;\r\n }\r\n var cultureCode;\r\n var parts = rawLocale.toLowerCase().split(\".\");\r\n if (parts.length == 1 || parts.length == 2) {\r\n cultureCode = parts[parts.length - 1];\r\n if (cultureCode.indexOf(\"-\") !== -1) {\r\n return cultureCode;\r\n }\r\n }\r\n return undefined;\r\n };\r\n return CultureUtility;\r\n }());\r\n exports.CultureUtility = CultureUtility;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n var Method;\r\n (function (Method) {\r\n Method[Method[\"GET\"] = 0] = \"GET\";\r\n Method[Method[\"PUT\"] = 1] = \"PUT\";\r\n Method[Method[\"DELETE\"] = 2] = \"DELETE\";\r\n Method[Method[\"POST\"] = 3] = \"POST\";\r\n Method[Method[\"PATCH\"] = 4] = \"PATCH\";\r\n Method[Method[\"HEAD\"] = 5] = \"HEAD\";\r\n })(Method = exports.Method || (exports.Method = {}));\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(48), __webpack_require__(278)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, Url_1, browserCaps_1) {\r\n var debugZipProxy = false;\r\n function downloadBotSource(kuduClient) {\r\n var client = null;\r\n return kuduClient.then(function (kc) {\r\n client = kc;\r\n var uri = Url_1.parseUrl(client.scmUri.format());\r\n uri.path = '/api/vfs/site/wwwroot/PostDeployScripts/prepareSrc.cmd';\r\n return client.get(uri.format());\r\n })\r\n .then(function (cmd) {\r\n return client.command(\"PostDeployScripts\\\\prepareSrc.cmd \" + client.publishPassword, 'site\\\\wwwroot');\r\n })\r\n .then(function (f) {\r\n return client.download('site/bot-src.zip');\r\n })\r\n .then(null, function () {\r\n if (client) {\r\n return client.zip('site/wwwroot/');\r\n }\r\n else {\r\n return $.Deferred().reject('could not access azure resource');\r\n }\r\n });\r\n }\r\n exports.downloadBotSource = downloadBotSource;\r\n function needZipProxy() {\r\n return (debugZipProxy || !browserCaps_1.default('a', 'download') && !navigator.msSaveBlob);\r\n }\r\n exports.needZipProxy = needZipProxy;\r\n function getBotZipBlobUrl(botId, url) {\r\n var result = null;\r\n result = url;\r\n if (!result && botId && needZipProxy()) {\r\n result = \"/api/botApp/\" + botId + \"/zip/\" + botId + \".zip\";\r\n }\r\n return result;\r\n }\r\n exports.getBotZipBlobUrl = getBotZipBlobUrl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n function openTab(url) {\r\n var tab = window.open(url, '_blank');\r\n if (tab) {\r\n tab.focus();\r\n }\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = openTab;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(59), __webpack_require__(14), __webpack_require__(160), __webpack_require__(154), __webpack_require__(464), __webpack_require__(109), __webpack_require__(48), __webpack_require__(466), __webpack_require__(151), __webpack_require__(27)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, azurePortalLinks_1, index_1, BotAppSettings_1, index_2, setupRemoteRepo_1, openTab_1, Url_1, AbsCodeCIEnablePanel_1, InputDialogBase_1, MessageBox_1) {\r\n var ScmTypeToIconNames = {\r\n bitbucketgit: 'bitbucket',\r\n bitbuckethg: 'bitbucket',\r\n dropbox: 'dropbox',\r\n externalgit: 'external_repo',\r\n externalhg: 'external_repo',\r\n github: 'github',\r\n localgit: 'local_git',\r\n onedrive: 'one_drive',\r\n tfs: 'visual_studio',\r\n vso: 'visual_studio',\r\n vstsrm: 'visual_studio'\r\n };\r\n function renderIconForScmType(scmType) {\r\n var iconName = ScmTypeToIconNames[scmType.toLowerCase()];\r\n if (iconName) {\r\n return (React.createElement(\"svg\", { className: \"scm-icon\" },\r\n React.createElement(\"use\", { xlinkHref: \"Client/Images/symbol-defs.svg#icon-\" + iconName })));\r\n }\r\n return null;\r\n }\r\n exports.renderIconForScmType = renderIconForScmType;\r\n function toggleContinuousIntegrationSettings($config) {\r\n $config.toggleClass('closed open');\r\n $config.find('span.icon-font').text($config.hasClass('closed') ? '\\uE019' : '\\uE018');\r\n if ($config.hasClass('open')) {\r\n $config[0].scrollIntoView();\r\n }\r\n }\r\n exports.toggleContinuousIntegrationSettings = toggleContinuousIntegrationSettings;\r\n var BotAppContinuousIntegration = (function (_super) {\r\n __extends(BotAppContinuousIntegration, _super);\r\n function BotAppContinuousIntegration(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this._canSetupRepos = false;\r\n _this.scmType = null;\r\n _this.configBladeUrl = null;\r\n _this.state = _.extend({}, BotAppSettings_1.defaultCIState);\r\n return _this;\r\n }\r\n BotAppContinuousIntegration.prototype.fetchCanSetupRepos = function () {\r\n var _this = this;\r\n return this.props.kuduClient()\r\n .then(function (kc) {\r\n return kc.dir('site/wwwroot/PostDeployScripts/');\r\n })\r\n .then(function (files) {\r\n var setupScripts = files.filter(function (file) { return file.name == 'setupVsoRemoteRepo.cmd' || file.name == 'setupGithubRemoteRepo.cmd'; });\r\n var found = setupScripts.length == 2;\r\n if (found !== _this._canSetupRepos) {\r\n _this._canSetupRepos = found;\r\n _this.forceUpdate();\r\n }\r\n return $.Deferred().resolve(found);\r\n });\r\n };\r\n Object.defineProperty(BotAppContinuousIntegration.prototype, \"hasRepoInfo\", {\r\n get: function () {\r\n return this.hasRepoInfoForVso || this.hasRepoInfoForGithub;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BotAppContinuousIntegration.prototype, \"hasRepoInfoForVso\", {\r\n get: function () {\r\n return this.state.repoProvider === 'vso' && !!this.state.hostUrl && !!this.state.repoToken;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BotAppContinuousIntegration.prototype, \"hasRepoInfoForGithub\", {\r\n get: function () {\r\n return this.state.repoProvider === 'github' && !!this.state.repoToken;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n BotAppContinuousIntegration.prototype.resolveScmType = function () {\r\n var _this = this;\r\n this.props.scmType().then(function (x) {\r\n _this.scmType = x;\r\n _this.forceUpdate();\r\n });\r\n };\r\n BotAppContinuousIntegration.prototype.resolveConfigBladeUrl = function () {\r\n var _this = this;\r\n this.props.bladeUrl(azurePortalLinks_1.BladeType.continuousIntegration).then(function (x) {\r\n _this.configBladeUrl = x;\r\n _this.forceUpdate();\r\n });\r\n };\r\n BotAppContinuousIntegration.prototype.renderDownloadLink = function () {\r\n var _this = this;\r\n var item = React.createElement(\"li\", null, \"Waiting for the bot to finish deploying before download the source code.\");\r\n if (this.props.botDeploymentLogFound) {\r\n var fileName = this.props.bot.Id + \".zip\";\r\n var link = React.createElement(index_1.DownloadLinkControl, { fileName: fileName, asButton: true, downloadBlob: function () { return _this.props.downloadZip(); }, setBlobUrl: function (blobUrl) {\r\n _this.props.onZipDownloaded(blobUrl);\r\n _this.setState({ zipBlobUrl: blobUrl });\r\n }, blobUrl: this.props.blobUrl || this.state.zipBlobUrl, pendingDownload: this.props.pendingDownload ? 'Generating zip file' : null });\r\n item = React.createElement(\"li\", null,\r\n \"download your source code: \",\r\n React.createElement(\"p\", null, link));\r\n }\r\n return item;\r\n };\r\n BotAppContinuousIntegration.prototype.changeField = function (fld, val) {\r\n var obj = {};\r\n obj[fld] = val;\r\n if (fld === 'repoProvider') {\r\n obj.repoToken = null;\r\n obj.repoUserName = null;\r\n }\r\n this.setState(obj);\r\n };\r\n Object.defineProperty(BotAppContinuousIntegration.prototype, \"githubClient\", {\r\n get: function () {\r\n if (this.state.repoProvider === 'github' && this.state.repoToken.length > 0) {\r\n return $.Deferred().resolve(new index_2.GithubApi(this.state.repoToken));\r\n }\r\n return $.Deferred().reject();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BotAppContinuousIntegration.prototype, \"vsoClient\", {\r\n get: function () {\r\n return $.Deferred().reject();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BotAppContinuousIntegration.prototype, \"vsoSiteRootUrl\", {\r\n get: function () {\r\n if (this.state.hostUrl) {\r\n var uri = Url_1.parseUrl(this.state.hostUrl);\r\n return uri ? \"https://\" + uri.hostname : null;\r\n }\r\n return null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n BotAppContinuousIntegration.prototype.setupRepos = function () {\r\n var _this = this;\r\n var success = false;\r\n var dialog = new InputDialogBase_1.InputDialogBase(AbsCodeCIEnablePanel_1.AbsCodeCIEnablePanel, {}, { dialogClass: 'status-panel-dialog' });\r\n dialog.showDialog()\r\n .then(function (state) {\r\n _this.setState({ pendingEnabling: true });\r\n return $.when(_this.props.kuduClient(), _this.props.armClient(), _this.props.botRsrcId);\r\n })\r\n .then(function (kc, ac, rsrcId) {\r\n return setupRemoteRepo_1.default(kc, ac, rsrcId, _this.state);\r\n })\r\n .then(function (state) {\r\n _this.setState(state);\r\n success = true;\r\n })\r\n .fail(function (xhr, e, msg) {\r\n var errorMessage = null;\r\n if (xhr.responseJSON) {\r\n var err = xhr.responseJSON;\r\n if (err.Message) {\r\n errorMessage = err.Message;\r\n }\r\n }\r\n if (msg && !errorMessage) {\r\n errorMessage = msg;\r\n }\r\n errorMessage = errorMessage || xhr.statusText || \"Status code: \" + xhr.status;\r\n errorMessage = errorMessage.split(/[\\n\\r]/g)[0];\r\n MessageBox_1.MessageBox.show(errorMessage);\r\n })\r\n .always(function () {\r\n _this.setState({ pendingEnabling: false });\r\n if (success) {\r\n if (_this.props.onRepoSetup) {\r\n _this.props.onRepoSetup();\r\n }\r\n }\r\n });\r\n };\r\n BotAppContinuousIntegration.prototype.fetchRepo = function () {\r\n var _this = this;\r\n $.when(this.props.armClient(), this.props.botRsrcId)\r\n .then(function (ac, rsrcId) {\r\n return ac.getSourceControl(rsrcId);\r\n })\r\n .then(function (sc) {\r\n if (sc && sc.properties && sc.properties.repoUrl) {\r\n _this.setState({ repoUrl: sc.properties.repoUrl });\r\n }\r\n });\r\n };\r\n BotAppContinuousIntegration.prototype.renderVsoSetup = function () {\r\n var _this = this;\r\n return [\r\n React.createElement(\"input\", { type: \"text\", key: \"vso-hostUrl\", placeholder: \"Url to your Visual Studio Team Services site\", value: this.state.hostUrl, onChange: function (x) { return _this.changeField('hostUrl', x.target['value']); } }),\r\n React.createElement(\"a\", { key: \"vso_profile_link\", href: 'https://app.vsaex.visualstudio.com/me', target: '_blank' }, \"View Visual Studio Profile\"),\r\n React.createElement(\"input\", { type: \"password\", key: \"vso-repoPat\", placeholder: \"Personal access token with 'Project and team' and 'Code' scope\", value: this.state.repoToken, onChange: function (x) { return _this.changeField('repoToken', x.target['value']); } }),\r\n (this.vsoSiteRootUrl ? React.createElement(\"a\", { key: \"vso_pat_link\", href: this.vsoSiteRootUrl + \"/_details/security/tokens\", target: '_blank' }, \"Generate personal access token\") : null)\r\n ];\r\n };\r\n BotAppContinuousIntegration.prototype.renderGithubSetup = function () {\r\n var _this = this;\r\n return [\r\n React.createElement(\"input\", { type: \"text\", key: \"gh-repoUser\", placeholder: \"user account name\", value: this.state.repoUserName, onChange: function (x) { return _this.changeField('repoUserName', x.target['value']); } }),\r\n React.createElement(\"input\", { type: \"password\", key: \"gh-repoPat\", placeholder: \"personal access token with 'repo' scope\", value: this.state.repoToken, onChange: function (x) { return _this.changeField('repoToken', x.target['value']); } }),\r\n React.createElement(\"a\", { key: \"gh-tokenLink\", href: 'https://github.com/settings/tokens', target: '_blank' }, \"Generate personal access token\")\r\n ];\r\n };\r\n BotAppContinuousIntegration.prototype.renderCustomSetup = function () {\r\n switch (this.state.repoProvider) {\r\n case 'vso':\r\n return this.renderVsoSetup();\r\n case 'github':\r\n return this.renderGithubSetup();\r\n case 'other':\r\n return [this.renderGenericCISetup()];\r\n }\r\n };\r\n BotAppContinuousIntegration.prototype.renderSetupReposFromBlank = function () {\r\n var _this = this;\r\n var pending = this.state.pendingEnabling;\r\n return this._canSetupRepos\r\n ?\r\n React.createElement(\"div\", { key: \"setup-repos\", className: \"setup-repos\" },\r\n React.createElement(\"p\", null, \"Select a source control provider\"),\r\n React.createElement(\"select\", { name: \"repo-type\", value: this.state.repoProvider, onChange: function (x) { _this.changeField('repoProvider', x.target['value']); } },\r\n React.createElement(\"option\", { value: 'vso' }, \"Visual Studio Team Services\"),\r\n React.createElement(\"option\", { value: 'github' }, \"GitHub\"),\r\n React.createElement(\"option\", { value: 'other' }, \"other\")),\r\n this.renderCustomSetup(),\r\n this.state.repoProvider != 'other'\r\n ? React.createElement(\"div\", { className: \"button-row\" },\r\n React.createElement(\"button\", { type: \"button\", className: \"light-button\", disabled: !this.hasRepoInfo || pending, onClick: function (e) { _this.setupRepos(); } },\r\n pending ? React.createElement(index_1.ProgressRingControl, { className: \"downloading-zip-progress\" }) : null,\r\n pending ? 'Enabling' : 'Enable'))\r\n : null,\r\n this.state.repoUrl\r\n ? React.createElement(\"a\", { className: \"repo_Url\", target: \"_blank\", href: this.state.repoUrl }, this.state.repoUrl)\r\n : null)\r\n :\r\n React.createElement(\"div\", { key: \"setup-repos\", className: \"setup-repos\" }, this.renderGenericCISetup());\r\n };\r\n Object.defineProperty(BotAppContinuousIntegration.prototype, \"canOpenConfigBlade\", {\r\n get: function () {\r\n return (this.state.srcChecked || this.scmType !== 'None') && (this.configBladeUrl !== null || !this.props.expandoOpenedAlways);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n BotAppContinuousIntegration.prototype.openCIConfigBlade = function () {\r\n if (this.configBladeUrl) {\r\n openTab_1.default(this.configBladeUrl);\r\n }\r\n else {\r\n this.props.openBlade(azurePortalLinks_1.BladeType.continuousIntegration);\r\n }\r\n };\r\n BotAppContinuousIntegration.prototype.renderSetupRepos = function () {\r\n return (this.scmType === 'None'\r\n ?\r\n this.renderSetupReposFromBlank()\r\n :\r\n React.createElement(\"div\", { key: \"configure_ci\", className: \"setup-repros\" },\r\n React.createElement(\"div\", { className: \"button-row\" },\r\n React.createElement(\"button\", { type: \"button\", className: \"light-button\", disabled: !this.canOpenConfigBlade, onClick: this.openCIConfigBlade.bind(this) }, \"Configure continuous deployment\"))));\r\n };\r\n BotAppContinuousIntegration.prototype.renderGenericCISetup = function () {\r\n var _this = this;\r\n var downloadLink = this.renderDownloadLink();\r\n return (React.createElement(\"ol\", { className: \"bot-ci-list\" },\r\n downloadLink,\r\n React.createElement(index_1.TooltipParagrah, { toggleTip: this.props.toggleTip, tip: React.createElement(\"span\", null,\r\n \"Add the files from the zip file into a folder or repository in your source control service. \",\r\n React.createElement(\"a\", { href: '//aka.ms/bf-abs-ci-step2', target: '_blank', key: 'tip-bf-abs-ci-step2' }, \"Learn more\")) },\r\n React.createElement(\"li\", null, \"create a folder/repo for the source files in your preferred service\")),\r\n React.createElement(\"p\", null,\r\n React.createElement(\"input\", { type: 'checkbox', id: 'source_ready', checked: this.state.srcChecked, onChange: function (x) { return _this.setState({ srcChecked: x.target['checked'] }); } }),\r\n React.createElement(\"label\", { htmlFor: 'source_ready' }, \"I completed step 2 and can proceed to step 3\")),\r\n React.createElement(index_1.TooltipParagrah, { toggleTip: this.props.toggleTip, tip: React.createElement(\"span\", null,\r\n \"Configure the source control service to publish to Azure when you check in code. \",\r\n React.createElement(\"a\", { href: '//aka.ms/bf-abs-ci-step3', target: '_blank', key: 'tip-bf-abs-ci-step3' }, \"Learn more\")) },\r\n React.createElement(\"li\", { className: this.state.srcChecked ? '' : 'disabled' }, \"Configure continuous deployment\")),\r\n React.createElement(\"p\", null,\r\n React.createElement(\"button\", { type: \"button\", className: \"light-button\", disabled: !this.canOpenConfigBlade, onClick: this.openCIConfigBlade.bind(this) }, \"Configure\"))));\r\n };\r\n BotAppContinuousIntegration.prototype.componentDidMount = function () {\r\n if (this.props.expandoOpenedAlways) {\r\n this.fetchCanSetupRepos();\r\n }\r\n this.resolveScmType();\r\n this.resolveConfigBladeUrl();\r\n if (this.props.showRepoUrl) {\r\n this.fetchRepo();\r\n }\r\n };\r\n BotAppContinuousIntegration.prototype.componentDidUpdate = function (prevProps, prevState) {\r\n var _this = this;\r\n if (!prevState.repoToken && this.state.repoToken) {\r\n if (this.state.repoProvider === 'github') {\r\n this.githubClient\r\n .then(function (gc) {\r\n return gc.user;\r\n })\r\n .then(function (user) {\r\n if (_this.state.repoProvider === 'github') {\r\n _this.setState({ repoUserName: user.login });\r\n }\r\n });\r\n }\r\n else if (this.state.repoProvider === 'vso') {\r\n this.setState({ repoUserName: 'name' });\r\n this.vsoClient\r\n .then(function (vc) {\r\n return vc.accounts;\r\n })\r\n .then(function (accounts) {\r\n if (_this.state.repoProvider === 'vso') {\r\n _this.setState({ repoUserName: accounts[0].AccountName });\r\n }\r\n });\r\n }\r\n }\r\n };\r\n BotAppContinuousIntegration.prototype.render = function () {\r\n var _this = this;\r\n var scm = this.scmType;\r\n var bot = this.props.bot;\r\n var scmInfo = scm === 'None' || !scm ? null : renderIconForScmType(scm);\r\n var linkText = scmInfo ? 'Edit' : 'Configure';\r\n return (React.createElement(\"section\", { className: \"bot-app-setting\" },\r\n React.createElement(\"div\", { className: \"header\" },\r\n !this.props.hideTitle ? React.createElement(\"h3\", null, \"Continuous deployment\") : null,\r\n !this.props.hideTitle\r\n ? React.createElement(\"p\", null, \"Deploy your bot code from GitHub, Visual Studio Team Services, and more.\")\r\n : null),\r\n React.createElement(\"a\", { className: this.props.expandoOpenedAlways ? \"expando opened hidden\" : \"expando closed\", onClick: _.debounce(function (e) {\r\n var $config = $(e.currentTarget);\r\n _this.fetchCanSetupRepos();\r\n if (!_this.props.expandoOpenedAlways) {\r\n toggleContinuousIntegrationSettings($config);\r\n }\r\n ;\r\n }, 100, true) },\r\n linkText,\r\n \" \",\r\n React.createElement(\"span\", { className: \"icon-font\" }, '\\uE019')),\r\n scmInfo,\r\n this.props.showRepoUrl && this.state.repoUrl ? React.createElement(\"p\", null,\r\n React.createElement(\"a\", { target: \"_blank\", href: this.state.repoUrl }, this.state.repoUrl)) : null,\r\n React.createElement(\"div\", { className: \"expandee\" },\r\n this.renderSetupRepos(),\r\n this.props.hideTitle ? null :\r\n React.createElement(\"p\", null,\r\n React.createElement(\"b\", null, \"Note: \"),\r\n \" After enabling continuous deployment, you will no longer be able to modify the code in Azure.\"))));\r\n };\r\n return BotAppContinuousIntegration;\r\n }(React.Component));\r\n exports.BotAppContinuousIntegration = BotAppContinuousIntegration;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _Object$defineProperty = __webpack_require__(507)[\"default\"];\n\nexports[\"default\"] = (function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n\n _Object$defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n})();\n\nexports.__esModule = true;\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _Object$getOwnPropertyDescriptor = __webpack_require__(508)[\"default\"];\n\nexports[\"default\"] = function get(_x, _x2, _x3) {\n var _again = true;\n\n _function: while (_again) {\n var object = _x,\n property = _x2,\n receiver = _x3;\n _again = false;\n if (object === null) object = Function.prototype;\n\n var desc = _Object$getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n _x = parent;\n _x2 = property;\n _x3 = receiver;\n _again = true;\n desc = parent = undefined;\n continue _function;\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n }\n};\n\nexports.__esModule = true;\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _Object$create = __webpack_require__(506)[\"default\"];\n\nvar _Object$setPrototypeOf = __webpack_require__(510)[\"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/* 115 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports[\"default\"] = function (obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n};\n\nexports.__esModule = true;\n\n/***/ }),\n/* 116 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__formatDecimal__ = __webpack_require__(176);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return x = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__formatDecimal__[\"a\" /* default */])(Math.abs(x)), x ? x[1] : NaN;\n});\n\n\n/***/ }),\n/* 117 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n return a = +a, b -= a, function(t) {\n return a + b * t;\n };\n});\n\n\n/***/ }),\n/* 118 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = point;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = Basis;\nfunction point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nfunction Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"c\"] = (function(context) {\n return new Basis(context);\n});\n\n\n/***/ }),\n/* 119 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = point;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = Cardinal;\nfunction point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nfunction Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = ((function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0));\n\n\n/***/ }),\n/* 120 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(context) {\n return new Linear(context);\n});\n\n\n/***/ }),\n/* 121 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {});\n\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar listCacheClear = __webpack_require__(731),\n listCacheDelete = __webpack_require__(732),\n listCacheGet = __webpack_require__(733),\n listCacheHas = __webpack_require__(734),\n listCacheSet = __webpack_require__(735);\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar eq = __webpack_require__(130);\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isSymbol = __webpack_require__(70);\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar castPath = __webpack_require__(126),\n toKey = __webpack_require__(93);\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isArray = __webpack_require__(12),\n isKey = __webpack_require__(203),\n stringToPath = __webpack_require__(756),\n toString = __webpack_require__(783);\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isKeyable = __webpack_require__(729);\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DataView = __webpack_require__(651),\n Map = __webpack_require__(189),\n Promise = __webpack_require__(653),\n Set = __webpack_require__(342),\n WeakMap = __webpack_require__(654),\n baseGetTag = __webpack_require__(42),\n toSource = __webpack_require__(368);\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getNative = __webpack_require__(52);\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports) {\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isNumber = __webpack_require__(132);\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(42),\n isObjectLike = __webpack_require__(29);\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\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\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(42),\n getPrototype = __webpack_require__(200),\n isObjectLike = __webpack_require__(29);\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\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 * @static\n * @memberOf _\n * @since 0.8.0\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 if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(42),\n isArray = __webpack_require__(12),\n isObjectLike = __webpack_require__(29);\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, 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' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayLikeKeys = __webpack_require__(348),\n baseKeysIn = __webpack_require__(676),\n isArrayLike = __webpack_require__(54);\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 * @since 3.0.0\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 return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayMap = __webpack_require__(67),\n baseClone = __webpack_require__(659),\n baseUnset = __webpack_require__(692),\n castPath = __webpack_require__(126),\n copyObject = __webpack_require__(68),\n customOmitClone = __webpack_require__(712),\n flatRest = __webpack_require__(715),\n getAllKeysIn = __webpack_require__(361);\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nmodule.exports = omit;\n\n\n/***/ }),\n/* 137 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return getIntersectionKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return identity; });\n/* unused harmony export getDashCase */\n/* unused harmony export generatePrefixStyle */\n/* unused harmony export log */\n/* unused harmony export debug */\n/* unused harmony export debugf */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return mapObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return translateStyle; });\n/* unused harmony export compose */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return getTransitionVal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return warn; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_intersection__ = __webpack_require__(768);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_intersection___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_intersection__);\n\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint no-console: 0 */\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nvar IN_LINE_PREFIX_LIST = ['-webkit-', '-moz-', '-o-', '-ms-'];\nvar IN_COMPATIBLE_PROPERTY = ['transform', 'transformOrigin', 'transition'];\nvar getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return __WEBPACK_IMPORTED_MODULE_0_lodash_intersection___default()(Object.keys(preObj), Object.keys(nextObj));\n};\nvar identity = function identity(param) {\n return param;\n};\n/*\n * @description: convert camel case to dash case\n * string => string\n */\n\nvar getDashCase = function getDashCase(name) {\n return name.replace(/([A-Z])/g, function (v) {\n return \"-\".concat(v.toLowerCase());\n });\n};\n/*\n * @description: add compatible style prefix\n * (string, string) => object\n */\n\nvar generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (IN_COMPATIBLE_PROPERTY.indexOf(name) === -1) {\n return _defineProperty({}, name, value);\n }\n\n var isTransition = name === 'transition';\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var styleVal = value;\n return PREFIX_LIST.reduce(function (result, property, i) {\n if (isTransition) {\n styleVal = value.replace(/(transform|transform-origin)/gim, \"\".concat(IN_LINE_PREFIX_LIST[i], \"$1\"));\n }\n\n return _objectSpread({}, result, _defineProperty({}, property + camelName, styleVal));\n }, {});\n};\nvar log = function log() {\n var _console;\n\n (_console = console).log.apply(_console, arguments);\n};\n/*\n * @description: log the value of a varible\n * string => any => any\n */\n\nvar debug = function debug(name) {\n return function (item) {\n log(name, item);\n return item;\n };\n};\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\n\nvar debugf = function debugf(tag, f) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var res = f.apply(void 0, args);\n var name = tag || f.name || 'anonymous function';\n var argNames = \"(\".concat(args.map(JSON.stringify).join(', '), \")\");\n log(\"\".concat(name, \": \").concat(argNames, \" => \").concat(JSON.stringify(res)));\n return res;\n };\n};\n/*\n * @description: map object on every element in this object.\n * (function, object) => object\n */\n\nvar mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _objectSpread({}, res, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\n/*\n * @description: add compatible prefix to style\n * object => object\n */\n\nvar translateStyle = function translateStyle(style) {\n return Object.keys(style).reduce(function (res, key) {\n return _objectSpread({}, res, generatePrefixStyle(key, res[key]));\n }, style);\n};\nvar compose = function compose() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nvar getTransitionVal = function getTransitionVal(props, duration, easing) {\n return props.map(function (prop) {\n return \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing);\n }).join(',');\n};\nvar isDev = process.env.NODE_ENV !== 'production';\nvar warn = function warn(condition, format, a, b, c, d, e, f) {\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(6)))\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// returns a style object with a single concated prefixed value string\n\nexports.default = function (property, value) {\n var replacer = arguments.length <= 2 || arguments[2] === undefined ? function (prefix, value) {\n return prefix + value;\n } : arguments[2];\n return _defineProperty({}, property, ['-webkit-', '-moz-', ''].map(function (prefix) {\n return replacer(prefix, value);\n }));\n};\n\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 139 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util_PureRender__ = __webpack_require__(3);\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Z Axis\n */\n\n\n\n\nvar ZAxis = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ZAxis, _Component);\n\n function ZAxis() {\n _classCallCheck(this, ZAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ZAxis).apply(this, arguments));\n }\n\n _createClass(ZAxis, [{\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return ZAxis;\n}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]), _class2.displayName = 'ZAxis', _class2.propTypes = {\n type: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['number', 'category']),\n // The name of data displayed in the axis\n name: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number]),\n // The unit of data displayed in the axis\n unit: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number]),\n // The unique id of z-axis\n zAxisId: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number]),\n // The key of data displayed in the axis\n dataKey: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func]),\n // The range of axis\n range: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number),\n scale: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold']), __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func])\n}, _class2.defaultProps = {\n zAxisId: 0,\n range: [64, 64],\n scale: 'auto',\n type: 'number'\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (ZAxis);\n\n/***/ }),\n/* 140 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isNil__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isNil___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isNil__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_uniqBy__ = __webpack_require__(381);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_uniqBy___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_uniqBy__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_smooth__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__DefaultTooltipContent__ = __webpack_require__(882);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__util_PureRender__ = __webpack_require__(3);\n\n\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Tooltip\n */\n\n\n\n\n\n\n\n\nvar CLS_PREFIX = 'recharts-tooltip-wrapper';\nvar EPS = 1;\n\nvar defaultUniqBy = function defaultUniqBy(entry) {\n return entry.dataKey;\n};\n\nvar getUniqPaylod = function getUniqPaylod(option, payload) {\n if (option === true) {\n return __WEBPACK_IMPORTED_MODULE_2_lodash_uniqBy___default()(payload, defaultUniqBy);\n }\n\n if (__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default()(option)) {\n return __WEBPACK_IMPORTED_MODULE_2_lodash_uniqBy___default()(payload, option);\n }\n\n return payload;\n};\n\nvar propTypes = {\n content: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func]),\n viewBox: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.shape({\n x: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n width: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number\n }),\n active: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n separator: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string,\n formatter: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func,\n offset: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n itemStyle: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object,\n labelStyle: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object,\n wrapperStyle: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object,\n contentStyle: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object,\n cursor: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object]),\n coordinate: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.shape({\n x: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number\n }),\n position: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.shape({\n x: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number\n }),\n label: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.any,\n payload: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.shape({\n name: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.any,\n value: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.array]),\n unit: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.any,\n type: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_8__util_ReactUtils__[\"p\" /* TOOLTIP_TYPES */])\n })),\n paylodUniqBy: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool]),\n isAnimationActive: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n animationDuration: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n animationEasing: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n itemSorter: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func,\n filterNull: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n useTranslate3d: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool\n};\nvar defaultProps = {\n active: false,\n offset: 10,\n viewBox: {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n },\n coordinate: {\n x: 0,\n y: 0\n },\n cursorStyle: {},\n separator: ' : ',\n wrapperStyle: {},\n contentStyle: {},\n itemStyle: {},\n labelStyle: {},\n cursor: true,\n isAnimationActive: !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_ReactUtils__[\"m\" /* isSsr */])(),\n animationEasing: 'ease',\n animationDuration: 400,\n filterNull: true,\n useTranslate3d: false\n};\n\nvar renderContent = function renderContent(content, props) {\n if (__WEBPACK_IMPORTED_MODULE_3_react___default.a.isValidElement(content)) {\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.cloneElement(content, props);\n }\n\n if (__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default()(content)) {\n return content(props);\n }\n\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__DefaultTooltipContent__[\"a\" /* default */], props);\n};\n\nvar Tooltip = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Tooltip, _Component);\n\n function Tooltip() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Tooltip);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Tooltip)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n return _this;\n }\n\n _createClass(Tooltip, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: box.width,\n boxHeight: box.height\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames,\n _this2 = this;\n\n var _this$props = this.props,\n payload = _this$props.payload,\n isAnimationActive = _this$props.isAnimationActive,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n filterNull = _this$props.filterNull,\n paylodUniqBy = _this$props.paylodUniqBy;\n var finalPayload = getUniqPaylod(paylodUniqBy, filterNull && payload && payload.length ? payload.filter(function (entry) {\n return !__WEBPACK_IMPORTED_MODULE_0_lodash_isNil___default()(entry.value);\n }) : payload);\n var hasPayload = finalPayload && finalPayload.length;\n var _this$props2 = this.props,\n content = _this$props2.content,\n viewBox = _this$props2.viewBox,\n coordinate = _this$props2.coordinate,\n position = _this$props2.position,\n active = _this$props2.active,\n offset = _this$props2.offset,\n wrapperStyle = _this$props2.wrapperStyle;\n\n var outerStyle = _objectSpread({\n pointerEvents: 'none',\n visibility: active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0\n }, wrapperStyle);\n\n var translateX, translateY;\n\n if (position && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__[\"a\" /* isNumber */])(position.x) && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__[\"a\" /* isNumber */])(position.y)) {\n translateX = position.x;\n translateY = position.y;\n } else {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n\n if (boxWidth > 0 && boxHeight > 0 && coordinate) {\n translateX = position && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__[\"a\" /* isNumber */])(position.x) ? position.x : Math.max(coordinate.x + boxWidth + offset > viewBox.x + viewBox.width ? coordinate.x - boxWidth - offset : coordinate.x + offset, viewBox.x);\n translateY = position && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__[\"a\" /* isNumber */])(position.y) ? position.y : Math.max(coordinate.y + boxHeight + offset > viewBox.y + viewBox.height ? coordinate.y - boxHeight - offset : coordinate.y + offset, viewBox.y);\n } else {\n outerStyle.visibility = 'hidden';\n }\n }\n\n outerStyle = _objectSpread({}, outerStyle, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5_react_smooth__[\"b\" /* translateStyle */])({\n transform: this.props.useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n }));\n\n if (isAnimationActive && active) {\n outerStyle = _objectSpread({}, outerStyle, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5_react_smooth__[\"b\" /* translateStyle */])({\n transition: \"transform \".concat(animationDuration, \"ms \").concat(animationEasing)\n }));\n }\n\n var cls = __WEBPACK_IMPORTED_MODULE_6_classnames___default()(CLS_PREFIX, (_classNames = {}, _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-right\"), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__[\"a\" /* isNumber */])(translateX) && coordinate && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__[\"a\" /* isNumber */])(coordinate.x) && translateX >= coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-left\"), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__[\"a\" /* isNumber */])(translateX) && coordinate && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__[\"a\" /* isNumber */])(coordinate.x) && translateX < coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-bottom\"), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__[\"a\" /* isNumber */])(translateY) && coordinate && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__[\"a\" /* isNumber */])(coordinate.y) && translateY >= coordinate.y), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-top\"), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__[\"a\" /* isNumber */])(translateY) && coordinate && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__[\"a\" /* isNumber */])(coordinate.y) && translateY < coordinate.y), _classNames));\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(\"div\", {\n className: cls,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread({}, this.props, {\n payload: finalPayload\n })));\n }\n }]);\n\n return Tooltip;\n}(__WEBPACK_IMPORTED_MODULE_3_react__[\"Component\"]), _class2.displayName = 'Tooltip', _class2.propTypes = propTypes, _class2.defaultProps = defaultProps, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Tooltip);\n\n/***/ }),\n/* 141 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__shape_Dot__ = __webpack_require__(56);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__shape_Polygon__ = __webpack_require__(143);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__component_Text__ = __webpack_require__(55);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__util_PolarUtils__ = __webpack_require__(30);\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Axis of radial direction\n */\n\n\n\n\n\n\n\n\n\nvar RADIAN = Math.PI / 180;\nvar eps = 1e-5;\n\nvar PolarAngleAxis = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(PolarAngleAxis, _Component);\n\n function PolarAngleAxis() {\n _classCallCheck(this, PolarAngleAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(PolarAngleAxis).apply(this, arguments));\n }\n\n _createClass(PolarAngleAxis, [{\n key: \"getTickLineCoord\",\n\n /**\n * Calculate the coordinate of line endpoint\n * @param {Object} data The Data if ticks\n * @return {Object} (x0, y0): The start point of text,\n * (x1, y1): The end point close to text,\n * (x2, y2): The end point close to axis\n */\n value: function getTickLineCoord(data) {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n radius = _this$props.radius,\n orientation = _this$props.orientation,\n tickLine = _this$props.tickLine;\n var tickLineSize = tickLine && tickLine.size || 8;\n var p1 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, radius, data.coordinate);\n var p2 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, radius + (orientation === 'inner' ? -1 : 1) * tickLineSize, data.coordinate);\n return {\n x1: p1.x,\n y1: p1.y,\n x2: p2.x,\n y2: p2.y\n };\n }\n /**\n * Get the text-anchor of each tick\n * @param {Object} data Data of ticks\n * @return {String} text-anchor\n */\n\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor(data) {\n var orientation = this.props.orientation;\n var cos = Math.cos(-data.coordinate * RADIAN);\n var textAnchor;\n\n if (cos > eps) {\n textAnchor = orientation === 'outer' ? 'start' : 'end';\n } else if (cos < -eps) {\n textAnchor = orientation === 'outer' ? 'end' : 'start';\n } else {\n textAnchor = 'middle';\n }\n\n return textAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props2 = this.props,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n radius = _this$props2.radius,\n axisLine = _this$props2.axisLine,\n axisLineType = _this$props2.axisLineType;\n\n var props = _objectSpread({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), {\n fill: 'none'\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(axisLine));\n\n if (axisLineType === 'circle') {\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__shape_Dot__[\"a\" /* default */], _extends({\n className: \"recharts-polar-angle-axis-line\"\n }, props, {\n cx: cx,\n cy: cy,\n r: radius\n }));\n }\n\n var ticks = this.props.ticks;\n var points = ticks.map(function (entry) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, radius, entry.coordinate);\n });\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__shape_Polygon__[\"a\" /* default */], _extends({\n className: \"recharts-polar-angle-axis-line\"\n }, props, {\n points: points\n }));\n }\n }, {\n key: \"renderTicks\",\n value: function renderTicks() {\n var _this = this;\n\n var _this$props3 = this.props,\n ticks = _this$props3.ticks,\n tick = _this$props3.tick,\n tickLine = _this$props3.tickLine,\n tickFormatter = _this$props3.tickFormatter,\n stroke = _this$props3.stroke;\n var axisProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props);\n var customTickProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(tick);\n\n var tickLineProps = _objectSpread({}, axisProps, {\n fill: 'none'\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(tickLine));\n\n var items = ticks.map(function (entry, i) {\n var lineCoord = _this.getTickLineCoord(entry);\n\n var textAnchor = _this.getTickTextAnchor(entry);\n\n var tickProps = _objectSpread({\n textAnchor: textAnchor\n }, axisProps, {\n stroke: 'none',\n fill: stroke\n }, customTickProps, {\n index: i,\n payload: entry,\n x: lineCoord.x2,\n y: lineCoord.y2\n });\n\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__container_Layer__[\"a\" /* default */], _extends({\n className: \"recharts-polar-angle-axis-tick\",\n key: \"tick-\".concat(i)\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"n\" /* filterEventsOfChild */])(_this.props, entry, i)), tickLine && __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\"line\", _extends({\n className: \"recharts-polar-angle-axis-tick-line\"\n }, tickLineProps, lineCoord)), tick && _this.constructor.renderTickItem(tick, tickProps, tickFormatter ? tickFormatter(entry.value) : entry.value));\n });\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__container_Layer__[\"a\" /* default */], {\n className: \"recharts-polar-angle-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n ticks = _this$props4.ticks,\n radius = _this$props4.radius,\n axisLine = _this$props4.axisLine;\n\n if (radius <= 0 || !ticks || !ticks.length) {\n return null;\n }\n\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__container_Layer__[\"a\" /* default */], {\n className: \"recharts-polar-angle-axis\"\n }, axisLine && this.renderAxisLine(), this.renderTicks());\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n\n if (__WEBPACK_IMPORTED_MODULE_1_react___default.a.isValidElement(option)) {\n tickItem = __WEBPACK_IMPORTED_MODULE_1_react___default.a.cloneElement(option, props);\n } else if (__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default()(option)) {\n tickItem = option(props);\n } else {\n tickItem = __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__component_Text__[\"a\" /* default */], _extends({}, props, {\n className: \"recharts-polar-angle-axis-tick-value\"\n }), value);\n }\n\n return tickItem;\n }\n }]);\n\n return PolarAngleAxis;\n}(__WEBPACK_IMPORTED_MODULE_1_react__[\"Component\"]), _class2.displayName = 'PolarAngleAxis', _class2.axisType = 'angleAxis', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], __WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"d\" /* EVENT_ATTRIBUTES */], {\n type: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOf(['number', 'category']),\n angleAxisId: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number]),\n dataKey: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func]),\n cx: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n cy: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n radius: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string]),\n hide: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool,\n scale: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"r\" /* SCALE_TYPES */]), __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func]),\n axisLine: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object]),\n axisLineType: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOf(['polygon', 'circle']),\n tickLine: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object]),\n tick: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.element]),\n ticks: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.shape({\n value: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.any,\n coordinate: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number\n })),\n stroke: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string,\n orientation: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOf(['inner', 'outer']),\n tickFormatter: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,\n allowDuplicatedCategory: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool\n}), _class2.defaultProps = {\n type: 'category',\n angleAxisId: 0,\n scale: 'auto',\n cx: 0,\n cy: 0,\n domain: [0, 'auto'],\n orientation: 'outer',\n axisLine: true,\n tickLine: true,\n tick: true,\n hide: false,\n allowDuplicatedCategory: true\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (PolarAngleAxis);\n\n/***/ }),\n/* 142 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_minBy__ = __webpack_require__(774);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_minBy___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_minBy__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_maxBy__ = __webpack_require__(375);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_maxBy___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_maxBy__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__component_Text__ = __webpack_require__(55);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__component_Label__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__util_PolarUtils__ = __webpack_require__(30);\n\n\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview The axis of polar coordinate system\n */\n\n\n\n\n\n\n\n\n\nvar PolarRadiusAxis = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(PolarRadiusAxis, _Component);\n\n function PolarRadiusAxis() {\n _classCallCheck(this, PolarRadiusAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(PolarRadiusAxis).apply(this, arguments));\n }\n\n _createClass(PolarRadiusAxis, [{\n key: \"getTickValueCoord\",\n\n /**\n * Calculate the coordinate of tick\n * @param {Number} coordinate The radius of tick\n * @return {Object} (x, y)\n */\n value: function getTickValueCoord(_ref) {\n var coordinate = _ref.coordinate;\n var _this$props = this.props,\n angle = _this$props.angle,\n cx = _this$props.cx,\n cy = _this$props.cy;\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, coordinate, angle);\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var orientation = this.props.orientation;\n var textAnchor;\n\n switch (orientation) {\n case 'left':\n textAnchor = 'end';\n break;\n\n case 'right':\n textAnchor = 'start';\n break;\n\n default:\n textAnchor = 'middle';\n break;\n }\n\n return textAnchor;\n }\n }, {\n key: \"getViewBox\",\n value: function getViewBox() {\n var _this$props2 = this.props,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n angle = _this$props2.angle,\n ticks = _this$props2.ticks;\n\n var maxRadiusTick = __WEBPACK_IMPORTED_MODULE_2_lodash_maxBy___default()(ticks, function (entry) {\n return entry.coordinate || 0;\n });\n\n var minRadiusTick = __WEBPACK_IMPORTED_MODULE_1_lodash_minBy___default()(ticks, function (entry) {\n return entry.coordinate || 0;\n });\n\n return {\n cx: cx,\n cy: cy,\n startAngle: angle,\n endAngle: angle,\n innerRadius: minRadiusTick.coordinate || 0,\n outerRadius: maxRadiusTick.coordinate || 0\n };\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props3 = this.props,\n cx = _this$props3.cx,\n cy = _this$props3.cy,\n angle = _this$props3.angle,\n ticks = _this$props3.ticks,\n axisLine = _this$props3.axisLine,\n others = _objectWithoutProperties(_this$props3, [\"cx\", \"cy\", \"angle\", \"ticks\", \"axisLine\"]);\n\n var extent = ticks.reduce(function (result, entry) {\n return [Math.min(result[0], entry.coordinate), Math.max(result[1], entry.coordinate)];\n }, [Infinity, -Infinity]);\n var point0 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, extent[0], angle);\n var point1 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, extent[1], angle);\n\n var props = _objectSpread({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(others), {\n fill: 'none'\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(axisLine), {\n x1: point0.x,\n y1: point0.y,\n x2: point1.x,\n y2: point1.y\n });\n\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(\"line\", _extends({\n className: \"recharts-polar-radius-axis-line\"\n }, props));\n }\n }, {\n key: \"renderTicks\",\n value: function renderTicks() {\n var _this = this;\n\n var _this$props4 = this.props,\n ticks = _this$props4.ticks,\n tick = _this$props4.tick,\n angle = _this$props4.angle,\n tickFormatter = _this$props4.tickFormatter,\n stroke = _this$props4.stroke,\n others = _objectWithoutProperties(_this$props4, [\"ticks\", \"tick\", \"angle\", \"tickFormatter\", \"stroke\"]);\n\n var textAnchor = this.getTickTextAnchor();\n var axisProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(others);\n var customTickProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(tick);\n var items = ticks.map(function (entry, i) {\n var coord = _this.getTickValueCoord(entry);\n\n var tickProps = _objectSpread({\n textAnchor: textAnchor,\n transform: \"rotate(\".concat(90 - angle, \", \").concat(coord.x, \", \").concat(coord.y, \")\")\n }, axisProps, {\n stroke: 'none',\n fill: stroke\n }, customTickProps, {\n index: i\n }, coord, {\n payload: entry\n });\n\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], _extends({\n className: \"recharts-polar-radius-axis-tick\",\n key: \"tick-\".concat(i)\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"n\" /* filterEventsOfChild */])(_this.props, entry, i)), _this.constructor.renderTickItem(tick, tickProps, tickFormatter ? tickFormatter(entry.value) : entry.value));\n });\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], {\n className: \"recharts-polar-radius-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props5 = this.props,\n ticks = _this$props5.ticks,\n axisLine = _this$props5.axisLine,\n tick = _this$props5.tick;\n\n if (!ticks || !ticks.length) {\n return null;\n }\n\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], {\n className: \"recharts-polar-radius-axis\"\n }, axisLine && this.renderAxisLine(), tick && this.renderTicks(), __WEBPACK_IMPORTED_MODULE_7__component_Label__[\"a\" /* default */].renderCallByParent(this.props, this.getViewBox()));\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n\n if (__WEBPACK_IMPORTED_MODULE_3_react___default.a.isValidElement(option)) {\n tickItem = __WEBPACK_IMPORTED_MODULE_3_react___default.a.cloneElement(option, props);\n } else if (__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default()(option)) {\n tickItem = option(props);\n } else {\n tickItem = __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__component_Text__[\"a\" /* default */], _extends({}, props, {\n className: \"recharts-polar-radius-axis-tick-value\"\n }), value);\n }\n\n return tickItem;\n }\n }]);\n\n return PolarRadiusAxis;\n}(__WEBPACK_IMPORTED_MODULE_3_react__[\"Component\"]), _class2.displayName = 'PolarRadiusAxis', _class2.axisType = 'radiusAxis', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], __WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"d\" /* EVENT_ATTRIBUTES */], {\n type: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(['number', 'category']),\n cx: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n cy: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n hide: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n radiusAxisId: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number]),\n angle: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n tickCount: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n ticks: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.shape({\n value: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.any,\n coordinate: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number\n })),\n orientation: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(['left', 'right', 'middle']),\n axisLine: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object]),\n tick: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func]),\n stroke: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string,\n tickFormatter: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func,\n domain: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(['auto', 'dataMin', 'dataMax'])])),\n scale: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold']), __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func]),\n allowDataOverflow: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n allowDuplicatedCategory: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool\n}), _class2.defaultProps = {\n type: 'number',\n radiusAxisId: 0,\n cx: 0,\n cy: 0,\n angle: 0,\n orientation: 'right',\n stroke: '#ccc',\n axisLine: true,\n tick: true,\n tickCount: 5,\n domain: [0, 'auto'],\n allowDataOverflow: false,\n scale: 'auto',\n allowDuplicatedCategory: true\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (PolarRadiusAxis);\n\n/***/ }),\n/* 143 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__ = __webpack_require__(2);\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Polygon\n */\n\n\n\n\n\n\nvar getPolygonPoints = function getPolygonPoints(points) {\n return points.reduce(function (result, entry) {\n if (entry.x === +entry.x && entry.y === +entry.y) {\n result.push([entry.x, entry.y]);\n }\n\n return result;\n }, []).join(' ');\n};\n\nvar Polygon = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Polygon, _Component);\n\n function Polygon() {\n _classCallCheck(this, Polygon);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Polygon).apply(this, arguments));\n }\n\n _createClass(Polygon, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n points = _this$props.points,\n className = _this$props.className;\n\n if (!points || !points.length) {\n return null;\n }\n\n var layerClass = __WEBPACK_IMPORTED_MODULE_2_classnames___default()('recharts-polygon', className);\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"polygon\", _extends({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__[\"b\" /* filterEventAttributes */])(this.props), {\n className: layerClass,\n points: getPolygonPoints(points)\n }));\n }\n }]);\n\n return Polygon;\n}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]), _class2.displayName = 'Polygon', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], {\n className: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n points: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n x: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number\n }))\n}), _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Polygon);\n\n/***/ }),\n/* 144 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_PolarUtils__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__util_DataUtils__ = __webpack_require__(11);\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Sector\n */\n\n\n\n\n\n\n\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_DataUtils__[\"g\" /* mathSign */])(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\n\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / __WEBPACK_IMPORTED_MODULE_5__util_PolarUtils__[\"e\" /* RADIAN */];\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, centerRadius, centerAngle); // The coordinate of point which is tangent to the circle\n\n var circleTangency = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, radius, centerAngle); // The coordinate of point which is tangent to the radius line\n\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, centerRadius * Math.cos(theta * __WEBPACK_IMPORTED_MODULE_5__util_PolarUtils__[\"e\" /* RADIAN */]), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\n\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle); // When the angle of sector equals to 360, star point and end point coincide\n\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, outerRadius, startAngle);\n var outerEndPoint = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n\n if (innerRadius > 0) {\n var innerStartPoint = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, innerRadius, startAngle);\n var innerEndPoint = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n\n return path;\n};\n\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_DataUtils__[\"g\" /* mathSign */])(endAngle - startAngle);\n\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n\n var outerArcAngle = Math.abs(startAngle - endAngle) - sot - eot;\n\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n\n var innerArcAngle = Math.abs(startAngle - endAngle) - sit - eit;\n\n if (innerArcAngle < 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n\n return path;\n};\n\nvar Sector = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Sector, _Component);\n\n function Sector() {\n _classCallCheck(this, Sector);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Sector).apply(this, arguments));\n }\n\n _createClass(Sector, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n innerRadius = _this$props.innerRadius,\n outerRadius = _this$props.outerRadius,\n cornerRadius = _this$props.cornerRadius,\n forceCornerRadius = _this$props.forceCornerRadius,\n cornerIsExternal = _this$props.cornerIsExternal,\n startAngle = _this$props.startAngle,\n endAngle = _this$props.endAngle,\n className = _this$props.className;\n\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n\n var layerClass = __WEBPACK_IMPORTED_MODULE_2_classnames___default()('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_DataUtils__[\"h\" /* getPercentValue */])(cornerRadius, deltaRadius, 0, true);\n var path;\n\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"path\", _extends({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__[\"b\" /* filterEventAttributes */])(this.props), {\n className: layerClass,\n d: path\n }));\n }\n }]);\n\n return Sector;\n}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]), _class2.displayName = 'Sector', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], {\n className: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n cx: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n cy: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n innerRadius: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n outerRadius: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n startAngle: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n endAngle: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n cornerRadius: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string]),\n forceCornerRadius: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n cornerIsExternal: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool\n}), _class2.defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Sector);\n\n/***/ }),\n/* 145 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export getStyleString */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return getStringSize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return getOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return calculateChartCoordinate; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ReactUtils__ = __webpack_require__(2);\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\n\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\n\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n\n return value;\n}\n\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return _toConsumableArray(result).concat(['-', entry.toLowerCase()]);\n }\n\n return _toConsumableArray(result).concat([entry]);\n }, []);\n return formatStrs.join('');\n}\n\nvar getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nvar getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (text === undefined || text === null || __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__ReactUtils__[\"m\" /* isSsr */])()) {\n return {\n width: 0,\n height: 0\n };\n }\n\n var str = \"\".concat(text);\n var styleString = getStyleString(style);\n var cacheKey = \"\".concat(str, \"-\").concat(styleString);\n\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n document.body.appendChild(measurementSpan);\n } // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n\n\n var measurementSpanStyle = _objectSpread({}, SPAN_STYLE, style);\n\n Object.keys(measurementSpanStyle).map(function (styleKey) {\n measurementSpan.style[styleKey] = measurementSpanStyle[styleKey];\n return styleKey;\n });\n measurementSpan.textContent = str;\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nvar getOffset = function getOffset(el) {\n var html = el.ownerDocument.documentElement;\n var box = {\n top: 0,\n left: 0\n }; // If we don't have gBCR, just use 0,0 rather than error\n // BlackBerry 5, iOS 3 (original iPhone)\n\n if (typeof el.getBoundingClientRect !== 'undefined') {\n box = el.getBoundingClientRect();\n }\n\n return {\n top: box.top + window.pageYOffset - html.clientTop,\n left: box.left + window.pageXOffset - html.clientLeft\n };\n};\n/**\n * Calculate coordinate of cursor in chart\n * @param {Object} event Event object\n * @param {Object} offset The offset of main part in the svg element\n * @return {Object} {chartX, chartY}\n */\n\nvar calculateChartCoordinate = function calculateChartCoordinate(event, offset) {\n return {\n chartX: Math.round(event.pageX - offset.left),\n chartY: Math.round(event.pageY - offset.top)\n };\n};\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(78);\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports) {\n\nmodule.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\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(7), __webpack_require__(454), __webpack_require__(27), __webpack_require__(17), __webpack_require__(167), __webpack_require__(8), __webpack_require__(19), __webpack_require__(61)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, Rest, Views, Dialogs, Strings_1, JumboHeadControl_1, ClientAppSettings_1, InFrame_1, logger_1) {\r\n function isBrowserSupported() {\r\n return true;\r\n }\r\n exports.isBrowserSupported = isBrowserSupported;\r\n function refreshClientAppSettings() {\r\n return Rest.AccountClient.getClientSettings().done(function (settings) {\r\n _.extend(ClientAppSettings_1.clientAppSettings, settings, _.pick(ClientAppSettings_1.clientAppSettings, 'homeUrl'));\r\n });\r\n }\r\n exports.refreshClientAppSettings = refreshClientAppSettings;\r\n var ControllerBase = (function (_super) {\r\n __extends(ControllerBase, _super);\r\n function ControllerBase(app) {\r\n var _this = _super.call(this) || this;\r\n _this.app = app;\r\n return _this;\r\n }\r\n ControllerBase.prototype.isAdmin = function () {\r\n return this.app.signedInUser != null && this.app.signedInUser.Roles.indexOf('admin') >= 0;\r\n };\r\n ControllerBase.prototype.isReviewer = function () {\r\n return this.app.signedInUser != null && this.app.signedInUser.Roles.indexOf('reviewer') >= 0;\r\n };\r\n ControllerBase.prototype.setSearchState = function (search, searchOpened) {\r\n this.masterPageComponent.setState(_.extend(this.masterPageState, { searchString: search, expandSearch: searchOpened }));\r\n };\r\n ControllerBase.prototype.load = function (params) {\r\n var _this = this;\r\n _super.prototype.load.call(this, params);\r\n $(this.app.getAppBody()).off();\r\n this.params = params;\r\n if (this.pageRequiresSignIn()) {\r\n if (!isBrowserSupported()) {\r\n this.renderCommon(true);\r\n this.updateState(false, null, function () {\r\n });\r\n }\r\n else if (this.app.signedInUser) {\r\n this.renderCommon();\r\n this.updateState(false, null, function () {\r\n _this.render(params);\r\n });\r\n }\r\n else {\r\n Rest.AccountClient.getSignedInUser().done(function (user) {\r\n logger_1.default.debug('got signed in user');\r\n _this.app.signedInUser = user;\r\n if (!_this.setRequestVerificationHeader()) {\r\n logger_1.default.debug(\"ControllerBase v3: Failed to set request verification header when getting signed in user.\");\r\n }\r\n _this.renderCommon();\r\n refreshClientAppSettings().then(function () {\r\n _this.updateState(false, null, function () { return _this.render(params); });\r\n });\r\n }).fail(function () {\r\n if (InFrame_1.default()) {\r\n logger_1.default.debug('wait for cross-frame message');\r\n }\r\n else {\r\n _this.app.signedInUser = null;\r\n _this.renderCommon(true);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n this.renderCommon(InFrame_1.default());\r\n this.updateState(false, null, function () {\r\n _this.render(params);\r\n });\r\n }\r\n this.addRemoveCssClass(true);\r\n this.app.trackingCookieConsent.loadPageTrackingIfInformed();\r\n };\r\n ControllerBase.prototype.unload = function () {\r\n this.addRemoveCssClass(false);\r\n this.app.trackingCookieConsent.markAsInformed();\r\n };\r\n ControllerBase.prototype.addRemoveCssClass = function (add) {\r\n var cssClass = this.getCssClass();\r\n if (cssClass) {\r\n var $appBody = $(this.app.getAppBody());\r\n if (add) {\r\n $appBody.addClass(cssClass);\r\n }\r\n else {\r\n $appBody.removeClass(cssClass);\r\n }\r\n }\r\n };\r\n ControllerBase.prototype.getCssClass = function () {\r\n return null;\r\n };\r\n ControllerBase.prototype.pageRequiresSignIn = function () {\r\n return true;\r\n };\r\n ControllerBase.prototype.refreshSignedInUser = function () {\r\n if (!this.setRequestVerificationHeader()) {\r\n logger_1.default.debug(\"ControllerBase v3: Failed to set request verification header when refreshing signed in user.\");\r\n }\r\n if (!this.app.signedInUser) {\r\n logger_1.default.debug('begin refresh signed user');\r\n this.load(this.params);\r\n }\r\n };\r\n ControllerBase.prototype.renderCommon = function (checkBrowserSupport) {\r\n var _this = this;\r\n var props = {\r\n isAdmin: function () { return _this.isAdmin(); },\r\n isReviewer: function () { return _this.isReviewer(); },\r\n signInRequired: this.pageRequiresSignIn(),\r\n onSearch: function (s) { return _this.handleSearch(s); },\r\n onSignOutClicked: function () { return _this.onSignOutClicked(); },\r\n refreshSignedInUser: function () { return _this.refreshSignedInUser(); },\r\n isRoutableUrl: function (url) {\r\n var appPath = _this.app.getAppPath();\r\n return !(/^https?:/i.test(url) || /^\\/\\//.test(url));\r\n }\r\n };\r\n var element = React.createElement(Views.MasterPage, props);\r\n this.masterPageComponent = ReactDOM.render(element, this.app.getAppBody(), function () {\r\n _this.pageContent = $(\".page-content\")[0];\r\n _this.attachHandlers();\r\n });\r\n this.masterPageComponent.setState({ unsupportedBrowser: checkBrowserSupport && !isBrowserSupported() });\r\n };\r\n ControllerBase.prototype.updateTitle = function (title) {\r\n $('head title').text(title || Strings_1.resourceStrings.botFrameworkExtended);\r\n };\r\n ControllerBase.prototype.render = function (params) {\r\n this.updateTitle(null);\r\n $('.action-sheet').toggleClass(\"hidden\", true);\r\n };\r\n ControllerBase.prototype.updateState = function (signInInProgress, signInError, callback) {\r\n var _this = this;\r\n var curActiveLink = this.masterPageState ? this.masterPageState.activeLink : JumboHeadControl_1.NavLinks.root;\r\n this.masterPageState = {\r\n signInState: this.masterPageState ? this.masterPageState.signInState : null,\r\n signedInUser: this.app.signedInUser,\r\n signInInProgress: signInInProgress,\r\n signInError: signInError,\r\n activeLink: curActiveLink,\r\n searchString: null,\r\n };\r\n this.masterPageComponent.setState(this.masterPageState, function () {\r\n _this.pageContent = $(\".page-content\")[0];\r\n if (callback)\r\n callback();\r\n });\r\n };\r\n ControllerBase.prototype.setActiveJumboActiveLink = function (activeLink) {\r\n if (this.masterPageComponent) {\r\n this.masterPageState.activeLink = activeLink;\r\n this.masterPageComponent.setState(this.masterPageState);\r\n }\r\n };\r\n ControllerBase.prototype.handleSearch = function (s) {\r\n if (s.trim()) {\r\n this.app.navigate(ClientAppSettings_1.clientAppSettings.searchRoute || '/bots', { s: s });\r\n }\r\n };\r\n ControllerBase.prototype.attachHandlers = function () {\r\n var _this = this;\r\n var $appBody = $(this.app.getAppBody());\r\n $appBody.on('click', '.signed-in-user', function () { return _this.onSignedInUserClicked(); });\r\n $appBody.on('click', '.waitlist-request', function () { return _this.onWaitListButtonClicked(); });\r\n };\r\n ControllerBase.prototype.extractErrorFromXHR = function (xhr) {\r\n if (xhr && xhr.responseText) {\r\n try {\r\n var error = $.parseJSON(xhr.responseText);\r\n if (error) {\r\n error = error.Errors && error.Errors.length > 0 ? error.Errors[0] : error;\r\n var message = error.Message || (error.Error ? error.Error.Message : null);\r\n if (message) {\r\n return message;\r\n }\r\n }\r\n }\r\n catch (ex) {\r\n }\r\n }\r\n return null;\r\n };\r\n ControllerBase.prototype.handleHttpResponseError = function (xhr) {\r\n var errorMessage = this.extractErrorFromXHR(xhr);\r\n var promise;\r\n if (errorMessage) {\r\n promise = Dialogs.MessageBox.show(errorMessage);\r\n }\r\n else {\r\n switch (xhr.status) {\r\n case 400:\r\n promise = Dialogs.MessageBox.show(\"The action or the supplied values are invalid.\");\r\n break;\r\n case 401: {\r\n var deferred_1 = $.Deferred();\r\n this.app.signedInUser = null;\r\n this.updateState(false, null, function () { deferred_1.resolve(null); });\r\n promise = deferred_1.promise();\r\n break;\r\n }\r\n case 403:\r\n promise = Dialogs.MessageBox.show(\"This item cannot be accessed or modified.\");\r\n break;\r\n case 404:\r\n promise = Dialogs.MessageBox.show(\"The item cannot be found.\");\r\n break;\r\n case 500:\r\n promise = Dialogs.MessageBox.show(\"An internal error occurred at the server.\");\r\n break;\r\n default:\r\n if (xhr.statusText)\r\n promise = Dialogs.MessageBox.show(\"Error: \" + xhr.statusText);\r\n else\r\n promise = Dialogs.MessageBox.show(\"An unknown error occurred.\");\r\n break;\r\n }\r\n }\r\n return promise;\r\n };\r\n ControllerBase.prototype.redirectIfNeeded = function () {\r\n var prefix = \"?appapiret=\";\r\n var index = window.location.href.indexOf(prefix);\r\n if (index === -1)\r\n return false;\r\n var ret = window.location.href.substr(index + prefix.length);\r\n if (ret) {\r\n window.location.assign(decodeURIComponent(ret));\r\n return true;\r\n }\r\n return false;\r\n };\r\n ControllerBase.prototype.onSignedInUserClicked = function () {\r\n var dropdownMenu = this.masterPageComponent.refs[\"userMenu\"];\r\n dropdownMenu.displayBelow($('.signed-in-user'));\r\n };\r\n ControllerBase.prototype.cleanupErrorMessage = function (message) {\r\n return message.replace(/\\+/g, ' ');\r\n };\r\n ControllerBase.prototype.handleIntercomLoginError = function (xhr, accessToken) {\r\n var signInState = xhr.responseJSON.Message;\r\n switch (signInState) {\r\n case \"SignedUp\":\r\n case \"NotSignedUp\":\r\n this.accessToken = accessToken;\r\n this.masterPageState.signInState = signInState;\r\n this.updateState(false, null);\r\n return true;\r\n }\r\n return false;\r\n };\r\n ControllerBase.prototype.onWaitListButtonClicked = function () {\r\n var _this = this;\r\n Rest.AccountClient.addUserToWaitlist().done(function () {\r\n _this.masterPageState.signInState = \"SignedUp\";\r\n _this.updateState(false, null);\r\n }).fail(function (xhr) {\r\n _this.handleHttpResponseError(xhr);\r\n });\r\n };\r\n ControllerBase.prototype.onSignOutClicked = function () {\r\n var path = ClientAppSettings_1.clientAppSettings.applicationPath === '/' ? '' : ClientAppSettings_1.clientAppSettings.applicationPath;\r\n window.location.assign(path + '/signout_all.aspx');\r\n };\r\n ControllerBase.prototype.setRequestVerificationHeader = function () {\r\n var requestVerificationToken = ControllerBase.readCookie('Csrf-Token');\r\n if (requestVerificationToken) {\r\n Rest.ajaxHeaders = _.extend(Rest.ajaxHeaders || {}, { 'X-Csrf-Token': requestVerificationToken });\r\n }\r\n return !!requestVerificationToken;\r\n };\r\n ControllerBase.readCookie = function (name) {\r\n var nameEquals = name + '=';\r\n var cookies = document.cookie.split(';');\r\n for (var i = 0; i < cookies.length; i++) {\r\n var cookie = cookies[i].replace(/^\\s+/, '');\r\n if (cookie.indexOf(nameEquals) === 0)\r\n return cookie.substring(nameEquals.length);\r\n }\r\n return null;\r\n };\r\n ControllerBase.prototype.scrollToTop = function () {\r\n window.scrollTo(0, 0);\r\n };\r\n ControllerBase.prototype.hasUnsavedChanges = function () {\r\n return false;\r\n };\r\n return ControllerBase;\r\n }(SimpleMvc.Controller));\r\n exports.ControllerBase = ControllerBase;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(102)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, GenericDialog_1) {\r\n var InputDialogBase = (function (_super) {\r\n __extends(InputDialogBase, _super);\r\n function InputDialogBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n InputDialogBase.prototype.onOK = function () {\r\n this.closeDialog();\r\n this.resolve(this.panel.state);\r\n };\r\n InputDialogBase.prototype.setPanelState = function (state, callback) {\r\n this.panel.setState(state, callback);\r\n };\r\n return InputDialogBase;\r\n }(GenericDialog_1.GenericDialog));\r\n exports.InputDialogBase = InputDialogBase;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(7), __webpack_require__(48), __webpack_require__(107), __webpack_require__(104)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, Rest, Url_1, HttpMethods_1, PollingModel_1) {\r\n var armApiVersion = '2014-04-01';\r\n var tenantApiVersion = '2018-01-01';\r\n var storageApiVersion = '2015-05-01-preview';\r\n var appInsightsApiVersion = '2015-05-01';\r\n var websiteApiVersion = '2015-08-01';\r\n var aspApiVersion = '2016-03-01';\r\n var sourceControlApiVersion = '2016-08-01';\r\n var deploymentApiVersion = '2017-05-10';\r\n var botServiceApiVersion = '2017-12-01';\r\n var ArmClient = (function () {\r\n function ArmClient(token) {\r\n this.token = token;\r\n this.armRoot = Url_1.parseUrl('https://management.azure.com');\r\n }\r\n ArmClient.prototype.get = function (url) {\r\n return this.request(url, HttpMethods_1.Method.GET);\r\n };\r\n ArmClient.prototype.post = function (url, data) {\r\n return this.request(url, HttpMethods_1.Method.POST, data);\r\n };\r\n ArmClient.prototype.patch = function (url, data) {\r\n return this.request(url, HttpMethods_1.Method.PATCH, data);\r\n };\r\n ArmClient.prototype.delete = function (url) {\r\n return this.request(url, HttpMethods_1.Method.DELETE);\r\n };\r\n ArmClient.prototype.put = function (url, data, includeIfMatch) {\r\n if (includeIfMatch === void 0) { includeIfMatch = true; }\r\n return this.request(url, HttpMethods_1.Method.PUT, data, includeIfMatch);\r\n };\r\n ArmClient.prototype.head = function (url) {\r\n return this.request(url, HttpMethods_1.Method.HEAD);\r\n };\r\n ArmClient.prototype.getSubscriptions = function () {\r\n var url = this.armRoot.format() + \"/subscriptions?api-version=\" + armApiVersion;\r\n return this.get(url);\r\n };\r\n ArmClient.prototype.getSubscription = function (subscriptionId) {\r\n var url = this.armRoot.format() + \"/subscriptions/\" + subscriptionId + \"?api-version=\" + armApiVersion;\r\n return this.get(url);\r\n };\r\n ArmClient.prototype.getRegions = function (subscriptionId) {\r\n var url = this.armRoot.format() + \"/subscriptions/\" + subscriptionId + \"/providers/Microsoft.Web/georegions?sku=Dynamic&api-version=\" + websiteApiVersion;\r\n return this.get(url);\r\n };\r\n ArmClient.prototype.getAppServicePlans = function (subscriptionId) {\r\n var url = this.armRoot.format() + \"/subscriptions/\" + subscriptionId + \"/providers/Microsoft.Web/serverfarms?api-version=\" + aspApiVersion;\r\n return this.get(url);\r\n };\r\n ArmClient.prototype.getResourceGroups = function (subscriptionId) {\r\n var url = this.armRoot.format() + \"/subscriptions/\" + subscriptionId + \"/resourceGroups?api-version=\" + armApiVersion;\r\n return this.get(url);\r\n };\r\n ArmClient.prototype.getWebAppService = function (rsrcId) {\r\n var url = \"\" + this.armRoot.format() + rsrcId + \"?api-version=\" + websiteApiVersion;\r\n return this.get(url);\r\n };\r\n ArmClient.prototype.getWebAppSettings = function (subId, rgName, appId) {\r\n var url = this.armRoot.format() + \"/subscriptions/\" + subId + \"/resourceGroups/\" + rgName + \"/providers/Microsoft.Web/sites/\" + appId + \"/config/appsettings/list?api-version=\" + websiteApiVersion;\r\n return this.post(url);\r\n };\r\n ArmClient.prototype.getAppInsights = function (subId, rgName, insightsName) {\r\n var url = this.armRoot.format() + \"/subscriptions/\" + subId + \"/resourceGroups/\" + rgName + \"/providers/microsoft.insights/components/\" + insightsName + \"?api-version=\" + appInsightsApiVersion;\r\n return this.get(url);\r\n };\r\n ArmClient.prototype.updateAppInsightsTags = function (subId, rgName, insightsName, tags) {\r\n var url = this.armRoot.format() + \"/subscriptions/\" + subId + \"/resourceGroups/\" + rgName + \"/providers/microsoft.insights/components/\" + insightsName + \"?api-version=\" + appInsightsApiVersion;\r\n return this.patch(url, {\r\n tags: tags\r\n });\r\n };\r\n ArmClient.prototype.isAppNameAvailable = function (subscriptionId, appName) {\r\n var url = this.armRoot.format() + \"/subscriptions/\" + subscriptionId + \"/providers/Microsoft.Web/ishostnameavailable/\" + appName + \"?api-version=\" + websiteApiVersion;\r\n return this.get(url);\r\n };\r\n ArmClient.prototype.deleteDeployment = function (deploymentId) {\r\n var url = \"\" + this.armRoot.format() + deploymentId + \"?api-version=\" + deploymentApiVersion;\r\n return this.requestVoidResult(url, HttpMethods_1.Method.DELETE);\r\n };\r\n ArmClient.prototype.deleteWebApp = function (subscriptionId, rgName, appName) {\r\n var url = this.armRoot.format() + \"/subscriptions/\" + subscriptionId + \"/resourceGroups/\" + rgName + \"/providers/Microsoft.Web/sites/\" + appName + \"?api-version=\" + sourceControlApiVersion;\r\n return this.requestVoidResult(url, HttpMethods_1.Method.DELETE);\r\n };\r\n ArmClient.prototype.createResourceGroup = function (subId, rgName, locationName) {\r\n var url = this.armRoot.format() + \"/subscriptions/\" + subId + \"/resourceGroups/\" + rgName + \"?api-version=\" + deploymentApiVersion;\r\n return this.put(url, { location: locationName });\r\n };\r\n ArmClient.prototype.checkResourceGroupExists = function (subId, rgName) {\r\n var url = this.armRoot.format() + \"/subscriptions/\" + subId + \"/resourceGroups/\" + rgName + \"?api-version=\" + deploymentApiVersion;\r\n var $deferred = $.Deferred();\r\n this.head(url)\r\n .done(function () { return $deferred.resolve(true); })\r\n .fail(function () { return $deferred.resolve(false); });\r\n return $deferred;\r\n };\r\n ArmClient.prototype.checkDeploymentResult = function (deployment) {\r\n var url = \"\" + this.armRoot.format() + deployment.id + \"?api-version=\" + deploymentApiVersion;\r\n var result = $.Deferred();\r\n this.get(url).then(function (x) {\r\n var curState = x.properties ? x.properties.provisioningState : null;\r\n if (curState === 'Failed' || curState === 'Succeeded') {\r\n result.resolve(x);\r\n }\r\n else {\r\n result.reject(curState);\r\n }\r\n }, function (e) { return result.reject(e); });\r\n return result;\r\n };\r\n ArmClient.prototype.putBotService = function (subId, rgName, deploymentName, data) {\r\n var _this = this;\r\n var url = this.armRoot.format() + \"/subscriptions/\" + subId + \"/resourcegroups/\" + rgName + \"/providers/microsoft.resources/deployments/\" + deploymentName + \"?api-version=\" + deploymentApiVersion;\r\n var deployment = this.put(url, data, false);\r\n var checkDeployment = deployment.then(function (newDeployment) { return PollingModel_1.pollerPromise(function () { return _this.checkDeploymentResult(newDeployment); }, 5000, 120000); });\r\n var fetchBotResource = checkDeployment\r\n .then(function (deploymentResult) {\r\n if (deploymentResult.properties.provisioningState === 'Succeeded') {\r\n var botResourceId = deploymentResult.properties.outputResources[0].id;\r\n var botResourceUrl = \"\" + _this.armRoot.format() + botResourceId + \"?api-version=\" + botServiceApiVersion;\r\n return _this.get(botResourceUrl);\r\n }\r\n else {\r\n return $.Deferred().reject(deploymentResult);\r\n }\r\n });\r\n return fetchBotResource;\r\n };\r\n ArmClient.prototype.setupContinuousIntegration = function (rsrcId, sourceControl) {\r\n var url = this.armRoot.format() + \"/\" + rsrcId + \"/sourcecontrols/web?api-version=\" + sourceControlApiVersion;\r\n return this.request(url, HttpMethods_1.Method.PUT, {\r\n id: rsrcId,\r\n type: \"Microsoft.Web/sites/sourcecontrols\",\r\n properties: sourceControl\r\n });\r\n };\r\n ArmClient.prototype.getSourceControl = function (rsrcId) {\r\n var url = this.armRoot.format() + \"/\" + rsrcId + \"/sourcecontrols/web?api-version=\" + sourceControlApiVersion;\r\n return this.get(url);\r\n };\r\n Object.defineProperty(ArmClient.prototype, \"tenants\", {\r\n get: function () {\r\n var url = this.armRoot.format() + \"/tenants?api-version=\" + tenantApiVersion;\r\n return this.get(url)\r\n .then(function (x) {\r\n return $.Deferred().resolve(x.value);\r\n });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ArmClient.prototype.request = function (url, method, data, includeIfMatch) {\r\n if (includeIfMatch === void 0) { includeIfMatch = true; }\r\n this.valideUrl(url);\r\n var reqHeaders = includeIfMatch ?\r\n {\r\n 'Authorization': this.getAuthHeader(),\r\n 'If-Match': '*',\r\n 'Accept': 'application/json,*/*'\r\n } :\r\n {\r\n 'Authorization': this.getAuthHeader(),\r\n 'Accept': 'application/json,*/*'\r\n };\r\n return $.ajax({\r\n url: url,\r\n type: HttpMethods_1.Method[method],\r\n headers: reqHeaders,\r\n dataType: 'json',\r\n contentType: 'application/json',\r\n beforeSend: function () { return Rest.showNetworkIcon(true); },\r\n data: data ? JSON.stringify(data) : data\r\n }).always(function () { return Rest.showNetworkIcon(false); });\r\n };\r\n ArmClient.prototype.requestVoidResult = function (url, method, data) {\r\n this.valideUrl(url);\r\n var reqHeaders = {\r\n 'Authorization': this.getAuthHeader(),\r\n 'If-Match': '*',\r\n 'Accept': 'application/json,*/*'\r\n };\r\n return $.ajax({\r\n url: url,\r\n type: HttpMethods_1.Method[method],\r\n headers: reqHeaders,\r\n dataType: 'text',\r\n contentType: 'application/json',\r\n beforeSend: function () { return Rest.showNetworkIcon(true); },\r\n data: data ? JSON.stringify(data) : data\r\n }).always(function () { return Rest.showNetworkIcon(false); });\r\n };\r\n ArmClient.prototype.valideUrl = function (url) {\r\n var uri = Url_1.parseUrl(url);\r\n if (uri.scheme != this.armRoot.scheme || uri.hostname != this.armRoot.hostname) {\r\n throw 'non conforming url';\r\n }\r\n };\r\n ArmClient.prototype.getAuthHeader = function () {\r\n return \"Bearer \" + this.token;\r\n };\r\n return ArmClient;\r\n }());\r\n exports.ArmClient = ArmClient;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(7), __webpack_require__(48), __webpack_require__(104), __webpack_require__(486)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, Rest, Url_1, PollingModel_1, downloadBlob_1) {\r\n var Method;\r\n (function (Method) {\r\n Method[Method[\"GET\"] = 0] = \"GET\";\r\n Method[Method[\"PUT\"] = 1] = \"PUT\";\r\n Method[Method[\"DELETE\"] = 2] = \"DELETE\";\r\n Method[Method[\"POST\"] = 3] = \"POST\";\r\n })(Method || (Method = {}));\r\n var RepositoryType;\r\n (function (RepositoryType) {\r\n RepositoryType[RepositoryType[\"None\"] = 0] = \"None\";\r\n RepositoryType[RepositoryType[\"Git\"] = 1] = \"Git\";\r\n RepositoryType[RepositoryType[\"Mercurial\"] = 2] = \"Mercurial\";\r\n })(RepositoryType = exports.RepositoryType || (exports.RepositoryType = {}));\r\n var KuduClient = (function () {\r\n function KuduClient() {\r\n }\r\n KuduClient.createFromScmAuthorization = function (authz) {\r\n var kuduClient = new KuduClient();\r\n kuduClient.authz = authz;\r\n kuduClient.scmUri = Url_1.parseUrl(authz.Url);\r\n return kuduClient;\r\n };\r\n KuduClient.createFromArmToken = function (kuduUri, armToken) {\r\n if (!kuduUri) {\r\n throw new Error(\"kuduUri must be defined\");\r\n }\r\n if (!armToken) {\r\n throw new Error(\"armToken must be defined\");\r\n }\r\n var kuduClient = new KuduClient();\r\n kuduClient.scmUri = Url_1.parseUrl(kuduUri);\r\n kuduClient.authz = armToken;\r\n return kuduClient;\r\n };\r\n KuduClient.getKuduSiteName = function (bot) {\r\n if (!bot) {\r\n throw new Error(\"bot must be defined\");\r\n }\r\n if (!bot.Endpoint) {\r\n throw new Error(\"bot must have an Endpoint\");\r\n }\r\n var siteUrl = Url_1.parseUrl(bot.Endpoint);\r\n var siteName = siteUrl.hostname.substring(0, siteUrl.hostname.indexOf(\".\"));\r\n return \"https://\" + siteName + \".scm.azurewebsites.net\";\r\n };\r\n Object.defineProperty(KuduClient.prototype, \"rootUri\", {\r\n get: function () {\r\n return Url_1.parseUrl(this.scmUri.format());\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n KuduClient.prototype.command = function (script, folder) {\r\n var uri = this.rootUri;\r\n uri.path = '/api/command';\r\n return this.request(uri.format(), Method.POST, true, { command: script, dir: folder });\r\n };\r\n KuduClient.prototype.get = function (url) {\r\n var isFolder = url[url.length - 1] === '/';\r\n return isFolder ? this.request(url, Method.GET, isFolder) :\r\n this.request(url, Method.GET, isFolder);\r\n };\r\n KuduClient.prototype.dir = function (path) {\r\n if (path.length && path[path.length - 1] !== '/') {\r\n path = path + \"/\";\r\n }\r\n var uri = this.rootUri;\r\n uri.path = \"/api/vfs/\" + path;\r\n return this.get(uri.format());\r\n };\r\n Object.defineProperty(KuduClient.prototype, \"scmInfo\", {\r\n get: function () {\r\n var uri = this.rootUri;\r\n uri.path = '/api/scm/info';\r\n return this.request(uri.format(), Method.GET, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(KuduClient.prototype, \"settings\", {\r\n get: function () {\r\n var uri = this.rootUri;\r\n uri.path = \"/api/settings\";\r\n return this.request(uri.format(), Method.GET, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n KuduClient.prototype.put = function (url, content) {\r\n return this.request(url, Method.PUT, false, content);\r\n };\r\n KuduClient.prototype.del = function (url) {\r\n return this.request(url, Method.DELETE);\r\n };\r\n KuduClient.prototype.download = function (path) {\r\n var uri = this.rootUri;\r\n uri.path = \"/api/vfs/\" + path;\r\n return downloadBlob_1.default({\r\n url: uri.format(),\r\n type: 'GET',\r\n headers: {\r\n 'Authorization': this.getAuthHeader(),\r\n 'If-Match': '*',\r\n 'Accept': 'application/zip, application/octet-stream'\r\n },\r\n beforeSend: function () { return Rest.showNetworkIcon(true); },\r\n }).always(function () {\r\n Rest.showNetworkIcon(false);\r\n });\r\n };\r\n KuduClient.prototype.zip = function (path) {\r\n var uri = this.rootUri;\r\n uri.path = \"/api/zip/\" + path;\r\n return downloadBlob_1.default({\r\n url: uri.format(),\r\n type: 'GET',\r\n headers: {\r\n 'Authorization': this.getAuthHeader(),\r\n 'If-Match': '*',\r\n 'Accept': 'application/zip, application/octet-stream'\r\n },\r\n beforeSend: function () { return Rest.showNetworkIcon(true); },\r\n }).always(function () {\r\n Rest.showNetworkIcon(false);\r\n });\r\n };\r\n KuduClient.prototype.logStream = function (functionName, onData) {\r\n var logstreamUri = this.rootUri;\r\n logstreamUri.path = \"/api/logstream/application/functions/function/\" + functionName;\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', logstreamUri.format(), true);\r\n xhr.setRequestHeader('Authorization', this.getAuthHeader());\r\n xhr.setRequestHeader('FunctionsPortal', '1');\r\n xhr.send(null);\r\n var prevLength = xhr.responseText ? xhr.responseText.length : 0;\r\n var poller = new PollingModel_1.Poller(null, function () {\r\n var deferred = $.Deferred();\r\n var curLength = xhr.responseText.length;\r\n if (curLength > prevLength) {\r\n deferred.resolve(xhr.responseText.substr(prevLength));\r\n prevLength = curLength;\r\n }\r\n else {\r\n if (xhr.readyState == XMLHttpRequest.DONE) {\r\n poller.stop();\r\n }\r\n deferred.resolve(null);\r\n }\r\n return deferred.promise();\r\n }, onData);\r\n if (!this.statusPoller) {\r\n this.pingHostStatus();\r\n this.statusPoller = new PollingModel_1.Poller({ defaultInterval: 60000, maxPendingPollRequests: 1 }, _.bind(this.pingHostStatus, this), function (d) { });\r\n this.statusPoller.start();\r\n }\r\n return poller;\r\n };\r\n Object.defineProperty(KuduClient.prototype, \"publishPassword\", {\r\n get: function () {\r\n return this.authz.Password;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n KuduClient.prototype.getFunctionToken = function () {\r\n var tokenUri = this.rootUri;\r\n tokenUri.path = '/api/functions/admin/token';\r\n return this.request(tokenUri.format(), Method.GET, true);\r\n };\r\n KuduClient.prototype.getMasterKey = function () {\r\n var _this = this;\r\n if (this.masterKey) {\r\n var deferred = $.Deferred();\r\n deferred.resolve(this.masterKey);\r\n return deferred;\r\n }\r\n else {\r\n return this.getFunctionToken().then(function (token) {\r\n var keyUrl = _this.rootUri;\r\n keyUrl.hostname = keyUrl.hostname.replace(\".scm\", \"\");\r\n keyUrl.path = \"/admin/host/systemkeys/_master\";\r\n return _this.request(keyUrl.format(), Method.GET, true, null, token);\r\n }).then(function (keyInfo) {\r\n _this.masterKey = keyInfo.value;\r\n return $.Deferred().resolve(_this.masterKey);\r\n });\r\n }\r\n };\r\n KuduClient.prototype.pingHostStatus = function () {\r\n var _this = this;\r\n return this.getMasterKey().then(function (key) {\r\n var statusUri = _this.rootUri;\r\n statusUri.hostname = statusUri.hostname.replace(\".scm\", \"\");\r\n statusUri.path = '/admin/host/status';\r\n return $.ajax({\r\n url: statusUri.format(),\r\n type: \"GET\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json,*/*\",\r\n \"x-functions-key\": key,\r\n }\r\n });\r\n });\r\n };\r\n KuduClient.prototype.request = function (url, method, isFolder, data, token) {\r\n this.validateUrl(url);\r\n var postingData = data && method == Method.POST;\r\n return $.ajax({\r\n url: url,\r\n type: Method[method],\r\n headers: {\r\n 'Authorization': this.getAuthHeader(token),\r\n 'If-Match': '*',\r\n 'Accept': 'application/json,*/*'\r\n },\r\n dataType: isFolder ? 'json' : 'text',\r\n beforeSend: function () { return Rest.showNetworkIcon(true); },\r\n data: postingData ? JSON.stringify(data) : data,\r\n contentType: postingData ? 'application/json' : undefined\r\n }).always(function () { return Rest.showNetworkIcon(false); });\r\n };\r\n KuduClient.prototype.validateUrl = function (url) {\r\n var uri = Url_1.parseUrl(url);\r\n if (!uri || uri.scheme != this.scmUri.scheme ||\r\n (uri.hostname != this.scmUri.hostname &&\r\n uri.hostname != this.scmUri.hostname.replace('.scm', ''))) {\r\n throw 'non conforming url';\r\n }\r\n };\r\n KuduClient.prototype.getAuthHeader = function (token) {\r\n if (token) {\r\n return \"Bearer \" + token;\r\n }\r\n if (_.isString(this.authz)) {\r\n return \"Bearer \" + this.authz;\r\n }\r\n else if (_.isObject(this.authz)) {\r\n var authText = this.authz.UserName + \":\" + this.authz.Password;\r\n return \"Basic \" + btoa(authText);\r\n }\r\n throw \"no authz info available\";\r\n };\r\n return KuduClient;\r\n }());\r\n exports.KuduClient = KuduClient;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(107), __webpack_require__(152), __webpack_require__(153), __webpack_require__(441), __webpack_require__(440), __webpack_require__(442)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, HttpMethods_1, ArmApi_1, KuduApi_1, GraphApi_1, GithubApi_1, VsoApi_1) {\r\n function __export(m) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n }\r\n __export(HttpMethods_1);\r\n __export(ArmApi_1);\r\n __export(KuduApi_1);\r\n __export(GraphApi_1);\r\n __export(GithubApi_1);\r\n __export(VsoApi_1);\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(8)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, ClientAppSettings_1) {\r\n var Environment = (function () {\r\n function Environment() {\r\n }\r\n Environment.azurePortalUrl = function () {\r\n var env = (ClientAppSettings_1.clientAppSettings.environment).toLowerCase();\r\n switch (env) {\r\n case \"scratch\":\r\n case \"ppe\":\r\n default:\r\n return \"https://portal.azure.com\";\r\n case \"usgovppe\":\r\n case \"usgovprd\":\r\n return \"https://portal.azure.us\";\r\n }\r\n };\r\n Environment.azureCreateBotUrl = function () {\r\n var env = (ClientAppSettings_1.clientAppSettings.environment || 'prod').toLowerCase();\r\n switch (env) {\r\n case \"scratch\":\r\n return \"https://aka.ms/azure/bots/create/devportal-scratch\";\r\n case \"ppe\":\r\n return \"https://aka.ms/azure/bots/create/devportal-ppe\";\r\n case \"usgovppe\":\r\n return \"https://aka.ms/azure/bots/create/devportal-usgovppe\";\r\n case \"usgovprd\":\r\n return \"https://aka.ms/azure/bots/create/devportal-usgovprod\";\r\n default:\r\n return \"https://aka.ms/azure/bots/create/devportal\";\r\n }\r\n };\r\n Environment.portalEnvironment = function () {\r\n return (ClientAppSettings_1.clientAppSettings.environment).toLowerCase();\r\n };\r\n return Environment;\r\n }());\r\n exports.Environment = Environment;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(8)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, ClientAppSettings_1) {\r\n var FlightUtils = (function () {\r\n function FlightUtils() {\r\n }\r\n Object.defineProperty(FlightUtils, \"IsFirstPartyAuthFlighted\", {\r\n get: function () {\r\n var features = ClientAppSettings_1.clientAppSettings.flightedFeatures;\r\n return _.contains(features, \"firstPartyAuth\");\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FlightUtils, \"areMigrationRequiredBotsDisabled\", {\r\n get: function () {\r\n var features = ClientAppSettings_1.clientAppSettings.flightedFeatures;\r\n return _.contains(features, \"disableMigrationRequiredBots\");\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return FlightUtils;\r\n }());\r\n exports.FlightUtils = FlightUtils;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n var PageStatusFlags;\r\n (function (PageStatusFlags) {\r\n PageStatusFlags[PageStatusFlags[\"Ready\"] = 0] = \"Ready\";\r\n PageStatusFlags[PageStatusFlags[\"LoadingBot\"] = 1] = \"LoadingBot\";\r\n PageStatusFlags[PageStatusFlags[\"LoggingIn\"] = 2] = \"LoggingIn\";\r\n PageStatusFlags[PageStatusFlags[\"WaitingForBotReady\"] = 4] = \"WaitingForBotReady\";\r\n PageStatusFlags[PageStatusFlags[\"WaitingForAppInsightsReady\"] = 8] = \"WaitingForAppInsightsReady\";\r\n PageStatusFlags[PageStatusFlags[\"WaitingForWebChatToken\"] = 16] = \"WaitingForWebChatToken\";\r\n })(PageStatusFlags = exports.PageStatusFlags || (exports.PageStatusFlags = {}));\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n function getAzureResourceId(bot) {\r\n return bot && bot.ProvisionInfo ?\r\n \"/subscriptions/\" + bot.ProvisionInfo.SubscriptionId + \"/resourceGroups/\" + bot.ProvisionInfo.ResourceGroupName + \"/providers/Microsoft.Web/sites/\" + bot.ProvisionInfo.SiteName\r\n : null;\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = getAzureResourceId;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(7), __webpack_require__(166)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, Rest, Cookies_1) {\r\n var AuthenticationUtility = (function () {\r\n function AuthenticationUtility() {\r\n }\r\n AuthenticationUtility.bindAzureAccessToken = function (signedInUser, authenticationToken, fixTenantId) {\r\n if (fixTenantId === void 0) { fixTenantId = false; }\r\n if (!authenticationToken) {\r\n throw new Error(\"authenticationToken must be defined.\");\r\n }\r\n if (!signedInUser) {\r\n throw new Error(\"signedInUser must be defined.\");\r\n }\r\n signedInUser.AzureToken = authenticationToken;\r\n var headers = fixTenantId ? { \"X-BF-OAUTH-TOKEN\": authenticationToken, \"X-BF-TenantId\": signedInUser.TenantId }\r\n : { \"X-BF-OAUTH-TOKEN\": authenticationToken };\r\n Rest.ajaxHeaders = _.extend(Rest.ajaxHeaders || {}, headers);\r\n };\r\n AuthenticationUtility.setRequestVerificationHeader = function () {\r\n var requestVerificationToken = this.getCsrfToken();\r\n if (requestVerificationToken) {\r\n Rest.ajaxHeaders = _.extend(Rest.ajaxHeaders || {}, { 'X-Csrf-Token': requestVerificationToken });\r\n }\r\n return !!requestVerificationToken;\r\n };\r\n AuthenticationUtility.getCsrfToken = function () {\r\n return Cookies_1.readCookie('Csrf-Token');\r\n };\r\n return AuthenticationUtility;\r\n }());\r\n exports.AuthenticationUtility = AuthenticationUtility;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(110), __webpack_require__(34), __webpack_require__(158), __webpack_require__(59), __webpack_require__(108)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, BotAppContinuousIntegration_1, BotUtils_1, botResourceId_1, azurePortalLinks_1, downloadBotSrc_1) {\r\n exports.defaultCIState = {\r\n repoProvider: 'vso',\r\n repoToken: '',\r\n repoUserName: ''\r\n };\r\n var BotAppSettings = (function (_super) {\r\n __extends(BotAppSettings, _super);\r\n function BotAppSettings(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.showFunctionEditor = false;\r\n _this.debugContinuousIntegration = false;\r\n _this.state = { bot: props.initialBot };\r\n return _this;\r\n }\r\n BotAppSettings.prototype.setBotId = function (botId) {\r\n };\r\n BotAppSettings.prototype.setBot = function (bot) {\r\n this.setState({ bot: bot });\r\n };\r\n BotAppSettings.prototype.onTooltipVisibilityChanged = function (visible, closer) {\r\n if (visible) {\r\n if (this.prevToolTipCloser) {\r\n this.prevToolTipCloser();\r\n this.prevToolTipCloser = null;\r\n }\r\n this.prevToolTipCloser = closer;\r\n }\r\n };\r\n BotAppSettings.prototype.componentWillUpdate = function (nextProps, nextState) {\r\n if (nextState.scmType && this.state.scmType != nextState.scmType) {\r\n this._scmType = nextState.scmType;\r\n }\r\n };\r\n BotAppSettings.prototype.componentDidUpdate = function (prevProps, prevState) {\r\n if (this.botCI && this._scmType) {\r\n this.botCI.resolveScmType();\r\n this._scmType = null;\r\n }\r\n };\r\n BotAppSettings.prototype.render = function () {\r\n return this.renderAzureSettings();\r\n };\r\n Object.defineProperty(BotAppSettings.prototype, \"isABSv1Bot\", {\r\n get: function () {\r\n return BotUtils_1.BotUtils.isABSv1Bot(this.state.bot) && !BotUtils_1.BotUtils.isABSCodeBot(this.state.bot);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BotAppSettings.prototype, \"scmType\", {\r\n get: function () {\r\n return this._scmType ? $.Deferred().resolve(this._scmType) : this.props.scmType;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n BotAppSettings.prototype.renderAzureSettings = function () {\r\n var _this = this;\r\n return (React.createElement(\"div\", { className: \"bot-app-settings\" },\r\n this.isABSv1Bot || this.debugContinuousIntegration ?\r\n (React.createElement(BotAppContinuousIntegration_1.BotAppContinuousIntegration, { openBlade: function (blade) { return _this.props.openBlade(blade); }, downloadZip: this.props.downloadZip, bot: this.state.bot, scmType: function () { return _this.scmType; }, bladeUrl: function () { return $.Deferred().resolve(''); }, botDeploymentLogFound: this.state && this.state.botDeploymentLogFound, pendingDownload: this.state && this.state.pendingZipDownload, blobUrl: downloadBotSrc_1.getBotZipBlobUrl(this.state.bot ? this.state.bot.Id : null, this.state.zipBlobUrl), onZipDownloaded: this.props.onZipDownloaded, kuduClient: function () { return _this.props.kuduClient; }, armClient: function () { return _this.props.armClient; }, botRsrcId: $.Deferred().resolve(botResourceId_1.default(this.state.bot)), toggleTip: null, ref: function (x) { return _this.botCI = x; } }))\r\n : null,\r\n this.isABSv1Bot && this.showFunctionEditor ?\r\n (React.createElement(\"section\", { className: \"bot-app-setting\" },\r\n React.createElement(\"div\", { className: \"header\" },\r\n React.createElement(\"h3\", null, \"Edit as Azure function\"),\r\n React.createElement(\"p\", null, \"Open bot code as Azure function (experimental)\")),\r\n React.createElement(\"button\", { className: \"default-button\", onClick: function () { return _this.props.openBlade(azurePortalLinks_1.BladeType.functionEditor); } }, \"Open\")))\r\n : null,\r\n React.createElement(\"section\", { className: \"bot-app-setting\" },\r\n React.createElement(\"div\", { className: \"header\" },\r\n React.createElement(\"h3\", null, \"Application settings\"),\r\n React.createElement(\"p\", null, \"Manage environment variables and connection strings for your bot app.\")),\r\n React.createElement(\"button\", { className: \"light-button\", onClick: function () { return _this.props.openBlade(azurePortalLinks_1.BladeType.webConfig); } }, \"Open\")),\r\n React.createElement(\"section\", { className: \"bot-app-setting\" },\r\n React.createElement(\"div\", { className: \"header\" },\r\n React.createElement(\"h3\", null, \"Advanced settings\"),\r\n React.createElement(\"p\", null, \"Manage your bot like any other App Service instance.\")),\r\n React.createElement(\"button\", { className: \"light-button\", onClick: function () { return _this.props.openBlade(azurePortalLinks_1.BladeType.appSettings); } }, \"Open\"))));\r\n };\r\n return BotAppSettings;\r\n }(React.Component));\r\n exports.BotAppSettings = BotAppSettings;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(7), __webpack_require__(8), __webpack_require__(102), __webpack_require__(272), __webpack_require__(15)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, Rest, ClientAppSettings_1, GenericDialog_1, RejectionDetailsView, Intercom_Resources_DevPortal_1) {\r\n exports.hiddenChannels = [\r\n 'omnichannel',\r\n 'searchassistant',\r\n 'skypeforbusiness',\r\n 'kik',\r\n 'kaizala',\r\n 'conversationconductor',\r\n 'conversationconductorivr'\r\n ];\r\n exports.hiddenChannelsForNew = [\r\n 'telephony'\r\n ];\r\n var BotChannels = (function (_super) {\r\n __extends(BotChannels, _super);\r\n function BotChannels(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {};\r\n return _this;\r\n }\r\n BotChannels.prototype.statusClassNameForSeverity = function (sev) {\r\n switch (sev) {\r\n case Rest.SeverityType.Error:\r\n return 'bot-status-color-error';\r\n case Rest.SeverityType.Warning:\r\n return 'bot-status-color-warning';\r\n default:\r\n return 'bot-status-color-ok';\r\n }\r\n };\r\n BotChannels.prototype.getChannelLogEntries = function (channelId) {\r\n if (this.props.channelDataHandlers.channelLogs) {\r\n return this.props.channelDataHandlers.channelLogs.filter(function (entry) { return entry.ChannelId === channelId; });\r\n }\r\n return [];\r\n };\r\n BotChannels.prototype.isChannelEnabled = function (channelId) {\r\n return this.props.bot.EnabledChannels.indexOf(channelId) >= 0;\r\n };\r\n Object.defineProperty(BotChannels.prototype, \"issuePrompt\", {\r\n get: function () {\r\n if (!this._issuePrompt) {\r\n this._issuePrompt = function (issues, template) {\r\n var issueTemplate = _.template(Intercom_Resources_DevPortal_1.Resources.issuesTemplate);\r\n var warningTemplate = _.template(Intercom_Resources_DevPortal_1.Resources.warningTemplate);\r\n switch (template) {\r\n case Intercom_Resources_DevPortal_1.Resources.issuesTemplate:\r\n return issueTemplate(issues);\r\n case Intercom_Resources_DevPortal_1.Resources.warningTemplate:\r\n return warningTemplate(issues);\r\n default:\r\n return issues ? Intercom_Resources_DevPortal_1.Resources.running : '';\r\n }\r\n };\r\n }\r\n return this._issuePrompt;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n BotChannels.prototype.getChannelLogDisplay = function (channelId, channelName) {\r\n var _this = this;\r\n var channelLog = this.getChannelLogEntries(channelId);\r\n var statusClassName = 'bot-status-color-ok';\r\n if (channelLog.length > 0) {\r\n var maxSeverityLogEntry = channelLog.reduce(function (prev, curr, i, arr) { return prev.Severity > curr.Severity ? prev : curr; });\r\n statusClassName = this.statusClassNameForSeverity(maxSeverityLogEntry.Severity);\r\n }\r\n var issueTemplateName = Intercom_Resources_DevPortal_1.Resources.running;\r\n switch (statusClassName) {\r\n case 'bot-status-color-warning':\r\n issueTemplateName = Intercom_Resources_DevPortal_1.Resources.warningTemplate;\r\n break;\r\n case 'bot-status-color-error':\r\n issueTemplateName = Intercom_Resources_DevPortal_1.Resources.issuesTemplate;\r\n break;\r\n default:\r\n break;\r\n }\r\n var title = this.issuePrompt(channelLog, issueTemplateName);\r\n return {\r\n botId: this.props.bot.Id,\r\n channelId: channelId,\r\n title: title,\r\n channelLog: channelLog,\r\n statusClassName: statusClassName,\r\n channelName: channelName,\r\n channelLogChangeHandler: function () { _this.props.channelDataHandlers.refreshChannelLogs(_this.props.bot); },\r\n dialog: null\r\n };\r\n };\r\n BotChannels.prototype.getChannelLog = function (channelId, channelName) {\r\n var _this = this;\r\n var channelLogDisplay = this.getChannelLogDisplay(channelId, channelName);\r\n if (channelLogDisplay.channelLog.length > 0) {\r\n return (React.createElement(\"button\", { className: channelLogDisplay.statusClassName + \" channel-td-display-block\", \"data-channel-name\": channelName, onClick: function () { return _this.props.channelDataHandlers.channelLogDisplayHandler(channelLogDisplay); } }, channelLogDisplay.title));\r\n }\r\n else {\r\n return (React.createElement(\"span\", { className: channelLogDisplay.statusClassName, \"data-channel-name\": channelName, \"data-status-classname\": channelLogDisplay.statusClassName }, channelLogDisplay.title));\r\n }\r\n };\r\n BotChannels.prototype.getContact = function (channelId) {\r\n var contacts = this.props.bot.Contacts;\r\n for (var i = 0; i < contacts.length; i++) {\r\n if (contacts[i].ChannelId === channelId) {\r\n return contacts[i];\r\n }\r\n }\r\n return null;\r\n };\r\n BotChannels.getConfigUrl = function (botId, channelId) {\r\n var path = ClientAppSettings_1.clientAppSettings.applicationPath === '/' ? '' : ClientAppSettings_1.clientAppSettings.applicationPath;\r\n return path + \"/bots/channels?id=\" + botId + \"&channelId=\" + channelId;\r\n };\r\n BotChannels.prototype.getConfigLink = function (channel, innerElement, labelledby) {\r\n var _this = this;\r\n if (this.props.bot.Id) {\r\n var path = ClientAppSettings_1.clientAppSettings.applicationPath === '/' ? '' : ClientAppSettings_1.clientAppSettings.applicationPath;\r\n var configUrl;\r\n var target;\r\n var handle;\r\n if (channel.DeveloperConfigurationUrl) {\r\n configUrl = path + \"/ConfigChannel.aspx?botId=\" + this.props.bot.Id + \"&channelId=\" + channel.Id;\r\n target = '_blank';\r\n handle = false;\r\n }\r\n else {\r\n configUrl = BotChannels.getConfigUrl(this.props.bot.Id, channel.Id);\r\n target = '_self';\r\n handle = true;\r\n }\r\n var disabled_1 = !this.props.userCanWriteBot;\r\n if (!disabled_1 && this.props.bot.Version === \"1.0\" && channel.Id === \"skype\") {\r\n disabled_1 = !this.getContact(channel.Id);\r\n }\r\n return React.createElement(\"a\", { \"data-channel-link-id\": channel.Id, className: \"config-link-container\", href: configUrl, target: target, key: \"configLink\" + channel.Id, disabled: disabled_1, title: disabled_1 ? \"To add Skype please upgrade to V3\" : null, \"aria-labelledby\": labelledby + (\" \" + channel.Id + \"-config-link\"), id: channel.Id + \"-config-link\", onClick: function (x) {\r\n if (disabled_1) {\r\n x.preventDefault();\r\n }\r\n else if (handle) {\r\n x.preventDefault();\r\n _this.props.channelConfigClickHandler(channel.Id);\r\n }\r\n else {\r\n window.open(configUrl, target).focus();\r\n }\r\n } }, innerElement);\r\n }\r\n return null;\r\n };\r\n BotChannels.prototype.renderChannelPublishStatus = function (channel) {\r\n var _this = this;\r\n var reviewStatus = this.props.channelDataHandlers.getChannelPublishStatus(channel.Id);\r\n if (!reviewStatus) {\r\n return React.createElement(\"span\", null, \"--\");\r\n }\r\n var className = '';\r\n switch (reviewStatus.ReviewStatus) {\r\n case Rest.ReviewStatus.InReview:\r\n className = 'publish-in-review';\r\n break;\r\n case Rest.ReviewStatus.Rejected:\r\n className = 'publish-rejected';\r\n break;\r\n case Rest.ReviewStatus.NotSubmitted:\r\n className = '';\r\n break;\r\n case Rest.ReviewStatus.Approved:\r\n className = 'publish-approved';\r\n break;\r\n }\r\n if (reviewStatus.ReviewStatus === Rest.ReviewStatus.Rejected) {\r\n return (React.createElement(\"div\", { className: \"m-temp-popout-menu\" },\r\n React.createElement(\"span\", { onClick: function () { return _this.togglePublishPopoutVisibility(); } },\r\n Intercom_Resources_DevPortal_1.Resources.channelRejected,\r\n React.createElement(\"span\", { className: \"m-temp-popout-menu-icon m-icon-ChevronDown\" })),\r\n React.createElement(\"div\", { className: \"m-temp-popout-content\" },\r\n React.createElement(\"span\", { className: \"m-temp-popout-option\", onClick: function () {\r\n _this.togglePublishPopoutVisibility();\r\n _this.showRejectionComments(reviewStatus.Comment);\r\n } }, Intercom_Resources_DevPortal_1.Resources.channelMoreDetails),\r\n React.createElement(\"span\", { className: \"m-temp-popout-option\", onClick: function () {\r\n location.href = \"/bots/channels?id=\" + _this.props.bot.Id + \"&channelId=\" + channel.Id;\r\n } }, Intercom_Resources_DevPortal_1.Resources.channelResubmit))));\r\n }\r\n return (React.createElement(\"span\", { className: className }, Rest.ReviewStatus[reviewStatus.ReviewStatus]));\r\n };\r\n BotChannels.prototype.showRejectionComments = function (comment) {\r\n var dialog = new GenericDialog_1.GenericDialog(RejectionDetailsView.RejectionDetailsPanel, {\r\n message: comment\r\n }, { dialogClass: 'rejection-details-dialog' });\r\n dialog.showDialog();\r\n };\r\n BotChannels.prototype.togglePublishPopoutVisibility = function () {\r\n var content = $(\".m-temp-popout-content\");\r\n if (content.hasClass(\"visible\")) {\r\n content.removeClass(\"visible\");\r\n }\r\n else {\r\n content.addClass(\"visible\");\r\n }\r\n };\r\n Object.defineProperty(BotChannels.prototype, \"tryOn\", {\r\n get: function () {\r\n if (!this._tryOn) {\r\n this._tryOn = function (channel, template) {\r\n var channelTemplate = _.template(Intercom_Resources_DevPortal_1.Resources.tryOnChannel);\r\n if (template === Intercom_Resources_DevPortal_1.Resources.tryOnChannel) {\r\n return channelTemplate(channel);\r\n }\r\n else {\r\n return '';\r\n }\r\n };\r\n }\r\n return this._tryOn;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n BotChannels.prototype.renderConfiguredChannels = function (channels) {\r\n var _this = this;\r\n var configuredChannels = [];\r\n channels.forEach(function (channel) {\r\n if (exports.hiddenChannels.indexOf(channel.Id.toLowerCase()) >= 0) {\r\n return;\r\n }\r\n var contact = _this.getContact(channel.Id);\r\n var contactHref = _this.getContactHref(contact);\r\n var channelDisplayName = channel.Name;\r\n if (channel.Id.toLowerCase() === 'skypeforbusiness') {\r\n channelDisplayName = channelDisplayName + \" \" + Intercom_Resources_DevPortal_1.Resources.deprecatedChannel;\r\n }\r\n var anchorTitle = _this.tryOn(channel, Intercom_Resources_DevPortal_1.Resources.tryOnChannel);\r\n var configuredChannelMobile = (React.createElement(\"div\", { role: \"row\", className: \"channel channel-row\", key: channel.Id, \"data-channel-id\": channel.Id },\r\n React.createElement(\"div\", { role: \"cell\", className: \"channel-name\" },\r\n React.createElement(\"img\", { src: _this.getChannelIconUrl(channel), alt: channel.Name, title: channel.Name, className: 'channel-icon icon channel-test-icon' }),\r\n contactHref\r\n ? React.createElement(\"a\", { className: \"channel-test channel-test-anchor\", target: \"_blank\", href: _this.getContactHref(contact), alt: \"Name\", title: anchorTitle }, channelDisplayName)\r\n : React.createElement(\"span\", { className: \"channel-test\" }, channelDisplayName)),\r\n _this.isChannelEnabled(channel.Id)\r\n ? (React.createElement(\"div\", { role: \"cell\", alt: \"Health\" }, _this.getChannelLog(channel.Id, channel.Name)))\r\n : (React.createElement(\"span\", { role: \"cell\", className: \"channel-health\", alt: \"Health\" }, \"--\")),\r\n React.createElement(\"div\", { role: \"cell\", className: \"channel-publish\", alt: Intercom_Resources_DevPortal_1.Resources.channelPublished }, _this.renderChannelPublishStatus(channel)),\r\n React.createElement(\"div\", { role: \"cell\" }, _this.props.userCanWriteBot ? _this.getConfigLink(channel, (React.createElement(\"span\", { className: \"config-link\" },\r\n React.createElement(\"span\", { className: \"config-link-text\" },\r\n Intercom_Resources_DevPortal_1.Resources.channelEdit,\r\n \" \",\r\n React.createElement(\"span\", { className: \"offscreen\" }, channel.Name)),\r\n React.createElement(\"span\", { \"aria-hidden\": \"true\", className: \"icon-font config-link-icon\" }, \"\\uE104\"))), \"\") : null)));\r\n if (_this.props.bot.IsIsolated !== true || channel.Id.toLowerCase() === 'directline') {\r\n configuredChannels.push(configuredChannelMobile);\r\n }\r\n });\r\n if (configuredChannels.length > 0) {\r\n return (React.createElement(\"div\", { role: \"table\" },\r\n React.createElement(\"div\", { role: \"rowgroup\", className: \"channels-configured\" },\r\n React.createElement(\"div\", { role: \"row\", className: \"channel-row channel-header\" },\r\n React.createElement(\"label\", { role: \"columnheader\" }, Intercom_Resources_DevPortal_1.Resources.channelname),\r\n React.createElement(\"label\", { role: \"columnheader\" }, Intercom_Resources_DevPortal_1.Resources.health),\r\n React.createElement(\"label\", { role: \"columnheader\" }, Intercom_Resources_DevPortal_1.Resources.published),\r\n React.createElement(\"label\", { role: \"columnheader\" }, Intercom_Resources_DevPortal_1.Resources.actions))),\r\n React.createElement(\"div\", { role: \"rowgroup\" }, configuredChannels)));\r\n }\r\n return (React.createElement(\"div\", { className: \"channel-message\" }, Intercom_Resources_DevPortal_1.Resources.NoChannelsConfigured));\r\n };\r\n BotChannels.prototype.renderUnconfiguredChannels = function (channels) {\r\n var _this = this;\r\n if (channels.length === 0) {\r\n return null;\r\n }\r\n var featuredChannelsNames = this.props.bot.IsIsolated === true ? [\"directline\"] : [\"directline\", \"msteams\", \"webchat\", \"searchassistant\"];\r\n var featuredChannels = [];\r\n var otherChannels = [];\r\n channels.forEach(function (channel) {\r\n if (exports.hiddenChannels.indexOf(channel.Id.toLowerCase()) >= 0) {\r\n return;\r\n }\r\n if (exports.hiddenChannelsForNew.indexOf(channel.Id.toLowerCase()) >= 0) {\r\n return;\r\n }\r\n var channelDisplayName = channel.Name;\r\n if (featuredChannelsNames.indexOf(channel.Id) > -1) {\r\n var iconLabelName = channel.Id + \"-icon-label\";\r\n var tile = (React.createElement(\"div\", { className: \"add-channel-tile\", key: \"newChannel\" + channel.Id, alt: Intercom_Resources_DevPortal_1.Resources.altImageChannel.replace('%1', channelDisplayName) },\r\n React.createElement(\"img\", { \"aria-labelledby\": iconLabelName, src: _this.getChannelIconUrl(channel) }),\r\n React.createElement(\"span\", { id: iconLabelName, className: \"offscreen\" }, channelDisplayName)));\r\n var addLink = _this.getConfigLink(channel, tile, \"featured-channel-header\");\r\n if (addLink) {\r\n featuredChannels.push(addLink);\r\n }\r\n }\r\n else if (_this.props.bot.IsIsolated !== true) {\r\n var iconLabelName = channel.Id + \"-icon-label\";\r\n var tile = (React.createElement(\"div\", { className: \"small-add-channel-tile\", key: \"newChannel\" + channel.Id, alt: Intercom_Resources_DevPortal_1.Resources.altImageChannel.replace('%1', channelDisplayName) },\r\n React.createElement(\"img\", { \"aria-labelledby\": iconLabelName, src: _this.getChannelIconUrl(channel) }),\r\n React.createElement(\"span\", { id: iconLabelName }, channelDisplayName)));\r\n var addLink = _this.getConfigLink(channel, tile, \"more-channels-header\");\r\n if (addLink) {\r\n otherChannels.push(addLink);\r\n }\r\n }\r\n });\r\n if ((featuredChannels.length + otherChannels.length > 0) && this.props.bot.Version !== '1.0') {\r\n var featuredChannelsHeader = null;\r\n var featuredChannelsElement = null;\r\n if (featuredChannels.length > 0) {\r\n featuredChannelsHeader = (React.createElement(\"h4\", { id: \"featured-channel-header\" }, Intercom_Resources_DevPortal_1.Resources.AddAFeaturedChannelTitle));\r\n featuredChannelsElement = (React.createElement(\"div\", { className: \"flex-layout-grid featured-channels\" }, featuredChannels));\r\n }\r\n var otherChannelsHeader = null;\r\n var otherChannelsElement = null;\r\n if (otherChannels.length > 0 && this.props.bot.IsIsolated !== true) {\r\n otherChannelsHeader = (React.createElement(\"h4\", { id: \"more-channels-header\" }, Intercom_Resources_DevPortal_1.Resources.MoreChannelsTitle));\r\n otherChannelsElement = (React.createElement(\"div\", { className: \"flex-layout-grid other-channels\" }, otherChannels));\r\n }\r\n return (React.createElement(\"div\", { className: \"add-channels\" },\r\n featuredChannelsHeader,\r\n featuredChannelsElement,\r\n otherChannelsHeader,\r\n otherChannelsElement));\r\n }\r\n return null;\r\n };\r\n Object.defineProperty(BotChannels.prototype, \"tempDOMElement\", {\r\n get: function () {\r\n if (!this._tempDOMElement) {\r\n this._tempDOMElement = document.createElement(\"div\");\r\n }\r\n return this._tempDOMElement;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n BotChannels.prototype.getContactHtml = function (contact) {\r\n if (contact && contact.HtmlLink) {\r\n this.tempDOMElement.innerHTML = contact.HtmlLink;\r\n var aa = this.tempDOMElement.getElementsByTagName('a');\r\n if (aa) {\r\n var a = aa[0];\r\n var href = a.href;\r\n if (a.href.indexOf('http') === 0) {\r\n a.target = '_blank';\r\n }\r\n return this.tempDOMElement.innerHTML;\r\n }\r\n }\r\n return '';\r\n };\r\n BotChannels.prototype.getContactHref = function (contact) {\r\n var contactHtml = this.getContactHtml(contact);\r\n if (contactHtml) {\r\n return $(this.tempDOMElement).find('a').attr('href');\r\n }\r\n else {\r\n return '';\r\n }\r\n };\r\n BotChannels.prototype.getChannelIconUrl = function (channel) {\r\n return channel.IconUrl;\r\n };\r\n BotChannels.prototype.render = function () {\r\n var _this = this;\r\n var allChannels = ClientAppSettings_1.clientAppSettings.channels;\r\n var configuredChannelIds = this.props.bot.ConfiguredChannels;\r\n var configuredChannelInfos = allChannels.filter(function (channel) { return configuredChannelIds.indexOf(channel.Id) >= 0; });\r\n var unconfiguredChannelInfos = allChannels.filter(function (channel) { return configuredChannelIds.indexOf(channel.Id) < 0; });\r\n var embedCodeLink = null;\r\n if (configuredChannelInfos.length > 0 && this.props.userCanWriteBot && this.props.bot.IsIsolated !== true) {\r\n embedCodeLink = React.createElement(\"div\", { className: \"get-embed-code\" },\r\n React.createElement(\"button\", { className: \"get-embed-code-button button-focus\", ref: (function (c) { return _this.lastFocus = c; }), onClick: function () { _this.props.channelDataHandlers.showEmbedHandler(_this.lastFocus); } }, Intercom_Resources_DevPortal_1.Resources.channelGetEmbedCodes));\r\n }\r\n return (React.createElement(\"div\", { className: \"bot-card grid-card channels \" + (this.props.className || \"\") },\r\n React.createElement(\"div\", null,\r\n React.createElement(\"h1\", { className: \"page-header\" }, Intercom_Resources_DevPortal_1.Resources.ConnectToChannelsTitle)),\r\n this.renderConfiguredChannels(configuredChannelInfos),\r\n embedCodeLink,\r\n this.props.userCanWriteBot\r\n ? this.renderUnconfiguredChannels(unconfiguredChannelInfos)\r\n : null));\r\n };\r\n BotChannels.prototype.setBotId = function (botId) {\r\n };\r\n BotChannels.prototype.setBot = function (bot) {\r\n this.setState(_.extend({}, this.state, { bot: bot }));\r\n };\r\n return BotChannels;\r\n }(React.Component));\r\n exports.BotChannels = BotChannels;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(14), __webpack_require__(264), __webpack_require__(250), __webpack_require__(470), __webpack_require__(253), __webpack_require__(80), __webpack_require__(254), __webpack_require__(160), __webpack_require__(19)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, index_1, BotEditorRow_1, BotVersionEditor_1, BotIconControl_1, Editor, BlockRowInputLabel_1, UserAgreementConsentFormFields_1, BotAppSettings_1, InFrame_1) {\r\n var BotEditor = (function (_super) {\r\n __extends(BotEditor, _super);\r\n function BotEditor(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.onTooltipVisiblityChanged = function (visible, disposer) {\r\n if (_this.state.previousTooltipDisposer === disposer) {\r\n return;\r\n }\r\n if (_this.state.previousTooltipDisposer) {\r\n _this.state.previousTooltipDisposer();\r\n }\r\n _this.setState({ previousTooltipDisposer: disposer });\r\n };\r\n _this.handleChange = function (fieldName, ev) {\r\n _this.state.bot[fieldName] = ev.target.value;\r\n if (ev.target.value) {\r\n delete _this.state.errors['#' + ev.target.id];\r\n }\r\n _this.setState(_this.state);\r\n };\r\n _this.handleArrayChange = function (fieldName, ev) {\r\n _this.state.bot[fieldName] = ev.target.value.split(',');\r\n if (ev.target.value) {\r\n delete _this.state.errors['#' + ev.target.id];\r\n }\r\n _this.setState(_this.state);\r\n };\r\n _this.onAgreementChanged = function (enabled) {\r\n var mutatedState = _.extend({}, _this.state);\r\n if (mutatedState) {\r\n mutatedState.termAcknowledged = enabled;\r\n }\r\n _this.setState(mutatedState);\r\n };\r\n _this.state = BotEditor.createNewState(props.initialBot);\r\n return _this;\r\n }\r\n BotEditor.createNewState = function (bot) {\r\n return {\r\n bot: bot,\r\n errors: {}\r\n };\r\n };\r\n BotEditor.prototype.handleArrayIndexedObjectChange = function (fieldName, index, childFieldName, ev) {\r\n this.state.bot[fieldName][index][childFieldName] = ev.target.value;\r\n if (ev.target.value) {\r\n delete this.state.errors['#' + ev.target.id];\r\n }\r\n this.setState(this.state);\r\n };\r\n BotEditor.prototype.handleCheckboxChange = function (fieldName, ev) {\r\n this.state.bot[fieldName] = ev.target.checked;\r\n this.setState(this.state);\r\n };\r\n BotEditor.prototype.componentDidMount = function () {\r\n $('#page-content').scrollTop(0);\r\n };\r\n BotEditor.prototype.render = function () {\r\n var buttons = this.renderButtons();\r\n var header = this.props.inCreateMode ? React.createElement(\"h1\", null, \"Tell us about your bot\") : undefined;\r\n return (React.createElement(\"div\", { className: \"agent-page page-grid\" },\r\n React.createElement(\"div\", { className: \"bot-editor\" },\r\n header,\r\n this.renderFields(),\r\n buttons),\r\n React.createElement(index_1.FooterControl, null)));\r\n };\r\n BotEditor.prototype.hasVersionEndpoint = function (version) {\r\n for (var i = 0; i < this.state.bot.Endpoints.length; i++) {\r\n if (this.state.bot.Endpoints[i].Version === version) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n BotEditor.prototype.renderAppInsightsDashboardFields = function (x, reflectedName) {\r\n return (React.createElement(\"div\", null,\r\n React.createElement(BotEditorRow_1.BotEditorRow, { label: \"Application Insights API key\", editor: this, inputId: reflectedName(x.DeveloperAppInsightsAPIKey = null), inputTip: \"Provide an Azure Application Insights API Key if you want to view analytics about your bot in the Dashboard. Learn more\", tipAsHtml: true, inputPlaceholder: \"API key (User-Generated Application Insights API key)\", onTooltipVisibilityChanged: this.onTooltipVisiblityChanged, password: true }),\r\n React.createElement(BotEditorRow_1.BotEditorRow, { label: \"Application Insights Application ID\", editor: this, inputId: reflectedName(x.DeveloperAppInsightsApplicationId = null), inputTip: \"Provide your Azure Application Insights Application ID if you want to view analytics about your bot in the Dashboard. Learn more\", tipAsHtml: true, inputPlaceholder: \"Application ID (Application Insights Application ID)\", onTooltipVisibilityChanged: this.onTooltipVisiblityChanged })));\r\n };\r\n BotEditor.prototype.renderFields = function () {\r\n var _this = this;\r\n var x = {};\r\n function reflectedName(value) {\r\n for (var key in x) {\r\n delete x[key];\r\n return key;\r\n }\r\n return null;\r\n }\r\n var agentDescError = this.state.errors[reflectedName(x.Description = null)];\r\n var errorClass = \" input-in-error\";\r\n var agentDescErrorClass = agentDescError ? errorClass : '';\r\n var behavior;\r\n if (this.hasVersionEndpoint('1.0')) {\r\n var behaviorDisabled = (this.state.bot.Version !== '1.0');\r\n var behaviorNote = this.state.bot.Endpoints.length > 1 ? React.createElement(\"small\", null, \"Version 1.0 only\") : null;\r\n var behavior = (React.createElement(\"div\", { className: \"grid-card-base bot-card editor-card\" + (behaviorDisabled ? ' disabled' : ''), disabled: behaviorDisabled },\r\n React.createElement(\"h3\", null,\r\n \"Behavior \",\r\n behaviorNote),\r\n React.createElement(\"div\", { className: \"detail-row\" },\r\n React.createElement(\"div\", { className: \"checkbox-rect\" },\r\n React.createElement(\"input\", { disabled: true, type: \"checkbox\", id: \"allMessages\", checked: false })),\r\n React.createElement(\"div\", { className: \"checkbox-rhs\" },\r\n React.createElement(\"label\", { htmlFor: \"allMessages\" }, \"Listen to all messages\"),\r\n React.createElement(\"div\", { className: \"checkbox-desc\" }, \"Even if your bot isn't addressed directly, it will be able to listen and respond to all messages in the conversation.\"))),\r\n React.createElement(\"div\", { className: \"detail-row\" },\r\n React.createElement(\"div\", { className: \"checkbox-rect\" },\r\n React.createElement(\"input\", { disabled: true, type: \"checkbox\", id: \"autoTranslate\", checked: false })),\r\n React.createElement(\"div\", { className: \"checkbox-rhs\" },\r\n React.createElement(\"label\", { htmlFor: \"autoTranslate\" }, \"Translate channel messages\"),\r\n React.createElement(\"div\", { className: \"checkbox-desc\" },\r\n \"Translation provided by Bing Translate (privacy at \",\r\n React.createElement(\"a\", { href: \"http://aka.ms/translatorprivacy\", target: \"_blank\" }, \"http://aka.ms/translatorprivacy\"),\r\n \") and requires\" + \" \" + \"an additional update to your privacy statement. See the \",\r\n React.createElement(\"a\", { href: \"//aka.ms/bf-conduct\", target: \"_blank\" }, \"Bot Framework Developer Code of Conduct\"),\r\n \" for details.\")))));\r\n }\r\n var azureSettings = this.renderAzureSettings();\r\n return (React.createElement(\"div\", null,\r\n azureSettings ?\r\n React.createElement(\"div\", { className: \"grid-card-base bot-card editor-card\" }, azureSettings)\r\n : null,\r\n React.createElement(\"div\", { id: \"agent-details-card\", className: \"grid-card-base bot-card editor-card\" },\r\n React.createElement(\"h3\", { id: \"bot-profile\" }, \"Bot profile\"),\r\n React.createElement(BotIconControl_1.BotIconControl, { onDropIcon: this.props.onDropIcon, bot: this.state.bot }),\r\n React.createElement(BotEditorRow_1.BotEditorRow, { editor: this, inputId: reflectedName(x.Name = null), inputMaxlen: Editor.MAX_NAME_LEN, inputMinlen: Editor.MIN_NAME_LEN, inputPlaceholder: \"Name\", label: \"Display name\", required: true, onTooltipVisibilityChanged: this.onTooltipVisiblityChanged, inputTip: \"Your bot's name in channels and directories; you can change this later. \" + Editor.MAX_NAME_LEN + \" character limit.\" }),\r\n React.createElement(BotEditorRow_1.BotEditorRow, { editor: this, onTooltipVisibilityChanged: this.onTooltipVisiblityChanged, inputId: reflectedName(x.Id = null), required: true, inputMaxlen: Editor.MAX_ID_LEN, inputMinlen: Editor.MIN_ID_LEN, inputReadonly: !this.props.inCreateMode, label: index_1.resourceStrings.botId, inputPlaceholder: \"Type in your \" + index_1.resourceStrings.botId, inputTip: \"Used in the URL for your bot. Alphanumeric and underscore only. Cannot be changed once registered.\" }),\r\n React.createElement(\"div\", { className: \"detail-row\" },\r\n React.createElement(BlockRowInputLabel_1.BlockRowInputLabel, { for: \"input-Description\", text: \"Long description\", required: false, tip: \"Your bot's long description which may appear in channels or directories.\", onTooltipVisibilityChanged: this.onTooltipVisiblityChanged }),\r\n React.createElement(index_1.AutoResizeTextArea, { className: agentDescErrorClass + ' description', placeHolder: \"Description\", id: \"input-Description\", value: this.state.bot.Description, maxLength: Editor.MAX_DESC_LEN, onChange: function (ev) { return _this.handleChange('Description', ev); } }),\r\n React.createElement(\"div\", { key: \"desc1\", className: \"error-info\" }, agentDescError))),\r\n React.createElement(\"div\", { id: \"agent-details-card\", className: \"grid-card-base bot-card editor-card\" },\r\n React.createElement(\"h3\", null, \"Configuration\"),\r\n React.createElement(BotVersionEditor_1.BotVersionEditor, { bot: this.state.bot, inCreateMode: this.props.inCreateMode, handleChange: function (fieldName, ev) { return _this.handleChange(fieldName, ev); }, handleArrayIndexedObjectChange: function (fieldName, index, childFieldName, ev) { return _this.handleArrayIndexedObjectChange(fieldName, index, childFieldName, ev); }, handleCheckboxChange: function (fieldName, ev) { return _this.handleCheckboxChange(fieldName, ev); }, v1Secret: this.state.subscriptionKeys ? this.state.subscriptionKeys.primary : '', isAppTypeFlighted: this.props.isFeatureFlighted('appTypeEnabled'), errors: this.state.errors })),\r\n behavior,\r\n React.createElement(\"div\", { className: \"config-info grid-card-base bot-card editor-card\" },\r\n React.createElement(\"h3\", null, \"Analytics\"),\r\n React.createElement(\"p\", null,\r\n \"Enable Analytics for your bot via Azure Application Insights.\\u00A0\",\r\n React.createElement(\"a\", { href: '//aka.ms/bf-analytics', target: '_blank' }, \"Learn more.\")),\r\n React.createElement(BotEditorRow_1.BotEditorRow, { label: \"Application Insights Instrumentation key\", editor: this, inputId: reflectedName(x.DeveloperAppInsightKey = null), inputTip: \"Provide your Azure Application Insights Key if you want to receive bot telemetry. Learn more\", tipAsHtml: true, inputPlaceholder: \"Instrumentation key (Azure Application Insights key)\", onTooltipVisibilityChanged: this.onTooltipVisiblityChanged }),\r\n this.renderAppInsightsDashboardFields(x, reflectedName)),\r\n React.createElement(\"div\", { className: \"config-info grid-card-base bot-card editor-card\" },\r\n React.createElement(\"h3\", null, \"Admin\"),\r\n React.createElement(BotEditorRow_1.BotEditorRow, { label: \"Owners\", editor: this, inputId: reflectedName(x.OwnerIds = null), inputIsArray: true, inputPlaceholder: \"Type email addresses separated by commas\", inputTip: \"Email(s) of people who have permission to edit this bot, comma or semicolon delimited.\", onTooltipVisibilityChanged: this.onTooltipVisiblityChanged })),\r\n this.renderAdminTile()));\r\n };\r\n BotEditor.prototype.renderAzureSettings = function () {\r\n return (this.props.botAppSettingsProps ?\r\n React.createElement(BotAppSettings_1.BotAppSettings, __assign({}, this.props.botAppSettingsProps, { ref: this.props.onSetBotAppSettings }))\r\n : null);\r\n };\r\n BotEditor.prototype.renderAdminTile = function () {\r\n if (!this.props.isAdmin) {\r\n return null;\r\n }\r\n return (React.createElement(\"div\", { className: \"grid-card-base bot-card editor-card\" },\r\n React.createElement(\"h3\", null, \"BF Admin\"),\r\n this.renderBlockedRow(),\r\n this.renderSystemTagsEditor()));\r\n };\r\n BotEditor.prototype.renderSystemTagAsCheckbox = function (tag, prompt) {\r\n var _this = this;\r\n var ref = \"checkbox_\" + tag;\r\n var id = \"agent_\" + tag;\r\n var checked = this.state.bot.SystemHashtags && this.state.bot.SystemHashtags.indexOf(tag) >= 0;\r\n return (React.createElement(\"div\", { className: \"detail-row\" },\r\n React.createElement(\"label\", { className: \"label-above\" }),\r\n React.createElement(\"div\", { className: \"checkbox-rect\" },\r\n React.createElement(\"input\", { ref: ref, type: \"checkbox\", id: id, checked: checked, onChange: function (e) { return _this.syncSystemTag(e, tag, ref); } })),\r\n React.createElement(\"label\", { htmlFor: id }, prompt)));\r\n };\r\n BotEditor.prototype.renderBlockedRow = function () {\r\n return this.renderSystemTagAsCheckbox('blocked', 'Block bot in ' + index_1.resourceStrings.botDirectory + ' and switch');\r\n };\r\n BotEditor.prototype.onSystemTagsChange = function (x) {\r\n var text = x.currentTarget['value'];\r\n var tags = text.split(',').map(function (x) { return x.trim(); });\r\n this.props.onSystemTagsChange(tags);\r\n };\r\n BotEditor.prototype.renderSystemTagsEditor = function () {\r\n var _this = this;\r\n return (React.createElement(\"div\", { className: \"detail-row\" },\r\n React.createElement(\"label\", { className: \"label-above\" }, \"System tags\"),\r\n React.createElement(\"input\", { ref: \"systemTags\", type: \"text\", id: \"agent-systemHashtags\", value: this.getSystemTags(), onChange: function (x) { return _this.onSystemTagsChange(x); } })));\r\n };\r\n BotEditor.prototype.syncSystemTag = function (e, tag, ref) {\r\n var $tags = $(ReactDOM.findDOMNode(this.refs['systemTags']));\r\n var $checkbox = $(ReactDOM.findDOMNode(this.refs[ref]));\r\n var on = !!$checkbox.is(':checked');\r\n var tags = $tags.val().split(',').filter(function (t) { return t.length; });\r\n if (on) {\r\n tags.push(tag);\r\n }\r\n else {\r\n tags = tags.filter(function (t) { return t != tag; });\r\n }\r\n this.props.onSystemTagsChange(tags);\r\n };\r\n BotEditor.prototype.getSystemTags = function () {\r\n return this.state.bot.SystemHashtags ? this.state.bot.SystemHashtags.join(',') : '';\r\n };\r\n BotEditor.prototype.renderButtons = function () {\r\n var cancelButton = React.createElement(\"button\", { type: \"button\", className: \"m-button-secondary-md cancel-button\", onClick: this.props.onClickButton }, \"Cancel\");\r\n if (this.props.inCreateMode) {\r\n return (React.createElement(\"div\", { className: \"button-panel create-mode\" },\r\n React.createElement(\"div\", { className: \"register-agreement\" },\r\n React.createElement(UserAgreementConsentFormFields_1.UserAgreementConsentFormFields, { onAgreeToTermsChanged: this.onAgreementChanged })),\r\n React.createElement(\"button\", { className: \"m-button-primary-md focus-button register-button\", disabled: this.state.isBusy || !this.state.termAcknowledged, onClick: this.props.onClickButton, type: \"button\" }, index_1.resourceStrings.register),\r\n cancelButton));\r\n }\r\n else {\r\n var deleteButton = null;\r\n var actionButton = null;\r\n deleteButton = (InFrame_1.default() ? null :\r\n (React.createElement(\"button\", { type: \"button\", className: \"m-button-destructive-outline-md focus-button delete-button\", disabled: this.state.isBusy, onClick: this.props.onClickButton }, index_1.resourceStrings.deleteBot)));\r\n actionButton = (React.createElement(\"button\", { type: \"button\", className: \"m-button-primary-md save-button\", disabled: this.state.isBusy, onClick: this.props.onClickButton }, \"Save changes\"));\r\n return (React.createElement(\"div\", { className: \"editor-card\" },\r\n React.createElement(\"div\", { className: \"button-panel edit-mode\" },\r\n React.createElement(\"div\", { className: \"left\" },\r\n cancelButton,\r\n actionButton),\r\n React.createElement(\"div\", { className: \"right\" }, deleteButton))));\r\n }\r\n };\r\n return BotEditor;\r\n }(React.Component));\r\n exports.BotEditor = BotEditor;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 163 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(7), __webpack_require__(14), __webpack_require__(8), __webpack_require__(251), __webpack_require__(31), __webpack_require__(40)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, Rest, index_1, ClientAppSettings_1, DropdownMenu_1, ControllerBase_1, Links_1) {\r\n function SeverityEnumToIcon(s) {\r\n switch (s) {\r\n case Rest.AnnouncementSeverity.Error:\r\n return 'm-icon-AlertCircle severity-error';\r\n case Rest.AnnouncementSeverity.Good:\r\n return 'm-icon-CompletedSolid severity-good';\r\n case Rest.AnnouncementSeverity.Information:\r\n return 'm-icon-InfoSolid severity-info';\r\n case Rest.AnnouncementSeverity.Warning:\r\n return 'm-icon-AlertTriangle severity-warn';\r\n }\r\n return '';\r\n }\r\n function SeverityEnumToText(s) {\r\n switch (s) {\r\n case Rest.AnnouncementSeverity.Error:\r\n return index_1.resourceStrings.announcements.types.error;\r\n case Rest.AnnouncementSeverity.Good:\r\n return index_1.resourceStrings.announcements.types.good;\r\n case Rest.AnnouncementSeverity.Information:\r\n return index_1.resourceStrings.announcements.types.info;\r\n case Rest.AnnouncementSeverity.Warning:\r\n return index_1.resourceStrings.announcements.types.warn;\r\n }\r\n return '';\r\n }\r\n var MasterPageHeader = (function (_super) {\r\n __extends(MasterPageHeader, _super);\r\n function MasterPageHeader(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {};\r\n return _this;\r\n }\r\n MasterPageHeader.prototype.smallHeaderNavClick = function (index) {\r\n switch (index) {\r\n case index_1.SmallHeaderNavLinks.root:\r\n this.props.controller.app.navigate('/');\r\n break;\r\n case index_1.SmallHeaderNavLinks.mybots:\r\n this.props.controller.app.navigate('/bots');\r\n break;\r\n case index_1.SmallHeaderNavLinks.documentation:\r\n window.open('https://docs.microsoft.com/en-us/bot-framework/', '_blank');\r\n break;\r\n case index_1.SmallHeaderNavLinks.blog:\r\n window.open('https://blog.botframework.com', '_blank');\r\n break;\r\n case index_1.SmallHeaderNavLinks.register:\r\n this.props.controller.app.navigate('/bots/new');\r\n break;\r\n case index_1.SmallHeaderNavLinks.create:\r\n this.props.controller.app.navigate('/bots/provision');\r\n break;\r\n }\r\n };\r\n MasterPageHeader.prototype.toggleSearch = function () {\r\n var opened = _.isUndefined(this.state.expandSearch) ? true : !this.state.expandSearch;\r\n this.setState(_.extend(this.state, { expandSearch: opened }));\r\n };\r\n MasterPageHeader.prototype.render = function () {\r\n var _this = this;\r\n var navLinks = [];\r\n var bell = null;\r\n var userInfo = null;\r\n var searchControl = null;\r\n var announcements = this.props.announcements && this.props.announcements.all || [];\r\n var announcementsIdCounts = this.props.announcements && this.props.announcements.shownIdCount || {};\r\n if (this.props.showLinks) {\r\n navLinks = [\r\n '/bots',\r\n 'https://docs.microsoft.com/en-us/bot-framework/',\r\n ClientAppSettings_1.clientAppSettings.homeUrl,\r\n 'https://blog.botframework.com'\r\n ];\r\n if (this.props.showUserMenu && this.props.signedInUser) {\r\n var signedInUser = this.props.signedInUser();\r\n if (signedInUser) {\r\n userInfo = (React.createElement(\"button\", { className: \"signed-in-user rhs-nav\", \"aria-label\": \"Account manager for \" + (signedInUser.FirstName || signedInUser.EmailAddress) },\r\n React.createElement(\"span\", null, signedInUser.FirstName || signedInUser.EmailAddress)));\r\n }\r\n else {\r\n userInfo = (React.createElement(\"div\", { className: \"header-login rhs-nav\" },\r\n React.createElement(\"a\", { \"data-test-id\": \"sign-in\", className: \"header-sign-in-button\", onClick: function (evt) {\r\n if (!ControllerBase_1.isBrowserSupported()) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n _this.setState({ unsupportedBrowser: true });\r\n }\r\n }, href: Links_1.getSignInUrl() }, \"Sign in\"),\r\n this.props.renderHiddenFrameToCheckAzureSingleSignOn()));\r\n }\r\n if (this.props.announcements && this.props.announcements.isFeatureFlighted) {\r\n var hasUnreadAnnouncements = announcements.reduce(function (accumulator, current) { return (accumulator || announcementsIdCounts[current.Id] == 0); }, false);\r\n var bellIconId = hasUnreadAnnouncements ? \"svgicon-bell-dot\" : \"svgicon-bell\";\r\n bell = (React.createElement(\"button\", { className: \"header-announcement rhs-nav\", \"aria-label\": \"View notifications\" },\r\n React.createElement(\"svg\", { className: \"svgicon \" + bellIconId },\r\n React.createElement(\"use\", { xlinkHref: \"Client/Images/symbol-defs.svg#\" + bellIconId }))));\r\n }\r\n }\r\n if (this.props.showSearch) {\r\n searchControl = this.props.isAdmin() || this.props.isReviewer() ? (React.createElement(index_1.SearchControl, { ref: \"searchBox\", onSearch: this.props.onSearch, value: null, expandSearch: this.state.expandSearch, promptText: ClientAppSettings_1.clientAppSettings.searchPrompt, toggleSearchOpen: _.debounce(_.bind(this.toggleSearch, this), 100, true) })) : null;\r\n }\r\n }\r\n var userMenu = null;\r\n if (this.props.showUserMenu && this.props.signedInUser) {\r\n var signedInUser = this.props.signedInUser();\r\n if (signedInUser) {\r\n userMenu = (React.createElement(DropdownMenu_1.DropdownMenu, { ref: \"userMenu\", classNames: \"user-menu\" },\r\n React.createElement(DropdownMenu_1.DropdownMenuItem, { classNames: \"user-menu-user\", ariaLabel: \"account setting for \" + (signedInUser.FirstName || signedInUser.EmailAddress), onSelected: this.props.onAccountClicked },\r\n React.createElement(\"div\", { className: \"user-menu-user-name\" },\r\n signedInUser.FirstName,\r\n \" \",\r\n signedInUser.LastName),\r\n React.createElement(\"div\", { className: \"user-menu-user-email\" }, signedInUser.EmailAddress)),\r\n React.createElement(DropdownMenu_1.DropdownMenuItem, { classNames: \"user-menu-signout\", ariaLabel: \"sign out for \" + (signedInUser.FirstName || signedInUser.EmailAddress), onSelected: function () { return _this.props.onSignOutClicked(); } }, \"Sign out\")));\r\n }\r\n }\r\n var announcementsMenuItem = function (a) {\r\n var link = a.LinkUrl ? React.createElement(\"div\", { className: \"announcement-link\" },\r\n React.createElement(\"a\", { href: a.LinkUrl, target: \"_blank\" }, index_1.resourceStrings.announcements.link)) : null;\r\n var classNames = 'announcement ' + (announcementsIdCounts[a.Id] < 2 ? \"unread\" : \"read\");\r\n return (React.createElement(DropdownMenu_1.DropdownMenuItem, { key: a.Id, classNames: classNames, notSelectable: true },\r\n React.createElement(\"div\", { className: \"announcement-severity\" },\r\n React.createElement(\"span\", { className: 'announcement-icon ' + SeverityEnumToIcon(a.Severity) }),\r\n SeverityEnumToText(a.Severity)),\r\n React.createElement(\"div\", { className: \"announcement-area\" }, a.ProductArea),\r\n React.createElement(\"div\", { className: \"announcement-body\" }, a.Text),\r\n link));\r\n };\r\n var announcementsMenu = (React.createElement(DropdownMenu_1.DropdownMenu, { ref: \"announcementsMenu\", classNames: \"user-menu\" + (this.props.showJumboHeader ? '' : ' small-header-menu') }, announcements.length > 0 ? announcements.map(announcementsMenuItem) : announcementsMenuItem({ Id: \"0\", Severity: Rest.AnnouncementSeverity.Good, ProductArea: index_1.resourceStrings.announcements.ok.productArea, Text: index_1.resourceStrings.announcements.ok.text })));\r\n var jumboHeader = (this.props.showJumboHeader) ? (React.createElement(index_1.JumboHeadControl, { ref: \"jumbo\", rootUrl: ClientAppSettings_1.clientAppSettings.homeUrl || '/', defaultLink: index_1.NavLinks.root, navLinks: navLinks, hideDirectory: true, isRoutable: this.props.isRoutableUrl }, searchControl)) : null;\r\n var features = ClientAppSettings_1.clientAppSettings.flightedFeatures || [];\r\n var environment = (this.props.showEnvironment) ? ClientAppSettings_1.clientAppSettings.environment : null;\r\n var skipToMainClick = function (ev) {\r\n ev.preventDefault();\r\n location.hash = \"\";\r\n location.hash = \"#page-content\";\r\n };\r\n return (React.createElement(\"div\", null,\r\n React.createElement(\"a\", { href: \"javascript:void(0)\", className: \"skipToMain\", onClick: skipToMainClick }, \"Skip to main content\"),\r\n React.createElement(index_1.HeaderControl, { smallHeader: !this.props.showJumboHeader, features: features, showMainNavLink: this.props.showMainNavLink, smallHeaderNavHandler: function (index) { return _this.smallHeaderNavClick(index); }, environment: environment },\r\n this.props.showJumboHeader ? null : searchControl,\r\n React.createElement(\"div\", { className: \"rhs\" },\r\n userMenu,\r\n announcementsMenu,\r\n bell,\r\n userInfo)),\r\n jumboHeader));\r\n };\r\n return MasterPageHeader;\r\n }(React.Component));\r\n exports.MasterPageHeader = MasterPageHeader;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 164 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(7), __webpack_require__(8), __webpack_require__(106), __webpack_require__(15)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, Rest, ClientAppSettings_1, CultureUtility_1, Intercom_Resources_DevPortal_1) {\r\n var WebChat = (function (_super) {\r\n __extends(WebChat, _super);\r\n function WebChat(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = { token: null };\r\n _this.retrieveWebChatToken();\r\n return _this;\r\n }\r\n WebChat.prototype.render = function () {\r\n var _this = this;\r\n if (!this.state.token) {\r\n return null;\r\n }\r\n var frameSrc = ClientAppSettings_1.clientAppSettings.webChatUrl + \"embed/\" + this.props.bot.Id + \"?t=\" + this.state.token;\r\n if (CultureUtility_1.CultureUtility.rawLocale)\r\n frameSrc += \"&l=\" + CultureUtility_1.CultureUtility.rawLocale;\r\n return (React.createElement(\"div\", { className: \"webchat-iframe-wrapper\" },\r\n React.createElement(\"div\", { className: \"webchat-test-header\" },\r\n React.createElement(\"div\", { className: \"webchat-test-text\" }, Intercom_Resources_DevPortal_1.Resources.test),\r\n React.createElement(\"button\", { className: \"webchat-test-reload\", onClick: function () { return _this.retrieveWebChatToken(); } },\r\n React.createElement(\"span\", { className: \"m-icon-Refresh webchat-refresh\" }),\r\n React.createElement(\"span\", { className: \"webchat-startover-text\" }, Intercom_Resources_DevPortal_1.Resources.startOver))),\r\n React.createElement(\"iframe\", { title: \"Web chat\", className: this.props.className, src: frameSrc }),\r\n React.createElement(\"div\", { className: \"warning-wrapper\" },\r\n this.renderUnsavedWarnings(),\r\n this.renderError())));\r\n };\r\n WebChat.prototype.retrieveWebChatToken = function () {\r\n var _this = this;\r\n Rest.BotManagerClient.getWebChatToken(this.props.bot.Id).done(function (token) {\r\n _this.setState({ token: token });\r\n });\r\n };\r\n WebChat.prototype.renderUnsavedWarnings = function () {\r\n if (this.props.authoringDirty) {\r\n return (React.createElement(\"div\", { className: \"bot-alert\" },\r\n React.createElement(\"span\", { className: \"bot-unsave-warning m-icon-AlertTriangle\" }),\r\n React.createElement(\"span\", null, \"You have unsaved changes in BUILD. Testing won\\u2019t reflect those changes. \")));\r\n }\r\n return null;\r\n };\r\n WebChat.prototype.renderError = function () {\r\n if (this.props.authoringError) {\r\n return (React.createElement(\"div\", { className: \"bot-alert bot-alert-second\" },\r\n React.createElement(\"span\", { className: \"bot-error-warning m-icon-AlertCircle\" }),\r\n React.createElement(\"span\", null, \"You have errors in BUILD. Please fix these changes before continuing.\")));\r\n }\r\n return null;\r\n };\r\n return WebChat;\r\n }(React.Component));\r\n exports.WebChat = WebChat;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(274), __webpack_require__(481), __webpack_require__(483), __webpack_require__(484), __webpack_require__(482)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, BotProgress_1, CookieInform_1, ExpiredSubscription_1, V3Update_1, DialogStatus_1) {\r\n function __export(m) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n }\r\n __export(BotProgress_1);\r\n __export(CookieInform_1);\r\n __export(ExpiredSubscription_1);\r\n __export(V3Update_1);\r\n __export(DialogStatus_1);\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 166 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n function readCookie(name) {\r\n var nameEquals = name + \"=\";\r\n var cookies = document.cookie.split(\";\");\r\n for (var i = 0; i < cookies.length; i++) {\r\n var cookie = cookies[i].replace(/^\\s+/, \"\");\r\n if (cookie.indexOf(nameEquals) === 0) {\r\n return cookie.substring(nameEquals.length);\r\n }\r\n }\r\n return null;\r\n }\r\n exports.readCookie = readCookie;\r\n function setCookie(cookie) {\r\n document.cookie = cookie.name + \"=\" + cookie.value + \";expires=\" + cookie.expires.toUTCString() + \";path=\" + cookie.path + \";secure=\" + cookie.secure + \";samesite=\" + cookie.sameSite;\r\n }\r\n exports.setCookie = setCookie;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(17), __webpack_require__(19)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, Strings_1, InFrame_1) {\r\n var NavLinks;\r\n (function (NavLinks) {\r\n NavLinks[NavLinks[\"root\"] = 0] = \"root\";\r\n NavLinks[NavLinks[\"mybots\"] = 1] = \"mybots\";\r\n NavLinks[NavLinks[\"register\"] = 2] = \"register\";\r\n NavLinks[NavLinks[\"docs\"] = 3] = \"docs\";\r\n NavLinks[NavLinks[\"directory\"] = 4] = \"directory\";\r\n NavLinks[NavLinks[\"blog\"] = 5] = \"blog\";\r\n NavLinks[NavLinks[\"admin\"] = 6] = \"admin\";\r\n NavLinks[NavLinks[\"reviewbots\"] = 7] = \"reviewbots\";\r\n })(NavLinks = exports.NavLinks || (exports.NavLinks = {}));\r\n var navLinkNames = ['', 'My bots', 'Register a bot', 'Documentation', Strings_1.resourceStrings.botDirectory, 'Blog'];\r\n function getLinkDisplayText(navLink) {\r\n return navLinkNames[navLink];\r\n }\r\n exports.getLinkDisplayText = getLinkDisplayText;\r\n function normalizeExternalRouteUrl(root, route) {\r\n if (root && root.length) {\r\n if (root.charAt(root.length - 1) !== '/') {\r\n return root + \"/\" + route;\r\n }\r\n else {\r\n return \"\" + root + route;\r\n }\r\n }\r\n return route;\r\n }\r\n exports.normalizeExternalRouteUrl = normalizeExternalRouteUrl;\r\n var JumboHeadControl = (function (_super) {\r\n __extends(JumboHeadControl, _super);\r\n function JumboHeadControl(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = { activeLink: props.defaultLink };\r\n return _this;\r\n }\r\n JumboHeadControl.prototype.toggleNavList = function () {\r\n $(ReactDOM.findDOMNode(this.refs['navList'])).toggleClass('expand');\r\n };\r\n JumboHeadControl.prototype.render = function () {\r\n var _this = this;\r\n if (!this.props.showFrame && InFrame_1.default()) {\r\n return null;\r\n }\r\n var rootUrlClassName = this.props.isRoutable(this.props.rootUrl) ? \"appnav\" : null;\r\n return (React.createElement(\"div\", { className: \"brand-primary \" + (this.props.className || '') },\r\n React.createElement(\"div\", { className: \"jumbo\" },\r\n React.createElement(\"div\", { className: \"jumbo-header\" },\r\n React.createElement(\"a\", { href: this.props.rootUrl, className: rootUrlClassName }, Strings_1.resourceStrings.botFramework)),\r\n React.createElement(\"ul\", { ref: \"navList\", className: \"header-nav\", onClick: _.debounce(_.bind(this.toggleNavList, this), 200, true) }, this.props.navLinks.map(function (href, link) {\r\n var linkEnum = link + 1;\r\n var activeLink = _this.state.activeLink;\r\n if (_.isUndefined(activeLink)) {\r\n activeLink = _this.props.defaultLink;\r\n }\r\n var className = linkEnum === activeLink ? \"active\" : null;\r\n var linkClassName = _this.props.isRoutable(href) ? \"appnav\" : null;\r\n return (React.createElement(\"li\", { key: navLinkNames[linkEnum], className: className },\r\n React.createElement(\"a\", { href: href, className: linkClassName }, navLinkNames[linkEnum])));\r\n })),\r\n this.props.children)));\r\n };\r\n return JumboHeadControl;\r\n }(React.Component));\r\n exports.JumboHeadControl = JumboHeadControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 168 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React) {\r\n var ProgressBarControl = (function (_super) {\r\n __extends(ProgressBarControl, _super);\r\n function ProgressBarControl(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n ProgressBarControl.prototype.render = function () {\r\n var className = \"loading-animation progress-bar\";\r\n if (this.props.loading) {\r\n className = className + \" loading\";\r\n }\r\n return (React.createElement(\"div\", { className: className },\r\n React.createElement(\"div\", { className: \"progress-circle\" }),\r\n React.createElement(\"div\", { className: \"progress-circle\" }),\r\n React.createElement(\"div\", { className: \"progress-circle\" }),\r\n React.createElement(\"div\", { className: \"progress-circle\" }),\r\n React.createElement(\"div\", { className: \"progress-circle\" })));\r\n };\r\n return ProgressBarControl;\r\n }(React.Component));\r\n exports.ProgressBarControl = ProgressBarControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 169 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(277)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, RuntimeConnectedShadeUtils_1) {\r\n var RuntimeConnectedShade = (function (_super) {\r\n __extends(RuntimeConnectedShade, _super);\r\n function RuntimeConnectedShade(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.onChildMessage = function (e, visibleData) {\r\n console.log(visibleData, e);\r\n _this.setState({\r\n visible: visibleData && visibleData.visibility\r\n });\r\n };\r\n _this.state = {\r\n visible: false\r\n };\r\n RuntimeConnectedShadeUtils_1.RuntimeConnectedShadeUtils.initialize();\r\n return _this;\r\n }\r\n RuntimeConnectedShade.prototype.componentWillMount = function () {\r\n RuntimeConnectedShadeUtils_1.RuntimeConnectedShadeUtils.on(RuntimeConnectedShadeUtils_1.RuntimeConnectedShadeUtils.ModalVisibleEventName, this.onChildMessage);\r\n };\r\n RuntimeConnectedShade.prototype.componentWillUnmount = function () {\r\n RuntimeConnectedShadeUtils_1.RuntimeConnectedShadeUtils.off(RuntimeConnectedShadeUtils_1.RuntimeConnectedShadeUtils.ModalVisibleEventName, this.onChildMessage);\r\n };\r\n RuntimeConnectedShade.prototype.render = function () {\r\n if (!this.state.visible) {\r\n return null;\r\n }\r\n return React.createElement(\"div\", { className: \"cover-shade\" });\r\n };\r\n return RuntimeConnectedShade;\r\n }(React.Component));\r\n exports.RuntimeConnectedShade = RuntimeConnectedShade;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 170 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(512), __esModule: true };\n\n/***/ }),\n/* 171 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(521)\n , core = __webpack_require__(83)\n , ctx = __webpack_require__(283)\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/* 172 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__number__ = __webpack_require__(85);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values, p, valueof) {\n if (valueof == null) valueof = __WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */];\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n});\n\n\n/***/ }),\n/* 173 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return prefix; });\nvar prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (map);\n\n\n/***/ }),\n/* 174 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = Color;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return darker; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return brighter; });\n/* harmony export (immutable) */ __webpack_exports__[\"h\"] = color;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = rgbConvert;\n/* harmony export (immutable) */ __webpack_exports__[\"g\"] = rgb;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = Rgb;\n/* unused harmony export hslConvert */\n/* harmony export (immutable) */ __webpack_exports__[\"f\"] = hsl;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__define__ = __webpack_require__(175);\n\n\nfunction Color() {}\n\nvar darker = 0.7;\nvar brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex3 = /^#([0-9a-f]{3})$/,\n reHex6 = /^#([0-9a-f]{6})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\n__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__[\"a\" /* default */])(Color, color, {\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: function() {\n return this.rgb().hex();\n },\n toString: function() {\n return this.rgb() + \"\";\n }\n});\n\nfunction color(format) {\n var m;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00\n : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format])\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nfunction rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nfunction rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nfunction Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\n__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__[\"a\" /* default */])(Rgb, rgb, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__[\"b\" /* extend */])(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: function() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n },\n toString: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nfunction hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nfunction hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\n__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__[\"a\" /* default */])(Hsl, hsl, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__[\"b\" /* extend */])(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n\n\n/***/ }),\n/* 175 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = extend;\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n});\n\nfunction extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n\n\n/***/ }),\n/* 176 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n});\n\n\n/***/ }),\n/* 177 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = basis;\nfunction basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n});\n\n\n/***/ }),\n/* 178 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(64);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__rgb__ = __webpack_require__(313);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__array__ = __webpack_require__(308);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__date__ = __webpack_require__(311);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__number__ = __webpack_require__(117);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__object__ = __webpack_require__(312);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__string__ = __webpack_require__(314);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__constant__ = __webpack_require__(310);\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__constant__[\"a\" /* default */])(b)\n : (t === \"number\" ? __WEBPACK_IMPORTED_MODULE_4__number__[\"a\" /* default */]\n : t === \"string\" ? ((c = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"f\" /* color */])(b)) ? (b = c, __WEBPACK_IMPORTED_MODULE_1__rgb__[\"a\" /* default */]) : __WEBPACK_IMPORTED_MODULE_6__string__[\"a\" /* default */])\n : b instanceof __WEBPACK_IMPORTED_MODULE_0_d3_color__[\"f\" /* color */] ? __WEBPACK_IMPORTED_MODULE_1__rgb__[\"a\" /* default */]\n : b instanceof Date ? __WEBPACK_IMPORTED_MODULE_3__date__[\"a\" /* default */]\n : Array.isArray(b) ? __WEBPACK_IMPORTED_MODULE_2__array__[\"a\" /* default */]\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? __WEBPACK_IMPORTED_MODULE_5__object__[\"a\" /* default */]\n : __WEBPACK_IMPORTED_MODULE_4__number__[\"a\" /* default */])(a, b);\n});\n\n\n/***/ }),\n/* 179 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = loggish;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = log;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_format__ = __webpack_require__(306);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__nice__ = __webpack_require__(316);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__continuous__ = __webpack_require__(41);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__init__ = __webpack_require__(20);\n\n\n\n\n\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nfunction loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i < j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"c\" /* ticks */])(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_format__[\"f\" /* format */])(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__nice__[\"a\" /* default */])(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nfunction log() {\n var scale = loggish(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__continuous__[\"b\" /* transformer */])()).domain([1, 10]);\n\n scale.copy = function() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__continuous__[\"c\" /* copy */])(scale, log()).base(scale.base());\n };\n\n __WEBPACK_IMPORTED_MODULE_4__init__[\"b\" /* initRange */].apply(scale, arguments);\n\n return scale;\n}\n\n\n/***/ }),\n/* 180 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = powish;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = pow;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = sqrt;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__linear__ = __webpack_require__(50);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__continuous__ = __webpack_require__(41);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__init__ = __webpack_require__(20);\n\n\n\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nfunction powish(transform) {\n var scale = transform(__WEBPACK_IMPORTED_MODULE_1__continuous__[\"a\" /* identity */], __WEBPACK_IMPORTED_MODULE_1__continuous__[\"a\" /* identity */]),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(__WEBPACK_IMPORTED_MODULE_1__continuous__[\"a\" /* identity */], __WEBPACK_IMPORTED_MODULE_1__continuous__[\"a\" /* identity */])\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__linear__[\"b\" /* linearish */])(scale);\n}\n\nfunction pow() {\n var scale = powish(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__continuous__[\"b\" /* transformer */])());\n\n scale.copy = function() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__continuous__[\"c\" /* copy */])(scale, pow()).exponent(scale.exponent());\n };\n\n __WEBPACK_IMPORTED_MODULE_2__init__[\"b\" /* initRange */].apply(scale, arguments);\n\n return scale;\n}\n\nfunction sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n\n\n/***/ }),\n/* 181 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = symlogish;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = symlog;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__linear__ = __webpack_require__(50);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__continuous__ = __webpack_require__(41);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__init__ = __webpack_require__(20);\n\n\n\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nfunction symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__linear__[\"b\" /* linearish */])(scale);\n}\n\nfunction symlog() {\n var scale = symlogish(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__continuous__[\"b\" /* transformer */])());\n\n scale.copy = function() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__continuous__[\"c\" /* copy */])(scale, symlog()).constant(scale.constant());\n };\n\n return __WEBPACK_IMPORTED_MODULE_2__init__[\"b\" /* initRange */].apply(scale, arguments);\n}\n\n\n/***/ }),\n/* 182 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = point;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__math__ = __webpack_require__(87);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__cardinal__ = __webpack_require__(119);\n\n\n\nfunction point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > __WEBPACK_IMPORTED_MODULE_0__math__[\"a\" /* epsilon */]) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > __WEBPACK_IMPORTED_MODULE_0__math__[\"a\" /* epsilon */]) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = ((function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new __WEBPACK_IMPORTED_MODULE_1__cardinal__[\"a\" /* Cardinal */](context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5));\n\n\n/***/ }),\n/* 183 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__arc__ = __webpack_require__(597);\n/* unused harmony reexport arc */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__area__ = __webpack_require__(322);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"z\", function() { return __WEBPACK_IMPORTED_MODULE_1__area__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__line__ = __webpack_require__(184);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"A\", function() { return __WEBPACK_IMPORTED_MODULE_2__line__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__pie__ = __webpack_require__(618);\n/* unused harmony reexport pie */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__areaRadial__ = __webpack_require__(598);\n/* unused harmony reexport areaRadial */\n/* unused harmony reexport radialArea */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__lineRadial__ = __webpack_require__(327);\n/* unused harmony reexport lineRadial */\n/* unused harmony reexport radialLine */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__pointRadial__ = __webpack_require__(329);\n/* unused harmony reexport pointRadial */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__link_index__ = __webpack_require__(610);\n/* unused harmony reexport linkHorizontal */\n/* unused harmony reexport linkVertical */\n/* unused harmony reexport linkRadial */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__symbol__ = __webpack_require__(620);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"n\", function() { return __WEBPACK_IMPORTED_MODULE_8__symbol__[\"a\"]; });\n/* unused harmony reexport symbols */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__symbol_circle__ = __webpack_require__(330);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return __WEBPACK_IMPORTED_MODULE_9__symbol_circle__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__symbol_cross__ = __webpack_require__(331);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return __WEBPACK_IMPORTED_MODULE_10__symbol_cross__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__symbol_diamond__ = __webpack_require__(332);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return __WEBPACK_IMPORTED_MODULE_11__symbol_diamond__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__symbol_square__ = __webpack_require__(333);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return __WEBPACK_IMPORTED_MODULE_12__symbol_square__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__symbol_star__ = __webpack_require__(334);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return __WEBPACK_IMPORTED_MODULE_13__symbol_star__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__symbol_triangle__ = __webpack_require__(335);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"l\", function() { return __WEBPACK_IMPORTED_MODULE_14__symbol_triangle__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__symbol_wye__ = __webpack_require__(336);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"m\", function() { return __WEBPACK_IMPORTED_MODULE_15__symbol_wye__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__curve_basisClosed__ = __webpack_require__(599);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"o\", function() { return __WEBPACK_IMPORTED_MODULE_16__curve_basisClosed__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__curve_basisOpen__ = __webpack_require__(600);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"p\", function() { return __WEBPACK_IMPORTED_MODULE_17__curve_basisOpen__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__curve_basis__ = __webpack_require__(118);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"q\", function() { return __WEBPACK_IMPORTED_MODULE_18__curve_basis__[\"c\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__curve_bundle__ = __webpack_require__(601);\n/* unused harmony reexport curveBundle */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__curve_cardinalClosed__ = __webpack_require__(324);\n/* unused harmony reexport curveCardinalClosed */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__curve_cardinalOpen__ = __webpack_require__(325);\n/* unused harmony reexport curveCardinalOpen */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__curve_cardinal__ = __webpack_require__(119);\n/* unused harmony reexport curveCardinal */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__curve_catmullRomClosed__ = __webpack_require__(602);\n/* unused harmony reexport curveCatmullRomClosed */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__curve_catmullRomOpen__ = __webpack_require__(603);\n/* unused harmony reexport curveCatmullRomOpen */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__curve_catmullRom__ = __webpack_require__(182);\n/* unused harmony reexport curveCatmullRom */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__curve_linearClosed__ = __webpack_require__(604);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"r\", function() { return __WEBPACK_IMPORTED_MODULE_26__curve_linearClosed__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__curve_linear__ = __webpack_require__(120);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"s\", function() { return __WEBPACK_IMPORTED_MODULE_27__curve_linear__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__curve_monotone__ = __webpack_require__(605);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"t\", function() { return __WEBPACK_IMPORTED_MODULE_28__curve_monotone__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"u\", function() { return __WEBPACK_IMPORTED_MODULE_28__curve_monotone__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__curve_natural__ = __webpack_require__(606);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"v\", function() { return __WEBPACK_IMPORTED_MODULE_29__curve_natural__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__curve_step__ = __webpack_require__(607);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"w\", function() { return __WEBPACK_IMPORTED_MODULE_30__curve_step__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"x\", function() { return __WEBPACK_IMPORTED_MODULE_30__curve_step__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"y\", function() { return __WEBPACK_IMPORTED_MODULE_30__curve_step__[\"c\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__stack__ = __webpack_require__(619);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return __WEBPACK_IMPORTED_MODULE_31__stack__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__offset_expand__ = __webpack_require__(612);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_32__offset_expand__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_33__offset_diverging__ = __webpack_require__(611);\n/* unused harmony reexport stackOffsetDiverging */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_34__offset_none__ = __webpack_require__(88);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_34__offset_none__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_35__offset_silhouette__ = __webpack_require__(613);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_35__offset_silhouette__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_36__offset_wiggle__ = __webpack_require__(614);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return __WEBPACK_IMPORTED_MODULE_36__offset_wiggle__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_37__order_appearance__ = __webpack_require__(328);\n/* unused harmony reexport stackOrderAppearance */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_38__order_ascending__ = __webpack_require__(185);\n/* unused harmony reexport stackOrderAscending */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_39__order_descending__ = __webpack_require__(615);\n/* unused harmony reexport stackOrderDescending */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_40__order_insideOut__ = __webpack_require__(616);\n/* unused harmony reexport stackOrderInsideOut */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_41__order_none__ = __webpack_require__(89);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return __WEBPACK_IMPORTED_MODULE_41__order_none__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_42__order_reverse__ = __webpack_require__(617);\n/* unused harmony reexport stackOrderReverse */\n\n\n\n\n // Note: radialArea is deprecated!\n // Note: radialLine is deprecated!\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 184 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_path__ = __webpack_require__(86);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constant__ = __webpack_require__(51);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__curve_linear__ = __webpack_require__(120);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__point__ = __webpack_require__(186);\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n var x = __WEBPACK_IMPORTED_MODULE_3__point__[\"a\" /* x */],\n y = __WEBPACK_IMPORTED_MODULE_3__point__[\"b\" /* y */],\n defined = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(true),\n context = null,\n curve = __WEBPACK_IMPORTED_MODULE_2__curve_linear__[\"a\" /* default */],\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_path__[\"a\" /* path */])());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n});\n\n\n/***/ }),\n/* 185 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = sum;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__none__ = __webpack_require__(89);\n\n\n/* harmony default export */ __webpack_exports__[\"b\"] = (function(series) {\n var sums = series.map(sum);\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__none__[\"a\" /* default */])(series).sort(function(a, b) { return sums[a] - sums[b]; });\n});\n\nfunction sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n\n\n/***/ }),\n/* 186 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = x;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = y;\nfunction x(p) {\n return p[0];\n}\n\nfunction y(p) {\n return p[1];\n}\n\n\n/***/ }),\n/* 187 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return timeFormat; });\n/* unused harmony export timeParse */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return utcFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return utcParse; });\n/* unused harmony export default */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__locale__ = __webpack_require__(339);\n\n\nvar locale;\nvar timeFormat;\nvar timeParse;\nvar utcFormat;\nvar utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nfunction defaultLocale(definition) {\n locale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__locale__[\"a\" /* default */])(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n\n\n/***/ }),\n/* 188 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(18);\n/* unused harmony reexport timeInterval */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__millisecond__ = __webpack_require__(624);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"v\", function() { return __WEBPACK_IMPORTED_MODULE_1__millisecond__[\"a\"]; });\n/* unused harmony reexport timeMilliseconds */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return __WEBPACK_IMPORTED_MODULE_1__millisecond__[\"a\"]; });\n/* unused harmony reexport utcMilliseconds */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__second__ = __webpack_require__(627);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"u\", function() { return __WEBPACK_IMPORTED_MODULE_2__second__[\"a\"]; });\n/* unused harmony reexport timeSeconds */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return __WEBPACK_IMPORTED_MODULE_2__second__[\"a\"]; });\n/* unused harmony reexport utcSeconds */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__minute__ = __webpack_require__(625);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"t\", function() { return __WEBPACK_IMPORTED_MODULE_3__minute__[\"a\"]; });\n/* unused harmony reexport timeMinutes */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__hour__ = __webpack_require__(623);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"s\", function() { return __WEBPACK_IMPORTED_MODULE_4__hour__[\"a\"]; });\n/* unused harmony reexport timeHours */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__day__ = __webpack_require__(622);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return __WEBPACK_IMPORTED_MODULE_5__day__[\"a\"]; });\n/* unused harmony reexport timeDays */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__week__ = __webpack_require__(634);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"r\", function() { return __WEBPACK_IMPORTED_MODULE_6__week__[\"a\"]; });\n/* unused harmony reexport timeWeeks */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"m\", function() { return __WEBPACK_IMPORTED_MODULE_6__week__[\"a\"]; });\n/* unused harmony reexport timeSundays */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return __WEBPACK_IMPORTED_MODULE_6__week__[\"b\"]; });\n/* unused harmony reexport timeMondays */\n/* unused harmony reexport timeTuesday */\n/* unused harmony reexport timeTuesdays */\n/* unused harmony reexport timeWednesday */\n/* unused harmony reexport timeWednesdays */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"n\", function() { return __WEBPACK_IMPORTED_MODULE_6__week__[\"c\"]; });\n/* unused harmony reexport timeThursdays */\n/* unused harmony reexport timeFriday */\n/* unused harmony reexport timeFridays */\n/* unused harmony reexport timeSaturday */\n/* unused harmony reexport timeSaturdays */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__month__ = __webpack_require__(626);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"q\", function() { return __WEBPACK_IMPORTED_MODULE_7__month__[\"a\"]; });\n/* unused harmony reexport timeMonths */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__year__ = __webpack_require__(635);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"l\", function() { return __WEBPACK_IMPORTED_MODULE_8__year__[\"a\"]; });\n/* unused harmony reexport timeYears */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utcMinute__ = __webpack_require__(630);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return __WEBPACK_IMPORTED_MODULE_9__utcMinute__[\"a\"]; });\n/* unused harmony reexport utcMinutes */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__utcHour__ = __webpack_require__(629);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return __WEBPACK_IMPORTED_MODULE_10__utcHour__[\"a\"]; });\n/* unused harmony reexport utcHours */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__utcDay__ = __webpack_require__(628);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return __WEBPACK_IMPORTED_MODULE_11__utcDay__[\"a\"]; });\n/* unused harmony reexport utcDays */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__utcWeek__ = __webpack_require__(632);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_12__utcWeek__[\"a\"]; });\n/* unused harmony reexport utcWeeks */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"o\", function() { return __WEBPACK_IMPORTED_MODULE_12__utcWeek__[\"a\"]; });\n/* unused harmony reexport utcSundays */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return __WEBPACK_IMPORTED_MODULE_12__utcWeek__[\"b\"]; });\n/* unused harmony reexport utcMondays */\n/* unused harmony reexport utcTuesday */\n/* unused harmony reexport utcTuesdays */\n/* unused harmony reexport utcWednesday */\n/* unused harmony reexport utcWednesdays */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"p\", function() { return __WEBPACK_IMPORTED_MODULE_12__utcWeek__[\"c\"]; });\n/* unused harmony reexport utcThursdays */\n/* unused harmony reexport utcFriday */\n/* unused harmony reexport utcFridays */\n/* unused harmony reexport utcSaturday */\n/* unused harmony reexport utcSaturdays */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__utcMonth__ = __webpack_require__(631);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_13__utcMonth__[\"a\"]; });\n/* unused harmony reexport utcMonths */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__utcYear__ = __webpack_require__(633);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_14__utcYear__[\"a\"]; });\n/* unused harmony reexport utcYears */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 189 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getNative = __webpack_require__(52),\n root = __webpack_require__(28);\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n\n\n/***/ }),\n/* 190 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar mapCacheClear = __webpack_require__(736),\n mapCacheDelete = __webpack_require__(737),\n mapCacheGet = __webpack_require__(738),\n mapCacheHas = __webpack_require__(739),\n mapCacheSet = __webpack_require__(740);\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n\n\n/***/ }),\n/* 191 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MapCache = __webpack_require__(190),\n setCacheAdd = __webpack_require__(747),\n setCacheHas = __webpack_require__(748);\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n\n\n/***/ }),\n/* 192 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ListCache = __webpack_require__(122),\n stackClear = __webpack_require__(750),\n stackDelete = __webpack_require__(751),\n stackGet = __webpack_require__(752),\n stackHas = __webpack_require__(753),\n stackSet = __webpack_require__(754);\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n\n\n/***/ }),\n/* 193 */\n/***/ (function(module, exports) {\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n\n\n/***/ }),\n/* 194 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(357);\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n\n\n/***/ }),\n/* 195 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayPush = __webpack_require__(193),\n isFlattenable = __webpack_require__(728);\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n\n\n/***/ }),\n/* 196 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsEqualDeep = __webpack_require__(668),\n isObjectLike = __webpack_require__(29);\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n\n\n/***/ }),\n/* 197 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar identity = __webpack_require__(53),\n overRest = __webpack_require__(366),\n setToString = __webpack_require__(367);\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\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 */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n\n\n/***/ }),\n/* 198 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n\n\n/***/ }),\n/* 199 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Uint8Array = __webpack_require__(343);\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n\n\n/***/ }),\n/* 200 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar overArg = __webpack_require__(365);\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n/***/ }),\n/* 201 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayFilter = __webpack_require__(345),\n stubArray = __webpack_require__(378);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n\n\n/***/ }),\n/* 202 */\n/***/ (function(module, exports) {\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\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 var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n\n\n/***/ }),\n/* 203 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isArray = __webpack_require__(12),\n isSymbol = __webpack_require__(70);\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\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 if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n\n\n/***/ }),\n/* 204 */\n/***/ (function(module, exports) {\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n\n\n/***/ }),\n/* 205 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(359);\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(149)(module)))\n\n/***/ }),\n/* 206 */\n/***/ (function(module, exports) {\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n\n\n/***/ }),\n/* 207 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayEach = __webpack_require__(344),\n baseEach = __webpack_require__(90),\n castFunction = __webpack_require__(694),\n isArray = __webpack_require__(12);\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n\n\n/***/ }),\n/* 208 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsArguments = __webpack_require__(667),\n isObjectLike = __webpack_require__(29);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n\n\n/***/ }),\n/* 209 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(28),\n stubFalse = __webpack_require__(779);\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(149)(module)))\n\n/***/ }),\n/* 210 */\n/***/ (function(module, exports) {\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n\n\n/***/ }),\n/* 211 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseFlatten = __webpack_require__(195),\n baseOrderBy = __webpack_require__(679),\n baseRest = __webpack_require__(197),\n isIterateeCall = __webpack_require__(92);\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n\n\n/***/ }),\n/* 212 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = __webpack_require__(33);\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(792)(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = __webpack_require__(791)();\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 213 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 214 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 215 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = __webpack_require__(33);\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(811)(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = __webpack_require__(810)();\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 216 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 217 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(__webpack_require__(95));\n\nvar _react = _interopRequireDefault(__webpack_require__(0));\n\nvar _reactDom = _interopRequireDefault(__webpack_require__(5));\n\nvar _reactLifecyclesCompat = __webpack_require__(383);\n\nvar _PropTypes = __webpack_require__(387);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 218 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(95));\n\nvar _react = _interopRequireDefault(__webpack_require__(0));\n\nvar _reactLifecyclesCompat = __webpack_require__(383);\n\nvar _ChildMapping = __webpack_require__(817);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 219 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 220 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n// helper to capitalize strings\n\nexports.default = function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n};\n\nmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 221 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (value) {\n if (Array.isArray(value)) value = value.join(',');\n\n return value.match(/-webkit-|-moz-|-ms-/) !== null;\n};\n\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 222 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cssRuleSetToString;\n\nvar _appendPxIfNeeded = __webpack_require__(394);\n\nvar _appendPxIfNeeded2 = _interopRequireDefault(_appendPxIfNeeded);\n\nvar _camelCasePropsToDashCase = __webpack_require__(849);\n\nvar _camelCasePropsToDashCase2 = _interopRequireDefault(_camelCasePropsToDashCase);\n\nvar _mapObject = __webpack_require__(399);\n\nvar _mapObject2 = _interopRequireDefault(_mapObject);\n\nvar _prefixer = __webpack_require__(223);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createMarkupForStyles(style) {\n return Object.keys(style).map(function (property) {\n return property + ': ' + style[property] + ';';\n }).join('\\n');\n}\n\nfunction cssRuleSetToString(selector, rules, userAgent) {\n if (!rules) {\n return '';\n }\n\n var rulesWithPx = (0, _mapObject2.default)(rules, function (value, key) {\n return (0, _appendPxIfNeeded2.default)(key, value);\n });\n var prefixedRules = (0, _prefixer.getPrefixedStyle)(rulesWithPx, userAgent);\n var cssPrefixedRules = (0, _camelCasePropsToDashCase2.default)(prefixedRules);\n var serializedRules = createMarkupForStyles(cssPrefixedRules);\n\n return selector + '{' + serializedRules + '}';\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 223 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global, process) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /**\n * Based on https://github.com/jsstyles/css-vendor, but without having to\n * convert between different cases all the time.\n *\n * \n */\n\nexports.getPrefixedKeyframes = getPrefixedKeyframes;\nexports.getPrefixedStyle = getPrefixedStyle;\n\nvar _inlineStylePrefixer = __webpack_require__(822);\n\nvar _inlineStylePrefixer2 = _interopRequireDefault(_inlineStylePrefixer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction transformValues(style) {\n return Object.keys(style).reduce(function (newStyle, key) {\n var value = style[key];\n if (Array.isArray(value)) {\n value = value.join(';' + key + ':');\n } else if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && typeof value.toString === 'function') {\n value = value.toString();\n }\n\n newStyle[key] = value;\n return newStyle;\n }, {});\n}\n\nvar _hasWarnedAboutUserAgent = false;\nvar _lastUserAgent = void 0;\nvar _cachedPrefixer = void 0;\n\nfunction getPrefixer(userAgent) {\n var actualUserAgent = userAgent || global && global.navigator && global.navigator.userAgent;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!actualUserAgent && !_hasWarnedAboutUserAgent) {\n /* eslint-disable no-console */\n console.warn('Radium: userAgent should be supplied for server-side rendering. See ' + 'https://github.com/FormidableLabs/radium/tree/master/docs/api#radium ' + 'for more information.');\n /* eslint-enable no-console */\n _hasWarnedAboutUserAgent = true;\n }\n }\n\n if (!_cachedPrefixer || actualUserAgent !== _lastUserAgent) {\n if (actualUserAgent === 'all') {\n _cachedPrefixer = {\n prefix: _inlineStylePrefixer2.default.prefixAll,\n prefixedKeyframes: 'keyframes'\n };\n } else {\n _cachedPrefixer = new _inlineStylePrefixer2.default({ userAgent: actualUserAgent });\n }\n _lastUserAgent = actualUserAgent;\n }\n return _cachedPrefixer;\n}\n\nfunction getPrefixedKeyframes(userAgent) {\n return getPrefixer(userAgent).prefixedKeyframes;\n}\n\n// Returns a new style object with vendor prefixes added to property names\n// and values.\nfunction getPrefixedStyle(style, userAgent) {\n var styleWithFallbacks = transformValues(style);\n var prefixer = getPrefixer(userAgent);\n var prefixedStyle = prefixer.prefix(styleWithFallbacks);\n return prefixedStyle;\n}\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(47), __webpack_require__(6)))\n\n/***/ }),\n/* 224 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar StyleKeeper = function () {\n function StyleKeeper(userAgent) {\n _classCallCheck(this, StyleKeeper);\n\n this._userAgent = userAgent;\n this._listeners = [];\n this._cssSet = {};\n }\n\n StyleKeeper.prototype.subscribe = function subscribe(listener) {\n var _this = this;\n\n if (this._listeners.indexOf(listener) === -1) {\n this._listeners.push(listener);\n }\n\n return {\n // Must be fat arrow to capture `this`\n remove: function remove() {\n var listenerIndex = _this._listeners.indexOf(listener);\n if (listenerIndex > -1) {\n _this._listeners.splice(listenerIndex, 1);\n }\n }\n };\n };\n\n StyleKeeper.prototype.addCSS = function addCSS(css) {\n var _this2 = this;\n\n if (!this._cssSet[css]) {\n this._cssSet[css] = true;\n this._emitChange();\n }\n\n return {\n // Must be fat arrow to capture `this`\n remove: function remove() {\n delete _this2._cssSet[css];\n _this2._emitChange();\n }\n };\n };\n\n StyleKeeper.prototype.getCSS = function getCSS() {\n return Object.keys(this._cssSet).join('\\n');\n };\n\n StyleKeeper.prototype._emitChange = function _emitChange() {\n this._listeners.forEach(function (listener) {\n return listener();\n });\n };\n\n return StyleKeeper;\n}();\n\nexports.default = StyleKeeper;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 225 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__ = __webpack_require__(22);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isNaN__ = __webpack_require__(131);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isNaN___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_isNaN__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_max__ = __webpack_require__(374);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_max___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_max__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_get__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_get___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_lodash_get__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lodash_isNil__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lodash_isNil___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_lodash_isNil__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_lodash_isArray__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_lodash_isArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_lodash_isArray__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_react_smooth__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__shape_Curve__ = __webpack_require__(74);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__shape_Dot__ = __webpack_require__(56);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__component_LabelList__ = __webpack_require__(38);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__util_ChartUtils__ = __webpack_require__(16);\n\n\n\n\n\n\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Area\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Area = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Area, _Component);\n\n function Area() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Area);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Area)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: true\n };\n _this.id = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_DataUtils__[\"d\" /* uniqueId */])('recharts-area-');\n\n _this.cachePrevData = function (points, baseLine) {\n _this.setState({\n prevPoints: points,\n prevBaseLine: baseLine\n });\n };\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(onAnimationEnd)) {\n onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n var onAnimationStart = _this.props.onAnimationStart;\n\n _this.setState({\n isAnimationFinished: false\n });\n\n if (__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(onAnimationStart)) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Area, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n points = _this$props.points,\n baseLine = _this$props.baseLine;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(points, baseLine);\n }\n }\n }, {\n key: \"renderDots\",\n value: function renderDots(needClip, clipPathId) {\n var _this2 = this;\n\n var isAnimationActive = this.props.isAnimationActive;\n var isAnimationFinished = this.state.isAnimationFinished;\n\n if (isAnimationActive && !isAnimationFinished) {\n return null;\n }\n\n var _this$props2 = this.props,\n dot = _this$props2.dot,\n points = _this$props2.points,\n dataKey = _this$props2.dataKey;\n var areaProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props);\n var customDotProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(dot);\n var dotEvents = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_ReactUtils__[\"b\" /* filterEventAttributes */])(dot);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, areaProps, customDotProps, dotEvents, {\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n value: entry.value,\n payload: entry.payload\n });\n\n return _this2.constructor.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_13__container_Layer__[\"a\" /* default */], _extends({\n className: \"recharts-area-dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderHorizontalRect\",\n value: function renderHorizontalRect(alpha) {\n var _this$props3 = this.props,\n baseLine = _this$props3.baseLine,\n points = _this$props3.points,\n strokeWidth = _this$props3.strokeWidth;\n var startX = points[0].x;\n var endX = points[points.length - 1].x;\n var width = alpha * Math.abs(startX - endX);\n\n var maxY = __WEBPACK_IMPORTED_MODULE_2_lodash_max___default()(points.map(function (entry) {\n return entry.y || 0;\n }));\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_DataUtils__[\"a\" /* isNumber */])(baseLine)) {\n maxY = Math.max(baseLine, maxY);\n } else if (baseLine && __WEBPACK_IMPORTED_MODULE_6_lodash_isArray___default()(baseLine) && baseLine.length) {\n maxY = Math.max(__WEBPACK_IMPORTED_MODULE_2_lodash_max___default()(baseLine.map(function (entry) {\n return entry.y || 0;\n })), maxY);\n }\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_DataUtils__[\"a\" /* isNumber */])(maxY)) {\n return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(\"rect\", {\n x: startX < endX ? startX : startX - width,\n y: 0,\n width: width,\n height: parseInt(maxY + (strokeWidth || 1), 10)\n });\n }\n\n return null;\n }\n }, {\n key: \"renderVerticalRect\",\n value: function renderVerticalRect(alpha) {\n var _this$props4 = this.props,\n baseLine = _this$props4.baseLine,\n points = _this$props4.points,\n strokeWidth = _this$props4.strokeWidth;\n var startY = points[0].y;\n var endY = points[points.length - 1].y;\n var height = alpha * Math.abs(startY - endY);\n\n var maxX = __WEBPACK_IMPORTED_MODULE_2_lodash_max___default()(points.map(function (entry) {\n return entry.x || 0;\n }));\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_DataUtils__[\"a\" /* isNumber */])(baseLine)) {\n maxX = Math.max(baseLine, maxX);\n } else if (baseLine && __WEBPACK_IMPORTED_MODULE_6_lodash_isArray___default()(baseLine) && baseLine.length) {\n maxX = Math.max(__WEBPACK_IMPORTED_MODULE_2_lodash_max___default()(baseLine.map(function (entry) {\n return entry.x || 0;\n })), maxX);\n }\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_DataUtils__[\"a\" /* isNumber */])(maxX)) {\n return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(\"rect\", {\n x: 0,\n y: startY < endY ? startY : startY - height,\n width: maxX + (strokeWidth || 1),\n height: parseInt(height, 10)\n });\n }\n\n return null;\n }\n }, {\n key: \"renderClipRect\",\n value: function renderClipRect(alpha) {\n var layout = this.props.layout;\n\n if (layout === 'vertical') {\n return this.renderVerticalRect(alpha);\n }\n\n return this.renderHorizontalRect(alpha);\n }\n }, {\n key: \"renderAreaStatically\",\n value: function renderAreaStatically(points, baseLine, needClip, clipPathId) {\n var _this$props5 = this.props,\n layout = _this$props5.layout,\n type = _this$props5.type,\n stroke = _this$props5.stroke,\n connectNulls = _this$props5.connectNulls,\n isRange = _this$props5.isRange;\n return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_13__container_Layer__[\"a\" /* default */], {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__shape_Curve__[\"a\" /* default */], _extends({}, this.props, {\n points: points,\n baseLine: baseLine,\n stroke: \"none\",\n className: \"recharts-area-area\"\n })), stroke !== 'none' && __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__shape_Curve__[\"a\" /* default */], _extends({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: points\n })), stroke !== 'none' && isRange && __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__shape_Curve__[\"a\" /* default */], _extends({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: baseLine\n })));\n }\n }, {\n key: \"renderAreaWithAnimation\",\n value: function renderAreaWithAnimation(needClip, clipPathId) {\n var _this3 = this;\n\n var _this$props6 = this.props,\n points = _this$props6.points,\n baseLine = _this$props6.baseLine,\n isAnimationActive = _this$props6.isAnimationActive,\n animationBegin = _this$props6.animationBegin,\n animationDuration = _this$props6.animationDuration,\n animationEasing = _this$props6.animationEasing,\n animationId = _this$props6.animationId;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n prevBaseLine = _this$state.prevBaseLine; // const clipPathId = _.isNil(id) ? this.id : id;\n\n return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10_react_smooth__[\"a\" /* default */], {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"area-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length; // update animtaion\n\n var stepPoints = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.x, entry.x);\n var interpolatorY = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.y, entry.y);\n return _objectSpread({}, entry, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n return entry;\n });\n var stepBaseLine;\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_DataUtils__[\"a\" /* isNumber */])(baseLine)) {\n var interpolator = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_DataUtils__[\"i\" /* interpolateNumber */])(prevBaseLine, baseLine);\n stepBaseLine = interpolator(t);\n } else if (__WEBPACK_IMPORTED_MODULE_5_lodash_isNil___default()(baseLine) || __WEBPACK_IMPORTED_MODULE_1_lodash_isNaN___default()(baseLine)) {\n var _interpolator = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_DataUtils__[\"i\" /* interpolateNumber */])(prevBaseLine, 0);\n\n stepBaseLine = _interpolator(t);\n } else {\n stepBaseLine = baseLine.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\n if (prevBaseLine[prevPointIndex]) {\n var prev = prevBaseLine[prevPointIndex];\n var interpolatorX = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.x, entry.x);\n var interpolatorY = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.y, entry.y);\n return _objectSpread({}, entry, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n return entry;\n });\n }\n\n return _this3.renderAreaStatically(stepPoints, stepBaseLine, needClip, clipPathId);\n }\n\n return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_13__container_Layer__[\"a\" /* default */], null, __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(\"defs\", null, __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(\"clipPath\", {\n id: \"animationClipPath-\".concat(clipPathId)\n }, _this3.renderClipRect(t))), __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_13__container_Layer__[\"a\" /* default */], {\n clipPath: \"url(#animationClipPath-\".concat(clipPathId, \")\")\n }, _this3.renderAreaStatically(points, baseLine, needClip, clipPathId)));\n });\n }\n }, {\n key: \"renderArea\",\n value: function renderArea(needClip, clipPathId) {\n var _this$props7 = this.props,\n points = _this$props7.points,\n baseLine = _this$props7.baseLine,\n isAnimationActive = _this$props7.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n prevBaseLine = _this$state2.prevBaseLine,\n totalLength = _this$state2.totalLength;\n\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default()(prevPoints, points) || !__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default()(prevBaseLine, baseLine))) {\n return this.renderAreaWithAnimation(needClip, clipPathId);\n }\n\n return this.renderAreaStatically(points, baseLine, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props8 = this.props,\n hide = _this$props8.hide,\n dot = _this$props8.dot,\n points = _this$props8.points,\n className = _this$props8.className,\n top = _this$props8.top,\n left = _this$props8.left,\n xAxis = _this$props8.xAxis,\n yAxis = _this$props8.yAxis,\n width = _this$props8.width,\n height = _this$props8.height,\n isAnimationActive = _this$props8.isAnimationActive,\n id = _this$props8.id;\n\n if (hide || !points || !points.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = __WEBPACK_IMPORTED_MODULE_9_classnames___default()('recharts-area', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = __WEBPACK_IMPORTED_MODULE_5_lodash_isNil___default()(id) ? this.id : id;\n return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_13__container_Layer__[\"a\" /* default */], {\n className: layerClass\n }, needClip ? __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(\"defs\", null, __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: parseInt(height, 10)\n }))) : null, !hasSinglePoint ? this.renderArea(needClip, clipPathId) : null, (dot || hasSinglePoint) && this.renderDots(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && __WEBPACK_IMPORTED_MODULE_14__component_LabelList__[\"a\" /* default */].renderCallByParent(this.props, points));\n }\n }]);\n\n return Area;\n}(__WEBPACK_IMPORTED_MODULE_7_react__[\"Component\"]), _class2.displayName = 'Area', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_16__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], __WEBPACK_IMPORTED_MODULE_16__util_ReactUtils__[\"d\" /* EVENT_ATTRIBUTES */], {\n className: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string,\n dataKey: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func]).isRequired,\n type: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOf(['basis', 'basisClosed', 'basisOpen', 'linear', 'linearClosed', 'natural', 'monotoneX', 'monotoneY', 'monotone', 'step', 'stepBefore', 'stepAfter']), __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func]),\n unit: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number]),\n name: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number]),\n yAxisId: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number]),\n xAxisId: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number]),\n yAxis: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.object,\n xAxis: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.object,\n stackId: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string]),\n legendType: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_16__util_ReactUtils__[\"o\" /* LEGEND_TYPES */]),\n tooltipType: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_16__util_ReactUtils__[\"p\" /* TOOLTIP_TYPES */]),\n connectNulls: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool,\n activeDot: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool]),\n // dot configuration\n dot: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool]),\n label: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool]),\n hide: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool,\n // have curve configuration\n layout: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOf(['horizontal', 'vertical']),\n baseLine: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.array]),\n isRange: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool,\n points: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.shape({\n x: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number,\n value: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.array])\n })),\n onAnimationStart: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func,\n onAnimationEnd: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func,\n animationId: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number,\n isAnimationActive: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool,\n animationBegin: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number,\n animationDuration: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number,\n animationEasing: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n id: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string\n}), _class2.defaultProps = {\n stroke: '#3182bd',\n fill: '#3182bd',\n fillOpacity: 0.6,\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'line',\n connectNulls: false,\n // points of area\n points: [],\n dot: false,\n activeDot: true,\n hide: false,\n isAnimationActive: !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_ReactUtils__[\"m\" /* isSsr */])(),\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n}, _class2.getBaseValue = function (props, xAxis, yAxis) {\n var layout = props.layout,\n baseValue = props.baseValue;\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_DataUtils__[\"a\" /* isNumber */])(baseValue)) {\n return baseValue;\n }\n\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var max = Math.max(domain[0], domain[1]);\n var min = Math.min(domain[0], domain[1]);\n\n if (baseValue === 'dataMin') {\n return min;\n }\n\n if (baseValue === 'dataMax') {\n return max;\n }\n\n return max < 0 ? max : Math.max(Math.min(domain[0], domain[1]), 0);\n }\n\n if (baseValue === 'dataMin') {\n return domain[0];\n }\n\n if (baseValue === 'dataMax') {\n return domain[1];\n }\n\n return domain[0];\n}, _class2.getComposedData = function (_ref2) {\n var props = _ref2.props,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n bandSize = _ref2.bandSize,\n dataKey = _ref2.dataKey,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var layout = props.layout;\n var hasStack = stackedData && stackedData.length;\n var baseValue = Area.getBaseValue(props, xAxis, yAxis);\n var isRange = false;\n var points = displayedData.map(function (entry, index) {\n var value;\n\n if (hasStack) {\n value = stackedData[dataStartIndex + index];\n } else {\n value = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_18__util_ChartUtils__[\"o\" /* getValueByDataKey */])(entry, dataKey);\n\n if (!__WEBPACK_IMPORTED_MODULE_6_lodash_isArray___default()(value)) {\n value = [baseValue, value];\n } else {\n isRange = true;\n }\n }\n\n if (layout === 'horizontal') {\n return {\n x: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_18__util_ChartUtils__[\"y\" /* getCateCoordinateOfLine */])({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: __WEBPACK_IMPORTED_MODULE_5_lodash_isNil___default()(value[1]) ? null : yAxis.scale(value[1]),\n value: value,\n payload: entry\n };\n }\n\n return {\n x: __WEBPACK_IMPORTED_MODULE_5_lodash_isNil___default()(value[1]) ? null : xAxis.scale(value[1]),\n y: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_18__util_ChartUtils__[\"y\" /* getCateCoordinateOfLine */])({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n var baseLine;\n\n if (hasStack || isRange) {\n baseLine = points.map(function (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.x,\n y: !__WEBPACK_IMPORTED_MODULE_5_lodash_isNil___default()(__WEBPACK_IMPORTED_MODULE_4_lodash_get___default()(entry, 'value[0]')) ? yAxis.scale(__WEBPACK_IMPORTED_MODULE_4_lodash_get___default()(entry, 'value[0]')) : null\n };\n }\n\n return {\n x: !__WEBPACK_IMPORTED_MODULE_5_lodash_isNil___default()(__WEBPACK_IMPORTED_MODULE_4_lodash_get___default()(entry, 'value[0]')) ? xAxis.scale(__WEBPACK_IMPORTED_MODULE_4_lodash_get___default()(entry, 'value[0]')) : null,\n y: entry.y\n };\n });\n } else if (layout === 'horizontal') {\n baseLine = yAxis.scale(baseValue);\n } else {\n baseLine = xAxis.scale(baseValue);\n }\n\n return _objectSpread({\n points: points,\n baseLine: baseLine,\n layout: layout,\n isRange: isRange\n }, offset);\n}, _class2.renderDotItem = function (option, props) {\n var dotItem;\n\n if (__WEBPACK_IMPORTED_MODULE_7_react___default.a.isValidElement(option)) {\n dotItem = __WEBPACK_IMPORTED_MODULE_7_react___default.a.cloneElement(option, props);\n } else if (__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(option)) {\n dotItem = option(props);\n } else {\n dotItem = __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_12__shape_Dot__[\"a\" /* default */], _extends({}, props, {\n className: \"recharts-area-dot\"\n }));\n }\n\n return dotItem;\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Area);\n\n/***/ }),\n/* 226 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isNil__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isNil___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isNil__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isEqual__ = __webpack_require__(22);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isEqual___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_isEqual__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_isArray__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_isArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_lodash_isArray__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_smooth__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__shape_Rectangle__ = __webpack_require__(75);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__ErrorBar__ = __webpack_require__(96);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__component_Cell__ = __webpack_require__(73);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__component_LabelList__ = __webpack_require__(38);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__util_ChartUtils__ = __webpack_require__(16);\n\n\n\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Render a group of bar\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Bar = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Bar, _Component);\n\n function Bar() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Bar);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Bar)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: false\n };\n _this.id = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_DataUtils__[\"d\" /* uniqueId */])('recharts-bar-');\n\n _this.cachePrevData = function (data) {\n _this.setState({\n prevData: data\n });\n };\n\n _this.handleAnimationEnd = function () {\n _this.setState({\n isAnimationFinished: true\n });\n\n _this.props.onAnimationEnd();\n };\n\n _this.handleAnimationStart = function () {\n _this.setState({\n isAnimationFinished: false\n });\n\n _this.props.onAnimationStart();\n };\n\n return _this;\n }\n\n _createClass(Bar, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n data = _this$props.data;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(data);\n }\n }\n }, {\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n\n var shape = this.props.shape;\n var baseProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props);\n return data && data.map(function (entry, i) {\n var props = _objectSpread({}, baseProps, entry, {\n index: i\n });\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__container_Layer__[\"a\" /* default */], _extends({\n className: \"recharts-bar-rectangle\"\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"n\" /* filterEventsOfChild */])(_this2.props, entry, i), {\n key: \"rectangle-\".concat(i)\n }), _this2.constructor.renderRectangle(shape, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n\n var _this$props2 = this.props,\n data = _this$props2.data,\n layout = _this$props2.layout,\n isAnimationActive = _this$props2.isAnimationActive,\n animationBegin = _this$props2.animationBegin,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n animationId = _this$props2.animationId;\n var prevData = this.state.prevData;\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7_react_smooth__[\"a\" /* default */], {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"bar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n\n if (prev) {\n var interpolatorX = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.x, entry.x);\n var interpolatorY = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.y, entry.y);\n var interpolatorWidth = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.width, entry.width);\n var interpolatorHeight = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.height, entry.height);\n return _objectSpread({}, entry, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n\n if (layout === 'horizontal') {\n var _interpolatorHeight = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_DataUtils__[\"i\" /* interpolateNumber */])(0, entry.height);\n\n var h = _interpolatorHeight(t);\n\n return _objectSpread({}, entry, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n\n var interpolator = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_DataUtils__[\"i\" /* interpolateNumber */])(0, entry.width);\n var w = interpolator(t);\n return _objectSpread({}, entry, {\n width: w\n });\n });\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__container_Layer__[\"a\" /* default */], null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props3 = this.props,\n data = _this$props3.data,\n isAnimationActive = _this$props3.isAnimationActive;\n var prevData = this.state.prevData;\n\n if (isAnimationActive && data && data.length && (!prevData || !__WEBPACK_IMPORTED_MODULE_1_lodash_isEqual___default()(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n\n var data = this.props.data;\n var backgroundProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props.background);\n return data.map(function (entry, i) {\n // eslint-disable-next-line no-unused-vars\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, [\"value\", \"background\"]);\n\n if (!background) {\n return null;\n }\n\n var props = _objectSpread({}, rest, {\n fill: '#eee'\n }, background, backgroundProps, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"n\" /* filterEventsOfChild */])(_this4.props, entry, i), {\n index: i,\n key: \"background-bar-\".concat(i),\n className: 'recharts-bar-background-rectangle'\n });\n\n return _this4.constructor.renderRectangle(_this4.props.background, props);\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar() {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props4 = this.props,\n data = _this$props4.data,\n xAxis = _this$props4.xAxis,\n yAxis = _this$props4.yAxis,\n layout = _this$props4.layout,\n children = _this$props4.children;\n var errorBarItems = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"h\" /* findAllByType */])(children, __WEBPACK_IMPORTED_MODULE_10__ErrorBar__[\"a\" /* default */]);\n\n if (!errorBarItems) {\n return null;\n }\n\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n\n function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_ChartUtils__[\"o\" /* getValueByDataKey */])(dataPoint, dataKey)\n };\n }\n\n return errorBarItems.map(function (item, i) {\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.cloneElement(item, {\n key: \"error-bar-\".concat(i),\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props5 = this.props,\n hide = _this$props5.hide,\n data = _this$props5.data,\n className = _this$props5.className,\n xAxis = _this$props5.xAxis,\n yAxis = _this$props5.yAxis,\n left = _this$props5.left,\n top = _this$props5.top,\n width = _this$props5.width,\n height = _this$props5.height,\n isAnimationActive = _this$props5.isAnimationActive,\n background = _this$props5.background,\n id = _this$props5.id;\n\n if (hide || !data || !data.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = __WEBPACK_IMPORTED_MODULE_6_classnames___default()('recharts-bar', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = __WEBPACK_IMPORTED_MODULE_0_lodash_isNil___default()(id) ? this.id : id;\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__container_Layer__[\"a\" /* default */], {\n className: layerClass\n }, needClip ? __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\"defs\", null, __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: height\n }))) : null, __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__container_Layer__[\"a\" /* default */], {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(), (!isAnimationActive || isAnimationFinished) && __WEBPACK_IMPORTED_MODULE_12__component_LabelList__[\"a\" /* default */].renderCallByParent(this.props, data));\n }\n }], [{\n key: \"renderRectangle\",\n value: function renderRectangle(option, props) {\n var rectangle;\n\n if (__WEBPACK_IMPORTED_MODULE_4_react___default.a.isValidElement(option)) {\n rectangle = __WEBPACK_IMPORTED_MODULE_4_react___default.a.cloneElement(option, props);\n } else if (__WEBPACK_IMPORTED_MODULE_2_lodash_isFunction___default()(option)) {\n rectangle = option(props);\n } else {\n rectangle = __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__shape_Rectangle__[\"a\" /* default */], props);\n }\n\n return rectangle;\n }\n }]);\n\n return Bar;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]), _class2.displayName = 'Bar', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], __WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"d\" /* EVENT_ATTRIBUTES */], {\n className: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n layout: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOf(['vertical', 'horizontal']),\n xAxisId: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string]),\n yAxisId: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string]),\n yAxis: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object,\n xAxis: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object,\n stackId: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string]),\n barSize: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n unit: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number]),\n name: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number]),\n dataKey: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func]).isRequired,\n legendType: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"o\" /* LEGEND_TYPES */]),\n tooltipType: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"p\" /* TOOLTIP_TYPES */]),\n minPointSize: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n maxBarSize: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n hide: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n shape: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.element]),\n data: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.shape({\n x: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n width: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n radius: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.array]),\n value: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.array])\n })),\n onAnimationStart: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func,\n onAnimationEnd: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func,\n animationId: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n isAnimationActive: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n animationBegin: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n animationDuration: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n animationEasing: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n id: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string\n}), _class2.defaultProps = {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n // data of bar\n data: [],\n layout: 'vertical',\n isAnimationActive: !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"m\" /* isSsr */])(),\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease',\n onAnimationStart: function onAnimationStart() {},\n onAnimationEnd: function onAnimationEnd() {}\n}, _class2.getComposedData = function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_ChartUtils__[\"z\" /* findPositionOfBar */])(barPosition, item);\n\n if (!pos) {\n return [];\n }\n\n var layout = props.layout;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n children = _item$props.children,\n minPointSize = _item$props.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_ChartUtils__[\"A\" /* getBaseValueOfBar */])({\n props: props,\n numericAxis: numericAxis\n });\n var cells = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"h\" /* findAllByType */])(children, __WEBPACK_IMPORTED_MODULE_11__component_Cell__[\"a\" /* default */]);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n\n if (stackedData) {\n value = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_ChartUtils__[\"B\" /* truncateByDomain */])(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_ChartUtils__[\"o\" /* getValueByDataKey */])(entry, dataKey);\n\n if (!__WEBPACK_IMPORTED_MODULE_3_lodash_isArray___default()(value)) {\n value = [baseValue, value];\n }\n }\n\n if (layout === 'horizontal') {\n x = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_ChartUtils__[\"C\" /* getCateCoordinateOfBar */])({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = yAxis.scale(value[1]);\n width = pos.size;\n height = yAxis.scale(value[0]) - yAxis.scale(value[1]);\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_DataUtils__[\"g\" /* mathSign */])(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n x = xAxis.scale(value[0]);\n y = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_ChartUtils__[\"C\" /* getCateCoordinateOfBar */])({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = xAxis.scale(value[1]) - xAxis.scale(value[0]);\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_DataUtils__[\"g\" /* mathSign */])(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n\n width += _delta;\n }\n }\n\n return _objectSpread({}, entry, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props);\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Bar);\n\n/***/ }),\n/* 227 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__ = __webpack_require__(22);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isNil__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_isNil__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_smooth__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__shape_Curve__ = __webpack_require__(74);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__shape_Dot__ = __webpack_require__(56);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__component_LabelList__ = __webpack_require__(38);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__ErrorBar__ = __webpack_require__(96);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__util_ChartUtils__ = __webpack_require__(16);\n\n\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Line\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Line = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Line, _Component);\n\n function Line() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Line);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Line)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: true,\n totalLength: 0\n };\n _this.id = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__util_DataUtils__[\"d\" /* uniqueId */])('recharts-line-');\n\n _this.cachePrevData = function (points) {\n _this.setState({\n prevPoints: points\n });\n };\n\n _this.pathRef = function (node) {\n _this.mainCurve = node;\n };\n\n _this.handleAnimationEnd = function () {\n _this.setState({\n isAnimationFinished: true\n });\n\n _this.props.onAnimationEnd();\n };\n\n _this.handleAnimationStart = function () {\n _this.setState({\n isAnimationFinished: false\n });\n\n _this.props.onAnimationStart();\n };\n\n return _this;\n }\n\n _createClass(Line, [{\n key: \"componentDidMount\",\n\n /* eslint-disable react/no-did-mount-set-state */\n value: function componentDidMount() {\n if (!this.props.isAnimationActive) {\n return;\n }\n\n var totalLength = this.getTotalLength();\n this.setState({\n totalLength: totalLength\n });\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n points = _this$props.points;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(points);\n }\n }\n }, {\n key: \"getTotalLength\",\n value: function getTotalLength() {\n var curveDom = this.mainCurve;\n\n try {\n return curveDom && curveDom.getTotalLength && curveDom.getTotalLength() || 0;\n } catch (err) {\n return 0;\n }\n }\n }, {\n key: \"getStrokeDasharray\",\n value: function getStrokeDasharray(length, totalLength, lines) {\n var lineLength = lines.reduce(function (pre, next) {\n return pre + next;\n });\n var count = parseInt(length / lineLength, 10);\n var remainLength = length % lineLength;\n var restLength = totalLength - length;\n var remainLines = [];\n\n for (var i = 0, sum = 0;; sum += lines[i], ++i) {\n if (sum + lines[i] > remainLength) {\n remainLines = _toConsumableArray(lines.slice(0, i)).concat([remainLength - sum]);\n break;\n }\n }\n\n var emptyLines = remainLines.length % 2 === 0 ? [0, restLength] : [restLength];\n return _toConsumableArray(this.constructor.repeat(lines, count)).concat(_toConsumableArray(remainLines), emptyLines).map(function (line) {\n return \"\".concat(line, \"px\");\n }).join(', ');\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar() {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props2 = this.props,\n points = _this$props2.points,\n xAxis = _this$props2.xAxis,\n yAxis = _this$props2.yAxis,\n layout = _this$props2.layout,\n children = _this$props2.children;\n var errorBarItems = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_ReactUtils__[\"h\" /* findAllByType */])(children, __WEBPACK_IMPORTED_MODULE_12__ErrorBar__[\"a\" /* default */]);\n\n if (!errorBarItems) {\n return null;\n }\n\n function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util_ChartUtils__[\"o\" /* getValueByDataKey */])(dataPoint.payload, dataKey)\n };\n }\n\n return errorBarItems.map(function (item, i) {\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.cloneElement(item, {\n key: i,\n data: points,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n dataPointFormatter: dataPointFormatter\n });\n });\n }\n }, {\n key: \"renderDots\",\n value: function renderDots(needClip, clipPathId) {\n var _this2 = this;\n\n var isAnimationActive = this.props.isAnimationActive;\n\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props3 = this.props,\n dot = _this$props3.dot,\n points = _this$props3.points,\n dataKey = _this$props3.dataKey;\n var lineProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props);\n var customDotProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(dot);\n var dotEvents = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_ReactUtils__[\"b\" /* filterEventAttributes */])(dot);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, lineProps, customDotProps, dotEvents, {\n value: entry.value,\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n payload: entry.payload\n });\n\n return _this2.constructor.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__container_Layer__[\"a\" /* default */], _extends({\n className: \"recharts-line-dots\",\n key: \"dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderCurveStatically\",\n value: function renderCurveStatically(points, needClip, clipPathId, props) {\n var _this$props4 = this.props,\n type = _this$props4.type,\n layout = _this$props4.layout,\n connectNulls = _this$props4.connectNulls;\n\n var curveProps = _objectSpread({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_ReactUtils__[\"b\" /* filterEventAttributes */])(this.props), {\n fill: 'none',\n className: 'recharts-line-curve',\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null,\n points: points\n }, props, {\n type: type,\n layout: layout,\n connectNulls: connectNulls\n });\n\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__shape_Curve__[\"a\" /* default */], _extends({}, curveProps, {\n pathRef: this.pathRef\n }));\n }\n }, {\n key: \"renderCurveWithAnimation\",\n value: function renderCurveWithAnimation(needClip, clipPathId) {\n var _this3 = this;\n\n var _this$props5 = this.props,\n points = _this$props5.points,\n strokeDasharray = _this$props5.strokeDasharray,\n isAnimationActive = _this$props5.isAnimationActive,\n animationBegin = _this$props5.animationBegin,\n animationDuration = _this$props5.animationDuration,\n animationEasing = _this$props5.animationEasing,\n animationId = _this$props5.animationId,\n width = _this$props5.width,\n height = _this$props5.height;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n totalLength = _this$state.totalLength;\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5_react_smooth__[\"a\" /* default */], {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"line-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length;\n var stepData = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.x, entry.x);\n var interpolatorY = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.y, entry.y);\n return _objectSpread({}, entry, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n } // magic number of faking previous x and y location\n\n\n if (_this3.animateNewValues) {\n var _interpolatorX = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__util_DataUtils__[\"i\" /* interpolateNumber */])(width * 2, entry.x);\n\n var _interpolatorY = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__util_DataUtils__[\"i\" /* interpolateNumber */])(height / 2, entry.y);\n\n return _objectSpread({}, entry, {\n x: _interpolatorX(t),\n y: _interpolatorY(t)\n });\n }\n\n return _objectSpread({}, entry, {\n x: entry.x,\n y: entry.y\n });\n });\n return _this3.renderCurveStatically(stepData, needClip, clipPathId);\n }\n\n var interpolator = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__util_DataUtils__[\"i\" /* interpolateNumber */])(0, totalLength);\n var curLength = interpolator(t);\n var currentStrokeDasharray;\n\n if (strokeDasharray) {\n var lines = strokeDasharray.split(/[,\\s]+/gim).map(function (num) {\n return parseFloat(num);\n });\n currentStrokeDasharray = _this3.getStrokeDasharray(curLength, totalLength, lines);\n } else {\n currentStrokeDasharray = \"\".concat(curLength, \"px \").concat(totalLength - curLength, \"px\");\n }\n\n return _this3.renderCurveStatically(points, needClip, clipPathId, {\n strokeDasharray: currentStrokeDasharray\n });\n });\n }\n }, {\n key: \"renderCurve\",\n value: function renderCurve(needClip, clipPathId) {\n var _this$props6 = this.props,\n points = _this$props6.points,\n isAnimationActive = _this$props6.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n totalLength = _this$state2.totalLength;\n\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default()(prevPoints, points))) {\n return this.renderCurveWithAnimation(needClip, clipPathId);\n }\n\n return this.renderCurveStatically(points, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n hide = _this$props7.hide,\n dot = _this$props7.dot,\n points = _this$props7.points,\n className = _this$props7.className,\n xAxis = _this$props7.xAxis,\n yAxis = _this$props7.yAxis,\n top = _this$props7.top,\n left = _this$props7.left,\n width = _this$props7.width,\n height = _this$props7.height,\n isAnimationActive = _this$props7.isAnimationActive,\n id = _this$props7.id;\n\n if (hide || !points || !points.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = __WEBPACK_IMPORTED_MODULE_6_classnames___default()('recharts-line', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = __WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default()(id) ? this.id : id;\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__container_Layer__[\"a\" /* default */], {\n className: layerClass\n }, needClip ? __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(\"defs\", null, __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: height\n }))) : null, !hasSinglePoint && this.renderCurve(needClip, clipPathId), this.renderErrorBar(), (hasSinglePoint || dot) && this.renderDots(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && __WEBPACK_IMPORTED_MODULE_11__component_LabelList__[\"a\" /* default */].renderCallByParent(this.props, points));\n }\n }], [{\n key: \"repeat\",\n value: function repeat(lines, count) {\n var linesUnit = lines.length % 2 !== 0 ? _toConsumableArray(lines).concat([0]) : lines;\n var result = [];\n\n for (var i = 0; i < count; ++i) {\n result = _toConsumableArray(result).concat(_toConsumableArray(linesUnit));\n }\n\n return result;\n }\n }, {\n key: \"renderDotItem\",\n value: function renderDotItem(option, props) {\n var dotItem;\n\n if (__WEBPACK_IMPORTED_MODULE_3_react___default.a.isValidElement(option)) {\n dotItem = __WEBPACK_IMPORTED_MODULE_3_react___default.a.cloneElement(option, props);\n } else if (__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default()(option)) {\n dotItem = option(props);\n } else {\n var className = __WEBPACK_IMPORTED_MODULE_6_classnames___default()('recharts-line-dot', option ? option.className : '');\n dotItem = __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__shape_Dot__[\"a\" /* default */], _extends({}, props, {\n className: className\n }));\n }\n\n return dotItem;\n }\n }]);\n\n return Line;\n}(__WEBPACK_IMPORTED_MODULE_3_react__[\"Component\"]), _class2.displayName = 'Line', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_14__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], __WEBPACK_IMPORTED_MODULE_14__util_ReactUtils__[\"d\" /* EVENT_ATTRIBUTES */], {\n className: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string,\n type: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(['basis', 'basisClosed', 'basisOpen', 'linear', 'linearClosed', 'natural', 'monotoneX', 'monotoneY', 'monotone', 'step', 'stepBefore', 'stepAfter']), __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func]),\n unit: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number]),\n name: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number]),\n yAxisId: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number]),\n xAxisId: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number]),\n yAxis: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object,\n xAxis: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object,\n legendType: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_14__util_ReactUtils__[\"o\" /* LEGEND_TYPES */]),\n tooltipType: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_14__util_ReactUtils__[\"p\" /* TOOLTIP_TYPES */]),\n layout: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(['horizontal', 'vertical']),\n connectNulls: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n hide: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n // whether have dot in line\n activeDot: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool]),\n dot: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool]),\n top: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n left: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n width: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n points: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.shape({\n x: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n value: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.value\n })),\n onAnimationStart: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func,\n onAnimationEnd: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func,\n isAnimationActive: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n animateNewValues: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n animationBegin: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n animationDuration: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n animationEasing: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n animationId: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n id: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string\n}), _class2.defaultProps = {\n xAxisId: 0,\n yAxisId: 0,\n connectNulls: false,\n activeDot: true,\n dot: true,\n legendType: 'line',\n stroke: '#3182bd',\n strokeWidth: 1,\n fill: '#fff',\n points: [],\n isAnimationActive: !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_ReactUtils__[\"m\" /* isSsr */])(),\n animateNewValues: true,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n hide: false,\n onAnimationStart: function onAnimationStart() {},\n onAnimationEnd: function onAnimationEnd() {}\n}, _class2.getComposedData = function (_ref2) {\n var props = _ref2.props,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n dataKey = _ref2.dataKey,\n bandSize = _ref2.bandSize,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var layout = props.layout;\n var points = displayedData.map(function (entry, index) {\n var value = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util_ChartUtils__[\"o\" /* getValueByDataKey */])(entry, dataKey);\n\n if (layout === 'horizontal') {\n return {\n x: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util_ChartUtils__[\"y\" /* getCateCoordinateOfLine */])({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: __WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default()(value) ? null : yAxis.scale(value),\n value: value,\n payload: entry\n };\n }\n\n return {\n x: __WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default()(value) ? null : xAxis.scale(value),\n y: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util_ChartUtils__[\"y\" /* getCateCoordinateOfLine */])({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n return _objectSpread({\n points: points,\n layout: layout\n }, offset);\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Line);\n\n/***/ }),\n/* 228 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__ = __webpack_require__(22);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isNil__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_isNil__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_smooth__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__component_LabelList__ = __webpack_require__(38);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__ZAxis__ = __webpack_require__(139);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__shape_Curve__ = __webpack_require__(74);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__shape_Symbols__ = __webpack_require__(230);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__ErrorBar__ = __webpack_require__(96);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__component_Cell__ = __webpack_require__(73);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__util_ChartUtils__ = __webpack_require__(16);\n\n\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Render a group of scatters\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Scatter = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Scatter, _Component);\n\n function Scatter() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Scatter);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Scatter)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: false\n };\n\n _this.cachePrevPoints = function (points) {\n _this.setState({\n prevPoints: points\n });\n };\n\n _this.handleAnimationEnd = function () {\n _this.setState({\n isAnimationFinished: true\n });\n };\n\n _this.handleAnimationStart = function () {\n _this.setState({\n isAnimationFinished: false\n });\n };\n\n _this.id = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_DataUtils__[\"d\" /* uniqueId */])('recharts-scatter-');\n return _this;\n }\n\n _createClass(Scatter, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n points = _this$props.points;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevPoints(points);\n }\n }\n }, {\n key: \"renderSymbolsStatically\",\n value: function renderSymbolsStatically(points) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n shape = _this$props2.shape,\n activeShape = _this$props2.activeShape,\n activeIndex = _this$props2.activeIndex;\n var baseProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props);\n return points.map(function (entry, i) {\n var props = _objectSpread({\n key: \"symbol-\".concat(i)\n }, baseProps, entry);\n\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], _extends({\n className: \"recharts-scatter-symbol\"\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_ReactUtils__[\"n\" /* filterEventsOfChild */])(_this2.props, entry, i), {\n key: \"symbol-\".concat(i)\n }), _this2.constructor.renderSymbolItem(activeIndex === i ? activeShape : shape, props));\n });\n }\n }, {\n key: \"renderSymbolsWithAnimation\",\n value: function renderSymbolsWithAnimation() {\n var _this3 = this;\n\n var _this$props3 = this.props,\n points = _this$props3.points,\n isAnimationActive = _this$props3.isAnimationActive,\n animationBegin = _this$props3.animationBegin,\n animationDuration = _this$props3.animationDuration,\n animationEasing = _this$props3.animationEasing,\n animationId = _this$props3.animationId;\n var prevPoints = this.state.prevPoints;\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5_react_smooth__[\"a\" /* default */], {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"pie-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = points.map(function (entry, index) {\n var prev = prevPoints && prevPoints[index];\n\n if (prev) {\n var interpolatorCx = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.cx, entry.cx);\n var interpolatorCy = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.cy, entry.cy);\n var interpolatorSize = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.size, entry.size);\n return _objectSpread({}, entry, {\n cx: interpolatorCx(t),\n cy: interpolatorCy(t),\n size: interpolatorSize(t)\n });\n }\n\n var interpolator = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_DataUtils__[\"i\" /* interpolateNumber */])(0, entry.size);\n return _objectSpread({}, entry, {\n size: interpolator(t)\n });\n });\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], null, _this3.renderSymbolsStatically(stepData));\n });\n }\n }, {\n key: \"renderSymbols\",\n value: function renderSymbols() {\n var _this$props4 = this.props,\n points = _this$props4.points,\n isAnimationActive = _this$props4.isAnimationActive;\n var prevPoints = this.state.prevPoints;\n\n if (isAnimationActive && points && points.length && (!prevPoints || !__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default()(prevPoints, points))) {\n return this.renderSymbolsWithAnimation();\n }\n\n return this.renderSymbolsStatically(points);\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar() {\n var isAnimationActive = this.props.isAnimationActive;\n\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props5 = this.props,\n points = _this$props5.points,\n xAxis = _this$props5.xAxis,\n yAxis = _this$props5.yAxis,\n children = _this$props5.children;\n var errorBarItems = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_ReactUtils__[\"h\" /* findAllByType */])(children, __WEBPACK_IMPORTED_MODULE_14__ErrorBar__[\"a\" /* default */]);\n\n if (!errorBarItems) {\n return null;\n }\n\n function dataPointFormatterY(dataPoint, dataKey) {\n return {\n x: dataPoint.cx,\n y: dataPoint.cy,\n value: dataPoint.y,\n errorVal: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_ChartUtils__[\"o\" /* getValueByDataKey */])(dataPoint, dataKey)\n };\n }\n\n function dataPointFormatterX(dataPoint, dataKey) {\n return {\n x: dataPoint.cx,\n y: dataPoint.cy,\n value: dataPoint.x,\n errorVal: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_ChartUtils__[\"o\" /* getValueByDataKey */])(dataPoint, dataKey)\n };\n }\n\n return errorBarItems.map(function (item, i) {\n var direction = item.props.direction;\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.cloneElement(item, {\n key: i,\n data: points,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: direction === 'x' ? 'vertical' : 'horizontal',\n dataPointFormatter: direction === 'x' ? dataPointFormatterX : dataPointFormatterY\n });\n });\n }\n }, {\n key: \"renderLine\",\n value: function renderLine() {\n var _this$props6 = this.props,\n points = _this$props6.points,\n line = _this$props6.line,\n lineType = _this$props6.lineType,\n lineJointType = _this$props6.lineJointType;\n var scatterProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props);\n var customLineProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(line);\n var linePoints, lineItem;\n\n if (lineType === 'joint') {\n linePoints = points.map(function (entry) {\n return {\n x: entry.cx,\n y: entry.cy\n };\n });\n } else if (lineType === 'fitting') {\n var _getLinearRegression = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_DataUtils__[\"j\" /* getLinearRegression */])(points),\n xmin = _getLinearRegression.xmin,\n xmax = _getLinearRegression.xmax,\n a = _getLinearRegression.a,\n b = _getLinearRegression.b;\n\n var linearExp = function linearExp(x) {\n return a * x + b;\n };\n\n linePoints = [{\n x: xmin,\n y: linearExp(xmin)\n }, {\n x: xmax,\n y: linearExp(xmax)\n }];\n }\n\n var lineProps = _objectSpread({}, scatterProps, {\n fill: 'none',\n stroke: scatterProps && scatterProps.fill\n }, customLineProps, {\n points: linePoints\n });\n\n if (__WEBPACK_IMPORTED_MODULE_3_react___default.a.isValidElement(line)) {\n lineItem = __WEBPACK_IMPORTED_MODULE_3_react___default.a.cloneElement(line, lineProps);\n } else if (__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default()(line)) {\n lineItem = line(lineProps);\n } else {\n lineItem = __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_12__shape_Curve__[\"a\" /* default */], _extends({}, lineProps, {\n type: lineJointType\n }));\n }\n\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], {\n className: \"recharts-scatter-line\",\n key: \"recharts-scatter-line\"\n }, lineItem);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n hide = _this$props7.hide,\n points = _this$props7.points,\n line = _this$props7.line,\n className = _this$props7.className,\n xAxis = _this$props7.xAxis,\n yAxis = _this$props7.yAxis,\n left = _this$props7.left,\n top = _this$props7.top,\n width = _this$props7.width,\n height = _this$props7.height,\n id = _this$props7.id;\n\n if (hide || !points || !points.length) {\n return null;\n }\n\n var _this$state = this.state,\n isAnimationActive = _this$state.isAnimationActive,\n isAnimationFinished = _this$state.isAnimationFinished;\n var layerClass = __WEBPACK_IMPORTED_MODULE_6_classnames___default()('recharts-scatter', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = __WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default()(id) ? this.id : id;\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], {\n className: layerClass,\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, needClip ? __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(\"defs\", null, __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: height\n }))) : null, line && this.renderLine(), this.renderErrorBar(), __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], {\n key: \"recharts-scatter-symbols\"\n }, this.renderSymbols()), (!isAnimationActive || isAnimationFinished) && __WEBPACK_IMPORTED_MODULE_9__component_LabelList__[\"a\" /* default */].renderCallByParent(this.props, points));\n }\n }], [{\n key: \"renderSymbolItem\",\n value: function renderSymbolItem(option, props) {\n var symbol;\n\n if (__WEBPACK_IMPORTED_MODULE_3_react___default.a.isValidElement(option)) {\n symbol = __WEBPACK_IMPORTED_MODULE_3_react___default.a.cloneElement(option, props);\n } else if (__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default()(option)) {\n symbol = option(props);\n } else {\n symbol = __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_13__shape_Symbols__[\"a\" /* default */], _extends({}, props, {\n type: option\n }));\n }\n\n return symbol;\n }\n }]);\n\n return Scatter;\n}(__WEBPACK_IMPORTED_MODULE_3_react__[\"Component\"]), _class2.displayName = 'Scatter', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_10__util_ReactUtils__[\"d\" /* EVENT_ATTRIBUTES */], __WEBPACK_IMPORTED_MODULE_10__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], {\n xAxisId: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number]),\n yAxisId: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number]),\n zAxisId: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number]),\n line: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.element]),\n lineType: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(['fitting', 'joint']),\n lineJointType: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(['basis', 'basisClosed', 'basisOpen', 'linear', 'linearClosed', 'natural', 'monotoneX', 'monotoneY', 'monotone', 'step', 'stepBefore', 'stepAfter']), __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func]),\n legendType: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_10__util_ReactUtils__[\"o\" /* LEGEND_TYPES */]),\n tooltipType: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_10__util_ReactUtils__[\"p\" /* TOOLTIP_TYPES */]),\n className: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string,\n name: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number]),\n activeIndex: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n activeShape: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.element]),\n shape: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(['circle', 'cross', 'diamond', 'square', 'star', 'triangle', 'wye']), __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func]),\n points: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.shape({\n cx: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n cy: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n size: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n node: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.shape({\n x: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string]),\n y: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string]),\n z: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string])\n }),\n payload: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.any\n })),\n hide: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n isAnimationActive: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n animationId: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n animationBegin: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n animationDuration: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n animationEasing: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear'])\n}), _class2.defaultProps = {\n xAxisId: 0,\n yAxisId: 0,\n zAxisId: 0,\n legendType: 'circle',\n lineType: 'joint',\n lineJointType: 'linear',\n data: [],\n shape: 'circle',\n hide: false,\n isAnimationActive: !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_ReactUtils__[\"m\" /* isSsr */])(),\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'linear'\n}, _class2.getComposedData = function (_ref2) {\n var xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n zAxis = _ref2.zAxis,\n item = _ref2.item,\n displayedData = _ref2.displayedData,\n onItemMouseLeave = _ref2.onItemMouseLeave,\n onItemMouseEnter = _ref2.onItemMouseEnter,\n offset = _ref2.offset,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks;\n var tooltipType = item.props.tooltipType;\n var cells = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_ReactUtils__[\"h\" /* findAllByType */])(item.props.children, __WEBPACK_IMPORTED_MODULE_15__component_Cell__[\"a\" /* default */]);\n var xAxisDataKey = __WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default()(xAxis.dataKey) ? item.props.dataKey : xAxis.dataKey;\n var yAxisDataKey = __WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default()(yAxis.dataKey) ? item.props.dataKey : yAxis.dataKey;\n var zAxisDataKey = zAxis && zAxis.dataKey;\n var defaultRangeZ = zAxis ? zAxis.range : __WEBPACK_IMPORTED_MODULE_11__ZAxis__[\"a\" /* default */].defaultProps.range;\n var defaultZ = defaultRangeZ && defaultRangeZ[0];\n var xBandSize = xAxis.scale.bandwidth ? xAxis.scale.bandwidth() : 0;\n var yBandSize = yAxis.scale.bandwidth ? yAxis.scale.bandwidth() : 0;\n var points = displayedData.map(function (entry, index) {\n var x = entry[xAxisDataKey];\n var y = entry[yAxisDataKey];\n var z = !__WEBPACK_IMPORTED_MODULE_2_lodash_isNil___default()(zAxisDataKey) && entry[zAxisDataKey] || '-';\n var tooltipPayload = [{\n name: xAxis.name || xAxis.dataKey,\n unit: xAxis.unit || '',\n value: x,\n payload: entry,\n dataKey: xAxisDataKey,\n type: tooltipType\n }, {\n name: yAxis.name || yAxis.dataKey,\n unit: yAxis.unit || '',\n value: y,\n payload: entry,\n dataKey: yAxisDataKey,\n type: tooltipType\n }];\n\n if (z !== '-') {\n tooltipPayload.push({\n name: zAxis.name || zAxis.dataKey,\n unit: zAxis.unit || '',\n value: z,\n payload: entry,\n dataKey: zAxisDataKey,\n type: tooltipType\n });\n }\n\n var cx = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_ChartUtils__[\"y\" /* getCateCoordinateOfLine */])({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: xBandSize,\n entry: entry,\n index: index,\n dataKey: xAxisDataKey\n });\n var cy = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_ChartUtils__[\"y\" /* getCateCoordinateOfLine */])({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: yBandSize,\n entry: entry,\n index: index,\n dataKey: yAxisDataKey\n });\n var size = z !== '-' ? zAxis.scale(z) : defaultZ;\n var radius = Math.sqrt(Math.max(size, 0) / Math.PI);\n return _objectSpread({}, entry, {\n cx: cx,\n cy: cy,\n x: cx - radius,\n y: cy - radius,\n xAxis: xAxis,\n yAxis: yAxis,\n zAxis: zAxis,\n width: 2 * radius,\n height: 2 * radius,\n size: size,\n node: {\n x: x,\n y: y,\n z: z\n },\n tooltipPayload: tooltipPayload,\n tooltipPosition: {\n x: cx,\n y: cy\n },\n payload: entry\n }, cells && cells[index] && cells[index].props);\n });\n return _objectSpread({\n onMouseLeave: onItemMouseLeave,\n onMouseEnter: onItemMouseEnter,\n points: points\n }, offset);\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Scatter);\n\n/***/ }),\n/* 229 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_uniqBy__ = __webpack_require__(381);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_uniqBy___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_uniqBy__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__DefaultLegendContent__ = __webpack_require__(881);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__ = __webpack_require__(2);\n\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Legend\n */\n\n\n\n\n\n\n\nvar defaultUniqBy = function defaultUniqBy(entry) {\n return entry.value;\n};\n\nvar getUniqPaylod = function getUniqPaylod(option, payload) {\n if (option === true) {\n return __WEBPACK_IMPORTED_MODULE_1_lodash_uniqBy___default()(payload, defaultUniqBy);\n }\n\n if (__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default()(option)) {\n return __WEBPACK_IMPORTED_MODULE_1_lodash_uniqBy___default()(payload, option);\n }\n\n return payload;\n};\n\nvar renderContent = function renderContent(content, props) {\n if (__WEBPACK_IMPORTED_MODULE_2_react___default.a.isValidElement(content)) {\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.cloneElement(content, props);\n }\n\n if (__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default()(content)) {\n return content(props);\n }\n\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__DefaultLegendContent__[\"a\" /* default */], props);\n};\n\nvar EPS = 1;\nvar ICON_TYPES = __WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__[\"o\" /* LEGEND_TYPES */].filter(function (type) {\n return type !== 'none';\n});\n\nvar Legend = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Legend, _Component);\n\n function Legend() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Legend);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Legend)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n return _this;\n }\n\n _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (boxWidth >= 0 && boxHeight >= 0) {\n return {\n width: boxWidth,\n height: boxHeight\n };\n }\n\n return null;\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var box = this.getBBox() || {\n width: 0\n };\n hPos = {\n left: ((chartWidth || 0) - box.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box = this.getBBox() || {\n height: 0\n };\n\n vPos = {\n top: ((chartHeight || 0) - _box.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n\n return _objectSpread({}, hPos, vPos);\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n var onBBoxUpdate = this.props.onBBoxUpdate;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: box.width,\n boxHeight: box.height\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(box);\n }\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n paylodUniqBy = _this$props2.paylodUniqBy,\n payload = _this$props2.payload;\n\n var outerStyle = _objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle), wrapperStyle);\n\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread({}, this.props, {\n payload: getUniqPaylod(paylodUniqBy, payload)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var layout = item.props.layout;\n\n if (layout === 'vertical' && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_DataUtils__[\"a\" /* isNumber */])(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n\n return null;\n }\n }]);\n\n return Legend;\n}(__WEBPACK_IMPORTED_MODULE_2_react__[\"Component\"]), _class2.displayName = 'Legend', _class2.propTypes = {\n content: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func]),\n wrapperStyle: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n chartWidth: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n chartHeight: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n width: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n iconSize: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n iconType: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(ICON_TYPES),\n layout: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(['horizontal', 'vertical']),\n align: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(['center', 'left', 'right']),\n verticalAlign: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(['top', 'bottom', 'middle']),\n margin: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.shape({\n top: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n left: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n bottom: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n right: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number\n }),\n payload: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.shape({\n value: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.any,\n id: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.any,\n type: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__[\"o\" /* LEGEND_TYPES */])\n })),\n paylodUniqBy: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool]),\n formatter: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n onMouseEnter: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n onMouseLeave: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n onClick: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n onBBoxUpdate: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func\n}, _class2.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Legend);\n\n/***/ }),\n/* 230 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_d3_shape__ = __webpack_require__(183);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__ = __webpack_require__(2);\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Curve\n */\n\n\n\n\n\n\nvar SYMBOL_FACTORIES = {\n symbolCircle: __WEBPACK_IMPORTED_MODULE_2_d3_shape__[\"g\" /* symbolCircle */],\n symbolCross: __WEBPACK_IMPORTED_MODULE_2_d3_shape__[\"h\" /* symbolCross */],\n symbolDiamond: __WEBPACK_IMPORTED_MODULE_2_d3_shape__[\"i\" /* symbolDiamond */],\n symbolSquare: __WEBPACK_IMPORTED_MODULE_2_d3_shape__[\"j\" /* symbolSquare */],\n symbolStar: __WEBPACK_IMPORTED_MODULE_2_d3_shape__[\"k\" /* symbolStar */],\n symbolTriangle: __WEBPACK_IMPORTED_MODULE_2_d3_shape__[\"l\" /* symbolTriangle */],\n symbolWye: __WEBPACK_IMPORTED_MODULE_2_d3_shape__[\"m\" /* symbolWye */]\n};\nvar RADIAN = Math.PI / 180;\n\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(type.slice(0, 1).toUpperCase()).concat(type.slice(1));\n return SYMBOL_FACTORIES[name] || __WEBPACK_IMPORTED_MODULE_2_d3_shape__[\"g\" /* symbolCircle */];\n};\n\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n\n case 'square':\n return size * size;\n\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n\n default:\n return Math.PI * size * size / 4;\n }\n};\n\nvar Symbols = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Symbols, _Component);\n\n function Symbols() {\n _classCallCheck(this, Symbols);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Symbols).apply(this, arguments));\n }\n\n _createClass(Symbols, [{\n key: \"getPath\",\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n value: function getPath() {\n var _this$props = this.props,\n size = _this$props.size,\n sizeType = _this$props.sizeType,\n type = _this$props.type;\n var symbolFactory = getSymbolFactory(type);\n var symbol = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_d3_shape__[\"n\" /* symbol */])().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n size = _this$props2.size;\n\n if (cx === +cx && cy === +cy && size === +size) {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"path\", _extends({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"b\" /* filterEventAttributes */])(this.props), {\n className: __WEBPACK_IMPORTED_MODULE_3_classnames___default()('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: this.getPath()\n }));\n }\n\n return null;\n }\n }]);\n\n return Symbols;\n}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]), _class2.displayName = 'Symbols', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], {\n className: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n type: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['circle', 'cross', 'diamond', 'square', 'star', 'triangle', 'wye']),\n cx: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n cy: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n size: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n sizeType: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['area', 'diameter'])\n}), _class2.defaultProps = {\n type: 'circle',\n size: 64,\n sizeType: 'area'\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Symbols);\n\n/***/ }),\n/* 231 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n/* 232 */\n/***/ (function(module, exports) {\n\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/* 233 */\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n/* 234 */\n/***/ (function(module, exports) {\n\n// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n\n\n/***/ }),\n/* 235 */\n/***/ (function(module, exports) {\n\n// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n\n\n/***/ }),\n/* 236 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(146);\nvar IE8_DOM_DEFINE = __webpack_require__(418);\nvar toPrimitive = __webpack_require__(240);\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(77) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n/* 237 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(10);\nvar defined = __webpack_require__(232);\nvar fails = __webpack_require__(46);\nvar spaces = __webpack_require__(238);\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n\n\n/***/ }),\n/* 238 */\n/***/ (function(module, exports) {\n\nmodule.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\n/***/ }),\n/* 239 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(897);\nvar defined = __webpack_require__(232);\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n/* 240 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(78);\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n/* 241 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 242 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Shim to avoid requiring Velocity in Node environments, since it\n// requires window. Note that this just no-ops the components so\n// that they'll render, rather than doing something clever like\n// statically rendering the end state of any provided animations.\n//\n// TODO(finneganh): Circle back on jsdom to see if we can run full\n// Velocity with it in place. This come up in:\n// https://github.com/twitter-fabric/velocity-react/issues/119\n// but there may have been different loading issues in that case,\n// not a global incompatibility with jsdom.\nif (typeof window === 'undefined' || typeof navigator === 'undefined' || navigator.userAgent.indexOf('Node.js') !== -1 || navigator.userAgent.indexOf('jsdom') !== -1) {\n var Velocity = function Velocity() {};\n Velocity.Utilities = {};\n Velocity.Utilities.removeData = function () {};\n Velocity.velocityReactServerShim = true;\n module.exports = Velocity;\n} else {\n // this is how velocity-ui finds the Velocity instance, so lets make sure we find the right instance\n var g = window.jQuery || window.Zepto || window;\n\n // require Velocity if it doesn't already exist\n module.exports = g.Velocity ? g.Velocity : __webpack_require__(949);\n}\n\n/***/ }),\n/* 243 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(57), __webpack_require__(7), __webpack_require__(60), __webpack_require__(255), __webpack_require__(244), __webpack_require__(19), __webpack_require__(108), __webpack_require__(61), __webpack_require__(26), __webpack_require__(153), __webpack_require__(104), __webpack_require__(8), __webpack_require__(152), __webpack_require__(59), __webpack_require__(100), __webpack_require__(274), __webpack_require__(159)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, $, Rest, index_1, BotControllerBase_1, BotController_1, InFrame_1, downloadBotSrc_1, logger_1, Environment_1, KuduApi_1, PollingModel_1, ClientAppSettings_1, ArmApi_1, azurePortalLinks_1, index_2, BotProgress_1, AuthenticationUtility_1) {\r\n var Verbs = (function () {\r\n function Verbs() {\r\n }\r\n return Verbs;\r\n }());\r\n Verbs.message = \"message\";\r\n Verbs.ready = \"ready\";\r\n Verbs.getStartupInfo = \"get-startup-info\";\r\n Verbs.openBlade = \"open-blade\";\r\n Verbs.openBladeWithInputs = \"open-blade-inputs\";\r\n Verbs.logAction = \"log-action\";\r\n Verbs.logMessage = \"log-message\";\r\n Verbs.setDirtyState = \"set-dirtystate\";\r\n Verbs.sendStartupInfo = \"send-startup-info\";\r\n Verbs.sendResourceId = \"send-resourceId\";\r\n Verbs.sendInputs = \"send-inputs\";\r\n Verbs.sendAppSettingName = \"send-appSettingName\";\r\n Verbs.sendToken = \"send-token\";\r\n Verbs.sendToken2 = \"send-token2\";\r\n exports.Verbs = Verbs;\r\n var BladeNames = {\r\n continuousIntegration: 'ContinuousDeploymentListBlade',\r\n webConfig: 'SiteConfigSettingsFrameBlade',\r\n appSettings: 'AppsOverviewBlade',\r\n functionEditor: 'FunctionsIFrameBlade'\r\n };\r\n var portalSignature = \"FxAppBlade\";\r\n var AzurePortalPageController = (function (_super) {\r\n __extends(AzurePortalPageController, _super);\r\n function AzurePortalPageController(app) {\r\n var _this = _super.call(this, app) || this;\r\n Environment_1.Environment.isInAzurePortal = true;\r\n $('body').toggleClass(\"inframe\", InFrame_1.default());\r\n window.refreshBot = function () {\r\n _this.fetchBot();\r\n };\r\n return _this;\r\n }\r\n AzurePortalPageController.prototype.setBotAppSettings = function (x) {\r\n this._botAppSettings = x;\r\n if (this._botAppSettings) {\r\n logger_1.default.debug('hooking up botAppSettings');\r\n this._botAppSettings.setState(this.state);\r\n }\r\n };\r\n Object.defineProperty(AzurePortalPageController.prototype, \"botAppSettings\", {\r\n get: function () {\r\n return this._botAppSettings;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n AzurePortalPageController.prototype.pageRequiresSignIn = function () {\r\n return !InFrame_1.default() || !!(this.startupInfo && this.startupInfo.token);\r\n };\r\n AzurePortalPageController.prototype.updateState = function (signInInProgress, signInError, callback) {\r\n var _this = this;\r\n logger_1.default.debug('updateState is called on tabpagecontroller');\r\n var wrapped = callback ? _.wrap(callback, function (fn) {\r\n fn();\r\n logger_1.default.debug('signInInProgress = ', signInInProgress, 'signInError = ', signInError);\r\n if (InFrame_1.default()) {\r\n if (_this.app.signedInUser && _this.startupInfo && _this.startupInfo.token) {\r\n logger_1.default.debug('set signedInUser.AzureToken = this.startupInfo.token in updateState');\r\n _this.app.signedInUser.AzureToken = _this.startupInfo.token;\r\n }\r\n if (_this.app.signedInUser && !_this.botId) {\r\n _this.loadAzureResource();\r\n }\r\n else if (!_this.app.signedInUser) {\r\n logger_1.default.debug('missing this.app.signedInUser');\r\n }\r\n }\r\n }) : undefined;\r\n _super.prototype.updateState.call(this, signInInProgress, signInError, wrapped);\r\n };\r\n Object.defineProperty(AzurePortalPageController.prototype, \"scmPoller\", {\r\n get: function () {\r\n var _this = this;\r\n if (!this._scmPoller) {\r\n this._scmPoller = new PollingModel_1.Poller({ defaultInterval: 10000, maxPendingPollRequests: 1 }, function () { return _this.pollScmType(); }, function (scmType) {\r\n if (scmType != _this.state.scmType) {\r\n _this.scmPoller.stop();\r\n console.log(\"set state.scmType = \" + scmType);\r\n _this.state.scmType = scmType;\r\n _this.syncState();\r\n if (_this.botAppSettings) {\r\n _this.botAppSettings.setState(_this.state);\r\n }\r\n if (_this.botController) {\r\n _this.botController.refreshScmType();\r\n }\r\n }\r\n });\r\n }\r\n return this._scmPoller;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n AzurePortalPageController.prototype.refreshScmType = function () {\r\n var _this = this;\r\n this.pollScmType().then(function (scmType) { return _this.state.scmType = scmType; });\r\n };\r\n AzurePortalPageController.prototype.pingDeployLog = function () {\r\n var result = $.Deferred();\r\n this.kuduClient\r\n .then(function (kc) {\r\n kc.get(kc.scmUri.format() + \"/api/vfs/site/\").then(function (nodes) {\r\n var node = _.find(nodes, function (x) { return x.name.toLowerCase() == \"deployment.log\"; });\r\n result.resolve(!!node);\r\n }).fail(function () { result.resolve(false); });\r\n });\r\n return result;\r\n };\r\n Object.defineProperty(AzurePortalPageController.prototype, \"deployPoller\", {\r\n get: function () {\r\n var _this = this;\r\n if (!this._deployPoller) {\r\n var pollSetting = this.deploymentLog ? {\r\n defaultInterval: 60000,\r\n maxPendingPollRequests: 1\r\n } : {\r\n defaultInterval: 10000,\r\n maxPendingPollRequests: 1\r\n };\r\n this._deployPoller = new PollingModel_1.Poller(pollSetting, function () { return _this.pingDeployLog(); }, function (found) {\r\n var prevFound = _this.state.botDeploymentLogFound;\r\n _this.state.botDeploymentLogFound = found;\r\n if (!prevFound && found) {\r\n _this.syncState();\r\n if (_this.botAppSettings) {\r\n _this.botAppSettings.setState(_this.state);\r\n }\r\n _this.deployPoller.stop();\r\n if (_this.state.scmType !== 'none') {\r\n _this._deployPoller = null;\r\n _this.deployPoller.start();\r\n }\r\n }\r\n });\r\n }\r\n return this._deployPoller;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n AzurePortalPageController.prototype.setupCrossFrameMessaging = function () {\r\n if (InFrame_1.default() && !this.messageHandler) {\r\n try {\r\n logger_1.default.debug('bind message handler');\r\n logger_1.default.debug('continue logging');\r\n this.messageHandler = _.bind(this.onReceiveMessage, this);\r\n }\r\n catch (ex) {\r\n logger_1.default.debug(\"bound messageHandler error \" + ex);\r\n }\r\n logger_1.default.debug('bound messageHandler');\r\n logger_1.default.debug('add inframe listener');\r\n window.addEventListener(Verbs.message, this.messageHandler, false);\r\n logger_1.default.debug('done window.addEventListener');\r\n this.postMessage(Verbs.ready, null);\r\n this.postMessage(Verbs.getStartupInfo, null);\r\n }\r\n else {\r\n if (!InFrame_1.default()) {\r\n logger_1.default.debug('we are not in an iframe');\r\n }\r\n else if (this.messageHandler) {\r\n logger_1.default.debug('cross frame message handler already setup');\r\n }\r\n }\r\n };\r\n AzurePortalPageController.prototype.render = function (params) {\r\n _super.prototype.render.call(this, params);\r\n this.shellSrc = this.shellSrc || params[\"shellSrc\"];\r\n this.rsrcId = this.rsrcId || params[\"rsrcId\"];\r\n this.botId = params[\"id\"];\r\n this.state = {\r\n botId: this.botId,\r\n scmType: 'none'\r\n };\r\n if (this.app.signedInUser && this.botId) {\r\n this.fetchBot();\r\n }\r\n this.setupCrossFrameMessaging();\r\n logger_1.default.debug('AzurePortalPageController loaded');\r\n };\r\n AzurePortalPageController.prototype.unload = function () {\r\n logger_1.default.debug('AzurePortalPageController unloaded');\r\n if (this.messageHandler) {\r\n window.removeEventListener(Verbs.message, this.messageHandler, false);\r\n this.messageHandler = null;\r\n }\r\n _super.prototype.unload.call(this);\r\n };\r\n AzurePortalPageController.prototype.pollScmType = function () {\r\n return this.kuduClient.then(function (client) {\r\n return client.settings;\r\n }).then(function (settings) {\r\n return $.Deferred().resolve(settings['ScmType']);\r\n });\r\n };\r\n Object.defineProperty(AzurePortalPageController.prototype, \"botAppSettingsProps\", {\r\n get: function () {\r\n if (!InFrame_1.default()) {\r\n return null;\r\n }\r\n return {\r\n openBlade: _.bind(this.openBlade, this),\r\n handleChange: null,\r\n onDropIcon: null,\r\n onSave: null,\r\n downloadZip: _.bind(this.downloadZip, this),\r\n onZipDownloaded: function (blobUrl) { },\r\n scmType: this.pollScmType(),\r\n initialBot: this.botSub ? this.botSub.Bot : null,\r\n v4UI: true,\r\n kuduClient: this.kuduClient,\r\n armClient: $.Deferred().resolve(this.armClient)\r\n };\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n AzurePortalPageController.prototype.openBlade = function (bladeType) {\r\n var bladeName = BladeNames[azurePortalLinks_1.BladeType[bladeType]];\r\n var bladeInputs;\r\n console.log(\"bladeName=\" + bladeName);\r\n switch (bladeType) {\r\n case azurePortalLinks_1.BladeType.appSettings:\r\n bladeInputs = { id: this.rsrcId };\r\n break;\r\n case azurePortalLinks_1.BladeType.webConfig:\r\n bladeInputs = { id: this.rsrcId };\r\n break;\r\n case azurePortalLinks_1.BladeType.continuousIntegration:\r\n bladeInputs = { ResourceId: this.rsrcId, id: this.rsrcId };\r\n break;\r\n case azurePortalLinks_1.BladeType.functionEditor:\r\n bladeInputs = { id: this.rsrcId, resourceId: this.rsrcId };\r\n break;\r\n }\r\n if (bladeType == azurePortalLinks_1.BladeType.continuousIntegration) {\r\n if (this.scmPoller.isStopped()) {\r\n this.scmPoller.start();\r\n }\r\n }\r\n else {\r\n this.scmPoller.stop();\r\n }\r\n var blade = {\r\n detailBlade: bladeName,\r\n detailBladeInputs: bladeInputs,\r\n extension: 'WebsitesExtension'\r\n };\r\n this.postMessage(Verbs.openBlade, blade);\r\n };\r\n AzurePortalPageController.prototype.updateBot = function (bot, reviewStatus) {\r\n this.state = _.extend(this.state, {\r\n bot: bot\r\n });\r\n this.botSub.Bot = bot;\r\n this.botSub.ReviewStatusDetail = reviewStatus;\r\n this.syncState();\r\n if (this.botAppSettings) {\r\n this.botAppSettings.setState(this.state);\r\n }\r\n };\r\n Object.defineProperty(AzurePortalPageController.prototype, \"kuduClient\", {\r\n get: function () {\r\n var _this = this;\r\n return Rest.CodeClient.getScmAuthz(this.botId).then(function (x) {\r\n return $.Deferred().resolve(KuduApi_1.KuduClient.createFromScmAuthorization(x));\r\n }).fail(function (xhr) {\r\n _this.handleHttpResponseError(xhr);\r\n });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n AzurePortalPageController.prototype.downloadZip = function () {\r\n return downloadBotSrc_1.downloadBotSource(this.kuduClient);\r\n };\r\n AzurePortalPageController.prototype.saveBotStateAndRender = function (botSub) {\r\n if (botSub.Bot) {\r\n logger_1.default.debug('saveBotStateAndRender', botSub.Bot.Id);\r\n this.botController.saveBotStateAndRender(botSub);\r\n }\r\n };\r\n Object.defineProperty(AzurePortalPageController.prototype, \"botController\", {\r\n get: function () {\r\n return new BotController_1.BotController(this.app, this, this.botAppSettingsProps);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AzurePortalPageController.prototype, \"AzureBotServiceVersion\", {\r\n get: function () {\r\n return window.location.pathname.indexOf('codev2') >= 0 ? \"ABSv2\" : \"ABSv1\";\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AzurePortalPageController.prototype, \"hosting\", {\r\n get: function () {\r\n return this.webApp.then(function (app) {\r\n return $.Deferred().resolve(app.kind.split(',').indexOf('app') >= 0 ? 'webapp' : undefined);\r\n }, function () {\r\n return $.Deferred().resolve(undefined);\r\n });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AzurePortalPageController.prototype, \"serverFarmId\", {\r\n get: function () {\r\n return this.webApp.then(function (app) {\r\n return $.Deferred().resolve(app.properties.serverFarmId);\r\n }, function () {\r\n return $.Deferred().resolve(undefined);\r\n });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AzurePortalPageController.prototype, \"location\", {\r\n get: function () {\r\n return this.webApp.then(function (app) {\r\n return $.Deferred().resolve(app.location);\r\n }, function () {\r\n return $.Deferred().resolve(undefined);\r\n });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n AzurePortalPageController.prototype.renderPage = function () {\r\n var _this = this;\r\n var element = React.createElement(index_1.AzurePortalPage, {\r\n botPageProps: this.botSub ? this.botController.getBotPageProps(this.botSub) : null,\r\n onSetComponent: function (x) {\r\n _this.component = x;\r\n if (x) {\r\n x.setState(_this.state);\r\n }\r\n }\r\n });\r\n ReactDOM.render(element, this.pageContent);\r\n return $.Deferred().resolve(this.component);\r\n };\r\n AzurePortalPageController.prototype.getShellSrc = function () {\r\n if (!this.shellSrc && InFrame_1.default()) {\r\n this.shellSrc = window.location.search.match(/=(.+)/)[1];\r\n }\r\n return this.shellSrc;\r\n };\r\n AzurePortalPageController.prototype.postMessage = function (verb, data) {\r\n if (InFrame_1.default()) {\r\n logger_1.default.debug(\"post message \" + verb);\r\n window.parent.postMessage({\r\n signature: portalSignature,\r\n kind: verb,\r\n data: _.isString(data) ? data : JSON.stringify(data)\r\n }, this.getShellSrc());\r\n }\r\n };\r\n AzurePortalPageController.prototype.setBotId = function (botId) {\r\n var _this = this;\r\n if (this.botId !== botId) {\r\n this.botId = botId;\r\n this.state.botId = botId;\r\n this.statusBar = React.createElement(BotProgress_1.BotProgress, { progress: 'Loading bot' });\r\n this.renderPage().then(function (comp) {\r\n comp.setState(_this.state, function () {\r\n if (botId) {\r\n _this.fetchBot().then(function () {\r\n _this.statusBar = null;\r\n });\r\n }\r\n else {\r\n _this.statusBar = null;\r\n }\r\n });\r\n });\r\n }\r\n };\r\n AzurePortalPageController.prototype.syncState = function () {\r\n if (this.component) {\r\n this.component.setState(this.state);\r\n }\r\n };\r\n AzurePortalPageController.prototype.fetchBot = function () {\r\n var _this = this;\r\n logger_1.default.debug('AzurePortalPageController fetchBot');\r\n Rest.BotManagerClient.getConfigSettings(this.botId).then(function (config) {\r\n _this.state.scmType = config.properties.scmType;\r\n _this.syncState();\r\n });\r\n return Rest.BotManagerClient.getById(this.botId)\r\n .then(function (botSub) {\r\n _this.botSub = botSub;\r\n return _this.botController.loadBotState(botSub.Bot);\r\n })\r\n .then(function () {\r\n return $.Deferred().resolve(_this.botSub);\r\n })\r\n .done(function (botSub) {\r\n _this.saveBotStateAndRender(botSub);\r\n _this.pingDeployLog().then(function (found) {\r\n if (found) {\r\n _this.state.botDeploymentLogFound = true;\r\n _this.syncState();\r\n }\r\n if (!found || _this.state.scmType !== 'none') {\r\n _this.deployPoller.start();\r\n }\r\n });\r\n })\r\n .fail(function (xhr) {\r\n if (xhr.status == 404 && InFrame_1.default()) {\r\n logger_1.default.debug(\"can't locate bot for \" + _this.botId);\r\n _this.botId = null;\r\n _this.state.botId = null;\r\n _this.syncState();\r\n }\r\n else {\r\n _this.handleHttpResponseError(xhr);\r\n }\r\n });\r\n };\r\n AzurePortalPageController.prototype.bindAzureAccessToken = function () {\r\n var token = this.startupInfo.token;\r\n if (token) {\r\n var authData = this.app.signedInUser;\r\n if (authData) {\r\n authData.AzureToken = token;\r\n }\r\n else {\r\n logger_1.default.debug('this.app.signedInUser not set');\r\n }\r\n var headers = {\r\n 'X-BF-OAUTH-TOKEN': token,\r\n 'X-BF-TenantId': this.app.signedInUser.TenantId\r\n };\r\n Rest.ajaxHeaders = _.extend(Rest.ajaxHeaders || {}, headers);\r\n }\r\n else {\r\n logger_1.default.debug('this.starupInfo.token not set');\r\n }\r\n };\r\n AzurePortalPageController.prototype.handleRefreshAuthFailure = function () {\r\n var _this = this;\r\n if (!this.component) {\r\n this.renderPage().then(function (comp) {\r\n comp.setState(_this.state);\r\n });\r\n }\r\n else {\r\n this.syncState();\r\n }\r\n };\r\n AzurePortalPageController.prototype.refreshAuthToken = function (useSelfToken) {\r\n var _this = this;\r\n if (useSelfToken === void 0) { useSelfToken = true; }\r\n if (InFrame_1.default()) {\r\n var csrfToken = AuthenticationUtility_1.AuthenticationUtility.getCsrfToken();\r\n if (!csrfToken) {\r\n logger_1.default.debug(\"AzurePortalPageController: Failed to get CSRF token from cookie.\");\r\n this.handleRefreshAuthFailure();\r\n return;\r\n }\r\n $.ajax('/refreshLogin', {\r\n data: {\r\n token: useSelfToken ? this.startupInfo.selfToken || this.startupInfo.token : this.startupInfo.token,\r\n '__RequestVerificationToken': csrfToken\r\n },\r\n type: 'POST'\r\n })\r\n .then(function () { return Rest.AccountClient.getSignedInUser(); })\r\n .then(function () {\r\n if (!_this.app.signedInUser) {\r\n logger_1.default.debug('reload BotTabPageController');\r\n _this.refreshSignedInUser();\r\n _this.bindAzureAccessToken();\r\n if (_this.component) {\r\n _this.component.forceUpdate();\r\n }\r\n }\r\n else {\r\n logger_1.default.debug('user already signed in');\r\n _this.bindAzureAccessToken();\r\n if (!_this.botId) {\r\n logger_1.default.debug('load azure reosurce');\r\n _this.loadAzureResource();\r\n }\r\n }\r\n })\r\n .fail(function (xhr) {\r\n _this.handleHttpResponseError(xhr);\r\n });\r\n }\r\n };\r\n Object.defineProperty(AzurePortalPageController.prototype, \"armClient\", {\r\n get: function () {\r\n return new ArmApi_1.ArmClient(this.startupInfo.token);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AzurePortalPageController.prototype, \"webApp\", {\r\n get: function () {\r\n if (this.rsrcId && this.startupInfo && this.startupInfo.token) {\r\n return this.armClient.getWebAppService(this.rsrcId);\r\n }\r\n return $.Deferred().reject('no startupInfo or rsrcId');\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n AzurePortalPageController.prototype.loadAzureResource = function () {\r\n var _this = this;\r\n if (this.app.signedInUser && this.startupInfo.token && this.rsrcId) {\r\n logger_1.default.debug('AzurePortalPageController loadAzureResource');\r\n Rest.CodeClient.fetchBotId(this.rsrcId, this.startupInfo.token).done(function (botId) {\r\n _this.setBotId(botId);\r\n }).fail(function (xhr) {\r\n if (xhr.status == 404 && InFrame_1.default()) {\r\n logger_1.default.debug(\"can't locate bot for rsrcId \" + _this.rsrcId);\r\n _this.webApp.always(function () {\r\n _this.setBotId(null);\r\n });\r\n }\r\n else {\r\n _this.handleHttpResponseError(xhr);\r\n }\r\n });\r\n }\r\n };\r\n Object.defineProperty(AzurePortalPageController.prototype, \"isFirstPartyAuth\", {\r\n get: function () {\r\n return ClientAppSettings_1.clientAppSettings.flightedFeatures.indexOf('firstPartyAuth') >= 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n AzurePortalPageController.prototype.onReceiveMessage = function (event) {\r\n if (!event || !event.data || event.data.signature !== portalSignature) {\r\n return;\r\n }\r\n var data = event.data.data;\r\n var methodName = event.data.kind;\r\n logger_1.default.debug(\"[iFrame] Received mesg: \" + methodName);\r\n switch (methodName) {\r\n case Verbs.sendResourceId:\r\n this.rsrcId = data;\r\n break;\r\n case Verbs.sendInputs:\r\n this.rsrcId = data['resourceId'];\r\n break;\r\n case Verbs.sendStartupInfo:\r\n {\r\n var si = data;\r\n var refreshToken = true;\r\n if (this.botId && si && si.token && this.startupInfo && si.token === this.startupInfo.token) {\r\n refreshToken = false;\r\n }\r\n this.startupInfo = si;\r\n this.statusBar = React.createElement(BotProgress_1.BotProgress, { progress: 'Initializing' });\r\n if (this.startupInfo.token && refreshToken) {\r\n this.refreshAuthToken(this.isFirstPartyAuth);\r\n }\r\n }\r\n break;\r\n case Verbs.sendAppSettingName:\r\n break;\r\n case Verbs.sendToken:\r\n {\r\n if (this.startupInfo && !this.startupInfo.ignoreSendToken) {\r\n this.startupInfo.token = data;\r\n this.refreshAuthToken(false);\r\n }\r\n }\r\n break;\r\n case Verbs.sendToken2:\r\n {\r\n if (this.startupInfo && this.isFirstPartyAuth) {\r\n this.startupInfo.ignoreSendToken = true;\r\n this.startupInfo.selfToken = data.selfToken;\r\n this.startupInfo.token = data.token;\r\n this.refreshAuthToken();\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n return AzurePortalPageController;\r\n }(BotControllerBase_1.BotControllerBase));\r\n __decorate([\r\n index_2.lazy()\r\n ], AzurePortalPageController.prototype, \"kuduClient\", null);\r\n __decorate([\r\n index_2.lazy()\r\n ], AzurePortalPageController.prototype, \"botController\", null);\r\n __decorate([\r\n index_2.lazy()\r\n ], AzurePortalPageController.prototype, \"armClient\", null);\r\n __decorate([\r\n index_2.lazy()\r\n ], AzurePortalPageController.prototype, \"webApp\", null);\r\n exports.AzurePortalPageController = AzurePortalPageController;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 244 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(31), __webpack_require__(255), __webpack_require__(7), __webpack_require__(27), __webpack_require__(103), __webpack_require__(102), __webpack_require__(14), __webpack_require__(15), __webpack_require__(8), __webpack_require__(34), __webpack_require__(245), __webpack_require__(60), __webpack_require__(480), __webpack_require__(460), __webpack_require__(19), __webpack_require__(249), __webpack_require__(270), __webpack_require__(277), __webpack_require__(26), __webpack_require__(104), __webpack_require__(154), __webpack_require__(108), __webpack_require__(256), __webpack_require__(461), __webpack_require__(158), __webpack_require__(59), __webpack_require__(109), __webpack_require__(40), __webpack_require__(243), __webpack_require__(166), __webpack_require__(100), __webpack_require__(156)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, ControllerBase_1, BotControllerBase_1, Rest, Dialogs, ProgressDialog_1, GenericDialog_1, index_1, Intercom_Resources_DevPortal_1, ClientAppSettings_1, BotUtils_1, BotEditController_1, index_2, WebChatPage_1, BotCodeEditorController_1, InFrame_1, BotTabPage_1, EmbedCodeView, RuntimeConnectedShadeUtils_1, Environment_1, PollingModel_1, index_3, downloadBotSrc_1, parseApiError_1, BotCodeSetupController_1, botResourceId_1, azurePortalLinks_1, openTab_1, Links_1, AzurePortalPageController_1, Cookies_1, index_4, FlightUtils_1) {\r\n exports.deploymentPollingInterval = 15000;\r\n var ServiceBotRoutes = [\r\n {\r\n tab: index_2.BotTabs.Build,\r\n route: '/bots/build'\r\n },\r\n {\r\n tab: index_2.BotTabs.Channels,\r\n route: '/bots/channels'\r\n },\r\n {\r\n tab: index_2.BotTabs.Analytics,\r\n route: '/bots/analytics'\r\n },\r\n {\r\n tab: index_2.BotTabs.Settings,\r\n route: '/bots/settings'\r\n }\r\n ];\r\n var SDKBotRoutes = [\r\n {\r\n tab: index_2.BotTabs.Channels,\r\n route: '/bots/channels'\r\n },\r\n {\r\n tab: index_2.BotTabs.Analytics,\r\n route: '/bots/analytics'\r\n },\r\n {\r\n tab: index_2.BotTabs.Settings,\r\n route: '/bots/settings'\r\n }\r\n ];\r\n var ABSv1Routes = [{\r\n tab: index_2.BotTabs.Develop,\r\n route: '/bots/code'\r\n }].concat(SDKBotRoutes);\r\n var ABSCodeRoutes = [{\r\n tab: index_2.BotTabs.Build,\r\n route: '/bots/codesetup'\r\n }].concat(SDKBotRoutes);\r\n function Routes(botType) {\r\n switch (botType) {\r\n case BotUtils_1.BotTypes.ABSCode:\r\n return ABSCodeRoutes;\r\n case BotUtils_1.BotTypes.ABSv1:\r\n return InFrame_1.default() ? ABSv1Routes : SDKBotRoutes;\r\n case BotUtils_1.BotTypes.ABSv2:\r\n return ServiceBotRoutes;\r\n case BotUtils_1.BotTypes.SDK:\r\n return SDKBotRoutes;\r\n default:\r\n return [];\r\n }\r\n }\r\n exports.Routes = Routes;\r\n var debugAppSettings = false;\r\n var BotController = (function (_super) {\r\n __extends(BotController, _super);\r\n function BotController(app, container, _botAppSettingsProps) {\r\n var _this = _super.call(this, app) || this;\r\n _this._botAppSettingsProps = _botAppSettingsProps;\r\n _this.onDirtyMessage = function (e, dirtyData) {\r\n if (dirtyData) {\r\n if (_this.component && _this.component.state.authoringDirty !== dirtyData.dirty) {\r\n _this.component.setState({ authoringDirty: dirtyData.dirty });\r\n }\r\n }\r\n };\r\n _this.onMaskMessage = function (e, maskData) {\r\n if (maskData && maskData.inProcess) {\r\n _this.statusBar = React.createElement(index_2.BotProgress, { progress: maskData.context });\r\n _this.showProgressMask = true;\r\n }\r\n else {\r\n _this.statusBar = null;\r\n _this.showProgressMask = false;\r\n }\r\n };\r\n _this.onErrorMessage = function (e, errorData) {\r\n if (errorData) {\r\n if (_this.component && _this.component.state.authoringError !== errorData.hasError) {\r\n _this.component.setState({ authoringError: errorData.hasError });\r\n }\r\n }\r\n };\r\n _this.botPageState = {\r\n showWebChat: false,\r\n showWebChatPending: true,\r\n announcements: _this.app.announcements\r\n };\r\n _this.containerController = container;\r\n window.refreshBot = function () {\r\n _this.refreshFromRemote();\r\n };\r\n window.onbeforeunload = function (event) {\r\n if (_this.component && _this.component.state.authoringDirty) {\r\n var message = \"You have unsaved changes in bot. Please click 'Save' button to save and train your bot. Otherwise you will lose all your changes. \";\r\n if (typeof event === 'undefined') {\r\n event = window.event;\r\n }\r\n if (event) {\r\n event.returnValue = message;\r\n }\r\n return message;\r\n }\r\n };\r\n RuntimeConnectedShadeUtils_1.RuntimeConnectedShadeUtils.on(RuntimeConnectedShadeUtils_1.RuntimeConnectedShadeUtils.AuthoringToolDirtyEventName, _this.onDirtyMessage);\r\n RuntimeConnectedShadeUtils_1.RuntimeConnectedShadeUtils.on(RuntimeConnectedShadeUtils_1.RuntimeConnectedShadeUtils.AuthoringToolMaskEventName, _this.onMaskMessage);\r\n RuntimeConnectedShadeUtils_1.RuntimeConnectedShadeUtils.on(RuntimeConnectedShadeUtils_1.RuntimeConnectedShadeUtils.AuthoringToolErrorEventName, _this.onErrorMessage);\r\n return _this;\r\n }\r\n Object.defineProperty(BotController.prototype, \"waitingForDeployment\", {\r\n set: function (val) {\r\n if (val) {\r\n this.statusBar = React.createElement(index_2.BotProgress, {});\r\n }\r\n else {\r\n this.statusBar = null;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BotController.prototype, \"deployPoller\", {\r\n get: function () {\r\n var _this = this;\r\n if (!this._deployPoller) {\r\n var pollSetting = {\r\n defaultInterval: exports.deploymentPollingInterval,\r\n maxPendingPollRequests: 1\r\n };\r\n this._deployPoller = new PollingModel_1.Poller(pollSetting, function () { return _this.pollDeploymentStatus(); }, function (deployed) {\r\n if (deployed) {\r\n _this.waitingForDeployment = false;\r\n _this.deployPoller.stop();\r\n if (_this.component) {\r\n _this.component.setState(_this.botPageState);\r\n }\r\n }\r\n });\r\n }\r\n return this._deployPoller;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BotController.prototype, \"kuduClient\", {\r\n get: function () {\r\n if (Environment_1.Environment.isInBotFrameworkAzureExtension) {\r\n if (this.botSub && this.botSub.Bot && this.botSub.Bot.Endpoint && this.app.signedInUser && this.app.signedInUser.AzureToken) {\r\n var kuduUri = index_3.KuduClient.getKuduSiteName(this.botSub.Bot);\r\n return $.Deferred().resolve(index_3.KuduClient.createFromArmToken(kuduUri, this.app.signedInUser.AzureToken));\r\n }\r\n }\r\n return Rest.CodeClient.getScmAuthz(this.botId)\r\n .then(function (authz) {\r\n return $.Deferred().resolve(index_3.KuduClient.createFromScmAuthorization(authz));\r\n });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BotController.prototype, \"botAppSettingsProps\", {\r\n get: function () {\r\n return this._botAppSettingsProps || (debugAppSettings ? {\r\n openBlade: this.openBlade.bind(this),\r\n handleChange: this.noop.bind(this),\r\n onSave: this.noop.bind(this),\r\n onDropIcon: this.noop.bind(this),\r\n downloadZip: this.downloadZip.bind(this),\r\n onZipDownloaded: this.noop.bind(this),\r\n initialBot: null,\r\n scmType: this.scmType,\r\n v4UI: true,\r\n kuduClient: this.kuduClient,\r\n armClient: this.armClient\r\n } : null);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n BotController.prototype.openBlade = function (bladeType) {\r\n var _this = this;\r\n if (!InFrame_1.default()) {\r\n this.getAzureBladeUrl(bladeType)\r\n .then(function (tabUrl) {\r\n openTab_1.default(tabUrl);\r\n })\r\n .fail(function () {\r\n var tabUrl = azurePortalLinks_1.getAzurePortalBladeUrl(_this.botSub.Bot, null, bladeType);\r\n openTab_1.default(tabUrl);\r\n });\r\n }\r\n else if (this.containerController && this.containerController instanceof AzurePortalPageController_1.AzurePortalPageController) {\r\n this.containerController.openBlade(bladeType);\r\n }\r\n };\r\n BotController.prototype.getAzureBladeUrl = function (bladeType) {\r\n var _this = this;\r\n return this.graphClient.then(function (gc) {\r\n return gc.getTenantDetails(_this.tenantId);\r\n })\r\n .then(function (tenantInfo) {\r\n var domainName = tenantInfo.DomainName;\r\n var tabUrl = azurePortalLinks_1.getAzurePortalBladeUrl(_this.botSub.Bot, domainName, bladeType);\r\n return $.Deferred().resolve(tabUrl);\r\n });\r\n };\r\n Object.defineProperty(BotController.prototype, \"botAppCIProps\", {\r\n get: function () {\r\n var _this = this;\r\n return {\r\n openBlade: this.openBlade.bind(this),\r\n downloadZip: this.downloadZip.bind(this),\r\n bot: this.botSub ? this.botSub.Bot : null,\r\n scmType: function () { return _this.scmType; },\r\n bladeUrl: function (blade) {\r\n return InFrame_1.default() ? $.Deferred().resolve('') : _this.getAzureBladeUrl(blade);\r\n },\r\n kuduClient: function () { return _this.kuduClient; },\r\n armClient: function () { return _this.armClient; },\r\n botRsrcId: $.Deferred().resolve(this.botSub ? botResourceId_1.default(this.botSub.Bot) : null),\r\n botDeploymentLogFound: !!this.botSub,\r\n pendingDownload: false,\r\n blobUrl: null,\r\n onZipDownloaded: this.noop.bind(this),\r\n expandoOpenedAlways: true,\r\n hideTitle: true,\r\n toggleTip: null\r\n };\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BotController.prototype, \"armClient\", {\r\n get: function () {\r\n return Rest.AccountClient.exchangeArmToken(this.tenantId).then(function (token) {\r\n return $.Deferred().resolve(new index_3.ArmClient(token));\r\n });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BotController.prototype, \"tenantId\", {\r\n get: function () {\r\n return this.botSub && this.botSub.Bot && this.botSub.Bot.ProvisionInfo ?\r\n this.botSub.Bot.ProvisionInfo.TenantId : null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BotController.prototype, \"graphClient\", {\r\n get: function () {\r\n return Rest.AccountClient.exchangeGraphToken(this.tenantId).then(function (token) {\r\n return $.Deferred().resolve(new index_3.GraphApi(token));\r\n });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n BotController.prototype.noop = function () {\r\n };\r\n BotController.prototype.downloadZip = function () {\r\n return downloadBotSrc_1.downloadBotSource(this.kuduClient);\r\n };\r\n BotController.prototype.unload = function () {\r\n if (this._deployPoller && !this._deployPoller.isStopped()) {\r\n this._deployPoller.stop();\r\n }\r\n _super.prototype.unload.call(this);\r\n };\r\n BotController.prototype.isUnloadable = function (callback) {\r\n if (this.hasUnsavedChanges()) {\r\n Dialogs.MessageBox.ask(\"Unsaved changes will be lost. Are you sure?\").done(function () {\r\n callback(true);\r\n }).fail(function () {\r\n callback(false);\r\n });\r\n }\r\n else {\r\n callback(true);\r\n }\r\n };\r\n BotController.prototype.hasUnsavedChanges = function () {\r\n return (this._botEditController && this._botEditController.hasUnsavedChanges()) ||\r\n (this._botCodeEditorController && this._botCodeEditorController.hasUnsavedChanges()) ||\r\n (this.component && this.component.state.authoringDirty);\r\n };\r\n BotController.prototype.render = function (params) {\r\n _super.prototype.render.call(this, params);\r\n this.botId = params[\"id\"];\r\n this.channel = params[\"channelId\"];\r\n this.renderPage(this.botId);\r\n this.setActiveJumboActiveLink(index_1.NavLinks.mybots);\r\n };\r\n BotController.prototype.handleTenantSwitching = function (xhr) {\r\n var apiErr = parseApiError_1.parseApiError(xhr);\r\n if (apiErr && apiErr.code === 401 && apiErr.message.indexOf('/login?') >= 0) {\r\n window.location.href = apiErr.message;\r\n return true;\r\n }\r\n if (apiErr && apiErr.code === 'ExpiredAuthenticationToken') {\r\n var curUrl = Links_1.relativeUrl(window.location);\r\n window.location.href = \"/login?requestUrl=\" + encodeURIComponent(curUrl);\r\n return true;\r\n }\r\n return false;\r\n };\r\n BotController.prototype.checkBotDeployStatus = function (bot) {\r\n var _this = this;\r\n if (Environment_1.Environment.isInBotFrameworkAzureExtension) {\r\n return;\r\n }\r\n if (index_2.isStillDeploying(bot)) {\r\n this.waitingForDeployment = true;\r\n this.deployPoller.start();\r\n }\r\n else if (this.botPageState.showWebChatPending) {\r\n this.pollDeploymentStatus().then(function (ready) {\r\n if (!ready) {\r\n _this.deployPoller.start();\r\n }\r\n });\r\n }\r\n if (this.statusBar == null) {\r\n this.statusBar = React.createElement(index_2.V3Update, { bot: bot });\r\n }\r\n };\r\n BotController.prototype.renderPage = function (botId) {\r\n var _this = this;\r\n if (botId) {\r\n this.botId = botId;\r\n this.statusBar = React.createElement(index_2.BotProgress, { progress: Intercom_Resources_DevPortal_1.Resources.loadingBot });\r\n this.setPageStatusFlag(ControllerBase_1.PageStatusFlags.LoadingBot);\r\n Rest.BotManagerClient.getById(botId)\r\n .then(function (botSubscription) {\r\n if (!_this.isLoaded()) {\r\n return;\r\n }\r\n _this.botSub = botSubscription;\r\n return _this.loadBotState(botSubscription.Bot);\r\n })\r\n .done(function () {\r\n _this.statusBar = null;\r\n if (_this.clearPageStatusFlag(ControllerBase_1.PageStatusFlags.LoadingBot)) {\r\n _this.renderCommon();\r\n }\r\n _this.saveBotStateAndRender(_this.botSub);\r\n })\r\n .fail(function (jqXHR, textStatus, errorThrown) {\r\n _this.statusBar = null;\r\n if (_this.clearPageStatusFlag(ControllerBase_1.PageStatusFlags.LoadingBot)) {\r\n _this.renderCommon();\r\n }\r\n if (!_this.handleTenantSwitching(jqXHR)) {\r\n _this.handleHttpResponseError(jqXHR);\r\n }\r\n });\r\n }\r\n if (!this.botSub) {\r\n ReactDOM.render(React.createElement(index_2.EmptyBotPage, {}), this.pageContent, function () {\r\n _this.scrollToTop();\r\n });\r\n }\r\n };\r\n BotController.prototype.loadBotState = function (bot) {\r\n var p1 = this.getBotLogs(bot.Id);\r\n return $.when(p1);\r\n };\r\n Object.defineProperty(BotController.prototype, \"botEditorController\", {\r\n get: function () {\r\n if (!this._botEditController) {\r\n this._botEditController = new BotEditController_1.BotEditController(this.app, this, this.botAppSettingsProps);\r\n }\r\n return this._botEditController;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BotController.prototype, \"botCodeEditorController\", {\r\n get: function () {\r\n if (!this._botCodeEditorController) {\r\n this._botCodeEditorController = new BotCodeEditorController_1.BotCodeEditorController(this.app, this);\r\n if (this.botId) {\r\n this._botCodeEditorController.setBotId(this.botId, this.botSub && this.botSub.Bot && this.botSub.Bot.ProvisionInfo ?\r\n this.botSub.Bot.ProvisionInfo.SubscriptionId : null);\r\n }\r\n }\r\n return this._botCodeEditorController;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BotController.prototype, \"botCodeSetupController\", {\r\n get: function () {\r\n return new BotCodeSetupController_1.BotCodeSetupController(this.app, this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BotController.prototype, \"scmType\", {\r\n get: function () {\r\n return this.kuduClient\r\n .then(function (client) { return client.settings; })\r\n .then(function (settings) { return $.Deferred().resolve(settings['ScmType']); });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n BotController.prototype.getBotPageProps = function (botSub) {\r\n var _this = this;\r\n var bot = botSub.Bot;\r\n var botType = BotUtils_1.BotUtils.getBotType(bot);\r\n var subscriptionKey = { primary: botSub.PrimarySubscriptionKey };\r\n this.channelDataHandlers.showEmbedHandler = function (_lastFocus) { return _this.showEmbedCodes(_lastFocus); };\r\n return {\r\n controller: this,\r\n routes: Routes,\r\n botSettingsTabProps: {\r\n bot: bot,\r\n subscriptionKeys: subscriptionKey,\r\n channelDataHandlers: this.channelDataHandlers,\r\n isAdmin: function () { return _this.isAdminOrSupport(); },\r\n isReviewer: function () { return _this.isReviewer(); },\r\n isSubmitForReviewFlighted: this.app.isSubmitForReviewFlighted(),\r\n isUserV3Flighted: this.app.isUserFeatureFlighted('v3'),\r\n configuredChannels: BotController.getConfiguredChannels(bot),\r\n reviewStatusDetail: botSub.ReviewStatusDetail,\r\n },\r\n botEditorProps: this.botEditorController.getBotEditorProps(bot, this.botAppSettingsProps, function (editor) { _this.botEditorController.setComponent(editor); }),\r\n botCodeEditorProps: this.botCodeEditorController.getBotCodeEditorProps({\r\n scmType: function () {\r\n if (_this.containerController) {\r\n return _this.containerController['state'].scmType;\r\n }\r\n return 'None';\r\n },\r\n openTab: _.bind(this.openTab, this),\r\n onSetCodeEditor: function (editor) { _this.botCodeEditorController.setComponent(editor); }\r\n }),\r\n botCodeSetupProps: {\r\n scmType: function () { return _this.scmType; },\r\n ciProps: this.botAppCIProps,\r\n setCodeSetup: function (x) {\r\n _this.botCodeSetupController.component = x;\r\n if (_this.botSub && _this.botSub.Bot && x) {\r\n x.setState({ bot: _this.botSub.Bot });\r\n }\r\n },\r\n setLoading: function (f) {\r\n _this.statusBar = f ? React.createElement(index_2.BotProgress, { progress: Intercom_Resources_DevPortal_1.Resources.loadingBot }) : null;\r\n },\r\n onScmTypeChange: function () {\r\n if (_this.containerController) {\r\n if (_this.containerController instanceof AzurePortalPageController_1.AzurePortalPageController) {\r\n _this.containerController.refreshScmType();\r\n }\r\n }\r\n }\r\n },\r\n tabClickHandler: function (tab) { return _this.onTabClick(tab); },\r\n testClickHandler: function () { return _this.onTestClick(); },\r\n importBotHandler: function (f) { return _this.onImportBot(f); },\r\n channelConfigClickHandler: function (s) { return _this.onChannelConfigNav(s); },\r\n channelConfigInterface: {\r\n leaveChannelConfig: function () { return _this.onChannelConfigLeave(); },\r\n reloadBot: function () { return _this.reloadBot(); },\r\n },\r\n initialBot: bot,\r\n initialSelectedTab: this.tabFromPath(this.app.getCurrentPagePath(), botType),\r\n initialSubkeys: subscriptionKey,\r\n initialShowWebChat: this.botPageState.showWebChat,\r\n initialChannel: this.channel,\r\n initialAuthoringDirty: false,\r\n initialAuthoringError: false,\r\n onSetBotAppSettings: function (x) { _this.setBotAppSettings(x); },\r\n azureToken: this.app.signedInUser.AzureToken,\r\n canWriteToBot: botSub.CanWriteToBot\r\n };\r\n };\r\n BotController.prototype.setBotAppSettings = function (x) {\r\n if (this.containerController) {\r\n _super.prototype.setBotAppSettings.call(this, x);\r\n }\r\n else {\r\n this.botAppSettings = x;\r\n if (this.botAppSettings) {\r\n this.botAppSettings.setState({\r\n bot: this.botSub ? this.botSub.Bot : null,\r\n botDeploymentLogFound: true,\r\n });\r\n }\r\n }\r\n };\r\n BotController.prototype.saveBotStateAndRender = function (botSub) {\r\n var _this = this;\r\n var bot = botSub.Bot;\r\n var botType = BotUtils_1.BotUtils.getBotType(bot);\r\n var channelReviewStatuses = botSub.ReviewStatuses;\r\n this.botId = bot.Id;\r\n if (!this.botSub) {\r\n this.botSub = botSub;\r\n if (this.clearPageStatusFlag(ControllerBase_1.PageStatusFlags.LoadingBot)) {\r\n this.renderCommon();\r\n }\r\n }\r\n this.channelDataHandlers.getChannelPublishStatus = function (channelId) {\r\n return channelReviewStatuses[channelId];\r\n };\r\n if (!bot.Endpoint && bot.ProvisionInfo && index_2.isDeploymentFinished(bot)) {\r\n this.waitingForDeployment = true;\r\n this.deployPoller.start();\r\n }\r\n this.checkBotDeployStatus(bot);\r\n if (this.isWebChatRoute(this.app.getCurrentPagePath())) {\r\n var element = React.createElement(WebChatPage_1.WebChatPage, { bot: bot });\r\n ReactDOM.render(element, this.pageContent);\r\n }\r\n else {\r\n var props = this.getBotPageProps(botSub);\r\n var element = React.createElement(index_2.BotPage, props);\r\n this.updateTitle(bot.Name);\r\n this.component = ReactDOM.render(element, this.pageContent, function () {\r\n _this.scrollToTop();\r\n _this.setupEventHandlers();\r\n });\r\n this.component.setState({\r\n bot: bot,\r\n selectedTab: this.tabFromPath(this.app.getCurrentPagePath(), botType),\r\n channel: this.channel,\r\n reviewStatusDetail: botSub.ReviewStatusDetail\r\n });\r\n if (this.botCodeSetupController.component) {\r\n this.botCodeSetupController.component.setState({ bot: bot });\r\n }\r\n if (botType === BotUtils_1.BotTypes.ABSv1) {\r\n this.botCodeEditorController.setBotId(bot.Id, bot.ProvisionInfo ? bot.ProvisionInfo.SubscriptionId : null);\r\n }\r\n }\r\n };\r\n BotController.prototype.onImportBot = function (file) {\r\n var _this = this;\r\n var requestVerificationToken = Cookies_1.readCookie('Csrf-Token');\r\n var def = $.Deferred();\r\n $.ajax({\r\n type: 'POST',\r\n url: \"/api/botApp/\" + this.botId + \"/import\",\r\n contentType: file.type,\r\n headers: _.extend(Rest.ajaxHeaders || {}, { 'X-Csrf-Token': requestVerificationToken }),\r\n data: file,\r\n processData: false,\r\n success: function (r) { return def.resolve(r); },\r\n error: function (e) { return def.reject(e); }\r\n });\r\n this.showProgressMask = true;\r\n def.always(function () {\r\n _this.showProgressMask = false;\r\n });\r\n return def;\r\n };\r\n BotController.prototype.tabFromPath = function (path, botType) {\r\n path = path ? path.toLowerCase().trim() : path;\r\n var tab;\r\n if (path !== '/bots') {\r\n tab = Routes(botType)\r\n .filter(function (entry) { return entry.route === path; })\r\n .map(function (entry) { return entry.tab; })\r\n .shift();\r\n }\r\n if (_.isUndefined(tab)) {\r\n if (!InFrame_1.default()) {\r\n tab = botType == BotUtils_1.BotTypes.ABSv2 ? index_2.BotTabs.Build : index_2.BotTabs.Channels;\r\n }\r\n else {\r\n switch (botType) {\r\n case BotUtils_1.BotTypes.ABSCode:\r\n case BotUtils_1.BotTypes.ABSv2:\r\n tab = index_2.BotTabs.Build;\r\n break;\r\n case BotUtils_1.BotTypes.ABSv1:\r\n tab = index_2.BotTabs.Develop;\r\n break;\r\n default:\r\n tab = index_2.BotTabs.Channels;\r\n break;\r\n }\r\n }\r\n }\r\n return tab;\r\n };\r\n BotController.prototype.openTab = function (tab, callback) {\r\n if (tab == BotTabPage_1.BotPageTab.settings) {\r\n this.onTabClick(index_2.BotTabs.Settings, callback);\r\n }\r\n };\r\n BotController.prototype.onTabClick = function (tab, callback) {\r\n this.component.setState({\r\n selectedTab: tab,\r\n channel: \"\"\r\n }, function () {\r\n if (callback) {\r\n callback();\r\n }\r\n });\r\n var botType = BotUtils_1.BotUtils.getBotType(this.component.state.bot);\r\n var route = Routes(botType)\r\n .filter(function (entry) { return entry.tab === tab; })\r\n .map(function (entry) { return entry.route; })\r\n .shift() || '/bots';\r\n if (this.containerController) {\r\n }\r\n else if (route === '/bots') {\r\n this.app.navigate(route, _.omit(this.params, \"channelId\"));\r\n }\r\n else {\r\n history.pushState(null, null, route + \"?id=\" + this.botId);\r\n }\r\n };\r\n BotController.prototype.onTestClick = function () {\r\n this.botPageState.showWebChat = !this.botPageState.showWebChat;\r\n this.component.setState(this.botPageState);\r\n };\r\n BotController.prototype.onChannelConfigNav = function (toChannel) {\r\n var allowedChannels = BotUtils_1.BotUtilsV2.migrationOptionalChannels;\r\n var channelIsConfigured = this.botSub.Bot.ConfiguredChannels.indexOf(toChannel.toLowerCase()) >= 0;\r\n var requireABS = BotUtils_1.BotUtilsV2.isMigrationOptional(this.botSub.Bot) && allowedChannels.indexOf(toChannel.toLowerCase()) < 0;\r\n var disabled = FlightUtils_1.FlightUtils.areMigrationRequiredBotsDisabled;\r\n if (!channelIsConfigured && requireABS && disabled) {\r\n var mb = new Dialogs.MessageBox({\r\n okButtonLabel: Intercom_Resources_DevPortal_1.Resources.okButtonText\r\n });\r\n mb.message = Intercom_Resources_DevPortal_1.Resources.channelRequiresABSBot;\r\n mb.showDialog();\r\n }\r\n else {\r\n this.channelConfigNav(toChannel);\r\n }\r\n };\r\n BotController.prototype.channelConfigNav = function (toChannel) {\r\n this.component.setState({ channel: toChannel, selectedTab: index_2.BotTabs.Channels });\r\n var botType = BotUtils_1.BotUtils.getBotType(this.component.state.bot);\r\n var route = Routes(botType)\r\n .filter(function (entry) { return entry.tab === index_2.BotTabs.Channels; })\r\n .map(function (entry) { return entry.route; })\r\n .shift() || '/bots';\r\n history.pushState(null, null, route + \"?id=\" + this.botId + \"&channelId=\" + toChannel);\r\n };\r\n BotController.prototype.onChannelConfigLeave = function () {\r\n this.component.setState({ channel: \"\", selectedTab: index_2.BotTabs.Channels });\r\n var botType = BotUtils_1.BotUtils.getBotType(this.component.state.bot);\r\n var route = Routes(botType)\r\n .filter(function (entry) { return entry.tab === index_2.BotTabs.Channels; })\r\n .map(function (entry) { return entry.route; })\r\n .shift() || '/bots';\r\n history.pushState(null, null, route + \"?id=\" + this.botId);\r\n };\r\n BotController.prototype.reloadBot = function () {\r\n var _this = this;\r\n Rest.BotManagerClient.getById(this.botId).then(function (botSubscription) {\r\n _this.botSub = botSubscription;\r\n _this.component.setState({ bot: botSubscription.Bot });\r\n _this.botEditorController.updateBot(botSubscription.Bot);\r\n });\r\n };\r\n BotController.prototype.refreshFromRemote = function () {\r\n this.renderPage(this.component.state.bot.Id);\r\n };\r\n BotController.prototype.setupEventHandlers = function () {\r\n var _this = this;\r\n var $page = $(this.pageContent);\r\n $page.off();\r\n $page.on('click', '.regenerate-link', function (ev) { return _this.onRegenerateKeyClicked(ev); });\r\n $page.on('click', '.perform-test', function (ev) { return _this.onPerformTest(); });\r\n $page.on('click', '.maximize', function (ev) { return _this.onToggleMaximize(ev); });\r\n $page.on('click', '.refresh-channels', function (ev) { return _this.refreshFromRemote(); });\r\n };\r\n BotController.prototype.pollDeploymentStatus = function () {\r\n var _this = this;\r\n var deferred = $.Deferred();\r\n var bot = this.component ? this.component.state.bot : null;\r\n bot = bot || (this.botSub ? this.botSub.Bot : {});\r\n var isSDKBot = BotUtils_1.BotUtils.isSDKBot(bot);\r\n if (bot.Id && !isSDKBot) {\r\n Rest.BotManagerClient.getProgress(bot.Id, false)\r\n .then(function (x) {\r\n if (index_2.isDeploymentFinished(x)) {\r\n if (BotUtils_1.BotUtils.isABSv1Bot(x)) {\r\n return _this.kuduClient;\r\n }\r\n else {\r\n _this.botPageState.showWebChatPending = false;\r\n return deferred.resolve(true);\r\n }\r\n }\r\n else {\r\n return deferred.resolve(false);\r\n }\r\n }, function (xhr) {\r\n if (xhr && !_this.handleTenantSwitching(xhr)) {\r\n _this.botPageState.showWebChatPending = false;\r\n return $.Deferred().resolve(true);\r\n }\r\n })\r\n .then(function (x) {\r\n if (_.isBoolean(x)) {\r\n return deferred;\r\n }\r\n if (x instanceof index_3.KuduClient) {\r\n var client_1 = x;\r\n client_1.get(client_1.scmUri.format() + \"/api/vfs/site/deployment.log\")\r\n .then(function (log) {\r\n _this.botPageState.showWebChatPending = false;\r\n deferred.resolve(true);\r\n })\r\n .fail(function (xhr) {\r\n if (xhr && xhr.status == 404 && client_1) {\r\n deferred.resolve(false);\r\n }\r\n else {\r\n deferred.reject(xhr || 'failed to ping bot deployment log');\r\n }\r\n });\r\n }\r\n })\r\n .fail(function (xhr) {\r\n _this.waitingForDeployment = false;\r\n if (xhr && !_this.handleTenantSwitching(xhr)) {\r\n _this.handleHttpResponseError(xhr);\r\n }\r\n });\r\n }\r\n else {\r\n this.botPageState.showWebChatPending = !isSDKBot;\r\n deferred.resolve(isSDKBot);\r\n }\r\n return deferred;\r\n };\r\n BotController.prototype.onToggleMaximize = function (ev) {\r\n var $page = $(this.pageContent);\r\n var $card = $(ev.currentTarget).parent('.grid-card');\r\n var maxPage = 'maximized';\r\n var maxCard = 'grid-card-full-width';\r\n if ($page.hasClass(maxPage)) {\r\n $card.removeClass(maxCard);\r\n $page.removeClass(maxPage);\r\n }\r\n else {\r\n $card.addClass(maxCard);\r\n $page.addClass(maxPage);\r\n }\r\n };\r\n BotController.prototype.onRegenerateKeyClicked = function (ev) {\r\n var _this = this;\r\n if (this.component.state.bot && this.component.state.bot.Id) {\r\n ev.preventDefault();\r\n var isPrimary = $(ev.target).hasClass('primary');\r\n Dialogs.MessageBox.ask(\"Are you sure you want to regenerate this key?\").done(function () {\r\n _this.regenerateKey(isPrimary);\r\n });\r\n }\r\n };\r\n BotController.prototype.regenerateKey = function (isPrimary) {\r\n var _this = this;\r\n var progressDialog = ProgressDialog_1.ProgressDialog.show(\"Regenerating secret...\");\r\n Rest.BotManagerClient.regenerateSubscriptionKey(this.component.state.bot.Id, isPrimary).done(function (botSubscription) {\r\n if (_this.isLoaded()) {\r\n progressDialog.closeDialog();\r\n _this.component.setState({\r\n bot: botSubscription.Bot,\r\n subscriptionKeys: {\r\n primary: botSubscription.PrimarySubscriptionKey\r\n }\r\n });\r\n }\r\n }).fail(function (xhr) {\r\n progressDialog.closeDialog();\r\n _this.handleHttpResponseError(xhr);\r\n });\r\n };\r\n BotController.prototype.onPerformTest = function () {\r\n var _this = this;\r\n var $page = $(this.pageContent);\r\n var inputText = $page.find(\".test-input\").val();\r\n var $output = $page.find(\".test-output\");\r\n $output.text('');\r\n Rest.BotManagerClient.testBot(this.component.state.bot.Id, inputText).done(function (json) {\r\n if (!_this.isLoaded())\r\n return;\r\n try {\r\n var obj = JSON.parse(json);\r\n if (obj) {\r\n var s = JSON.stringify(obj, null, 4);\r\n $output.text(s);\r\n }\r\n }\r\n catch (ex) {\r\n $output.text(json);\r\n }\r\n }).fail(function (xhr) {\r\n _this.handleHttpResponseError(xhr);\r\n });\r\n };\r\n BotController.prototype.refreshScmType = function () {\r\n var codeSetup = this.botCodeSetupController.component;\r\n if (codeSetup) {\r\n codeSetup.refreshScmType();\r\n }\r\n };\r\n BotController.getConfiguredChannels = function (bot) {\r\n if (bot.ConfiguredChannels) {\r\n return ClientAppSettings_1.clientAppSettings.channels.filter(function (ch) { return bot.ConfiguredChannels.indexOf(ch.Id) != -1; });\r\n }\r\n return [];\r\n };\r\n BotController.prototype.setAnnouncementState = function (announcements) {\r\n _super.prototype.setAnnouncementState.call(this, announcements);\r\n this.botPageState.announcements = announcements;\r\n if (this.component) {\r\n this.component.setState({ announcements: announcements });\r\n this.component.forceUpdate();\r\n }\r\n };\r\n BotController.prototype.showEmbedCodes = function (_lastFocus) {\r\n var _this = this;\r\n var progressDialog = ProgressDialog_1.ProgressDialog.show(Intercom_Resources_DevPortal_1.Resources.embedPanelGettingCodes);\r\n Rest.BotManagerClient.getBotContactCard(this.botId).done(function (contactCard) {\r\n progressDialog.closeDialog();\r\n if (!contactCard.Contacts.length) {\r\n Dialogs.MessageBox.show(Intercom_Resources_DevPortal_1.Resources.embedPanelNoCodeAvailable);\r\n }\r\n else {\r\n var dialog_1 = new GenericDialog_1.GenericDialog(EmbedCodeView.EmbedCodePanel, {\r\n botId: _this.botId,\r\n contacts: contactCard.Contacts,\r\n webChatClick: function () {\r\n dialog_1.closeDialog();\r\n _this.onChannelConfigNav(\"webchat\");\r\n }\r\n }, { dialogClass: 'embed-code-dialog' });\r\n dialog_1.showDialog(_lastFocus);\r\n }\r\n }).fail(function (xhr) {\r\n progressDialog.closeDialog();\r\n _this.handleHttpResponseError(xhr);\r\n });\r\n };\r\n return BotController;\r\n }(BotControllerBase_1.BotControllerBase));\r\n __decorate([\r\n index_4.lazy()\r\n ], BotController.prototype, \"kuduClient\", null);\r\n __decorate([\r\n index_4.lazy()\r\n ], BotController.prototype, \"armClient\", null);\r\n __decorate([\r\n index_4.lazy()\r\n ], BotController.prototype, \"graphClient\", null);\r\n __decorate([\r\n index_4.lazy()\r\n ], BotController.prototype, \"botCodeSetupController\", null);\r\n exports.BotController = BotController;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 245 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(31), __webpack_require__(7), __webpack_require__(253), __webpack_require__(162), __webpack_require__(27), __webpack_require__(40), __webpack_require__(103), __webpack_require__(14), __webpack_require__(8), __webpack_require__(250), __webpack_require__(279)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, ControllerBase_1, Rest, Editor, Views, Dialogs, Links, ProgressDialog_1, index_1, ClientAppSettings_1, BotVersionEditor_1, clacky_1) {\r\n var BotEditController = (function (_super) {\r\n __extends(BotEditController, _super);\r\n function BotEditController(app, containerController, botAppSettingsProps) {\r\n var _this = _super.call(this, app) || this;\r\n _this.botAppSettingsProps = botAppSettingsProps;\r\n _this.pendingUnsavedChanges = false;\r\n _this.containerController = containerController;\r\n window.refreshBotMsaApp = function (appId) {\r\n clacky_1.log('/bots/new#closeMSAPage', 'Back from MSA dialog');\r\n _this.state.bot.MsaAppId = appId;\r\n _this.component.setState(_this.state);\r\n };\r\n return _this;\r\n }\r\n BotEditController.prototype.setComponent = function (editor) {\r\n if (editor == null && this.hasUnsavedChanges()) {\r\n this.pendingUnsavedChanges = true;\r\n }\r\n this.component = editor;\r\n if (this.component) {\r\n this.component.setState(this.state);\r\n if (!this.initialBot) {\r\n this.initialBot = _.extend({}, this.state.bot);\r\n }\r\n }\r\n };\r\n BotEditController.prototype.hasUnsavedChanges = function () {\r\n if (!this.initialBot) {\r\n return false;\r\n }\r\n if (!this.component) {\r\n return this.pendingUnsavedChanges;\r\n }\r\n var updatedBot = $.extend({}, this.initialBot);\r\n this.gatherFormValues(updatedBot);\r\n for (var field in updatedBot) {\r\n if (updatedBot.hasOwnProperty(field)) {\r\n var oldValue = this.initialBot[field];\r\n var newValue = updatedBot[field];\r\n if (newValue === '') {\r\n if (_.isString(oldValue) && oldValue.length) {\r\n return true;\r\n }\r\n }\r\n else {\r\n if ($.isArray(newValue)) {\r\n if (newValue.length === 0) {\r\n if ($.isArray(oldValue) && oldValue.length) {\r\n return true;\r\n }\r\n }\r\n else {\r\n if (!$.isArray(oldValue))\r\n return true;\r\n var newValueJSON = JSON.stringify(newValue);\r\n var oldValueJSON = JSON.stringify(oldValue);\r\n if (newValueJSON != oldValueJSON)\r\n return true;\r\n }\r\n }\r\n else {\r\n if (newValue != oldValue)\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n BotEditController.prototype.isUnloadable = function (callback) {\r\n if (this.hasUnsavedChanges()) {\r\n Dialogs.MessageBox.ask(\"Unsaved changes will be lost. Are you sure?\").done(function () {\r\n callback(true);\r\n }).fail(function () {\r\n callback(false);\r\n });\r\n }\r\n else {\r\n callback(true);\r\n }\r\n };\r\n BotEditController.prototype.render = function (params) {\r\n var botId = params[\"id\"];\r\n _super.prototype.render.call(this, params);\r\n this.state = Views.BotEditor.createNewState(null);\r\n this.renderPage(botId);\r\n };\r\n BotEditController.prototype.updateBot = function (newBot) {\r\n if (this.state && this.state.bot) {\r\n this.state.bot = newBot;\r\n }\r\n };\r\n BotEditController.prototype.ensureCurrentVersionEndpoint = function (currVersion, endpoints) {\r\n var result = [];\r\n var hasCurrentVersion = false;\r\n result = endpoints.map(function (endpoint) {\r\n if (endpoint.Version === currVersion) {\r\n hasCurrentVersion = true;\r\n }\r\n return endpoint;\r\n });\r\n if (!hasCurrentVersion) {\r\n result.push({ Url: '', Version: currVersion });\r\n }\r\n return result;\r\n };\r\n BotEditController.prototype.onSystemTagsChange = function (tags) {\r\n if (this.state.bot) {\r\n this.state.bot.SystemHashtags = tags;\r\n this.component.setState(this.state);\r\n }\r\n };\r\n BotEditController.prototype.getBotEditorProps = function (bot, botAppSettingsProps, onSetEditor) {\r\n var _this = this;\r\n if (!this.state) {\r\n this.state = Views.BotEditor.createNewState(bot);\r\n }\r\n else {\r\n this.state.bot = bot;\r\n }\r\n return {\r\n initialBot: this.state.bot,\r\n inCreateMode: false,\r\n botAppSettingsProps: botAppSettingsProps,\r\n isAdmin: this.isAdminOrSupport(),\r\n onSetEditor: onSetEditor,\r\n onClickButton: _.debounce(function (x) { return _this.onButtonClicked(x); }, 500, true),\r\n onDropIcon: function (files) { return _this.onDropIcon(files); },\r\n isFeatureFlighted: this.app.isFeatureFlighted,\r\n onSystemTagsChange: _.bind(this.onSystemTagsChange, this),\r\n onSetBotAppSettings: function (x) { return _this.setBotAppSettings(x); }\r\n };\r\n };\r\n ;\r\n BotEditController.prototype.renderPage = function (botId) {\r\n var _this = this;\r\n if (botId) {\r\n this.setActiveJumboActiveLink(index_1.NavLinks.mybots);\r\n Rest.BotManagerClient.getById(botId).done(function (botSubscription) {\r\n if (!_this.isLoaded())\r\n return;\r\n _this.state.bot = botSubscription.Bot;\r\n _this.state.subscriptionKeys = {\r\n primary: botSubscription.PrimarySubscriptionKey\r\n };\r\n if (_this.app.isUserFeatureFlighted('v3')) {\r\n _this.state.bot.Endpoints = _this.ensureCurrentVersionEndpoint('3.0', _this.state.bot.Endpoints);\r\n }\r\n if (_this.state.bot.MsaAppId) {\r\n _this.state.bot.MsaAppId = _this.state.bot.MsaAppId.toLowerCase();\r\n }\r\n _this.initialBot = $.extend({}, _this.state.bot);\r\n _this.updateTitle(_this.state.bot.Name + \" | edit details\");\r\n var props = _this.getBotEditorProps(_this.state.bot, _this.botAppSettingsProps, function (x) { });\r\n var element = React.createElement(Views.BotEditor, props);\r\n _this.component = ReactDOM.render(element, _this.pageContent, function () { return _this.setupEventHandlers(); });\r\n _this.component.setState(_this.state);\r\n }).fail(function (jqXHR, textStatus, errorThrown) {\r\n _this.handleHttpResponseError(jqXHR);\r\n });\r\n }\r\n else {\r\n this.setActiveJumboActiveLink(index_1.NavLinks.mybots);\r\n var email = this.app.signedInUser ? this.app.signedInUser.EmailAddress : '';\r\n var defaultIconUrl = ClientAppSettings_1.clientAppSettings.defaultIconUrl;\r\n var newBotVersion = this.app.isUserFeatureFlighted('v1') ? '1.0' : '3.0';\r\n var endpoints = [\r\n { Url: '', Version: newBotVersion }\r\n ];\r\n var newBot = {\r\n Name: '',\r\n Description: '',\r\n PublisherEmail: email,\r\n Endpoint: '',\r\n Publisher: '',\r\n Website: '',\r\n SystemHashtags: [],\r\n OwnerIds: [email],\r\n Languages: ['en'],\r\n Listed: false,\r\n IconUrl: defaultIconUrl,\r\n DefaultIconColorHash: \"\" + new Date().getTime(),\r\n DeveloperAppInsightKey: '',\r\n DeveloperAppInsightsAPIKey: '',\r\n DeveloperAppInsightsApplicationId: '',\r\n DeveloperBotPrivacyUrl: '',\r\n Id: '',\r\n MsaAppId: '',\r\n ListedMarkets: this.app.isFeatureFlighted('markets') ? ['*'] : null,\r\n Version: newBotVersion,\r\n Endpoints: endpoints\r\n };\r\n newBot.IconUrl = defaultIconUrl.substr(0, defaultIconUrl.lastIndexOf('/')) + \"/\" + index_1.BotImageControl.hashDefaultIconFileName(newBot);\r\n this.initialBot = $.extend({}, newBot);\r\n this.updateTitle(\"Register | my bots\");\r\n var props = {\r\n initialBot: newBot,\r\n inCreateMode: true,\r\n botAppSettingsProps: this.botAppSettingsProps,\r\n onDropIcon: function (files) { return _this.onDropIcon(files); },\r\n onClickButton: _.debounce(function (x) { return _this.onButtonClicked(x); }, 500, true),\r\n onSetEditor: function (x) { },\r\n isFeatureFlighted: this.app.isFeatureFlighted,\r\n isAdmin: this.isAdminOrSupport(),\r\n onSystemTagsChange: _.bind(this.onSystemTagsChange, this),\r\n onSetBotAppSettings: function (x) { return _this.setBotAppSettings(x); }\r\n };\r\n var element = React.createElement(Views.BotEditor, props);\r\n this.component = ReactDOM.render(element, this.pageContent, function () { return _this.setupEventHandlers(); });\r\n this.state.bot = props.initialBot;\r\n this.component.setState(this.state);\r\n }\r\n };\r\n BotEditController.prototype.onDropIcon = function (files) {\r\n var _this = this;\r\n if (files && files.length) {\r\n var file = files[0];\r\n var reader = new FileReader();\r\n reader.onload = function (ev) {\r\n Rest.BotManagerClient.setBotIcon(ev.target['result'], _this.state.bot ? _this.state.bot.Id : null).done(function (url) {\r\n var nextState = _.extend({}, _this.state);\r\n nextState.bot.IconUrl = url;\r\n _this.component.setState(nextState);\r\n }).fail(function (xhr) {\r\n _this.handleHttpResponseError(xhr);\r\n });\r\n };\r\n reader.readAsDataURL(file);\r\n this.component.setState(_.extend({}, this.state, { iconFile: file }));\r\n }\r\n };\r\n BotEditController.prototype.setupEventHandlers = function () {\r\n };\r\n BotEditController.prototype.onButtonClicked = function (ev) {\r\n var $button = $(ev.target);\r\n if ($button.hasClass('register-button')) {\r\n this.onRegisterClicked();\r\n }\r\n else if ($button.hasClass('delete-button')) {\r\n this.onDeleteClicked();\r\n }\r\n else if ($button.hasClass('save-button')) {\r\n this.onSaveClicked();\r\n }\r\n else if ($button.hasClass('get-agent-appId')) {\r\n this.onGetAppIdClicked(ev);\r\n }\r\n else if ($button.hasClass('regenerate-link')) {\r\n this.onRegenerateKeyClicked(ev);\r\n }\r\n else if ($button.hasClass('cancel-button')) {\r\n this.onCancel();\r\n }\r\n };\r\n BotEditController.prototype.onCancel = function () {\r\n if (this.component.props.inCreateMode)\r\n this.app.navigate(\"/bots/provision\");\r\n else\r\n this.app.navigate(Links.botViewLink(this.state.bot));\r\n };\r\n BotEditController.prototype.isValidEmail = function (email) {\r\n return email.match(\"^[^@]+@[^@]+\\.[^@]+$\") !== null;\r\n };\r\n BotEditController.prototype.validateEmailList = function (s) {\r\n var error = null;\r\n var list = s.split(/[;,]+/);\r\n if (s.match(/@/g).length > 1 && list.length < 2)\r\n return 'Incorrect separator for the owner email';\r\n for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {\r\n var email = list_1[_i];\r\n if (!this.isValidEmail(email)) {\r\n return 'One or more email addresses are not valid.';\r\n }\r\n }\r\n return error;\r\n };\r\n BotEditController.prototype.isValidNameFieldLength = function (value) {\r\n return (value.length >= Editor.MIN_NAME_LEN && value.length <= Editor.MAX_NAME_LEN);\r\n };\r\n BotEditController.prototype.gatherFormValues = function (bot) {\r\n var errors = {};\r\n var requiredFieldError = \"* Required field\";\r\n var displayNameLengthError = \"* Display name must be between \" + Editor.MIN_NAME_LEN + \" and \" + Editor.MAX_NAME_LEN + \" characters\";\r\n var botHandleLengthError = \"* Bot handle must be between \" + Editor.MIN_NAME_LEN + \" and \" + Editor.MAX_NAME_LEN + \" characters\";\r\n var $page = $(this.pageContent);\r\n var x = {};\r\n function name(value) {\r\n for (var key in x) {\r\n delete x[key];\r\n return key;\r\n }\r\n return null;\r\n }\r\n if (this.state.bot.Endpoints.length > 1) {\r\n bot.Version = $page.find('[name=input-Version]:radio').filter(':checked').val();\r\n }\r\n else {\r\n bot.Version = this.state.bot.Version;\r\n }\r\n var endpoints = [];\r\n this.state.bot.Endpoints.map(function (endpoint, index) {\r\n endpoint.Url = $page.find('#' + BotVersionEditor_1.BotVersionEditor.endpointId(index)).val();\r\n endpoints.push(endpoint);\r\n if (endpoint.Version === bot.Version) {\r\n bot.Endpoint = endpoint.Url;\r\n }\r\n });\r\n bot.Endpoints = endpoints;\r\n var copy = {\r\n DeveloperAppInsightKey: null,\r\n DeveloperAppInsightsAPIKey: null,\r\n DeveloperAppInsightsApplicationId: null,\r\n MsaAppId: null,\r\n MsaAppType: null,\r\n MsaAppMSIResourceId: null,\r\n MsaAppTenantId: null,\r\n Description: null\r\n };\r\n for (var key in copy) {\r\n var value = $page.find(\"#input-\" + key).val();\r\n if (!_.isUndefined(value)) {\r\n bot[key] = value;\r\n }\r\n }\r\n var required = {\r\n Name: null,\r\n Id: null\r\n };\r\n if (bot.Version === '3.0') {\r\n required.MsaAppId = null;\r\n }\r\n for (var key in required) {\r\n bot[key] = $page.find(\"#input-\" + key).val();\r\n if (!bot[key]) {\r\n errors[key] = requiredFieldError;\r\n }\r\n if (typeof bot.LastSavedDate === \"undefined\") {\r\n if (key === 'Name' && !this.isValidNameFieldLength(bot[key]))\r\n errors[key] = displayNameLengthError;\r\n if (key === 'Id' && !this.isValidNameFieldLength(bot[key]))\r\n errors[key] = botHandleLengthError;\r\n }\r\n }\r\n bot.IconUrl = $page.find(\"#agent-icon-url\").val();\r\n bot.DefaultIconColorHash = $page.find(\"#agent-icon-default-hash\").val();\r\n var $sysTags = $page.find('#agent-systemHashtags');\r\n if ($sysTags.length) {\r\n bot.SystemHashtags = $sysTags.val().split(',').filter(function (t) { return t.length; });\r\n }\r\n var ownerIds = $page.find(\"#input-OwnerIds\").val();\r\n if (ownerIds) {\r\n var ownerIdsError = this.validateEmailList(ownerIds);\r\n if (ownerIdsError)\r\n errors[name(x.OwnerIds = null)] = ownerIdsError;\r\n else\r\n bot.OwnerIds = ownerIds.split(/[;,]+/).map(function (email) { return email.trim(); });\r\n }\r\n return errors;\r\n };\r\n BotEditController.prototype.onRegenerateKeyClicked = function (ev) {\r\n var _this = this;\r\n if (this.state.bot && this.state.bot.Id) {\r\n ev.preventDefault();\r\n var isPrimary = $(ev.target).hasClass('primary');\r\n Dialogs.MessageBox.ask(\"Are you sure you want to regenerate this key?\").done(function () {\r\n _this.regenerateKey(isPrimary);\r\n });\r\n }\r\n };\r\n BotEditController.prototype.regenerateKey = function (isPrimary) {\r\n var _this = this;\r\n var progressDialog = ProgressDialog_1.ProgressDialog.show(\"Regenerating secret...\");\r\n Rest.BotManagerClient.regenerateSubscriptionKey(this.state.bot.Id, isPrimary).done(function (botSubscription) {\r\n if (_this.isLoaded()) {\r\n progressDialog.closeDialog();\r\n var newState = {\r\n subscriptionKeys: {\r\n primary: botSubscription.PrimarySubscriptionKey\r\n }\r\n };\r\n _this.component.setState(newState);\r\n }\r\n }).fail(function (xhr) {\r\n _this.handleHttpResponseError(xhr);\r\n });\r\n };\r\n BotEditController.prototype.onRegisterClicked = function () {\r\n var _this = this;\r\n var bot = {};\r\n if (!this.component.state.termAcknowledged) {\r\n $('#agreeToTerms').addClass('must-check');\r\n Dialogs.MessageBox.show(index_1.resourceStrings.errors.agreementNotChecked);\r\n return;\r\n }\r\n var errors = this.gatherFormValues(bot);\r\n if (!$.isEmptyObject(errors)) {\r\n this.state.errors = errors;\r\n }\r\n else {\r\n this.state.errors = {};\r\n }\r\n var progressDialog = ProgressDialog_1.ProgressDialog.show(\"Saving...\");\r\n Rest.BotManagerClient.create(bot).done(function (createdBot) {\r\n clacky_1.log('/bots/new#created', 'bot registered');\r\n if (!_this.isLoaded())\r\n return;\r\n if (!_this.redirectIfNeeded()) {\r\n _this.state.bot = createdBot;\r\n _this.initialBot = $.extend({}, createdBot);\r\n var $page = $(_this.pageContent);\r\n var $sysTags = $page.find('#agent-systemHashtags');\r\n if ($sysTags) {\r\n var val = $sysTags.val() || '';\r\n var tags_1 = val\r\n .split(',')\r\n .concat(_this.initialBot.SystemHashtags)\r\n .map(function (item) { return item.trim(); });\r\n tags_1 = tags_1.filter(function (item, pos) { return item.length && tags_1.indexOf(item) == pos; });\r\n $sysTags.val(tags_1.join(','));\r\n }\r\n progressDialog.closeDialog();\r\n Dialogs.MessageBox.show(\"Bot created\").done(function () {\r\n _this.app.navigate('/bots', { id: createdBot.Id });\r\n });\r\n }\r\n }).fail(function (xhr) {\r\n progressDialog.closeDialog();\r\n _this.handleHttpResponseError(xhr);\r\n });\r\n };\r\n BotEditController.prototype.handleHttpResponseError = function (xhr) {\r\n var errors = null;\r\n if (xhr && xhr.responseText) {\r\n try {\r\n var errorObj = $.parseJSON(xhr.responseText);\r\n errors = errorObj.Errors;\r\n }\r\n catch (ex) {\r\n }\r\n }\r\n if (!errors || !errors.length) {\r\n return _super.prototype.handleHttpResponseError.call(this, xhr);\r\n }\r\n var errorMap = {};\r\n errors.forEach(function (error) {\r\n var fieldId = error.Field;\r\n if (!errorMap[fieldId]) {\r\n errorMap[fieldId] = error.Message;\r\n }\r\n });\r\n this.state.errors = _.extend(errorMap, this.state.errors || {});\r\n this.component.setState(this.state);\r\n return Dialogs.MessageBox.show(\"Please correct the errors and try again.\").done(function () {\r\n var $field = $('.error-info:visible').closest('.detail-row');\r\n if ($field.length) {\r\n $field[0].scrollIntoView();\r\n }\r\n });\r\n };\r\n BotEditController.prototype.onDeleteClicked = function () {\r\n var _this = this;\r\n if (this.state.bot && this.state.bot.Id) {\r\n var options = {\r\n okButtonLabel: index_1.resourceStrings.deleteBot,\r\n cancelButtonLabel: index_1.resourceStrings.cancel,\r\n className: 'danger'\r\n };\r\n if (this.isAdminOrSupport() && $.inArray(this.app.signedInUser.EmailAddress, this.state.bot.OwnerIds) == -1) {\r\n if (!confirm(\"You are not the owner of \" + this.state.bot.Id + \". Are you sure that you want to delete \" + this.state.bot.Id + \"?\")) {\r\n return;\r\n }\r\n }\r\n var mb = new Dialogs.MessageBox(options);\r\n mb.header = \"You are about to delete this bot\";\r\n mb.message = \"This action will erase all data associated with this bot and cannot be undone. Are you sure?\";\r\n mb.showDialog().done(function () {\r\n _this.performDeleteBot();\r\n });\r\n }\r\n };\r\n BotEditController.prototype.performDeleteBot = function () {\r\n var _this = this;\r\n var progressDialog = ProgressDialog_1.ProgressDialog.show(\"Deleting bot...\");\r\n Rest.BotManagerClient.delete(this.state.bot.Id).done(function () {\r\n if (_this.isLoaded()) {\r\n progressDialog.closeDialog();\r\n Dialogs.MessageBox.show(\"Bot deleted\").done(function () {\r\n _this.app.navigate(\"/bots\");\r\n });\r\n }\r\n }).fail(function (xhr) {\r\n progressDialog.closeDialog();\r\n _this.handleHttpResponseError(xhr);\r\n });\r\n };\r\n BotEditController.prototype.onGetAppIdClicked = function (ev) {\r\n var errors = this.gatherFormValues(this.state.bot);\r\n if (\"Name\" in errors) {\r\n ev.preventDefault();\r\n var newErrors = { \"Name\": errors[\"Name\"] };\r\n $(\"#agent-details-card\")[0].scrollIntoView();\r\n this.state.errors = newErrors;\r\n this.component.setState(this.state);\r\n Dialogs.MessageBox.show(\"Please enter a bot name.\");\r\n }\r\n };\r\n BotEditController.prototype.onSaveClicked = function () {\r\n var _this = this;\r\n if (this.state.bot && this.state.bot.Id) {\r\n var errors = this.gatherFormValues(this.state.bot);\r\n if (!$.isEmptyObject(errors)) {\r\n this.state.errors = errors;\r\n }\r\n else {\r\n this.state.errors = {};\r\n }\r\n this.state.isBusy = true;\r\n this.component.setState(this.state);\r\n Rest.BotManagerClient.update(this.state.bot, false).done(function (bot) {\r\n _this.initialBot = $.extend({}, bot);\r\n _this.pendingUnsavedChanges = false;\r\n if (_this.isLoaded()) {\r\n _this.state.bot = bot;\r\n }\r\n }).fail(function (xhr) {\r\n _this.handleHttpResponseError(xhr);\r\n }).always(function () {\r\n if (_this.isLoaded()) {\r\n _this.state.isBusy = false;\r\n _this.component.setState(_this.state);\r\n }\r\n });\r\n }\r\n };\r\n return BotEditController;\r\n }(ControllerBase_1.ControllerBase));\r\n exports.BotEditController = BotEditController;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 246 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(7), __webpack_require__(15), __webpack_require__(8), __webpack_require__(61), __webpack_require__(257), __webpack_require__(159), __webpack_require__(463), __webpack_require__(465), __webpack_require__(157), __webpack_require__(478)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, Rest, Intercom_Resources_DevPortal_1, ClientAppSettings_1, logger_1, AzurePortalMessenger_1, AuthenticationUtility_1, Reducers_1, StateStoreUtility_1, IPageStatus_1, IbizaWebChatPage_1) {\r\n var PageStatus = (function () {\r\n function PageStatus(pageStatus) {\r\n this._pageStatus = IPageStatus_1.PageStatusFlags.Ready;\r\n this._pageStatus = pageStatus;\r\n }\r\n PageStatus.prototype.hasPageStatusFlag = function (flag) {\r\n return (this._pageStatus & flag) === flag;\r\n };\r\n PageStatus.prototype.isReady = function () {\r\n return this._pageStatus === IPageStatus_1.PageStatusFlags.Ready;\r\n };\r\n return PageStatus;\r\n }());\r\n exports.PageStatus = PageStatus;\r\n var WebChatController = (function (_super) {\r\n __extends(WebChatController, _super);\r\n function WebChatController(app) {\r\n var _this = _super.call(this) || this;\r\n _this.app = app;\r\n return _this;\r\n }\r\n WebChatController.prototype.load = function (params) {\r\n var _this = this;\r\n _super.prototype.load.call(this, params);\r\n var botId = params[\"id\"];\r\n var location = params[\"location\"];\r\n if (!botId) {\r\n throw new Error(\"Bot id is required.\");\r\n }\r\n this._store = { botId: botId, location: location, pageStatus: IPageStatus_1.PageStatusFlags.LoggingIn | IPageStatus_1.PageStatusFlags.WaitingForBotReady | IPageStatus_1.PageStatusFlags.WaitingForWebChatToken };\r\n this._actions = { onWebChatNewConversation: function () { _this._onWebChatNewConversation(); } };\r\n this._createAzurePortalMessenger();\r\n this._initializePageDependencies();\r\n this._render();\r\n };\r\n WebChatController.prototype.unload = function () {\r\n this._teardownAzureMessenger();\r\n ReactDOM.unmountComponentAtNode(this.app.getAppBody());\r\n _super.prototype.unload.call(this);\r\n };\r\n WebChatController.prototype._render = function () {\r\n var props = StateStoreUtility_1.StateStoreUtility.mapStateAndDispatchToProps(this._store, this._actions);\r\n var element = React.createElement(IbizaWebChatPage_1.IbizaWebChatPage, props);\r\n this._reactComponent = ReactDOM.render(element, this.app.getAppBody());\r\n };\r\n WebChatController.prototype._createAzurePortalMessenger = function () {\r\n if (this._azurePortalMessenger) {\r\n throw new Error(\"_azurePortalMessenger already created\");\r\n }\r\n var trustedAuthorityMatches = decodeURIComponent(window.location.search).match(/trustedAuthority=([^&]+)/);\r\n if (!trustedAuthorityMatches) {\r\n throw new Error(\"Unsupported URI - missing trustedAuthority\");\r\n }\r\n logger_1.default.debug(\"WebChatController: Starting to listen to Azure cross frame messages\");\r\n var trustedAuthority = trustedAuthorityMatches[1];\r\n var signatureMatches = decodeURIComponent(window.location.search).match(/framesignature=([^&]+)/);\r\n var signature = AzurePortalMessenger_1.DefaultPortalSignature;\r\n if (signatureMatches) {\r\n signature = signatureMatches[1];\r\n }\r\n this._azurePortalMessenger = new AzurePortalMessenger_1.AzurePortalMessenger(trustedAuthority, signature);\r\n };\r\n WebChatController.prototype._initializePageDependencies = function () {\r\n if (!this._azurePortalMessenger) {\r\n throw new Error(\"Must initialize azure portal messenger.\");\r\n }\r\n this._onReceiveInfo = this._onReceiveInfoFromIFrame.bind(this);\r\n this._azurePortalMessenger.listenForInfo(this._onReceiveInfo);\r\n this._onReceiveAzureToken = this._onReceiveAuthenticationTokensFromIFrame.bind(this);\r\n this._azurePortalMessenger.listenForAuthenticationTokens(this._onReceiveAzureToken);\r\n this._onReceiveEndpointStatus = this._onReceiveEndpointStatusFromIFrame.bind(this);\r\n this._azurePortalMessenger.listenForEndpointStatus(this._onReceiveEndpointStatus);\r\n this._azurePortalMessenger.postReady();\r\n this._azurePortalMessenger.initializationComplete();\r\n this._azurePortalMessenger.requestInfo();\r\n this._azurePortalMessenger.requestAuthenticationTokens();\r\n this._azurePortalMessenger.requestEndpointStatus();\r\n };\r\n WebChatController.prototype._teardownAzureMessenger = function () {\r\n if (this._onReceiveInfo) {\r\n this._azurePortalMessenger.unlistenForInfo(this._onReceiveInfo);\r\n this._onReceiveInfo = undefined;\r\n }\r\n if (this._onReceiveAzureToken) {\r\n this._azurePortalMessenger.unlistenForAuthenticationTokens(this._onReceiveAzureToken);\r\n this._onReceiveAzureToken = undefined;\r\n }\r\n if (this._onReceiveEndpointStatus) {\r\n this._azurePortalMessenger.unlistenForEndpointStatus(this._onReceiveEndpointStatus);\r\n this._onReceiveEndpointStatus = undefined;\r\n }\r\n if (this._azurePortalMessenger) {\r\n this._azurePortalMessenger = undefined;\r\n }\r\n };\r\n WebChatController.prototype._getWebChatToken = function () {\r\n var _this = this;\r\n Rest.BotManagerClient.getWebChatToken(this._store.botId).done(function (token) {\r\n if (!_this.isLoaded()) {\r\n return;\r\n }\r\n logger_1.default.debug(\"WebChatController: Got WebChat token\");\r\n _this._store = Reducers_1.Reducers.getWebChatTokenCompleted(_this._store, token);\r\n _this._render();\r\n }).fail(function (error) {\r\n if (!_this.isLoaded()) {\r\n return;\r\n }\r\n logger_1.default.debug(\"WebChatController: Failed to get web chat token. \" + error);\r\n _this._store = Reducers_1.Reducers.getWebChatTokenFailed(_this._store, Intercom_Resources_DevPortal_1.Resources.getChatTokenFailure);\r\n _this._render();\r\n });\r\n };\r\n WebChatController.prototype._onWebChatNewConversation = function () {\r\n this._store = Reducers_1.Reducers.clearWebChatTokenAndUpdateState(this._store);\r\n this._getWebChatToken();\r\n this._render();\r\n };\r\n WebChatController.prototype._onReceiveInfoFromIFrame = function (info) {\r\n if (!this.isLoaded()) {\r\n return;\r\n }\r\n logger_1.default.debug(\"WebChatController: Got Azure Extension version: \" + info.version);\r\n this._azurePortalMessenger.unlistenForInfo(this._onReceiveInfo);\r\n this._onReceiveInfo = undefined;\r\n };\r\n WebChatController.prototype._handleFailedAuthRefresh = function () {\r\n this.app.signedInUser = null;\r\n this._store = Reducers_1.Reducers.loginFailed(this._store, Intercom_Resources_DevPortal_1.Resources.signInFailure);\r\n this._render();\r\n };\r\n WebChatController.prototype._onReceiveAuthenticationTokensFromIFrame = function (tokens) {\r\n var _this = this;\r\n if (!this.isLoaded()) {\r\n return;\r\n }\r\n var armToken = tokens.armToken;\r\n var selfToken = tokens.selfToken;\r\n var useSelfToken = selfToken && ClientAppSettings_1.clientAppSettings.flightedFeatures.indexOf(\"firstPartyAuth\") >= 0;\r\n var token = useSelfToken ? selfToken : armToken;\r\n logger_1.default.debug(\"WebChatController: Azure sent us Authentication tokens - Refreshing.\");\r\n var csrfToken = AuthenticationUtility_1.AuthenticationUtility.getCsrfToken();\r\n if (!csrfToken) {\r\n logger_1.default.debug(\"WebChatController: Failed getting csrfToken from cookie\");\r\n this._handleFailedAuthRefresh();\r\n return;\r\n }\r\n $.ajax(\"/refreshLogin\", {\r\n data: { token: token, '__RequestVerificationToken': csrfToken },\r\n type: \"POST\"\r\n })\r\n .then(function () {\r\n if (!_this.isLoaded()) {\r\n return;\r\n }\r\n Rest.ajaxHeaders = _.extend(Rest.ajaxHeaders || {}, { Authorization: \"Bearer \" + token });\r\n logger_1.default.debug(\"WebChatController: Getting signed in user.\");\r\n return Rest.AccountClient.getSignedInUser();\r\n })\r\n .then(function (authData) {\r\n if (!_this.isLoaded()) {\r\n return;\r\n }\r\n logger_1.default.debug(\"WebChatController: Got authenticated user.\");\r\n if (!_this.app.signedInUser) {\r\n _this.app.signedInUser = authData;\r\n }\r\n AuthenticationUtility_1.AuthenticationUtility.bindAzureAccessToken(_this.app.signedInUser, armToken, true);\r\n _this._store = Reducers_1.Reducers.loginComplete(_this._store);\r\n _this._render();\r\n if (!_this._store.webChatToken) {\r\n _this._getWebChatToken();\r\n }\r\n })\r\n .fail(function (xhr) {\r\n if (!_this.isLoaded()) {\r\n return;\r\n }\r\n logger_1.default.debug(\"WebChatController: Failed authorization web call:\" + xhr);\r\n _this._handleFailedAuthRefresh();\r\n });\r\n };\r\n WebChatController.prototype._onReceiveEndpointStatusFromIFrame = function (status) {\r\n if (!this.isLoaded()) {\r\n return;\r\n }\r\n logger_1.default.debug(\"WebChatController: Got new bot status from Azure: \" + status.status);\r\n switch (status.status) {\r\n case \"not-ready\":\r\n this._store = Reducers_1.Reducers.onBotEndpointNotReady(this._store);\r\n break;\r\n case \"ready\":\r\n case \"no-endpoint\":\r\n case \"error\":\r\n default:\r\n this._store = Reducers_1.Reducers.onBotEndpointReady(this._store);\r\n break;\r\n }\r\n this._render();\r\n };\r\n return WebChatController;\r\n }(SimpleMvc.Controller));\r\n exports.WebChatController = WebChatController;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 247 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(450), __webpack_require__(7), __webpack_require__(27), __webpack_require__(8), __webpack_require__(17), __webpack_require__(151), __webpack_require__(19)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, EmailSubscriptionConsentForm_1, RestClient_1, MessageBox_1, ClientAppSettings_1, Strings_1, InputDialogBase_1, InFrame_1) {\r\n var EmailSubscriptionDialog = (function (_super) {\r\n __extends(EmailSubscriptionDialog, _super);\r\n function EmailSubscriptionDialog(props) {\r\n return _super.call(this, EmailSubscriptionConsentForm_1.EmailSubscriptionConsentForm, props) || this;\r\n }\r\n Object.defineProperty(EmailSubscriptionDialog.prototype, \"visible\", {\r\n get: function () {\r\n return this.isShown;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n EmailSubscriptionDialog.prototype.showDialog = function () {\r\n this.isShown = true;\r\n return _super.prototype.showDialog.call(this);\r\n };\r\n EmailSubscriptionDialog.prototype.closeDialog = function () {\r\n this.isShown = false;\r\n _super.prototype.closeDialog.call(this);\r\n };\r\n return EmailSubscriptionDialog;\r\n }(InputDialogBase_1.InputDialogBase));\r\n var EmailSubscriptionConsentConductor = (function () {\r\n function EmailSubscriptionConsentConductor() {\r\n var _this = this;\r\n this.onSave = function (updated) {\r\n _this.dialog.closeDialog();\r\n RestClient_1.EmailSubscriptionClient.updateAgreement(true)\r\n .fail(function (xhr) {\r\n MessageBox_1.MessageBox.show(Strings_1.resourceStrings.subscriptionConsentDialog.updateErrorMessage);\r\n });\r\n };\r\n this.onCancel = function () {\r\n _this.dialog.closeDialog();\r\n };\r\n this.onUserAgreementLoaded = function (info) {\r\n if (EmailSubscriptionConsentConductor.UserHasAgreed(info)) {\r\n return;\r\n }\r\n if (!_this.dialog) {\r\n _this.dialog = new EmailSubscriptionDialog({\r\n subscriptionInfo: null,\r\n askUserAgreement: true,\r\n onSave: _this.onSave,\r\n onCancel: _this.onCancel\r\n });\r\n }\r\n _this.dialog.showDialog();\r\n };\r\n }\r\n EmailSubscriptionConsentConductor.UserHasConsented = function (info) {\r\n if (info.Subscription && info.Subscription.HasConsent) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n EmailSubscriptionConsentConductor.UserHasAgreed = function (info) {\r\n if (!info || info.ConsentVersion < RestClient_1.UserAgreementConsentVersion.V2) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n Object.defineProperty(EmailSubscriptionConsentConductor.prototype, \"allowShowDialog\", {\r\n get: function () {\r\n if (InFrame_1.default()) {\r\n return false;\r\n }\r\n if (ClientAppSettings_1.clientAppSettings.hasCollectedConsent || (this.dialog && this.dialog.visible)) {\r\n return false;\r\n }\r\n return true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n EmailSubscriptionConsentConductor.prototype.showIfRequired = function () {\r\n if (!this.allowShowDialog) {\r\n return;\r\n }\r\n ClientAppSettings_1.clientAppSettings.hasCollectedConsent = true;\r\n RestClient_1.EmailSubscriptionClient.getUserAgreement()\r\n .then(this.onUserAgreementLoaded)\r\n .fail(function (xhr) { return ClientAppSettings_1.clientAppSettings.hasCollectedConsent = false; });\r\n };\r\n return EmailSubscriptionConsentConductor;\r\n }());\r\n exports.EmailSubscriptionConsentConductor = EmailSubscriptionConsentConductor;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 248 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n var KeyCodes;\r\n (function (KeyCodes) {\r\n KeyCodes[KeyCodes[\"Backspace\"] = 8] = \"Backspace\";\r\n KeyCodes[KeyCodes[\"Tab\"] = 9] = \"Tab\";\r\n KeyCodes[KeyCodes[\"Enter\"] = 13] = \"Enter\";\r\n KeyCodes[KeyCodes[\"Escape\"] = 27] = \"Escape\";\r\n KeyCodes[KeyCodes[\"Space\"] = 32] = \"Space\";\r\n KeyCodes[KeyCodes[\"PageUp\"] = 33] = \"PageUp\";\r\n KeyCodes[KeyCodes[\"PageDown\"] = 34] = \"PageDown\";\r\n KeyCodes[KeyCodes[\"End\"] = 35] = \"End\";\r\n KeyCodes[KeyCodes[\"Home\"] = 36] = \"Home\";\r\n KeyCodes[KeyCodes[\"LeftArrow\"] = 37] = \"LeftArrow\";\r\n KeyCodes[KeyCodes[\"UpArrow\"] = 38] = \"UpArrow\";\r\n KeyCodes[KeyCodes[\"RightArrow\"] = 39] = \"RightArrow\";\r\n KeyCodes[KeyCodes[\"DownArrow\"] = 40] = \"DownArrow\";\r\n KeyCodes[KeyCodes[\"Delete\"] = 46] = \"Delete\";\r\n })(KeyCodes = exports.KeyCodes || (exports.KeyCodes = {}));\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 249 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n var BotPageTab;\r\n (function (BotPageTab) {\r\n BotPageTab[BotPageTab[\"develop\"] = 0] = \"develop\";\r\n BotPageTab[BotPageTab[\"channels\"] = 1] = \"channels\";\r\n BotPageTab[BotPageTab[\"settings\"] = 2] = \"settings\";\r\n BotPageTab[BotPageTab[\"publishing\"] = 3] = \"publishing\";\r\n })(BotPageTab = exports.BotPageTab || (exports.BotPageTab = {}));\r\n exports.debugAllTabs = false;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 250 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(7), __webpack_require__(17), __webpack_require__(457), __webpack_require__(8), __webpack_require__(275), __webpack_require__(447), __webpack_require__(80), __webpack_require__(34)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, Rest, Strings_1, SecretControl_1, ClientAppSettings_1, NameReflector_1, BotMsaEditor_1, BlockRowInputLabel_1, BotUtils_1) {\r\n var BotVersionEditor = (function (_super) {\r\n __extends(BotVersionEditor, _super);\r\n function BotVersionEditor(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {\r\n uniqueId: 'VersionEditor' + new Date().valueOf(),\r\n SchemaTransformationVersionList: []\r\n };\r\n return _this;\r\n }\r\n BotVersionEditor.versionToClassname = function (version) {\r\n return 'version_' + version.replace('.', '_');\r\n };\r\n BotVersionEditor.versionToDisplayText = function (version) {\r\n return 'Version ' + version;\r\n };\r\n BotVersionEditor.endpointId = function (index) {\r\n return \"input-endpoints-\" + index;\r\n };\r\n BotVersionEditor.prototype.componentDidMount = function () {\r\n this.loadChannelSchemaTransformationInfo();\r\n };\r\n BotVersionEditor.prototype.versionRadio = function (index) {\r\n var _this = this;\r\n var endpoint = this.props.bot.Endpoints[index];\r\n var enabled = (this.props.bot.Version === endpoint.Version);\r\n return (React.createElement(\"div\", { className: \"version-group\", key: 'versionRadio_' + index },\r\n React.createElement(\"label\", { className: \"version-label\" },\r\n React.createElement(\"input\", { type: \"radio\", name: \"input-Version\", value: endpoint.Version, checked: enabled, onChange: function (ev) { return _this.props.handleChange('Version', ev); } }),\r\n \" \",\r\n BotVersionEditor.versionToDisplayText(endpoint.Version)),\r\n this.versionContent(index, enabled)));\r\n };\r\n ;\r\n BotVersionEditor.prototype.versionContent = function (index, enabled) {\r\n var _this = this;\r\n var errorClass = \" input-in-error\";\r\n var endpoint = this.props.bot.Endpoints[index];\r\n var content;\r\n var x = {};\r\n function reflectedName(value) {\r\n return NameReflector_1.default(function () { return x; });\r\n }\r\n switch (endpoint.Version) {\r\n case '1.0':\r\n content = [];\r\n if (!this.props.inCreateMode) {\r\n content.push(React.createElement(\"div\", { key: \"secret_1\", className: \"detail-row\" },\r\n React.createElement(BlockRowInputLabel_1.BlockRowInputLabel, { text: \"App secret\" }),\r\n React.createElement(SecretControl_1.SecretControl, { keyType: 'primary', secret: this.props.v1Secret })));\r\n }\r\n if (this.props.bot.Endpoints.length === 1 && index === 0) {\r\n content.push(React.createElement(\"input\", { key: \"hidden_1\", type: \"hidden\", id: \"input-MsaAppId\", value: this.props.bot.MsaAppId }));\r\n }\r\n break;\r\n case '3.0':\r\n default:\r\n var msaEditor = React.createElement(BotMsaEditor_1.BotMsaEditor, _.extend({ key: \"bot-msa-editor-\" + index }, this.props));\r\n content = [msaEditor];\r\n break;\r\n }\r\n var endpointError = '';\r\n if (this.props.bot.Version === endpoint.Version) {\r\n endpointError = this.props.errors[reflectedName(x.Endpoint = null)];\r\n }\r\n var belowEndpointField = [endpointError ? React.createElement(\"div\", { key: \"version_error\", className: \"error-info\" }, endpointError) : null, React.createElement(\"div\", { key: \"version_tip\", className: \"field-tip\" }, \"HTTPS Rest endpoint that the bot implements to send and receive messages.\")];\r\n return (React.createElement(\"div\", { className: 'version-content ' + (BotVersionEditor.versionToClassname(endpoint.Version) + (enabled ? '' : ' disabled')), disabled: !enabled },\r\n React.createElement(\"div\", { className: \"detail-row\" },\r\n React.createElement(BlockRowInputLabel_1.BlockRowInputLabel, { text: Strings_1.resourceStrings.botEndpoint }),\r\n React.createElement(\"input\", { disabled: !enabled, type: \"text\", id: BotVersionEditor.endpointId(index), className: endpointError ? errorClass : '', placeholder: \"https URL\", value: endpoint.Url, maxLength: 1024, onChange: function (ev) { return _this.props.handleArrayIndexedObjectChange('Endpoints', index, 'Url', ev); } }),\r\n belowEndpointField),\r\n this.isStreamingSupported() ?\r\n React.createElement(\"div\", { className: \"detail-row streaming-enable-row\" },\r\n React.createElement(\"div\", { className: \"checkbox-rect\" },\r\n React.createElement(\"input\", { id: \"is-streaming-supported\", type: \"checkbox\", defaultChecked: this.props.bot.IsStreamingSupported, onChange: function (ev) { return _this.props.handleCheckboxChange('IsStreamingSupported', ev); } })),\r\n React.createElement(BlockRowInputLabel_1.BlockRowInputLabel, { for: \"is-streaming-supported\", text: Strings_1.resourceStrings.botEnableStreamingEndpoint })) : null,\r\n content,\r\n React.createElement(\"div\", { className: \"detail-row\" },\r\n React.createElement(BlockRowInputLabel_1.BlockRowInputLabel, { text: Strings_1.resourceStrings.botSchemaTransformationVersion }),\r\n React.createElement(\"div\", { className: \"schema-transformation-version-row\" },\r\n React.createElement(\"select\", { id: \"schema-transformation-version-selector\", ref: \"schema-transformation-version-selector\", onChange: function (ev) { return _this.props.handleChange('SchemaTransformationVersion', ev); } }, this.state.SchemaTransformationVersionList.map(function (option, i) { return (React.createElement(\"option\", { value: option.val, key: \"option_key_\" + i, selected: option.selected }, option.name)); }))))));\r\n };\r\n BotVersionEditor.prototype.getSTVDisplayString = function (version) {\r\n return \"V\" + version.Major + '.' + version.Minor;\r\n };\r\n BotVersionEditor.prototype.loadChannelSchemaTransformationInfo = function () {\r\n var _this = this;\r\n Rest.BotManagerClient.getAvailableSchemaTransformationVersionList().then(function (list) {\r\n var options = _.map(list, function (version) { return { name: _this.getSTVDisplayString(version), val: JSON.stringify(version), selected: false }; });\r\n if (_this.props.bot.SchemaTransformationVersion == null && options.length > 0) {\r\n options[0].selected = true;\r\n }\r\n else {\r\n var botVersionJson = JSON.stringify(_this.props.bot.SchemaTransformationVersion);\r\n options.forEach(function (item) {\r\n if (item.val === botVersionJson) {\r\n item.selected = true;\r\n }\r\n });\r\n }\r\n _this.setState({\r\n SchemaTransformationVersionList: options\r\n });\r\n });\r\n };\r\n BotVersionEditor.prototype.isStreamingSupported = function () {\r\n if (ClientAppSettings_1.clientAppSettings.flightedFeatures.some(function (f) { return f == \"speechchannel\"; })) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n BotVersionEditor.prototype.render = function () {\r\n var _this = this;\r\n if (this.props.bot.Endpoints.length > 1) {\r\n var radios = this.props.bot.Endpoints.filter(function (endpt) { return endpt.Version !== BotUtils_1.RollbackEndpointVersionName; })\r\n .map(function (endpoint, index) {\r\n return _this.versionRadio(index);\r\n });\r\n return (React.createElement(\"div\", null,\r\n React.createElement(\"div\", { className: \"detail-row version-group-label\" },\r\n React.createElement(\"label\", { id: \"version\", className: \"label-above\" },\r\n Strings_1.resourceStrings.botFramework,\r\n \" version\"),\r\n React.createElement(\"div\", { className: \"field-tip\" },\r\n \"The version of the \",\r\n Strings_1.resourceStrings.botFramework,\r\n \" rest API that your bot supports.\")),\r\n React.createElement(\"div\", null, radios)));\r\n }\r\n else {\r\n return React.createElement(\"div\", null, this.versionContent(0, true));\r\n }\r\n };\r\n return BotVersionEditor;\r\n }(React.Component));\r\n exports.BotVersionEditor = BotVersionEditor;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 251 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(248)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, Dialogs) {\r\n var MENU_CSS = \"dropdown-menu\";\r\n var MENU_ITEM_CSS = \"dropdown-menu-item\";\r\n var HIGLIGHTED_MENU_ITEM_CSS = \"dropdown-menu-item-highlight\";\r\n var DropdownMenu = (function (_super) {\r\n __extends(DropdownMenu, _super);\r\n function DropdownMenu(props, context) {\r\n var _this = _super.call(this, props, context) || this;\r\n _this.state = {\r\n visible: false,\r\n selectedIndex: -1\r\n };\r\n _this.children = React.Children.toArray(_this.props.children);\r\n _this.checkForOutsideEvent = function (e) {\r\n var closest = $(e.target).closest(_this.$el);\r\n if (closest.length == 0) {\r\n _this.hide();\r\n }\r\n };\r\n return _this;\r\n }\r\n DropdownMenu.defaultState = function () {\r\n return { visible: true, selectedIndex: -1 };\r\n };\r\n DropdownMenu.prototype.displayBelow = function ($anchor, $alignTo) {\r\n var _this = this;\r\n this.setState(DropdownMenu.defaultState(), function () {\r\n $alignTo = $alignTo || $anchor;\r\n var alignOffset = $alignTo.offset();\r\n var alignHeight = $alignTo.height();\r\n var alignRight = alignOffset.left + $alignTo.outerWidth(false);\r\n var menuWidth = _this.$el.outerWidth(false);\r\n var offsetParent = _this.$el.offsetParent();\r\n var parentOffset = offsetParent.offset();\r\n _this.$el.css({ left: (alignRight - menuWidth - parentOffset.left) + 'px', top: (alignOffset.top + alignHeight - parentOffset.top) + 'px' });\r\n _this.increment(1, _this.children.length, 0);\r\n _this.$anchor = $anchor;\r\n _this.$anchor.addClass('dropdown-anchor-active');\r\n });\r\n setTimeout(function () { return _this.AttachClickOutListeners(); }, 0);\r\n };\r\n DropdownMenu.prototype.AttachClickOutListeners = function () {\r\n document.body.addEventListener('focus', this.checkForOutsideEvent, true);\r\n document.body.addEventListener('click', this.checkForOutsideEvent);\r\n };\r\n DropdownMenu.prototype.DetachClickOutListeners = function () {\r\n document.body.removeEventListener('focus', this.checkForOutsideEvent, true);\r\n document.body.removeEventListener('click', this.checkForOutsideEvent);\r\n };\r\n DropdownMenu.prototype.hide = function () {\r\n this.setState({ visible: false });\r\n this.$anchor.removeClass('dropdown-anchor-active');\r\n this.$anchor.focus();\r\n this.DetachClickOutListeners();\r\n };\r\n DropdownMenu.prototype.onItemSelected = function (selectedIndex) {\r\n var selectedChild = React.Children.toArray(this.props.children)[selectedIndex];\r\n if (selectedChild) {\r\n var childProps = selectedChild.props;\r\n if (childProps.notSelectable)\r\n return;\r\n this.hide();\r\n if (this.props.onItemSelected) {\r\n this.props.onItemSelected(selectedIndex);\r\n }\r\n if (childProps.onSelected) {\r\n childProps.onSelected();\r\n }\r\n }\r\n };\r\n DropdownMenu.prototype.increment = function (step, limit, rollover) {\r\n var selectedIndex = this.state.selectedIndex;\r\n selectedIndex += step;\r\n if (selectedIndex == limit) {\r\n selectedIndex = rollover;\r\n }\r\n else if (selectedIndex < 0 || selectedIndex >= this.children.length) {\r\n selectedIndex = 0;\r\n }\r\n var selectedChild = this.children[selectedIndex];\r\n var selectedProps = selectedChild.props;\r\n if (selectedProps.notSelectable) {\r\n this.$el.focus();\r\n return;\r\n }\r\n var newState = { visible: true, selectedIndex: selectedIndex };\r\n this.setState(newState);\r\n $(this.$el[0].childNodes[selectedIndex]).focus();\r\n };\r\n DropdownMenu.prototype.highlightItem = function (selectedIndex) {\r\n var highlightedItem = this.children[selectedIndex];\r\n if (!highlightedItem) {\r\n selectedIndex = -1;\r\n }\r\n else {\r\n var selectedProps = this.children[selectedIndex].props;\r\n if (selectedProps.notSelectable) {\r\n selectedIndex = -1;\r\n }\r\n }\r\n var newState = { visible: true, selectedIndex: selectedIndex };\r\n this.setState(newState);\r\n };\r\n DropdownMenu.prototype.onKeyDown = function (ev) {\r\n switch (ev.which) {\r\n case Dialogs.KeyCodes.Escape:\r\n this.hide();\r\n break;\r\n case Dialogs.KeyCodes.Enter:\r\n this.onItemSelected(this.state.selectedIndex);\r\n break;\r\n case Dialogs.KeyCodes.Tab:\r\n this.increment(1, this.children.length, 0);\r\n break;\r\n }\r\n ev.preventDefault();\r\n };\r\n DropdownMenu.prototype.render = function () {\r\n var _this = this;\r\n var style = {\r\n display: this.state.visible ? \"block\" : \"none\"\r\n };\r\n var items = [];\r\n React.Children.forEach(this.props.children, function (child, index) {\r\n var oldProps = child.props;\r\n var newProps = {\r\n classNames: 'dropdown-menu-item ' + (oldProps.classNames || ''),\r\n key: index,\r\n highlighted: (index === _this.state.selectedIndex),\r\n onMouseOver: function () { return _this.highlightItem(index); },\r\n onSelected: function () { return _this.onItemSelected(index); }\r\n };\r\n items.push(React.cloneElement(child, newProps));\r\n });\r\n return (React.createElement(\"div\", { className: MENU_CSS + ' ' + (this.props.classNames || ''), style: style, tabIndex: 0, onMouseLeave: function () { return _this.highlightItem(-1); }, ref: function (el) { return _this.$el = $(el); }, onKeyDown: function (ev) { return _this.onKeyDown(ev); } }, items));\r\n };\r\n return DropdownMenu;\r\n }(React.Component));\r\n exports.DropdownMenu = DropdownMenu;\r\n var DropdownMenuItem = (function (_super) {\r\n __extends(DropdownMenuItem, _super);\r\n function DropdownMenuItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DropdownMenuItem.prototype.render = function () {\r\n var _this = this;\r\n var classNames = (this.props.classNames || '') + ' ' + MENU_ITEM_CSS;\r\n if (this.props.highlighted) {\r\n classNames += ' ' + HIGLIGHTED_MENU_ITEM_CSS;\r\n }\r\n return (React.createElement(\"div\", { className: classNames, onClick: function () { return _this.props.onSelected(); }, \"aria-label\": this.props.ariaLabel, onMouseOver: function () { return _this.props.onMouseOver(); }, tabIndex: 0 }, this.props.children));\r\n };\r\n return DropdownMenuItem;\r\n }(React.Component));\r\n exports.DropdownMenuItem = DropdownMenuItem;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 252 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(62)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ProgressRingControl_1) {\r\n var LogoutPanelStatus;\r\n (function (LogoutPanelStatus) {\r\n LogoutPanelStatus[LogoutPanelStatus[\"InProgress\"] = 0] = \"InProgress\";\r\n LogoutPanelStatus[LogoutPanelStatus[\"Success\"] = 1] = \"Success\";\r\n LogoutPanelStatus[LogoutPanelStatus[\"Failure\"] = 2] = \"Failure\";\r\n })(LogoutPanelStatus = exports.LogoutPanelStatus || (exports.LogoutPanelStatus = {}));\r\n var LogoutPanel = (function (_super) {\r\n __extends(LogoutPanel, _super);\r\n function LogoutPanel(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {\r\n status: LogoutPanelStatus.InProgress\r\n };\r\n return _this;\r\n }\r\n LogoutPanel.prototype.render = function () {\r\n var stateCSSClass;\r\n switch (this.props.status) {\r\n case LogoutPanelStatus.InProgress:\r\n stateCSSClass = \"logout-progress\";\r\n break;\r\n case LogoutPanelStatus.Failure:\r\n stateCSSClass = \"logout-failure\";\r\n break;\r\n case LogoutPanelStatus.Success:\r\n stateCSSClass = \"logout-success\";\r\n break;\r\n }\r\n return (React.createElement(\"div\", { className: \"logout-panel \" + stateCSSClass },\r\n React.createElement(\"div\", { className: \"logout-progress-icon\" },\r\n React.createElement(ProgressRingControl_1.ProgressRingControl, null)),\r\n React.createElement(\"div\", { className: \"logout-success-icon\" }),\r\n React.createElement(\"div\", { className: \"logout-failure-icon\" }),\r\n React.createElement(\"div\", { className: \"logout-item-title\" }, this.props.title)));\r\n };\r\n return LogoutPanel;\r\n }(React.Component));\r\n exports.LogoutPanel = LogoutPanel;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 253 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n exports.MAX_NAME_LEN = 35;\r\n exports.MIN_NAME_LEN = 1;\r\n exports.MAX_ID_LEN = 35;\r\n exports.MIN_ID_LEN = 4;\r\n exports.MAX_DESC_LEN = 512;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 254 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(17)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, Strings_1) {\r\n var UserAgreementConsentFormFields = (function (_super) {\r\n __extends(UserAgreementConsentFormFields, _super);\r\n function UserAgreementConsentFormFields(props, context) {\r\n var _this = _super.call(this, props, context) || this;\r\n _this.onAgreeToBotFrameworkTerms = function (e) {\r\n var target = e.target;\r\n _this.mutateState(function (state) { return state.botFrameworkTermsAgreed = target.checked; });\r\n };\r\n _this.onAgreeToLuisTerms = function (e) {\r\n var t = e.target;\r\n _this.mutateState(function (state) { return state.luisTermsAgreed = t.checked; });\r\n };\r\n var strs = Strings_1.resourceStrings.subscriptionConsentDialog;\r\n _this.state = {\r\n botFrameworkTermsAgreed: false,\r\n luisTermsAgreed: false,\r\n botFrameworkAgreementLabelContent: { __html: strs.agreementLabelHtml },\r\n luisAgreementLabelContent: { __html: strs.luisAgreementLabelHtml }\r\n };\r\n return _this;\r\n }\r\n UserAgreementConsentFormFields.prototype.mutateState = function (mutator) {\r\n var _this = this;\r\n this.setState(function (state) {\r\n var mutatedState = _.extend({}, state);\r\n mutator(mutatedState);\r\n return mutatedState;\r\n }, function () { return _this.props.onAgreeToTermsChanged && _this.props.onAgreeToTermsChanged(_this.state.botFrameworkTermsAgreed && (!_this.props.showLuisTerms || _this.state.luisTermsAgreed)); });\r\n };\r\n UserAgreementConsentFormFields.prototype.render = function () {\r\n return (React.createElement(\"div\", { className: \"user-agreement-consent-form\" },\r\n React.createElement(\"label\", { className: \"checkbox-row\" },\r\n React.createElement(\"div\", { className: \"checkbox-container\" },\r\n React.createElement(\"input\", { type: \"checkbox\", value: \"agreed\", checked: this.state.botFrameworkTermsAgreed, onChange: this.onAgreeToBotFrameworkTerms })),\r\n React.createElement(\"div\", { className: \"checkbox-row\" },\r\n React.createElement(\"span\", { className: \"checkbox-label\", dangerouslySetInnerHTML: this.state.botFrameworkAgreementLabelContent }))),\r\n !!this.props.showLuisTerms &&\r\n React.createElement(\"label\", { className: \"checkbox-row\" },\r\n React.createElement(\"div\", { className: \"checkbox-container\" },\r\n React.createElement(\"input\", { type: \"checkbox\", value: \"agreed\", checked: this.state.luisTermsAgreed, onChange: this.onAgreeToLuisTerms })),\r\n React.createElement(\"div\", { className: \"checkbox-row\" },\r\n React.createElement(\"span\", { className: \"checkbox-label\", dangerouslySetInnerHTML: this.state.luisAgreementLabelContent })))));\r\n };\r\n return UserAgreementConsentFormFields;\r\n }(React.Component));\r\n UserAgreementConsentFormFields.defaultProps = {\r\n showLuisTerms: false\r\n };\r\n exports.UserAgreementConsentFormFields = UserAgreementConsentFormFields;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 255 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(31), __webpack_require__(7), __webpack_require__(27), __webpack_require__(103), __webpack_require__(102), __webpack_require__(270), __webpack_require__(448), __webpack_require__(449), __webpack_require__(15)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, ControllerBase_1, Rest, Dialogs, ProgressDialog_1, GenericDialog_1, EmbedCodeView, ChannelEnabledPanel, ChannelLogPanel, Intercom_Resources_DevPortal_1) {\r\n var BotControllerBase = (function (_super) {\r\n __extends(BotControllerBase, _super);\r\n function BotControllerBase(app) {\r\n var _this = _super.call(this, app) || this;\r\n _this.channelDataHandlers = {\r\n showEmbedHandler: function (_lastFocus) { _this.showEmbedCodes(_lastFocus); },\r\n refreshChannelLogs: function (bot) {\r\n _this.getBotLogs(bot.Id).done(function () {\r\n if (_this.botSub) {\r\n _this.botSub.Bot = bot;\r\n _this.saveBotStateAndRender(_this.botSub);\r\n }\r\n });\r\n },\r\n channelLogs: null,\r\n channelStateChangeHandler: function (column, id, isOn) { return _this.onChannelStateChangeRequested(column, id, isOn); },\r\n channelEnabledDisplayHandler: function (channelEnabledDisplay) { return _this.showChannelEnabledPanel(channelEnabledDisplay); },\r\n channelLogDisplayHandler: function (channelLogDisplay) { return _this.showChannelLogPanel(channelLogDisplay); },\r\n getChannelPublishStatus: function (channelId) { return null; },\r\n };\r\n return _this;\r\n }\r\n BotControllerBase.prototype.saveBotStateAndRender = function (botSub) {\r\n throw new Error(\"saveBotStateAndRender needs an override\");\r\n };\r\n BotControllerBase.prototype.getBotLogs = function (botId) {\r\n var _this = this;\r\n return Rest.BotManagerClient.getBotLogs(botId).done(function (logs) {\r\n _this.channelDataHandlers.channelLogs = logs;\r\n }).fail(function (jqXHR, textStatus, errorThrown) {\r\n _this.handleHttpResponseError(jqXHR);\r\n });\r\n };\r\n BotControllerBase.prototype.onChannelStateChangeRequested = function (column, channelId, enable) {\r\n var _this = this;\r\n if (column === \"listed\") {\r\n Rest.BotManagerClient.listChannelForBot(this.botId, channelId, enable).done(function (bot) {\r\n _this.getBotLogs(bot.Id);\r\n }).fail(function (xhr) {\r\n _this.handleHttpResponseError(xhr);\r\n });\r\n }\r\n if (column === \"enabled\") {\r\n Rest.BotManagerClient.enableChannelForBot(this.botId, channelId, enable).done(function (bot) {\r\n _this.getBotLogs(bot.Id);\r\n }).fail(function (xhr) {\r\n _this.handleHttpResponseError(xhr);\r\n });\r\n }\r\n };\r\n BotControllerBase.prototype.showEmbedCodes = function (_lastFocus) {\r\n var _this = this;\r\n var progressDialog = ProgressDialog_1.ProgressDialog.show(Intercom_Resources_DevPortal_1.Resources.embedPanelGettingCodes);\r\n Rest.BotManagerClient.getBotContactCard(this.botId).done(function (contactCard) {\r\n progressDialog.closeDialog();\r\n if (!contactCard.Contacts.length) {\r\n Dialogs.MessageBox.show(Intercom_Resources_DevPortal_1.Resources.embedPanelNoCodeAvailable);\r\n }\r\n else {\r\n var dialog = new GenericDialog_1.GenericDialog(EmbedCodeView.EmbedCodePanel, {\r\n botId: _this.botId,\r\n contacts: contactCard.Contacts\r\n }, { dialogClass: 'embed-code-dialog' });\r\n dialog.showDialog(_lastFocus);\r\n }\r\n }).fail(function (xhr) {\r\n progressDialog.closeDialog();\r\n _this.handleHttpResponseError(xhr);\r\n });\r\n };\r\n BotControllerBase.prototype.showChannelEnabledPanel = function (channelEnabledDisplay) {\r\n var dialog = new GenericDialog_1.GenericDialog(ChannelEnabledPanel.ChannelEnabledPanel, channelEnabledDisplay, { dialogClass: 'status-panel-dialog' });\r\n dialog.showDialog();\r\n };\r\n BotControllerBase.prototype.showChannelLogPanel = function (channelLogDisplay) {\r\n var dialog = new GenericDialog_1.GenericDialog(ChannelLogPanel.ChannelLogPanel, channelLogDisplay, { dialogClass: 'channellog-dialog' });\r\n channelLogDisplay.dialog = dialog;\r\n dialog.showDialog();\r\n };\r\n return BotControllerBase;\r\n }(ControllerBase_1.ControllerBase));\r\n exports.BotControllerBase = BotControllerBase;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 256 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n function isAPIException(x) {\r\n return x && x.Error && x.Error.Code && x.Error.Message ||\r\n x && x.error && x.error.code && x.error.message;\r\n }\r\n function asAPIException(xhr) {\r\n return isAPIException(xhr.responseJSON) ? xhr.responseJSON : null;\r\n }\r\n function parseApiException(ex) {\r\n var code = ex.Error ? ex.Error.Code : ex.error.code;\r\n var message = null;\r\n if (ex.Error && ex.Error.Message) {\r\n message = ex.Error.Message;\r\n }\r\n else if (ex.error && ex.error.message) {\r\n message = ex.error.message;\r\n }\r\n if (message) {\r\n try {\r\n var obj = JSON.parse(message);\r\n if (isAPIException(obj)) {\r\n return parseApiException(obj);\r\n }\r\n }\r\n catch (jsonex) {\r\n }\r\n }\r\n return { code: code, message: message };\r\n }\r\n function parseApiError(xhr) {\r\n var apiException = asAPIException(xhr);\r\n if (apiException) {\r\n return parseApiException(apiException);\r\n }\r\n if (xhr.responseJSON && xhr.responseJSON.Message) {\r\n return { code: xhr.status, message: xhr.responseJSON.Message };\r\n }\r\n return null;\r\n }\r\n exports.parseApiError = parseApiError;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 257 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n var Verbs = (function () {\r\n function Verbs() {\r\n }\r\n return Verbs;\r\n }());\r\n Verbs.postReady = \"ready\";\r\n Verbs.initializationComplete = \"initializationcomplete\";\r\n Verbs.getInfo = \"get-info\";\r\n Verbs.receiveInfo = \"info\";\r\n Verbs.getAuthTokens = \"get-auth-tokens\";\r\n Verbs.receiveAuthTokens = \"auth-tokens\";\r\n Verbs.getEndpointStatus = \"get-endpoint-status\";\r\n Verbs.receiveEndpointStatus = \"endpoint-status\";\r\n Verbs.getAppInsightsStatus = \"get-appinsights-status\";\r\n Verbs.receiveAppInsightsStatus = \"appinsights-status\";\r\n exports.DefaultPortalSignature = \"FxFrameBlade\";\r\n var AzurePortalMessenger = (function () {\r\n function AzurePortalMessenger(origin, frameSignature) {\r\n this._trustedOrigin = null;\r\n this._receivedMessageHandlers = {};\r\n this._trustedOrigin = origin;\r\n this.AzurePortalSignature = frameSignature || exports.DefaultPortalSignature;\r\n if (!this._messageHandler) {\r\n this._messageHandler = this._onReceiveMessage.bind(this);\r\n window.addEventListener(\"message\", this._messageHandler, false);\r\n }\r\n }\r\n AzurePortalMessenger.prototype.postReady = function () {\r\n this._postMessageToAzurePortal(Verbs.postReady);\r\n };\r\n AzurePortalMessenger.prototype.initializationComplete = function () {\r\n this._postMessageToAzurePortal(Verbs.initializationComplete);\r\n };\r\n AzurePortalMessenger.prototype.requestInfo = function () {\r\n this._postMessageToExtension(Verbs.getInfo);\r\n };\r\n AzurePortalMessenger.prototype.listenForInfo = function (callback) {\r\n this._listenForMessage(callback, Verbs.receiveInfo);\r\n };\r\n AzurePortalMessenger.prototype.unlistenForInfo = function (callback) {\r\n this._unlistenForMessage(callback, Verbs.receiveInfo);\r\n };\r\n AzurePortalMessenger.prototype.requestAuthenticationTokens = function () {\r\n this._postMessageToExtension(Verbs.getAuthTokens);\r\n };\r\n AzurePortalMessenger.prototype.listenForAuthenticationTokens = function (callback) {\r\n this._listenForMessage(callback, Verbs.receiveAuthTokens);\r\n };\r\n AzurePortalMessenger.prototype.unlistenForAuthenticationTokens = function (callback) {\r\n this._unlistenForMessage(callback, Verbs.receiveAuthTokens);\r\n };\r\n AzurePortalMessenger.prototype.requestEndpointStatus = function () {\r\n this._postMessageToExtension(Verbs.getEndpointStatus);\r\n };\r\n AzurePortalMessenger.prototype.listenForEndpointStatus = function (callback) {\r\n this._listenForMessage(callback, Verbs.receiveEndpointStatus);\r\n };\r\n AzurePortalMessenger.prototype.unlistenForEndpointStatus = function (callback) {\r\n this._unlistenForMessage(callback, Verbs.receiveEndpointStatus);\r\n };\r\n AzurePortalMessenger.prototype.requestAppInsightsStatus = function () {\r\n this._postMessageToExtension(Verbs.getAppInsightsStatus);\r\n };\r\n AzurePortalMessenger.prototype.listenForAppInsightsStatus = function (callback) {\r\n this._listenForMessage(callback, Verbs.receiveAppInsightsStatus);\r\n };\r\n AzurePortalMessenger.prototype.unlistenForAppInsightsStatus = function (callback) {\r\n this._unlistenForMessage(callback, Verbs.receiveAppInsightsStatus);\r\n };\r\n AzurePortalMessenger.prototype._listenForMessage = function (callback, messageVerb) {\r\n if (!callback) {\r\n throw new Error(\"callback must be defined.\");\r\n }\r\n (this._receivedMessageHandlers[messageVerb] = this._receivedMessageHandlers[messageVerb] || []).push(callback);\r\n };\r\n AzurePortalMessenger.prototype._unlistenForMessage = function (callback, messageVerb) {\r\n if (this._receivedMessageHandlers[messageVerb] && callback) {\r\n var index = this._receivedMessageHandlers[messageVerb].indexOf(callback);\r\n if (index > -1) {\r\n this._receivedMessageHandlers[messageVerb].splice(index, 1);\r\n }\r\n }\r\n };\r\n AzurePortalMessenger.prototype._postMessageToAzurePortal = function (messageKind) {\r\n this._postMessageToAzure({\r\n signature: this.AzurePortalSignature,\r\n kind: messageKind\r\n });\r\n };\r\n AzurePortalMessenger.prototype._postMessageToExtension = function (data) {\r\n if (this.AzurePortalSignature === exports.DefaultPortalSignature) {\r\n this._postMessageToAzure({\r\n signature: this.AzurePortalSignature,\r\n kind: data,\r\n data: null\r\n });\r\n }\r\n else {\r\n this._postMessageToAzure({\r\n signature: this.AzurePortalSignature,\r\n data: data\r\n });\r\n }\r\n };\r\n AzurePortalMessenger.prototype._postMessageToAzure = function (message) {\r\n if (!this._trustedOrigin) {\r\n throw new Error(\"Must set trusted origin before posting messages.\");\r\n }\r\n window.parent.postMessage(message, this._trustedOrigin);\r\n };\r\n AzurePortalMessenger.prototype._onReceiveMessage = function (event) {\r\n var azureEvent = event;\r\n if (!azureEvent.origin || !azureEvent.data) {\r\n return;\r\n }\r\n if (azureEvent.origin !== this._trustedOrigin) {\r\n return;\r\n }\r\n switch (azureEvent.data.kind) {\r\n case Verbs.receiveAuthTokens:\r\n this._invokeHandlers(Verbs.receiveAuthTokens, azureEvent.data.data);\r\n break;\r\n case Verbs.receiveInfo:\r\n this._invokeHandlers(Verbs.receiveInfo, azureEvent.data.data);\r\n break;\r\n case Verbs.receiveEndpointStatus:\r\n this._invokeHandlers(Verbs.receiveEndpointStatus, azureEvent.data.data);\r\n break;\r\n case Verbs.receiveAppInsightsStatus:\r\n this._invokeHandlers(Verbs.receiveAppInsightsStatus, azureEvent.data.data);\r\n break;\r\n }\r\n };\r\n AzurePortalMessenger.prototype._invokeHandlers = function (verb, message) {\r\n (this._receivedMessageHandlers[verb] || []).slice().forEach(function (callback) {\r\n callback(message);\r\n });\r\n };\r\n return AzurePortalMessenger;\r\n }());\r\n exports.AzurePortalMessenger = AzurePortalMessenger;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 258 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n var FlagUtility = (function () {\r\n function FlagUtility() {\r\n }\r\n FlagUtility.setFlag = function (currentValue, flag) {\r\n return currentValue |= flag;\r\n };\r\n FlagUtility.clearFlag = function (currentValue, flag) {\r\n return currentValue & ~flag;\r\n };\r\n FlagUtility.hasFlag = function (currentValue, flag) {\r\n return (currentValue & flag) === flag;\r\n };\r\n return FlagUtility;\r\n }());\r\n exports.FlagUtility = FlagUtility;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 259 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(7), __webpack_require__(8), __webpack_require__(81), __webpack_require__(14), __webpack_require__(26), __webpack_require__(15), __webpack_require__(105), __webpack_require__(268), __webpack_require__(884)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, Rest, ClientAppSettings_1, BotPage_1, index_1, Environment_1, Intercom_Resources_DevPortal_1, Culture_1, ChevronDropdownControl_1, recharts_1) {\r\n var userRetentionDaysBack = 10;\r\n var colors = [\r\n \"#BF0077\",\r\n \"#E81123\",\r\n \"#F7630C\",\r\n \"#FFB900\",\r\n \"#BAD80A\",\r\n \"#16C60C\",\r\n \"#00CEA6\",\r\n \"#00BCF2\",\r\n \"#0046FF\",\r\n \"#413EB3\",\r\n \"#735BC1\",\r\n \"#721481\",\r\n \"#C30052\",\r\n \"#F03A17\",\r\n \"#FF8C00\",\r\n \"#FCE100\",\r\n \"#BAD80A\",\r\n \"#00CC6A\",\r\n \"#00B7C3\",\r\n \"#0078D7\",\r\n \"#2849EC\",\r\n \"#5A4EBC\",\r\n \"#5C2E91\",\r\n \"#9A0089\",\r\n ];\r\n var ChannelArt = (function () {\r\n function ChannelArt() {\r\n }\r\n ChannelArt.startup = function () {\r\n var _this = this;\r\n ClientAppSettings_1.clientAppSettings.channels.forEach(function (channel, index) {\r\n _this._channels[channel.Id] = {\r\n stroke: colors[index],\r\n id: channel.Id,\r\n displayName: channel.Name,\r\n iconUrl: channel.IconUrl\r\n };\r\n });\r\n };\r\n ChannelArt.channelCollection = function () {\r\n return this._channels;\r\n };\r\n ChannelArt.channelList = function () {\r\n var _this = this;\r\n return Object.keys(this._channels).map(function (key) { return _this._channels[key]; });\r\n };\r\n ChannelArt.channel = function (id) {\r\n return this._channels[id] || this._missing;\r\n };\r\n return ChannelArt;\r\n }());\r\n ChannelArt._channels = {};\r\n ChannelArt._missing = {\r\n stroke: \"#000000\",\r\n id: \"\",\r\n displayName: \"\",\r\n iconUrl: \"\"\r\n };\r\n function abbreviateNumber(value) {\r\n var newValue = '' + value;\r\n if (value >= 1000) {\r\n var suffixes = [\"\", \"k\", \"m\", \"b\", \"t\"];\r\n var suffixNum = Math.floor((\"\" + value).length / 3);\r\n var shortValue = 0;\r\n var shortNum = '';\r\n for (var precision = 2; precision >= 1; precision--) {\r\n shortValue = parseFloat((suffixNum != 0 ? (value / Math.pow(1000, suffixNum)) : value).toPrecision(precision));\r\n var dotLessShortValue = (shortValue + '').replace(/[^a-zA-Z 0-9]+/g, '');\r\n if (dotLessShortValue.length <= 2) {\r\n break;\r\n }\r\n }\r\n if (shortValue % 1 != 0)\r\n shortNum = shortValue.toFixed(1);\r\n newValue = shortValue + suffixes[suffixNum];\r\n }\r\n return newValue;\r\n }\r\n var Observable = (function () {\r\n function Observable() {\r\n this._listeners = [];\r\n }\r\n Observable.prototype.subscribe = function (listener) {\r\n var _this = this;\r\n var isSubscribed = true;\r\n this._listeners.push(listener);\r\n var unsubscribe = function () {\r\n if (!isSubscribed) {\r\n return;\r\n }\r\n isSubscribed = false;\r\n var index = _this._listeners.indexOf(listener);\r\n _this._listeners.splice(index, 1);\r\n };\r\n return unsubscribe;\r\n };\r\n Observable.prototype.notify = function () {\r\n this._listeners.slice().forEach(function (listener) { return listener(); });\r\n };\r\n return Observable;\r\n }());\r\n var ChannelFilter = (function (_super) {\r\n __extends(ChannelFilter, _super);\r\n function ChannelFilter() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this._channels = {};\r\n _this._generation = 0;\r\n return _this;\r\n }\r\n ChannelFilter.prototype.startup = function () {\r\n var _this = this;\r\n if (!Object.keys(this._channels).length) {\r\n ChannelArt.startup();\r\n ChannelArt.channelList().forEach(function (channel, index) {\r\n _this._channels[channel.id] = {\r\n visible: true,\r\n generation: 0,\r\n channel: channel\r\n };\r\n });\r\n }\r\n };\r\n Object.defineProperty(ChannelFilter.prototype, \"generation\", {\r\n get: function () {\r\n return this._generation;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ChannelFilter.prototype.isVisible = function (id) {\r\n return this._channels[id] && this._channels[id].visible;\r\n };\r\n ChannelFilter.prototype.channel = function (id) {\r\n return this._channels[id];\r\n };\r\n ChannelFilter.prototype.setVisible = function (id, visible) {\r\n if (this._channels[id]) {\r\n if (this._channels[id].visible !== visible) {\r\n this._generation++;\r\n this._channels[id].visible = visible;\r\n this._channels[id].generation = this.generation;\r\n this.notify();\r\n }\r\n }\r\n };\r\n ChannelFilter.prototype.toggleVisible = function (id) {\r\n this.setVisible(id, !this.isVisible(id));\r\n };\r\n ChannelFilter.prototype.visibleChannelList = function () {\r\n var _this = this;\r\n var keys = Object.keys(this._channels);\r\n return keys\r\n .sort(function (a, b) { return _this._channels[a].channel.displayName.localeCompare(_this._channels[b].channel.displayName); })\r\n .sort(function (a, b) { return _this._channels[b].generation - _this._channels[a].generation; })\r\n .filter(function (key) { return _this.isVisible(key); })\r\n .map(function (key) { return ChannelArt.channel(key); });\r\n };\r\n return ChannelFilter;\r\n }(Observable));\r\n var TimespanSelector = (function (_super) {\r\n __extends(TimespanSelector, _super);\r\n function TimespanSelector() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this._timespan = TimespanSelector.ONE_MONTH;\r\n _this._generation = 0;\r\n _this.datePattern = /(\\d+)\\/(\\d+)\\/(\\d+)/;\r\n _this.timePattern = /(\\d+):(\\d+):(\\d+)\\s+(AM|PM)/;\r\n return _this;\r\n }\r\n Object.defineProperty(TimespanSelector, \"timespans\", {\r\n get: function () {\r\n return [\r\n TimespanSelector.ONE_HOUR,\r\n TimespanSelector.ONE_DAY,\r\n TimespanSelector.ONE_WEEK,\r\n TimespanSelector.ONE_MONTH,\r\n TimespanSelector.THREE_MONTHS\r\n ];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TimespanSelector.displayNameForTimespan = function (timespan) {\r\n switch (timespan) {\r\n case TimespanSelector.ONE_HOUR: return Intercom_Resources_DevPortal_1.Resources.timespanLastHour;\r\n case TimespanSelector.ONE_DAY: return Intercom_Resources_DevPortal_1.Resources.timespanLastDay;\r\n case TimespanSelector.ONE_WEEK: return Intercom_Resources_DevPortal_1.Resources.timespanLastWeek;\r\n case TimespanSelector.ONE_MONTH: return Intercom_Resources_DevPortal_1.Resources.timespanLastMonth;\r\n case TimespanSelector.THREE_MONTHS: return Intercom_Resources_DevPortal_1.Resources.timespanLast90Days;\r\n default: return Intercom_Resources_DevPortal_1.Resources.timespanUnknown;\r\n }\r\n };\r\n TimespanSelector.dateRangeForTimespan = function (timespan) {\r\n var hour = 60 * 60 * 1000;\r\n var day = 24 * hour;\r\n var now = Date.now();\r\n var then;\r\n switch (timespan) {\r\n case TimespanSelector.ONE_HOUR:\r\n then = now - hour;\r\n break;\r\n case TimespanSelector.ONE_DAY:\r\n then = now - day;\r\n break;\r\n case TimespanSelector.ONE_WEEK:\r\n then = now - day * 7;\r\n break;\r\n case TimespanSelector.ONE_MONTH:\r\n then = now - day * 31;\r\n break;\r\n case TimespanSelector.THREE_MONTHS:\r\n then = now - day * 90;\r\n break;\r\n default: return Intercom_Resources_DevPortal_1.Resources.timespanUnknown;\r\n }\r\n return new Date(then).toLocaleDateString(Culture_1.Culture.CultureCode) + \" - \" + new Date(now).toLocaleDateString(Culture_1.Culture.CultureCode);\r\n };\r\n TimespanSelector.prototype.startup = function () {\r\n };\r\n Object.defineProperty(TimespanSelector.prototype, \"timespan\", {\r\n get: function () {\r\n return this._timespan;\r\n },\r\n set: function (value) {\r\n this._timespan = value;\r\n this._generation++;\r\n this.notify();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TimespanSelector.prototype, \"generation\", {\r\n get: function () {\r\n return this._generation;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TimespanSelector.prototype.labelForAppInsightsDate = function (s) {\r\n var dateMatch = s.match(this.datePattern);\r\n var timeMatch = s.match(this.timePattern);\r\n var month = Number(dateMatch[1]);\r\n var day = Number(dateMatch[2]);\r\n var year = Number(dateMatch[3]);\r\n var hour = Number(timeMatch[1]);\r\n var minute = Number(timeMatch[2]);\r\n var period = timeMatch[4];\r\n month -= 1;\r\n hour %= 12;\r\n if (period === 'PM')\r\n hour += 12;\r\n var date = new Date(year, month, day, hour, minute);\r\n var local = new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000);\r\n switch (this.timespan) {\r\n case TimespanSelector.ONE_HOUR:\r\n case TimespanSelector.ONE_DAY:\r\n return local.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });\r\n case TimespanSelector.ONE_WEEK:\r\n case TimespanSelector.ONE_MONTH:\r\n case TimespanSelector.THREE_MONTHS:\r\n return local.toLocaleDateString(Culture_1.Culture.CultureCode);\r\n }\r\n };\r\n return TimespanSelector;\r\n }(Observable));\r\n TimespanSelector.ONE_HOUR = \"1-hour\";\r\n TimespanSelector.ONE_DAY = \"1-day\";\r\n TimespanSelector.ONE_WEEK = \"1-week\";\r\n TimespanSelector.ONE_MONTH = \"1-month\";\r\n TimespanSelector.THREE_MONTHS = \"3-months\";\r\n var DataStore = (function (_super) {\r\n __extends(DataStore, _super);\r\n function DataStore(_botId, _method) {\r\n var _this = _super.call(this) || this;\r\n _this._botId = _botId;\r\n _this._method = _method;\r\n _this._generation = 0;\r\n _this._isLoading = true;\r\n return _this;\r\n }\r\n Object.defineProperty(DataStore.prototype, \"dataset\", {\r\n get: function () {\r\n return this._dataset;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataStore.prototype, \"error\", {\r\n get: function () {\r\n return this._error;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataStore.prototype, \"generation\", {\r\n get: function () {\r\n return this._generation;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataStore.prototype, \"isLoading\", {\r\n get: function () {\r\n return this._isLoading;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DataStore.prototype.refresh = function () {\r\n var _this = this;\r\n this._method(this._botId, { Timespan: this.timespan() })\r\n .then(function (data) {\r\n _this._dataset = _this.massage(data);\r\n _this._error = null;\r\n _this._generation++;\r\n _this._isLoading = false;\r\n _this.notify();\r\n })\r\n .fail(function (error) {\r\n _this._dataset = null;\r\n _this._error = error;\r\n _this._generation++;\r\n _this._isLoading = false;\r\n _this.notify();\r\n });\r\n };\r\n DataStore.prototype.getErrorText = function () {\r\n var parts = [];\r\n if (this.error) {\r\n if (this.error.status) {\r\n parts.push(this.error.status);\r\n }\r\n else if (this.error.statusText) {\r\n parts.push(this.error.statusText);\r\n }\r\n if (this.error.responseJSON) {\r\n parts.push(this.error.responseJSON);\r\n }\r\n }\r\n return parts.join(' - ');\r\n };\r\n return DataStore;\r\n }(Observable));\r\n var TimelineDataStore = (function (_super) {\r\n __extends(TimelineDataStore, _super);\r\n function TimelineDataStore(botId, method) {\r\n var _this = _super.call(this, botId, method) || this;\r\n _this.subscriptions = [];\r\n return _this;\r\n }\r\n Object.defineProperty(TimelineDataStore.prototype, \"channels\", {\r\n get: function () {\r\n var _this = this;\r\n return this._dataset ? ChannelArt.channelList()\r\n .filter(function (channel) { return _this._dataset.Totals.hasOwnProperty(channel.id); })\r\n .filter(function (channel) { return AnalyticsStore.channelFilter.isVisible(channel.id); })\r\n : [];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TimelineDataStore.prototype.startup = function () {\r\n var _this = this;\r\n if (!this.subscriptions.length) {\r\n this.subscriptions.push(AnalyticsStore.timespanSelector.subscribe(function () { return _this.timespanChanged(); }));\r\n }\r\n if (!this.dataset) {\r\n this.refresh();\r\n }\r\n };\r\n TimelineDataStore.prototype.timespanChanged = function () {\r\n this.refresh();\r\n };\r\n TimelineDataStore.prototype.timespan = function () {\r\n return AnalyticsStore.timespanSelector.timespan;\r\n };\r\n TimelineDataStore.prototype.massage = function (data) {\r\n return data;\r\n };\r\n return TimelineDataStore;\r\n }(DataStore));\r\n var UserTimelineDataStore = (function (_super) {\r\n __extends(UserTimelineDataStore, _super);\r\n function UserTimelineDataStore(botId) {\r\n return _super.call(this, botId, Rest.AnalyticsClient.getUsers) || this;\r\n }\r\n return UserTimelineDataStore;\r\n }(TimelineDataStore));\r\n var MessageTimelineDataStore = (function (_super) {\r\n __extends(MessageTimelineDataStore, _super);\r\n function MessageTimelineDataStore(botId) {\r\n return _super.call(this, botId, Rest.AnalyticsClient.getMessages) || this;\r\n }\r\n return MessageTimelineDataStore;\r\n }(TimelineDataStore));\r\n var UserRetentionDataStore = (function (_super) {\r\n __extends(UserRetentionDataStore, _super);\r\n function UserRetentionDataStore(botId) {\r\n var _this = _super.call(this, botId, Rest.AnalyticsClient.getUserRetention) || this;\r\n _this.subscriptions = [];\r\n return _this;\r\n }\r\n UserRetentionDataStore.prototype.startup = function () {\r\n if (!this.subscriptions.length) {\r\n }\r\n if (!this.dataset) {\r\n this.refresh();\r\n }\r\n };\r\n UserRetentionDataStore.prototype.timespanChanged = function () {\r\n this.refresh();\r\n };\r\n UserRetentionDataStore.prototype.timespan = function () {\r\n return (userRetentionDaysBack + 1).toString();\r\n };\r\n UserRetentionDataStore.prototype.massage = function (data) {\r\n return data;\r\n };\r\n return UserRetentionDataStore;\r\n }(DataStore));\r\n var AnalyticsStore = (function () {\r\n function AnalyticsStore() {\r\n }\r\n AnalyticsStore.bootstrap = function (botId) {\r\n if (this.botId != botId) {\r\n this.botId = botId;\r\n this.channelFilter = new ChannelFilter();\r\n this.timespanSelector = new TimespanSelector();\r\n this.userTimelineDataStore = new UserTimelineDataStore(botId);\r\n this.messageTimelineDataStore = new MessageTimelineDataStore(botId);\r\n this.userRetentionDataStore = new UserRetentionDataStore(botId);\r\n }\r\n this.channelFilter.startup();\r\n this.timespanSelector.startup();\r\n this.userTimelineDataStore.startup();\r\n this.messageTimelineDataStore.startup();\r\n this.userRetentionDataStore.startup();\r\n };\r\n return AnalyticsStore;\r\n }());\r\n var AnalyticsDashboard = (function (_super) {\r\n __extends(AnalyticsDashboard, _super);\r\n function AnalyticsDashboard(props) {\r\n var _this = _super.call(this, props) || this;\r\n if (_this.props.bot.DeveloperAppInsightsAPIKey && _this.props.bot.DeveloperAppInsightsApplicationId) {\r\n AnalyticsStore.bootstrap(props.bot.Id);\r\n }\r\n return _this;\r\n }\r\n AnalyticsDashboard.prototype.renderHeader = function () {\r\n var _this = this;\r\n return (React.createElement(\"div\", { className: \"analytics-header\" },\r\n React.createElement(\"div\", { className: \"analytics-controls\" },\r\n React.createElement(\"div\", { className: \"flex-spacer\" }),\r\n React.createElement(ChannelFilterControl, null),\r\n React.createElement(TimespanSelectorControl, { ref: function (x) { return _this.timespanSelector = x; } }))));\r\n };\r\n AnalyticsDashboard.prototype.render = function () {\r\n var _this = this;\r\n if (this.props.bot.DeveloperAppInsightsAPIKey && this.props.bot.DeveloperAppInsightsApplicationId) {\r\n return (React.createElement(\"div\", { className: \"analytics-dashboard\" },\r\n this.renderHeader(),\r\n React.createElement(\"div\", { className: \"analytics-body\" },\r\n React.createElement(GrandTotalsCard, null),\r\n React.createElement(UserRetentionTable, { dataStore: AnalyticsStore.userRetentionDataStore, title: Intercom_Resources_DevPortal_1.Resources.retentionTitle, desc: Intercom_Resources_DevPortal_1.Resources.retentionDescription }),\r\n React.createElement(TimelineCard, { dataStore: AnalyticsStore.userTimelineDataStore, title: Intercom_Resources_DevPortal_1.Resources.timelineCardUsersTitle }),\r\n React.createElement(TimelineCard, { dataStore: AnalyticsStore.messageTimelineDataStore, title: Intercom_Resources_DevPortal_1.Resources.timelineCardMessagesTitle }),\r\n React.createElement(index_1.FooterControl, { scrollingClass: \"analytics-body\" }))));\r\n }\r\n else {\r\n var notConfiguredSubText = Environment_1.Environment.isInBotFrameworkAzureExtension ? (React.createElement(\"p\", null, Intercom_Resources_DevPortal_1.Resources.analyticsNotConfiguredActionIbiza)) : (React.createElement(\"p\", null,\r\n Intercom_Resources_DevPortal_1.Resources.analyticsNotConfiguredAction,\r\n React.createElement(\"a\", { href: \"javascript:void(0)\", onClick: function () { return _this.props.tabClickHandler(BotPage_1.BotTabs.Settings); } }, index_1.resourceStrings.v4.botPageTabs[BotPage_1.BotTabs.Settings])));\r\n return (React.createElement(\"div\", { className: \"analytics-dashboard\" },\r\n React.createElement(\"div\", { className: \"analytics-body no-header\" },\r\n React.createElement(\"div\", { className: \"description-card-wrapper\" },\r\n React.createElement(\"div\", { className: \"description-card-contents\" },\r\n React.createElement(\"h2\", null, Intercom_Resources_DevPortal_1.Resources.analyticsNotConfigured),\r\n notConfiguredSubText,\r\n React.createElement(\"p\", null,\r\n React.createElement(\"a\", { href: \"//aka.ms/bf-analytics\", target: \"_blank\" }, Intercom_Resources_DevPortal_1.Resources.learnMore)))),\r\n React.createElement(index_1.FooterControl, { scrollingClass: \"analytics-body\" }))));\r\n }\r\n };\r\n return AnalyticsDashboard;\r\n }(React.Component));\r\n exports.AnalyticsDashboard = AnalyticsDashboard;\r\n var ChannelFilterControl = (function (_super) {\r\n __extends(ChannelFilterControl, _super);\r\n function ChannelFilterControl() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.subscriptions = [];\r\n _this.checkboxRefs = {};\r\n _this.labelChannelStyle = {\r\n padding: \"0 8px 0 8px\"\r\n };\r\n return _this;\r\n }\r\n ChannelFilterControl.prototype.componentDidMount = function () {\r\n var _this = this;\r\n this.subscriptions.push(AnalyticsStore.channelFilter.subscribe(function () { return _this.channelsUpdated(); }));\r\n };\r\n ChannelFilterControl.prototype.componentWillUnmount = function () {\r\n this.subscriptions.forEach(function (unsubscribe) { return unsubscribe(); });\r\n this.subscriptions = [];\r\n };\r\n ChannelFilterControl.prototype.channelsUpdated = function () {\r\n this.forceUpdate();\r\n };\r\n ChannelFilterControl.prototype.onChannelClick = function (el, id) {\r\n AnalyticsStore.channelFilter.toggleVisible(id);\r\n this.checkboxRefs[id].checked = AnalyticsStore.channelFilter.isVisible(id);\r\n };\r\n ChannelFilterControl.prototype.renderLabelChannel = function (channel) {\r\n return (React.createElement(\"div\", { key: channel.id + \"-\" + AnalyticsStore.channelFilter.generation, style: this.labelChannelStyle, className: \"channel-filter-channel-id\" },\r\n React.createElement(\"span\", { style: { color: channel.stroke } }, '\\u25CF'),\r\n React.createElement(\"span\", null,\r\n '\\u00A0',\r\n channel.displayName)));\r\n };\r\n ChannelFilterControl.prototype.renderLabelEllipsis = function () {\r\n return (React.createElement(\"div\", { key: \"ellipsis\", style: this.labelChannelStyle },\r\n React.createElement(\"span\", null, '\\u2026')));\r\n };\r\n ChannelFilterControl.prototype.renderPickerLabel = function () {\r\n var _this = this;\r\n var channels = AnalyticsStore.channelFilter.visibleChannelList();\r\n var top = channels.slice(0, 4);\r\n var items = top.map(function (channel) { return _this.renderLabelChannel(channel); });\r\n if (channels.length > top.length) {\r\n items.push(this.renderLabelEllipsis());\r\n }\r\n var style = {\r\n whiteSpace: \"nowrap\",\r\n display: \"flex\"\r\n };\r\n return (React.createElement(\"div\", { key: AnalyticsStore.channelFilter.generation, style: style }, items));\r\n };\r\n ChannelFilterControl.prototype.renderPickerCell = function (channel) {\r\n var _this = this;\r\n return (React.createElement(\"td\", { key: channel.id },\r\n React.createElement(\"label\", { className: \"m-checkbox-container\" },\r\n React.createElement(\"input\", { type: \"checkbox\", className: \"m-checkbox\", ref: function (ref) { return _this.checkboxRefs[channel.id] = ref; }, role: \"checkbox\", onClick: function (el) { return _this.onChannelClick(el, channel.id); }, \"aria-checked\": AnalyticsStore.channelFilter.isVisible(channel.id), defaultChecked: AnalyticsStore.channelFilter.isVisible(channel.id) }),\r\n React.createElement(\"span\", { className: \"m-icon-Checkbox unchecked\" }),\r\n React.createElement(\"span\", { className: \"m-icon-CheckboxComposite checked\" }),\r\n channel.displayName)));\r\n };\r\n ChannelFilterControl.prototype.renderPickerRow = function (channels, index) {\r\n var _this = this;\r\n var cells = channels.splice(0, 2).map(function (channel) { return _this.renderPickerCell(channel); });\r\n return (React.createElement(\"tr\", { key: index }, cells));\r\n };\r\n ChannelFilterControl.prototype.renderPickerContent = function () {\r\n var channels = ChannelArt.channelList();\r\n var rows = [];\r\n var index = 0;\r\n while (channels.length) {\r\n rows.push(this.renderPickerRow(channels, index++));\r\n }\r\n return (React.createElement(\"div\", { className: \"channel-filter\" },\r\n React.createElement(\"table\", null,\r\n React.createElement(\"tbody\", null, rows))));\r\n };\r\n ChannelFilterControl.prototype.render = function () {\r\n return (React.createElement(ChevronDropdownControl_1.ChevronDropdownControl, { className: \"channel-filter-dropdown\", label: this.renderPickerLabel(), content: this.renderPickerContent(), buttonHiddenLabel: Intercom_Resources_DevPortal_1.Resources.analyticsChannelsDropdown }));\r\n };\r\n return ChannelFilterControl;\r\n }(React.Component));\r\n var TimespanSelectorControl = (function (_super) {\r\n __extends(TimespanSelectorControl, _super);\r\n function TimespanSelectorControl() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.subscriptions = [];\r\n _this.checkboxRefs = {};\r\n return _this;\r\n }\r\n TimespanSelectorControl.prototype.componentDidMount = function () {\r\n var _this = this;\r\n this.subscriptions.push(AnalyticsStore.timespanSelector.subscribe(function () { return _this.timespanUpdated(); }));\r\n };\r\n TimespanSelectorControl.prototype.componentWillUnmount = function () {\r\n this.subscriptions.forEach(function (unsubscribe) { return unsubscribe(); });\r\n this.subscriptions = [];\r\n };\r\n TimespanSelectorControl.prototype.timespanUpdated = function () {\r\n this.forceUpdate();\r\n };\r\n TimespanSelectorControl.prototype.close = function () {\r\n if (this.control) {\r\n this.control.close();\r\n }\r\n };\r\n TimespanSelectorControl.prototype.onClicked = function (timespan) {\r\n AnalyticsStore.timespanSelector.timespan = timespan;\r\n this.checkboxRefs[timespan].checked = AnalyticsStore.timespanSelector.timespan === timespan;\r\n };\r\n TimespanSelectorControl.prototype.renderPickerLabel = function () {\r\n return (React.createElement(\"div\", { className: \"timespan-label\", key: \"timespan-label\" + AnalyticsStore.timespanSelector.generation }, TimespanSelector.dateRangeForTimespan(AnalyticsStore.timespanSelector.timespan)));\r\n };\r\n TimespanSelectorControl.prototype.renderPickerContent = function () {\r\n var _this = this;\r\n var selectors = TimespanSelector.timespans.map(function (timespan) {\r\n return (React.createElement(\"div\", { key: timespan },\r\n React.createElement(\"label\", { className: \"m-radio-container\" },\r\n React.createElement(\"input\", { className: \"m-radio\", type: \"radio\", name: \"timespan\", onClick: function () { return _this.onClicked(timespan); }, ref: function (ref) { return _this.checkboxRefs[timespan] = ref; }, role: \"radio\", \"aria-checked\": AnalyticsStore.timespanSelector.timespan === timespan, defaultChecked: AnalyticsStore.timespanSelector.timespan === timespan }),\r\n React.createElement(\"span\", { className: \"m-icon-RadioBtnOff unchecked\" }),\r\n React.createElement(\"span\", { className: \"m-icon-RadioBtnOn checked\" }),\r\n TimespanSelector.displayNameForTimespan(timespan))));\r\n });\r\n return (React.createElement(\"div\", { className: \"timespan-selector\" },\r\n React.createElement(\"form\", null, selectors)));\r\n };\r\n TimespanSelectorControl.prototype.render = function () {\r\n var _this = this;\r\n return (React.createElement(ChevronDropdownControl_1.ChevronDropdownControl, { ref: function (x) { return _this.control = x; }, className: \"timespan-picker-dropdown\", label: this.renderPickerLabel(), content: this.renderPickerContent(), buttonHiddenLabel: Intercom_Resources_DevPortal_1.Resources.analyticsPeriodDropdown }));\r\n };\r\n return TimespanSelectorControl;\r\n }(React.Component));\r\n var GrandTotalsCard = (function (_super) {\r\n __extends(GrandTotalsCard, _super);\r\n function GrandTotalsCard() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.subscriptions = [];\r\n return _this;\r\n }\r\n GrandTotalsCard.prototype.componentDidMount = function () {\r\n var _this = this;\r\n this.subscriptions.push(AnalyticsStore.channelFilter.subscribe(function () { return _this.storeUpdated(); }));\r\n this.subscriptions.push(AnalyticsStore.userTimelineDataStore.subscribe(function () { return _this.storeUpdated(); }));\r\n this.subscriptions.push(AnalyticsStore.messageTimelineDataStore.subscribe(function () { return _this.storeUpdated(); }));\r\n };\r\n GrandTotalsCard.prototype.componentWillUnmount = function () {\r\n this.subscriptions.forEach(function (unsubscribe) { return unsubscribe(); });\r\n this.subscriptions = [];\r\n };\r\n GrandTotalsCard.prototype.storeUpdated = function () {\r\n this.forceUpdate();\r\n };\r\n GrandTotalsCard.prototype.getGrandTotal = function (datastore) {\r\n if (datastore.dataset) {\r\n var total_1 = 0;\r\n var lines = datastore.channels\r\n .map(function (channel) {\r\n total_1 += datastore.dataset.Totals[channel.id];\r\n });\r\n return total_1;\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n GrandTotalsCard.prototype.render = function () {\r\n return (React.createElement(\"div\", { className: \"analytics-card totals-card\" },\r\n React.createElement(\"h3\", null, Intercom_Resources_DevPortal_1.Resources.totalsCardTitle),\r\n React.createElement(TotalCard, { title: Intercom_Resources_DevPortal_1.Resources.timelineCardUsersTitle, total: this.getGrandTotal(AnalyticsStore.userTimelineDataStore) }),\r\n React.createElement(TotalCard, { title: Intercom_Resources_DevPortal_1.Resources.timelineCardMessagesTitle, total: this.getGrandTotal(AnalyticsStore.messageTimelineDataStore) })));\r\n };\r\n return GrandTotalsCard;\r\n }(React.Component));\r\n var TotalCard = (function (_super) {\r\n __extends(TotalCard, _super);\r\n function TotalCard() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TotalCard.prototype.render = function () {\r\n var color = this.props.color || \"transparent\";\r\n var disabled = this.props.disabled || false;\r\n var value = this.props.total ? abbreviateNumber(this.props.total) : '--';\r\n return (React.createElement(\"div\", { className: \"total-card\" + (disabled ? \" disabled\" : \"\") },\r\n React.createElement(\"div\", { \"aria-hidden\": \"true\", className: \"total-card-title\", style: { borderBottomColor: color } },\r\n React.createElement(\"div\", { className: \"total-card-title-text\" }, value)),\r\n React.createElement(\"div\", { \"aria-label\": (value === '--' ? Intercom_Resources_DevPortal_1.Resources.undetermined : value) + \" \" + this.props.title },\r\n React.createElement(\"div\", { \"aria-hidden\": \"true\" }, this.props.title),\r\n React.createElement(\"div\", { className: \"offscreen\" }, (value === '--' ? Intercom_Resources_DevPortal_1.Resources.undetermined : value) + \" \" + this.props.title))));\r\n };\r\n return TotalCard;\r\n }(React.Component));\r\n var TimelineCard = (function (_super) {\r\n __extends(TimelineCard, _super);\r\n function TimelineCard() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.subscriptions = [];\r\n return _this;\r\n }\r\n TimelineCard.prototype.componentDidMount = function () {\r\n var _this = this;\r\n this.subscriptions.push(AnalyticsStore.channelFilter.subscribe(function () { return _this.channelsUpdated(); }));\r\n this.subscriptions.push(this.props.dataStore.subscribe(function () { return _this.storeUpdated(); }));\r\n };\r\n TimelineCard.prototype.componentWillUnmount = function () {\r\n this.subscriptions.forEach(function (unsubscribe) { return unsubscribe(); });\r\n this.subscriptions = [];\r\n };\r\n TimelineCard.prototype.storeUpdated = function () {\r\n this.forceUpdate();\r\n };\r\n TimelineCard.prototype.channelsUpdated = function () {\r\n this.forceUpdate();\r\n };\r\n TimelineCard.prototype.render = function () {\r\n var _this = this;\r\n var XAxisLabel = function (props) {\r\n if (props.payload.index > 0)\r\n return (React.createElement(\"g\", { transform: \"translate(\" + props.x + \",\" + props.y + \")\" },\r\n React.createElement(\"text\", { x: 0, y: 0, dy: 16, textAnchor: props.textAnchor, transform: \"rotate(\" + (props.angle || 0) + \")\" }, AnalyticsStore.timespanSelector.labelForAppInsightsDate(props.payload.value))));\r\n return null;\r\n };\r\n if (this.props.dataStore.dataset) {\r\n var dataset_1 = this.props.dataStore.dataset;\r\n var channels_1 = this.props.dataStore.channels.sort(function (a, b) { return AnalyticsStore.channelFilter.channel(a.id).generation - AnalyticsStore.channelFilter.channel(b.id).generation; });\r\n var RADIAN_1 = Math.PI / 180;\r\n var renderPieLabel = function (_a) {\r\n var cx = _a.cx, cy = _a.cy, midAngle = _a.midAngle, innerRadius = _a.innerRadius, outerRadius = _a.outerRadius, percent = _a.percent, index = _a.index;\r\n var radius = innerRadius + (outerRadius - innerRadius) * 0.5;\r\n radius -= 5;\r\n var x = cx + radius * Math.cos(-midAngle * RADIAN_1);\r\n var y = cy + radius * Math.sin(-midAngle * RADIAN_1);\r\n return (React.createElement(\"text\", { key: index, x: x, y: y, fill: \"white\", textAnchor: x > cx ? 'start' : 'end', dominantBaseline: \"central\" }, (percent * 100).toFixed(0) + \"%\"));\r\n };\r\n var lines = channels_1.map(function (channel) {\r\n var strokeWidth = 3;\r\n return React.createElement(recharts_1.Line, { key: channel.id, type: \"monotone\", stroke: ChannelArt.channel(channel.id).stroke, strokeWidth: strokeWidth, isAnimationActive: true, dot: { r: 4 }, activeDot: { r: 6 }, dataKey: channel.id });\r\n });\r\n var piedata = channels_1.map(function (channel) {\r\n return {\r\n name: channel.displayName,\r\n value: dataset_1.Totals[channel.id]\r\n };\r\n });\r\n var piecolors = channels_1.map(function (channel) {\r\n return React.createElement(recharts_1.Cell, { key: channel.id, fill: ChannelArt.channel(channel.id).stroke });\r\n });\r\n var totals = channels_1.map(function (channel) {\r\n return React.createElement(TotalCard, { key: channel.id, total: _this.props.dataStore.dataset.Totals[channel.id], title: channel.displayName, color: ChannelArt.channel(channel.id).stroke });\r\n });\r\n return (React.createElement(\"div\", { className: \"analytics-card timeline-card\" },\r\n React.createElement(\"div\", { className: \"timeline-charts\" },\r\n React.createElement(\"div\", { className: \"timeline-chart\" },\r\n React.createElement(\"h3\", null, this.props.title),\r\n React.createElement(\"ul\", { className: \"offscreen\" }, piedata.map(function (row) { return React.createElement(\"li\", { key: row.name },\r\n row.name,\r\n \": \",\r\n row.value); })),\r\n React.createElement(\"div\", { className: \"timeline-chart-pie\" },\r\n React.createElement(recharts_1.PieChart, { width: 200, height: 200 },\r\n React.createElement(recharts_1.Pie, { data: piedata, cx: 100, cy: 100, labelLine: false, outerRadius: 90, innerRadius: 55, isAnimationActive: false }, piecolors)))),\r\n React.createElement(\"div\", { className: \"timeline-chart\" },\r\n React.createElement(\"table\", { className: \"offscreen\" },\r\n React.createElement(\"caption\", null,\r\n React.createElement(\"div\", null,\r\n React.createElement(\"h3\", null, Intercom_Resources_DevPortal_1.Resources.timelineTableLabel.replace('%1', this.props.title)))),\r\n React.createElement(\"thead\", null,\r\n React.createElement(\"tr\", null,\r\n React.createElement(\"td\", { \"aria-hidden\": 'true' }),\r\n channels_1.map(function (channel) { return React.createElement(\"th\", { key: channel.id, scope: 'col' }, channel.displayName); }))),\r\n React.createElement(\"tbody\", null, dataset_1.Timeline.map(function (time) {\r\n return React.createElement(\"tr\", { key: time.Timestamp },\r\n React.createElement(\"th\", { scope: 'row' }, time.Timestamp),\r\n channels_1.map(function (channel) {\r\n return React.createElement(\"td\", { key: channel.id }, time[channel.id]);\r\n }));\r\n }))),\r\n React.createElement(\"div\", { className: \"timeline-chart-graph\" },\r\n React.createElement(recharts_1.LineChart, { key: \"chart-\" + this.props.dataStore.generation, width: 760, height: 300, data: dataset_1.Timeline, margin: { top: 5, right: 30, left: 20, bottom: 5 }, \"aria-label\": Intercom_Resources_DevPortal_1.Resources.timelineTableLabel.replace('%1', this.props.title) },\r\n React.createElement(recharts_1.XAxis, { dataKey: \"Timestamp\", tick: React.createElement(XAxisLabel, null) }),\r\n React.createElement(recharts_1.YAxis, null),\r\n React.createElement(recharts_1.CartesianGrid, { strokeDasharray: \"3 3\" }),\r\n lines)))),\r\n React.createElement(\"div\", { className: \"totals-card\", \"aria-hidden\": true }, totals)));\r\n }\r\n else if (this.props.dataStore.error) {\r\n return (React.createElement(\"div\", { className: \"analytics-card\" },\r\n React.createElement(\"h3\", null, Intercom_Resources_DevPortal_1.Resources.cardTitleError.replace('%1', this.props.title).replace('%2', this.props.dataStore.getErrorText()))));\r\n }\r\n else if (!this.props.dataStore.isLoading) {\r\n return (React.createElement(\"div\", { className: \"analytics-card\" },\r\n React.createElement(\"h3\", null, Intercom_Resources_DevPortal_1.Resources.cardTitleLoading.replace('%1', this.props.title).replace('%2', Intercom_Resources_DevPortal_1.Resources.noAnalyticsData))));\r\n }\r\n else {\r\n return (React.createElement(\"div\", { className: \"analytics-card\" },\r\n React.createElement(\"h3\", null, Intercom_Resources_DevPortal_1.Resources.cardTitleLoading.replace('%1', this.props.title).replace('%2', Intercom_Resources_DevPortal_1.Resources.loading))));\r\n }\r\n };\r\n return TimelineCard;\r\n }(React.Component));\r\n var UserRetentionTable = (function (_super) {\r\n __extends(UserRetentionTable, _super);\r\n function UserRetentionTable() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.subscriptions = [];\r\n return _this;\r\n }\r\n UserRetentionTable.prototype.componentDidMount = function () {\r\n var _this = this;\r\n this.subscriptions.push(AnalyticsStore.channelFilter.subscribe(function () { return _this.channelsUpdated(); }));\r\n this.subscriptions.push(this.props.dataStore.subscribe(function () { return _this.storeUpdated(); }));\r\n };\r\n UserRetentionTable.prototype.componentWillUnmount = function () {\r\n this.subscriptions.forEach(function (unsubscribe) { return unsubscribe(); });\r\n this.subscriptions = [];\r\n };\r\n UserRetentionTable.prototype.storeUpdated = function () {\r\n this.forceUpdate();\r\n };\r\n UserRetentionTable.prototype.channelsUpdated = function () {\r\n this.forceUpdate();\r\n };\r\n UserRetentionTable.prototype.render = function () {\r\n if (this.props.dataStore.dataset) {\r\n var dataset = this.props.dataStore.dataset;\r\n var sumWithChannels_1 = function (data, channels) {\r\n var sum = 0;\r\n for (var _i = 0, channels_2 = channels; _i < channels_2.length; _i++) {\r\n var channel = channels_2[_i];\r\n if (data[channel.id])\r\n sum += data[channel.id];\r\n }\r\n return sum;\r\n };\r\n var renderRow_1 = function (rowData) {\r\n if (rowData.length < 1) {\r\n return React.createElement(\"tr\", { className: \"Empty row\" }, \"No data\");\r\n }\r\n var channels = (rowData.DaysData) ? ChannelArt.channelList()\r\n .filter(function (channel) { return rowData.DaysData.hasOwnProperty(channel.id); })\r\n .filter(function (channel) { return AnalyticsStore.channelFilter.isVisible(channel.id); })\r\n : [];\r\n var total = sumWithChannels_1(rowData.DaysData, channels);\r\n var date = rowData.Date;\r\n var colorLower = [229, 244, 254];\r\n var colorUpper = [25, 157, 246];\r\n var percentCells = rowData.Timeline.map(function (entry, i) {\r\n var percent = total >= 1 ? sumWithChannels_1(entry, channels) / total : 0;\r\n var colorRgb = colorLower.map(function (lower, i) {\r\n var upper = colorUpper[i];\r\n return Math.floor((lower - upper) * (1 - percent) + upper);\r\n });\r\n var colorStr = \"(\" + colorRgb[0] + \", \" + colorRgb[1] + \", \" + colorRgb[2] + \")\";\r\n percent = percent * 100;\r\n return React.createElement(\"td\", { className: \"percent-cell\", key: date + i, style: { backgroundColor: 'rgb' + colorStr } },\r\n React.createElement(\"div\", { className: \"cell-contents\" },\r\n percent.toFixed(0),\r\n \"%\"));\r\n });\r\n return React.createElement(\"tr\", { key: date },\r\n React.createElement(\"th\", { scope: \"row\", className: \"date-cell\" },\r\n React.createElement(\"div\", null, (new Date(date).toLocaleDateString(Culture_1.Culture.CultureCode)))),\r\n React.createElement(\"td\", { className: \"total-cell\" },\r\n React.createElement(\"div\", null, total)),\r\n percentCells);\r\n };\r\n var rows = dataset.Days.map(function (day, index) {\r\n return renderRow_1(day);\r\n });\r\n var dayHeaders = [];\r\n for (var i = 1; i <= userRetentionDaysBack; i++) {\r\n dayHeaders.push(React.createElement(\"th\", { scope: \"col\", key: i }, i));\r\n }\r\n return React.createElement(\"div\", { className: \"analytics-card user-retention-card\" },\r\n React.createElement(\"table\", { className: \"user-retention-table\" },\r\n React.createElement(\"caption\", null,\r\n React.createElement(\"div\", null,\r\n React.createElement(\"h3\", null,\r\n this.props.title,\r\n \" - \",\r\n this.props.desc))),\r\n React.createElement(\"thead\", null,\r\n React.createElement(\"tr\", null,\r\n React.createElement(\"td\", { className: \"header-corner\", colSpan: 2, \"aria-hidden\": \"true\" }),\r\n React.createElement(\"th\", { scope: \"col\", className: \"header-days\", colSpan: userRetentionDaysBack }, Intercom_Resources_DevPortal_1.Resources.retentionHeader)),\r\n React.createElement(\"tr\", { className: \"table-header\" },\r\n React.createElement(\"th\", { scope: \"col\", className: \"date-cell\" }, Intercom_Resources_DevPortal_1.Resources.retentionDate),\r\n React.createElement(\"th\", { scope: \"col\", className: \"total-cell\" }, Intercom_Resources_DevPortal_1.Resources.retentionUsers),\r\n dayHeaders)),\r\n React.createElement(\"tbody\", null, rows)));\r\n }\r\n else if (this.props.dataStore.error) {\r\n return (React.createElement(\"div\", { className: \"analytics-card\" },\r\n React.createElement(\"h3\", null, Intercom_Resources_DevPortal_1.Resources.cardTitleError.replace('%1', this.props.title).replace('%2', this.props.dataStore.getErrorText()))));\r\n }\r\n else if (!this.props.dataStore.isLoading) {\r\n return (React.createElement(\"div\", { className: \"analytics-card\" },\r\n React.createElement(\"h3\", null, Intercom_Resources_DevPortal_1.Resources.cardTitleLoading.replace('%1', this.props.title).replace('%2', Intercom_Resources_DevPortal_1.Resources.noAnalyticsData))));\r\n }\r\n else {\r\n return (React.createElement(\"div\", { className: \"analytics-card\" },\r\n React.createElement(\"h3\", null, Intercom_Resources_DevPortal_1.Resources.cardTitleLoading.replace('%1', this.props.title).replace('%2', Intercom_Resources_DevPortal_1.Resources.loading))));\r\n }\r\n };\r\n return UserRetentionTable;\r\n }(React.Component));\r\n var ErrorsCard = (function (_super) {\r\n __extends(ErrorsCard, _super);\r\n function ErrorsCard() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ErrorsCard.prototype.render = function () {\r\n return (React.createElement(\"div\", { className: \"analytics-card errors-card\" },\r\n React.createElement(\"h3\", null, this.props.title)));\r\n };\r\n return ErrorsCard;\r\n }(React.Component));\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 260 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(8), __webpack_require__(27), __webpack_require__(103), __webpack_require__(439), __webpack_require__(15), __webpack_require__(26), __webpack_require__(106), __webpack_require__(57)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ClientAppSettings_1, MessageBox_1, ProgressDialog_1, TermsOfServiceDialog_1, Intercom_Resources_DevPortal_1, Environment_1, CultureUtility_1, $) {\r\n var innerAjax = $.ajax;\r\n var extend = $.extend;\r\n exports.showNetworkIcon = function (show) { };\r\n exports.ajax = _ajax;\r\n exports.urlPrefix = '';\r\n exports.ajaxHeaders = null;\r\n function _ajax(settings_) {\r\n var settings = extend({}, settings_, { url: exports.urlPrefix + settings_.url });\r\n if (settings.data)\r\n settings.contentType = 'application/json';\r\n if (exports.ajaxHeaders)\r\n settings.headers = exports.ajaxHeaders;\r\n exports.showNetworkIcon(true);\r\n return innerAjax(settings).always(function () { return exports.showNetworkIcon(false); });\r\n }\r\n var BotChannelConfig = (function (_super) {\r\n __extends(BotChannelConfig, _super);\r\n function BotChannelConfig(props) {\r\n var _this = _super.call(this, props) || this;\r\n var configInterface = props.channelConfigInterface;\r\n _.defaults(configInterface, {\r\n showDeleteDialog: _this.deleteDialog,\r\n showConfirmLeaveDialog: _this.leaveDialog,\r\n showProgressDialog: ProgressDialog_1.ProgressDialog.show,\r\n showTosDialog: _this.tosDialog\r\n });\r\n window[\"channelConfigInterface\"] = props.channelConfigInterface;\r\n _this.state = {\r\n body: \"\",\r\n showProgressMask: false\r\n };\r\n return _this;\r\n }\r\n BotChannelConfig.prototype.deleteDialog = function (callback, _lastNode) {\r\n var mb = new MessageBox_1.MessageBox({\r\n okButtonClass: \"m-button-destructive-outline-md\",\r\n okButtonLabel: Intercom_Resources_DevPortal_1.Resources.channelConfigDeleteOk,\r\n cancelButtonLabel: Intercom_Resources_DevPortal_1.Resources.channelConfigDeleteCancel\r\n });\r\n mb.message = Intercom_Resources_DevPortal_1.Resources.channelConfigDeleteMessage;\r\n mb.header = Intercom_Resources_DevPortal_1.Resources.channelConfigDeleteHeader;\r\n return mb.showDialog(_lastNode).done(callback);\r\n };\r\n BotChannelConfig.prototype.leaveDialog = function (callback) {\r\n var mb = new MessageBox_1.MessageBox({\r\n okButtonLabel: Intercom_Resources_DevPortal_1.Resources.channelConfigLeaveOk,\r\n cancelButtonLabel: Intercom_Resources_DevPortal_1.Resources.channelConfigLeaveCancel\r\n });\r\n mb.message = Intercom_Resources_DevPortal_1.Resources.channelConfigLeaveMessage;\r\n mb.header = Intercom_Resources_DevPortal_1.Resources.channelConfigLeaveHeader;\r\n return mb.showDialog().done(callback);\r\n };\r\n BotChannelConfig.prototype.tosDialog = function (checkbox, successCallback, fail) {\r\n var tosDialogProps = {\r\n header: Intercom_Resources_DevPortal_1.Resources.tosDialog_Header,\r\n message: Intercom_Resources_DevPortal_1.Resources.tosDialog_MessageChannels,\r\n checkboxes: [checkbox]\r\n };\r\n var termsDialog = new TermsOfServiceDialog_1.TermsOfServiceDialog(tosDialogProps);\r\n return termsDialog.showDialog().done(successCallback).fail(fail);\r\n };\r\n BotChannelConfig.prototype.render = function () {\r\n var _this = this;\r\n var rootPath = ClientAppSettings_1.clientAppSettings.applicationPath === '/' ? '' : ClientAppSettings_1.clientAppSettings.applicationPath;\r\n var url = rootPath + \"/channels/\" + this.props.channel + \"/\" + this.props.currentBotId;\r\n var query = {};\r\n if (CultureUtility_1.CultureUtility.rawLocale) {\r\n query[\"l\"] = CultureUtility_1.CultureUtility.rawLocale;\r\n }\r\n if (Environment_1.Environment.isInBotFrameworkAzureExtension) {\r\n query[\"ioenv\"] = \"ibiza\";\r\n }\r\n var queryString = jQuery.param(query);\r\n var path = url + ((queryString) ? \"?\" + queryString : \"\");\r\n if (this.props.channel == \"directlinespeech\") {\r\n BotChannelConfig.getDLSChannelPage(path, this.props.azureToken).done(function (body) {\r\n if (_this.state.body === \"\") {\r\n _this.setState({ body: body });\r\n }\r\n }).fail(function () {\r\n if (_this.state.body === \"\") {\r\n _this.setState({ body: \"

Something went wrong.

\" });\r\n }\r\n });\r\n return (React.createElement(\"div\", { className: \"channel-config-wrapper\" },\r\n React.createElement(\"iframe\", { title: \"Channel Configuration\", className: \"channel-config-iframe\", srcDoc: this.state.body })));\r\n ;\r\n }\r\n else {\r\n return React.createElement(\"div\", { className: \"channel-config-wrapper\" },\r\n React.createElement(\"iframe\", { title: \"Channel Configuration\", className: \"channel-config-iframe\", src: path }));\r\n }\r\n };\r\n BotChannelConfig.getDLSChannelPage = function (url, azureToken) {\r\n return exports.ajax({\r\n dataType: 'html',\r\n url: url,\r\n type: 'GET',\r\n headers: { 'azureToken': azureToken },\r\n });\r\n };\r\n return BotChannelConfig;\r\n }(React.Component));\r\n exports.BotChannelConfig = BotChannelConfig;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 261 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(388), __webpack_require__(793), __webpack_require__(531), __webpack_require__(532), __webpack_require__(535), __webpack_require__(533), __webpack_require__(534), __webpack_require__(536), __webpack_require__(276), __webpack_require__(459), __webpack_require__(280), __webpack_require__(452), __webpack_require__(19), __webpack_require__(110), __webpack_require__(249), __webpack_require__(14)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, react_treebeard_1, react_ace_1, csharp, javascript, xml, json, typescript, theme, Path_1, TreeStyle_1, pinBottom, LogStream_1, InFrame_1, BotAppContinuousIntegration_1, BotTabPage_1, index_1) {\r\n function mapFilesToTreeNodes(files) {\r\n return _.map(files, function (file) {\r\n return {\r\n id: file.href,\r\n name: file.name,\r\n children: file.href[file.href.length - 1] == '/' ? [] : undefined\r\n };\r\n });\r\n }\r\n exports.mapFilesToTreeNodes = mapFilesToTreeNodes;\r\n var SourceTypes;\r\n (function (SourceTypes) {\r\n SourceTypes[SourceTypes[\"csharp\"] = 0] = \"csharp\";\r\n SourceTypes[SourceTypes[\"javascript\"] = 1] = \"javascript\";\r\n SourceTypes[SourceTypes[\"typescript\"] = 2] = \"typescript\";\r\n SourceTypes[SourceTypes[\"json\"] = 3] = \"json\";\r\n SourceTypes[SourceTypes[\"xml\"] = 4] = \"xml\";\r\n })(SourceTypes = exports.SourceTypes || (exports.SourceTypes = {}));\r\n var extToSourceTypes = {\r\n '.js': SourceTypes.javascript,\r\n '.csx': SourceTypes.csharp,\r\n '.xml': SourceTypes.xml,\r\n '.ts': SourceTypes.typescript,\r\n '.json': SourceTypes.json,\r\n '.xproj': SourceTypes.xml\r\n };\r\n var modules = [csharp, javascript, typescript, json, xml, theme];\r\n var CustomContainer = (function (_super) {\r\n __extends(CustomContainer, _super);\r\n function CustomContainer(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n CustomContainer.prototype.render = function () {\r\n var _a = this.props, style = _a.style, decorators = _a.decorators, terminal = _a.terminal, onClick = _a.onClick, node = _a.node;\r\n var containerStyle = style.container;\r\n if (_.isArray(containerStyle)) {\r\n var args = _.clone(containerStyle);\r\n args.unshift({});\r\n containerStyle = _.extend.apply(null, args);\r\n }\r\n return (React.createElement(\"div\", { ref: \"clickable\", onClick: onClick, style: containerStyle },\r\n !terminal ? this.renderToggle() : null,\r\n React.createElement(decorators.Header, { node: node, style: style.header, terminal: terminal })));\r\n };\r\n CustomContainer.prototype.renderToggleDecorator = function () {\r\n var decorators = this.props.decorators;\r\n var style = this.props.style;\r\n var node = this.props.node;\r\n return (React.createElement(decorators.Toggle, { style: style['toggle'], node: node }));\r\n };\r\n return CustomContainer;\r\n }(react_treebeard_1.decorators.Container));\r\n var KeyCodes = {\r\n enter: 13\r\n };\r\n var BotCodeEditor = (function (_super) {\r\n __extends(BotCodeEditor, _super);\r\n function BotCodeEditor(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {\r\n root: {\r\n id: _this.props.botId,\r\n name: _this.props.botId,\r\n children: [],\r\n toggled: false,\r\n loading: true\r\n },\r\n activeNode: null,\r\n activeFile: null,\r\n activeCode: \"\",\r\n activeCodeDirty: false,\r\n logStream: \"\",\r\n botDeploymentLogFound: false\r\n };\r\n return _this;\r\n }\r\n BotCodeEditor.prototype.getMode = function () {\r\n var sourceType = SourceTypes.csharp;\r\n if (this.state.activeFile) {\r\n var curType = extToSourceTypes[Path_1.getExt(this.state.activeFile.name).toLowerCase()];\r\n if (!_.isUndefined(curType)) {\r\n sourceType = curType;\r\n }\r\n }\r\n return SourceTypes[sourceType];\r\n };\r\n Object.defineProperty(BotCodeEditor.prototype, \"scmType\", {\r\n get: function () {\r\n if (this.props.scmType instanceof Function) {\r\n return this.props.scmType();\r\n }\r\n else {\r\n return this.props.scmType;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n BotCodeEditor.prototype.isBoundToSourceControl = function () {\r\n return !((this.scmType || 'none').toLowerCase() === 'none');\r\n };\r\n BotCodeEditor.prototype.getToggleClass = function (props) {\r\n return \"tree-toggle \" + (props.node && props.node.toggled ? 'expand' : '');\r\n };\r\n BotCodeEditor.prototype.setBotId = function (botId) {\r\n this.props.onSetBotId(botId);\r\n };\r\n BotCodeEditor.prototype.setBot = function (bot) {\r\n };\r\n BotCodeEditor.prototype.componentDidMount = function () {\r\n var _this = this;\r\n $(this.fileNameEditor).keypress(function (e) {\r\n if (e.keyCode == KeyCodes.enter) {\r\n $(e.currentTarget).blur();\r\n }\r\n });\r\n if (this.codeExplorer) {\r\n this.codeExplorerListener = pinBottom.bind($(this.codeExplorer), $('.outline.footer'), $('#app-body'));\r\n }\r\n if (this.codePanel) {\r\n this.codePanelListener = pinBottom.bind($(this.codePanel), $('.outline.footer'), $('#app-body'), function () {\r\n if (_this.aceEditor && _this.aceEditor.editor) {\r\n _this.aceEditor.editor.resize();\r\n }\r\n });\r\n }\r\n if (this.aceEditor && this.aceEditor.editor && this.aceEditor.editor.session) {\r\n this.aceEditor.editor.session.setUseWorker(false);\r\n }\r\n };\r\n BotCodeEditor.prototype.componentWillUnmount = function () {\r\n $(this.fileNameEditor).off('keypress');\r\n if (this.codeExplorerListener) {\r\n pinBottom.unbind(this.codeExplorerListener);\r\n this.codeExplorerListener = null;\r\n }\r\n if (this.codePanelListener) {\r\n pinBottom.unbind(this.codePanelListener);\r\n this.codePanelListener = null;\r\n }\r\n var curNode = this.state.activeNode;\r\n if (this.aceEditor && this.aceEditor.editor) {\r\n var curPos = this.aceEditor.editor.getCursorPosition();\r\n if (curNode && curPos) {\r\n curNode['cursorPos'] = curPos;\r\n }\r\n }\r\n };\r\n BotCodeEditor.prototype.componentDidUpdate = function (prevProps, prevState) {\r\n var $fileNameEditor = $(this.fileNameEditor);\r\n if ($fileNameEditor.hasClass('open')) {\r\n var $explorer = $fileNameEditor.parent();\r\n var $newFileNode = $explorer.find('.create-file-name');\r\n if ($newFileNode.length) {\r\n var box = $explorer[0].getBoundingClientRect();\r\n var nodeBox = $newFileNode[0].getBoundingClientRect();\r\n $fileNameEditor.css({\r\n 'position': 'absolute',\r\n 'top': nodeBox.top - box.top + \"px\",\r\n 'left': nodeBox.left - box.left + \"px\"\r\n }).focus();\r\n }\r\n }\r\n if (this.pendingResetUndoStack) {\r\n if (this.aceEditor && this.aceEditor.editor) {\r\n if (this.aceEditor.editor.getValue() == this.state.activeCode) {\r\n var undoMgr = this.aceEditor.editor.session.getUndoManager();\r\n if (undoMgr) {\r\n undoMgr.reset();\r\n this.pendingResetUndoStack = false;\r\n }\r\n }\r\n }\r\n }\r\n this.gotoPreviousCursor();\r\n this.aceEditor.editor.setOption('readOnly', this.isBoundToSourceControl());\r\n };\r\n BotCodeEditor.prototype.openContinuousSettings = function () {\r\n BotAppContinuousIntegration_1.toggleContinuousIntegrationSettings($('section.bot-app-setting a.expando.closed'));\r\n };\r\n BotCodeEditor.prototype.onSaveCurrentFile = function () {\r\n if (!this.isBoundToSourceControl() && this.state.activeCodeDirty) {\r\n this.props.onSave(this.state.activeFile.id, this.code);\r\n }\r\n };\r\n BotCodeEditor.prototype.gotoPreviousCursor = function () {\r\n var pos = this.state.activeNode ? this.state.activeNode['cursorPos'] : null;\r\n var lines = this.aceEditor && this.aceEditor.editor && this.aceEditor.editor.session ?\r\n this.aceEditor.editor.session.getLength() : -1;\r\n if (pos && this.aceEditor && this.aceEditor.editor && pos.row + 1 <= lines) {\r\n this.aceEditor.editor.gotoLine(pos.row + 1, pos.column);\r\n delete this.state.activeNode['cursorPos'];\r\n }\r\n };\r\n BotCodeEditor.prototype.resetUndoStack = function () {\r\n this.pendingResetUndoStack = true;\r\n };\r\n BotCodeEditor.prototype.getCursorPosition = function () {\r\n return this.aceEditor && this.aceEditor.editor ? this.aceEditor.editor.getCursorPosition() : 0;\r\n };\r\n BotCodeEditor.prototype.showLoading = function () {\r\n return React.createElement(index_1.ProgressRingControl, { onMounted: function (div) { return $(div).closest(\"ul\").toggleClass(\"code-explorer-loading\", true); }, onUnmount: function (div) { return $(div).closest('ul.code-explorer-loading').toggleClass('code-explorer-loading', false); } });\r\n };\r\n BotCodeEditor.prototype.render = function () {\r\n var _this = this;\r\n var showAddButton = false;\r\n var isBoundToSourceControl = this.isBoundToSourceControl();\r\n var message = isBoundToSourceControl ? React.createElement(\"div\", { className: \"app-message\" }, \"Continuous deployment connected, read only view\") : null;\r\n var lastDeployTime = this.state.botDeploymentLog ? new Date(this.state.botDeploymentLog.mtime) : null;\r\n var showRefresh = lastDeployTime && this.state.lastFetchTime && this.state.lastFetchTime.getTime() < lastDeployTime.getTime();\r\n if (InFrame_1.default() || BotTabPage_1.debugAllTabs) {\r\n if (isBoundToSourceControl) {\r\n message = React.createElement(\"div\", { className: \"app-message source-repo\" },\r\n BotAppContinuousIntegration_1.renderIconForScmType(this.scmType),\r\n showRefresh ? React.createElement(index_1.TimestampControl, { time: new Date(this.state.botDeploymentLog.mtime) }) : null,\r\n showRefresh ? React.createElement(\"a\", { onClick: function () { return _this.props.onRefresh(); } }, \"Refresh\") : null,\r\n React.createElement(\"a\", { onClick: function (x) { return _this.props.openTab(BotTabPage_1.BotPageTab.settings, function () { return _this.openContinuousSettings(); }); } }, \" Edit continuous deployment\"));\r\n }\r\n else {\r\n message = React.createElement(\"div\", { className: \"app-message\" },\r\n React.createElement(\"a\", { onClick: function (x) { return _this.props.openTab(BotTabPage_1.BotPageTab.settings, function () { return _this.openContinuousSettings(); }); } }, \"Configure continuous deployment\"),\r\n \" - manage your code in your repo of choice and edit locally.\");\r\n }\r\n }\r\n return (React.createElement(\"div\", null,\r\n React.createElement(\"div\", { className: \"code-toolbar\" },\r\n message,\r\n isBoundToSourceControl ? null :\r\n React.createElement(\"button\", { ref: function (x) { _this.saveButton = x; }, className: \"default-button\", disabled: isBoundToSourceControl || !this.state.activeCodeDirty, onClick: function () { return _this.props.onSave(_this.state.activeFile.id, _this.code); } }, \"Save\")),\r\n React.createElement(\"div\", { className: \"code-tab\" },\r\n React.createElement(\"div\", { className: \"code-explorer\", ref: function (x) { return _this.codeExplorer = x; } },\r\n React.createElement(react_treebeard_1.Treebeard, { key: \"code-explorer-tree\", data: this.state.root, onToggle: this.props.onToggle, style: TreeStyle_1.default, decorators: $.extend(true, react_treebeard_1.decorators, {\r\n Loading: _.bind(this.showLoading, this),\r\n Container: CustomContainer,\r\n Header: function (props) {\r\n var style = props.style;\r\n var isNewFile = props.node.newFile;\r\n var isFile = props.terminal;\r\n var className = isNewFile ? 'create-file-name' : (isFile ? 'leaf-file' : '');\r\n className = className + \" treenode\";\r\n var nodeId = isNewFile ? props.node.id : null;\r\n var fileName = (React.createElement(\"div\", { style: style.style, \"data-nodeId\": nodeId, className: className }, props.node.name));\r\n return (React.createElement(\"div\", { style: style.base }, fileName));\r\n },\r\n Toggle: function (props) {\r\n var style = props.style;\r\n return (React.createElement(\"div\", { style: style.base, className: _this.getToggleClass(props) }));\r\n }\r\n }), animations: false }),\r\n React.createElement(\"input\", { ref: function (x) { return _this.fileNameEditor = x; }, className: this.state.newFileNodeId ? 'file-name-editor open' : 'file-name-editor', placeholder: \"filename.ext\", onBlur: function (e) {\r\n _this.props.onRenameFile(e.target['value']);\r\n _this.fileNameEditor.value = '';\r\n } })),\r\n React.createElement(\"div\", { className: \"code-panel\", ref: function (x) { return _this.codePanel = x; } },\r\n React.createElement(\"div\", { className: \"code-editor\" },\r\n React.createElement(react_ace_1.default, { name: \"codeEditor\", mode: this.getMode(), theme: 'github', width: \"100%\", height: \"100%\", showPrintMargin: false, commands: [{\r\n name: 'saveFile',\r\n bindKey: {\r\n win: 'Ctrl-S',\r\n mac: 'Command-S',\r\n sender: 'editor|cli',\r\n },\r\n exec: function (env, args, req) {\r\n _this.onSaveCurrentFile();\r\n }\r\n }], onChange: function (txt) {\r\n _this.code = txt;\r\n _this.props.onChangeCode(txt, true);\r\n }, value: this.state.activeCode, editorProps: { $blockScrolling: true }, ref: function (x) { return _this.aceEditor = x; } })),\r\n React.createElement(\"div\", { className: \"logger-panel\" },\r\n React.createElement(\"div\", { className: \"logger-head\" },\r\n React.createElement(\"label\", null, \"Log\"),\r\n React.createElement(\"label\", { className: \"log-stream-clear\", onClick: this.props.clearLogStream }, \"Clear\")),\r\n React.createElement(LogStream_1.LogStream, { ref: function (x) { _this.logStream = x; }, logs: this.state.logStream }))))));\r\n };\r\n return BotCodeEditor;\r\n }(React.Component));\r\n exports.BotCodeEditor = BotCodeEditor;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 262 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(110), __webpack_require__(14), __webpack_require__(19), __webpack_require__(59), __webpack_require__(109), __webpack_require__(108)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, BotAppContinuousIntegration_1, index_1, InFrame_1, azurePortalLinks_1, openTab_1, downloadBotSrc_1) {\r\n var debugCodeSetup = false;\r\n var showingTipId = null;\r\n var tip_abs_code_build_tab = 'tip_abs_code_build_tab';\r\n var BotCodeSetup = (function (_super) {\r\n __extends(BotCodeSetup, _super);\r\n function BotCodeSetup(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.scmType = null;\r\n _this.azureBladUrl = null;\r\n _this.dismissTooltip = function () {\r\n _this.setState({ tip: null, showingTipId: null });\r\n window.removeEventListener('click', _this.dismissTooltip);\r\n _this.shownTip = null;\r\n };\r\n _this.state = { bot: null, showingTipId: null, tip: null };\r\n return _this;\r\n }\r\n Object.defineProperty(BotCodeSetup.prototype, \"scmSiteUrl\", {\r\n get: function () {\r\n return this.state.bot ? \"https://\" + this.state.bot.ProvisionInfo.SiteName + \".scm.azurewebsites.net\" : null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n BotCodeSetup.prototype.renderDownloadLink = function () {\r\n var _this = this;\r\n if (!this.state.bot) {\r\n return null;\r\n }\r\n var fileName = this.state.bot.Id + \".zip\";\r\n var botBlobUrl = downloadBotSrc_1.needZipProxy() ? downloadBotSrc_1.getBotZipBlobUrl(this.state.bot.Id, null) : (this.props.ciProps.blobUrl || this.state.zipBlobUrl);\r\n return React.createElement(index_1.DownloadLinkControl, { asButton: true, fileName: fileName, downloadBlob: this.props.ciProps.downloadZip, setBlobUrl: function (blobUrl) {\r\n _this.props.ciProps.onZipDownloaded(blobUrl);\r\n _this.setState({ zipBlobUrl: blobUrl });\r\n }, blobUrl: botBlobUrl, pendingDownload: this.props.ciProps.pendingDownload ? 'Generating zip file' : null });\r\n };\r\n BotCodeSetup.prototype.toggleTip = function (tip, target) {\r\n if (this.tipControl) {\r\n this.tipControl.anchorTo($(target));\r\n }\r\n if (this.shownTip && this.shownTip.key === tip.key) {\r\n this.dismissTooltip();\r\n }\r\n else {\r\n this.setState({ tip: tip, showingTipId: tip ? tip_abs_code_build_tab : null });\r\n window.addEventListener('click', this.dismissTooltip);\r\n this.shownTip = tip;\r\n }\r\n };\r\n BotCodeSetup.prototype.renderAppServiceEditorLink = function () {\r\n var _this = this;\r\n return (React.createElement(\"section\", { className: \"bot-card\" },\r\n React.createElement(\"h3\", null, \"Online code editor\"),\r\n React.createElement(index_1.TooltipParagrah, { toggleTip: this.toggleTip.bind(this), tip: React.createElement(\"span\", null,\r\n \"Use the browser-based Azure App Service Editor to make quick changes to your source code, and test them instantly. \",\r\n React.createElement(\"a\", { href: \"//aka.ms/bf-doc-ase\", key: \"ase-tip\", target: \"_blank\" }, \"Learn more\")) }, \"Make quick changes to your bot code and see changes instantly.\"),\r\n this.scmSiteUrl ?\r\n React.createElement(\"button\", { className: \"light-button\", onClick: function () { return openTab_1.default(_this.scmSiteUrl + \"/dev\"); } }, \"Open online code editor\")\r\n : null));\r\n };\r\n BotCodeSetup.prototype.renderDownloadCodeLink = function () {\r\n return (React.createElement(\"section\", { className: \"bot-card\" },\r\n React.createElement(\"h3\", null, \"Download source code\"),\r\n React.createElement(index_1.TooltipParagrah, { toggleTip: this.toggleTip.bind(this), tip: React.createElement(\"span\", null,\r\n \"Download a zip file that contains all source files, a Visual Studio solution file, and a configuration file that lets you publish from Visual Studio. \",\r\n React.createElement(\"a\", { href: \"//aka.ms/bf-doc-src-zip\", key: \"src-zip-tip\", target: \"_blank\" }, \"Learn more\")) }, \"Download your source code and develop locally using\" + \" \" + \"your favorite IDE. You can publish your code back to the bot\" + \" \" + \"when ready.\"),\r\n this.renderDownloadLink()));\r\n };\r\n BotCodeSetup.prototype.renderContinousIntegration = function () {\r\n var _this = this;\r\n var text = this.scmType == 'None' ? 'Enable continuous deployment with your favorite source control provider.' : 'The code for this bot can be modified from the link below.';\r\n return (React.createElement(\"section\", { className: \"bot-card\" },\r\n React.createElement(\"h3\", null, \"Continuous deployment from source control\"),\r\n React.createElement(index_1.TooltipParagrah, { toggleTip: this.toggleTip.bind(this), tip: React.createElement(\"span\", null,\r\n \"Continuous deployment lets you re-publish to Azure whenever you check a code change in to your source control service. \",\r\n React.createElement(\"a\", { href: \"//aka.ms/bf-doc-src-ci\", key: \"ci-tip\", target: \"_blank\" }, \"Learn more\")) }, text),\r\n React.createElement(BotAppContinuousIntegration_1.BotAppContinuousIntegration, __assign({}, this.props.ciProps, { toggleTip: this.toggleTip.bind(this), showRepoUrl: this.scmType !== 'None', onRepoSetup: function () { _this.refreshScmType(); }, scmType: function () { return $.Deferred().resolve(_this.scmType); } }))));\r\n };\r\n BotCodeSetup.prototype.renderOpenBotInAzure = function () {\r\n var _this = this;\r\n return (React.createElement(\"section\", { className: \"bot-card grid-card channels\" },\r\n React.createElement(\"div\", { className: \"page-header\" }, \"This bot is provisioned in Microsoft Azure\"),\r\n React.createElement(\"h2\", { className: \"h-snap-M\" }, \"Viewing and editing code in Microsoft Azure\"),\r\n React.createElement(\"p\", null, \"To work with the code for this bot, open the bot in Microsoft Azure.\"),\r\n React.createElement(\"button\", { className: \"light-button open-bot-in-azure\", disabled: this.azureBladUrl === null, onClick: function () { openTab_1.default(_this.azureBladUrl); } }, \"Open in Microsoft Azure\")));\r\n };\r\n BotCodeSetup.prototype.componentDidMount = function () {\r\n var _this = this;\r\n if (!this.scmType) {\r\n this.props.setLoading(true);\r\n }\r\n this.props.scmType().then(function (scmType) {\r\n _this.scmType = scmType;\r\n _this.forceUpdate();\r\n }).always(function () { return _this.props.setLoading(false); });\r\n this.props.ciProps.bladeUrl(azurePortalLinks_1.BladeType._none).then(function (url) {\r\n _this.azureBladUrl = url;\r\n _this.forceUpdate();\r\n });\r\n };\r\n BotCodeSetup.prototype.renderCodeSetup = function () {\r\n var _this = this;\r\n if (!this.scmType) {\r\n return null;\r\n }\r\n return (React.createElement(\"div\", { className: \"agent-page page-grid bot-code-setup\" },\r\n React.createElement(\"div\", { className: \"bot-editor\" },\r\n this.scmType === 'None'\r\n ? React.createElement(\"h1\", null, \"Choose how to work with your code\")\r\n : null,\r\n this.scmType == 'None' ? this.renderAppServiceEditorLink() : null,\r\n this.scmType == 'None' ? this.renderDownloadCodeLink() : null,\r\n this.renderContinousIntegration()),\r\n index_1.TooltipControl.renderToolTipAsNeeded({\r\n tipId: tip_abs_code_build_tab,\r\n ref: function (x) { return _this.tipControl = x; },\r\n children: this.state.tip,\r\n className: this.state.tip ? 'modeless' : 'invisible',\r\n anchorBorder: index_1.Borders.Left\r\n })));\r\n };\r\n BotCodeSetup.prototype.refreshScmType = function () {\r\n var _this = this;\r\n _.delay(function () {\r\n _this.scmType = null;\r\n _this.componentDidMount();\r\n _this.props.onScmTypeChange();\r\n }, 5000);\r\n };\r\n BotCodeSetup.prototype.render = function () {\r\n return InFrame_1.default() || debugCodeSetup ? this.renderCodeSetup() : this.renderOpenBotInAzure();\r\n };\r\n return BotCodeSetup;\r\n }(React.Component));\r\n exports.BotCodeSetup = BotCodeSetup;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 263 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(8), __webpack_require__(34), __webpack_require__(14), __webpack_require__(100)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ClientAppSettings_1, BotUtils_1, index_1, index_2) {\r\n var BotCreateSwitch = (function (_super) {\r\n __extends(BotCreateSwitch, _super);\r\n function BotCreateSwitch(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.tiles = [];\r\n if (props.showAbsGACreate) {\r\n _this.tiles.push({\r\n title: 'Create a bot with the Azure Bot Service',\r\n description: function () {\r\n return (React.createElement(\"p\", null, \"Create a new bot or register an existing bot with the Azure Bot Service.\"));\r\n },\r\n button: 'Create',\r\n botType: BotUtils_1.BotTypes.ABSGACreate\r\n });\r\n }\r\n else {\r\n _this.tiles.push(_this.absCodeEnabled ? _this.absCodeTile : {\r\n title: 'Create a bot with the Bot Builder SDK',\r\n description: function () {\r\n return (React.createElement(\"p\", null,\r\n \"Don't have the SDK yet? \",\r\n React.createElement(\"a\", { href: \"//aka.ms/bf-createsdkbot\", target: \"_blank\" }, \"Download\"),\r\n \", build, then return to this page to register.\"));\r\n },\r\n button: 'Register',\r\n botType: BotUtils_1.BotTypes.None\r\n });\r\n }\r\n _this.state = {};\r\n return _this;\r\n }\r\n Object.defineProperty(BotCreateSwitch.prototype, \"absCodeEnabled\", {\r\n get: function () {\r\n return ClientAppSettings_1.clientAppSettings.flightedFeatures.indexOf('absCode') >= 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BotCreateSwitch.prototype, \"showTiles\", {\r\n get: function () {\r\n return this.absCodeEnabled;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(BotCreateSwitch.prototype, \"absCodeTile\", {\r\n get: function () {\r\n return {\r\n title: 'Create a bot with the Bot Builder SDK',\r\n description: 'Click create below to use the SDK to build your bot and optionally host it in Microsoft Azure.',\r\n button: 'Create',\r\n botType: BotUtils_1.BotTypes.None\r\n };\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n BotCreateSwitch.prototype.componentDidMount = function () {\r\n if (this.showTiles) {\r\n $('body').toggleClass('dark-gray', true);\r\n }\r\n };\r\n BotCreateSwitch.prototype.componentWillUnmount = function () {\r\n if (this.showTiles) {\r\n $('body').toggleClass('dark-gray', false);\r\n }\r\n };\r\n BotCreateSwitch.prototype.renderCreateTile = function (tile) {\r\n var _this = this;\r\n return (React.createElement(\"div\", { className: \"bot-create-tile\", key: \"bot_create_type_\" + tile.botType },\r\n React.createElement(\"div\", { className: \"icon \" + BotUtils_1.BotTypes[tile.botType] }),\r\n React.createElement(\"div\", { className: \"tile-text\" },\r\n React.createElement(\"h3\", null, tile.title),\r\n React.createElement(\"p\", null, (tile.description instanceof Function) ? tile.description() : tile.description)),\r\n React.createElement(\"button\", { className: \"m-button-primary-md create-bot-btn\", onClick: function () { return _this.props.onCreate(tile.botType); } }, tile.button)));\r\n };\r\n BotCreateSwitch.prototype.render = function () {\r\n return (React.createElement(\"div\", { className: \"outline bot-create-switch-outter\" },\r\n React.createElement(\"div\", { className: \"description\" },\r\n React.createElement(\"h2\", null, this.props.createFirstBot ? index_1.resourceStrings.v4.nobotsPrompt : index_1.resourceStrings.v4.newBotPrompt),\r\n React.createElement(\"p\", null,\r\n this.showTiles ? null : React.createElement(\"a\", { href: '//aka.ms/bf-createsdkbot', target: '_blank' },\r\n index_1.resourceStrings.v4.createBotSDKLink,\r\n \"\\u00A0\"),\r\n index_1.resourceStrings.v4.createBotLabel)),\r\n this.showTiles ? this.renderCreateTiles() : this.renderRegisterButton(),\r\n React.createElement(index_1.FooterControl, null)));\r\n };\r\n BotCreateSwitch.prototype.renderRegisterButton = function () {\r\n var _this = this;\r\n return (React.createElement(\"button\", { className: 'm-button-primary-md', onClick: function () { return _this.props.onCreate(BotUtils_1.BotTypes.None); } }, index_1.resourceStrings.register));\r\n };\r\n BotCreateSwitch.prototype.renderCreateTiles = function () {\r\n var _this = this;\r\n return (React.createElement(\"div\", { className: \"bot-create-switch\" }, this.tiles.map(function (x) { return _this.renderCreateTile(x); })));\r\n };\r\n return BotCreateSwitch;\r\n }(React.Component));\r\n __decorate([\r\n index_2.lazy()\r\n ], BotCreateSwitch.prototype, \"absCodeEnabled\", null);\r\n __decorate([\r\n index_2.lazy()\r\n ], BotCreateSwitch.prototype, \"showTiles\", null);\r\n exports.BotCreateSwitch = BotCreateSwitch;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 264 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(458)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, BlockRowInputField_1) {\r\n var BotEditorRow = (function (_super) {\r\n __extends(BotEditorRow, _super);\r\n function BotEditorRow() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.onPropertyChanged = function (ev) {\r\n if (_this.props.inputIsArray && _this.props.editor) {\r\n _this.props.editor.handleArrayChange(_this.props.inputId, ev);\r\n return;\r\n }\r\n if (_this.props.editor) {\r\n _this.props.editor.handleChange(_this.props.inputId, ev);\r\n }\r\n };\r\n return _this;\r\n }\r\n BotEditorRow.prototype.convertIfArray = function (value) {\r\n if (value && this.props.inputIsArray) {\r\n return value.join(',');\r\n }\r\n return value;\r\n };\r\n BotEditorRow.prototype.render = function () {\r\n if (!this.props.editor) {\r\n return null;\r\n }\r\n return (React.createElement(BlockRowInputField_1.BlockRowInputField, { id: this.props.inputId, containerClassName: \"detail-row\", errorContainerClassName: \"input-in-error\", label: this.props.label, required: this.props.required, placeholder: this.props.inputPlaceholder, maxlen: this.props.inputMaxlen, readonly: this.props.inputReadonly, password: this.props.password, error: this.props.editor.state.errors[this.props.inputId], value: this.convertIfArray(this.props.editor.state.bot[this.props.inputId]), tip: this.props.inputTip, tipAsHtml: this.props.tipAsHtml, onTooltipVisibilityChanged: this.props.onTooltipVisibilityChanged, onValueChanged: this.onPropertyChanged }));\r\n };\r\n return BotEditorRow;\r\n }(React.Component));\r\n exports.BotEditorRow = BotEditorRow;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 265 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(164), __webpack_require__(81), __webpack_require__(162), __webpack_require__(262), __webpack_require__(259), __webpack_require__(260), __webpack_require__(161), __webpack_require__(34), __webpack_require__(261), __webpack_require__(79), __webpack_require__(26), __webpack_require__(14)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, WebChat_1, BotPage_1, BotEditor_1, BotCodeSetup_1, AnalyticsDashboard_1, BotChannelConfig_1, BotChannels_1, BotUtils_1, BotCodeEditor_1, ReactUtils_1, Environment_1, index_1) {\r\n var BotPageBody = (function (_super) {\r\n __extends(BotPageBody, _super);\r\n function BotPageBody() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n BotPageBody.prototype.componentWillMount = function () {\r\n this.authoringSurfaceHost = $('');\r\n $(\"body\").append(this.authoringSurfaceHost);\r\n };\r\n BotPageBody.prototype.componentWillUnmount = function () {\r\n if (this.authoringSurfaceHost && this.authoringSurfaceHost.length) {\r\n this.authoringSurfaceHost.remove();\r\n this.authoringSurfaceHost = null;\r\n }\r\n };\r\n BotPageBody.prototype.renderBuildTab = function (botType) {\r\n var _this = this;\r\n switch (botType) {\r\n case BotUtils_1.BotTypes.ABSv1:\r\n return (React.createElement(BotCodeEditor_1.BotCodeEditor, __assign({}, this.props.botCodeEditorProps, { ref: function (x) { return _this.props.botCodeEditorProps.onSetCodeEditor(x); } })));\r\n case BotUtils_1.BotTypes.ABSCode:\r\n return (React.createElement(BotCodeSetup_1.BotCodeSetup, __assign({}, this.props.botCodeSetupProps, { ref: function (x) { return _this.props.botCodeSetupProps.setCodeSetup(x); } })));\r\n }\r\n return null;\r\n };\r\n BotPageBody.prototype.renderActivePage = function () {\r\n var _this = this;\r\n switch (this.props.selectedTab) {\r\n case BotPage_1.BotTabs.Build:\r\n var botType = BotUtils_1.BotUtils.getBotType(this.props.bot);\r\n return this.renderBuildTab(botType);\r\n case BotPage_1.BotTabs.Analytics:\r\n return (React.createElement(AnalyticsDashboard_1.AnalyticsDashboard, { showWebChat: this.props.showWebChat, bot: this.props.bot, tabClickHandler: this.props.tabClickHandler }));\r\n case BotPage_1.BotTabs.Channels:\r\n if (this.props.channel) {\r\n return (React.createElement(BotChannelConfig_1.BotChannelConfig, { currentBotId: this.props.bot.Id, channel: this.props.channel, channelConfigInterface: this.props.channelConfigInterface, azureToken: this.props.azureToken }));\r\n }\r\n return (React.createElement(BotChannels_1.BotChannels, { bot: this.props.bot, userCanWriteBot: this.props.canWriteToBot, channelDataHandlers: this.props.botSettingsTabProps.channelDataHandlers, channelConfigClickHandler: this.props.channelConfigClickHandler }));\r\n case BotPage_1.BotTabs.Settings:\r\n return (React.createElement(BotEditor_1.BotEditor, __assign({ onSetBotAppSettings: this.props.onSetBotAppSettings }, this.props.botEditorProps, { ref: function (x) { return _this.props.botEditorProps.onSetEditor(x); } })));\r\n case BotPage_1.BotTabs.Develop:\r\n return (React.createElement(BotCodeEditor_1.BotCodeEditor, __assign({}, this.props.botCodeEditorProps, { ref: function (x) { return _this.props.botCodeEditorProps.onSetCodeEditor(x); } })));\r\n default:\r\n break;\r\n }\r\n };\r\n BotPageBody.prototype.getAdditionalBodyLeftCssForActivePage = function () {\r\n switch (this.props.selectedTab) {\r\n case BotPage_1.BotTabs.Analytics:\r\n return \"noscroll\";\r\n default:\r\n return null;\r\n }\r\n };\r\n BotPageBody.prototype.getWithWebChatCss = function () {\r\n return (this.props.showWebChat) ? 'with-webchat' : '';\r\n };\r\n BotPageBody.prototype.renderWebChat = function () {\r\n return this.props.showWebChatPending && this.props.showWebChat ? React.createElement(\"div\", { className: \"bot-page-webchat pending\" }, index_1.resourceStrings.loadingBotWebChat) :\r\n React.createElement(WebChat_1.WebChat, { className: ReactUtils_1.combineClassNames(\"bot-page-webchat\", this.getWithWebChatCss()), bot: this.props.bot, authoringDirty: this.props.authoringDirty, authoringError: this.props.authoringError });\r\n };\r\n BotPageBody.prototype.render = function () {\r\n var inAzureClass = Environment_1.Environment.isInBotFrameworkAzureExtension ? \"in-azure\" : \"\";\r\n var webchatRegion = this.props.renderWebChat ? (React.createElement(\"div\", { className: ReactUtils_1.combineClassNames(\"bot-page-body-right\", this.getWithWebChatCss()) }, this.renderWebChat())) : null;\r\n return (React.createElement(\"div\", { className: ReactUtils_1.combineClassNames(\"bot-page-body\", inAzureClass) },\r\n React.createElement(\"div\", { className: ReactUtils_1.combineClassNames(\"bot-page-body-left\", this.getAdditionalBodyLeftCssForActivePage(), this.getWithWebChatCss()) },\r\n this.renderActivePage(),\r\n React.createElement(index_1.FooterControl, { scrollingClass: \"bot-page-body\" })),\r\n webchatRegion));\r\n };\r\n return BotPageBody;\r\n }(React.Component));\r\n exports.BotPageBody = BotPageBody;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 266 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(7), __webpack_require__(273), __webpack_require__(14), __webpack_require__(34), __webpack_require__(269), __webpack_require__(163), __webpack_require__(26), __webpack_require__(27)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, RestClient_1, TabControl_1, index_1, BotUtils_1, CompactDropdownControl_1, MasterPageHeader_1, Environment_1, MessageBox_1) {\r\n function startMigration(bot, success, error) {\r\n return RestClient_1.ajax({\r\n url: \"/api/botManager/MigrateBot?botId=\" + bot.Id,\r\n type: 'POST',\r\n dataType: 'json',\r\n async: false,\r\n success: success,\r\n error: error\r\n });\r\n }\r\n var BotPageHeader = (function (_super) {\r\n __extends(BotPageHeader, _super);\r\n function BotPageHeader() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n BotPageHeader.prototype.renderBotName = function () {\r\n if (Environment_1.Environment.isInAzurePortal) {\r\n return null;\r\n }\r\n var botNameLabel = BotUtils_1.BotUtilsV2.isAzureIbizaBot(this.props.bot) && this.props.isAdmin ? \"[Azure Bot] \" + this.props.bot.Name : this.props.bot.Name;\r\n return (React.createElement(\"div\", { className: \"bot-name\" }, botNameLabel));\r\n };\r\n BotPageHeader.prototype.renderMigration = function () {\r\n var _this = this;\r\n if (!this.props.bot.Kind) {\r\n return React.createElement(\"button\", { type: \"button\", className: \"m-button\", onClick: function () {\r\n startMigration(_this.props.bot, function (url) { return window.open(url, '_blank'); }, function (xhr, status, error) { return MessageBox_1.MessageBox.show(error); });\r\n } }, \"Migrate\");\r\n }\r\n return null;\r\n };\r\n BotPageHeader.prototype.renderControls = function (botType) {\r\n var _this = this;\r\n var testButtonClass = \"m-button-primary-md bot-test-button bot-test-button\";\r\n testButtonClass += this.props.showWebChat ? \"-close\" : \"-open\";\r\n return (React.createElement(\"div\", { className: \"bot-controls\" },\r\n this.renderMigration(),\r\n React.createElement(\"button\", { type: \"button\", className: testButtonClass, onClick: function () { return _this.props.testClickHandler(); } }, \"Test\")));\r\n };\r\n BotPageHeader.prototype.renderTabs = function (botType, className) {\r\n var tabs = this.props.routes(botType).map(function (route) {\r\n return {\r\n tab: route.tab,\r\n label: index_1.resourceStrings.v4.botPageTabs[route.tab]\r\n };\r\n });\r\n return (React.createElement(\"div\", { className: className },\r\n React.createElement(TabControl_1.TabControl, { tabs: tabs, selectedTab: this.props.selectedTab, clickHandler: this.props.tabClickHandler, className: \"bot-tab-control\", tabClassName: \"bot-tab-control-tab\", selectedClassName: \"bot-selected-tab\", botId: this.props.bot.Id })));\r\n };\r\n BotPageHeader.prototype.renderCompactMenu = function (botType) {\r\n var _this = this;\r\n return (React.createElement(\"div\", null,\r\n this.renderTabs(botType, \"bot-compact-tabs\"),\r\n React.createElement(\"div\", { className: \"bot-compact-links\" },\r\n React.createElement(MasterPageHeader_1.MasterPageHeader, { controller: this.props.controller, showLinks: true, showUserMenu: false, showSearch: false, showEnvironment: false, showMainNavLink: false, isAdmin: function () { return _this.props.isAdmin(); }, isReviewer: function () { return _this.props.isReviewer(); }, signedInUser: null, renderHiddenFrameToCheckAzureSingleSignOn: null, onSearch: function (s) { }, onSignOutClicked: null, onAccountClicked: null, showJumboHeader: false, isRoutableUrl: null, announcements: this.props.announcements }))));\r\n };\r\n BotPageHeader.prototype.render = function () {\r\n if (Environment_1.Environment.isInBotFrameworkAzureExtension) {\r\n return null;\r\n }\r\n var botType = BotUtils_1.BotUtils.getBotType(this.props.bot);\r\n return (React.createElement(\"div\", { className: \"bot-page-header cover-container\" },\r\n React.createElement(CompactDropdownControl_1.CompactDropdownControl, { className: \"bot-compact-menu\", contentClassName: \"bot-compact-menu-content\", closeOnClick: true, content: this.renderCompactMenu(botType) }),\r\n this.renderBotName(),\r\n this.renderEditMark(),\r\n React.createElement(\"div\", { className: \"flex-spacer\" }),\r\n this.renderTabs(botType, \"bot-tabs\"),\r\n this.renderControls(botType),\r\n React.createElement(index_1.RuntimeConnectedShade, null)));\r\n };\r\n BotPageHeader.prototype.renderEditMark = function () {\r\n if (this.props.authoringToolDirty) {\r\n return React.createElement(\"div\", { className: \"bot-edited\" }, \"Edited *\");\r\n }\r\n return null;\r\n };\r\n return BotPageHeader;\r\n }(React.Component));\r\n exports.BotPageHeader = BotPageHeader;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 267 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(8), __webpack_require__(40), __webpack_require__(14), __webpack_require__(82)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ClientAppSettings_1, Links_1, index_1, BotImageControl_1) {\r\n exports.PAGING_THRESHOLD = 100;\r\n var BotsPage = (function (_super) {\r\n __extends(BotsPage, _super);\r\n function BotsPage(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {\r\n bots: [],\r\n continuationToken: null\r\n };\r\n return _this;\r\n }\r\n BotsPage.prototype.onScroll = function (pageContent) {\r\n var windowBottom = pageContent.scrollTop + pageContent.clientHeight;\r\n var $page = $('.my-bots');\r\n if ($page.length === 1) {\r\n var pageBottom = $page.scrollTop() + $page.height();\r\n if (pageBottom - windowBottom < exports.PAGING_THRESHOLD &&\r\n !this.state.loadingMoreBots && this.state.hasMoreBots) {\r\n this.props.onNextPage();\r\n }\r\n }\r\n };\r\n BotsPage.prototype.componentDidMount = function () {\r\n var _this = this;\r\n this.unsubscribeScroll = this.props.controller.app.onscroll(function (element) { return _this.onScroll(element); });\r\n };\r\n BotsPage.prototype.componentWillUnmount = function () {\r\n if (this.unsubscribeScroll) {\r\n this.unsubscribeScroll();\r\n }\r\n };\r\n BotsPage.prototype.render = function () {\r\n var bots = this.renderBots();\r\n return (React.createElement(\"div\", { className: \"my-bots-page\" },\r\n !this.state.searchString ? this.renderNoBotsPrompt() : null,\r\n React.createElement(\"div\", { className: \"my-bots page-grid-left\" },\r\n this.renderChannelFilter(),\r\n bots),\r\n React.createElement(index_1.FooterControl, { scrollingClass: \"my-bots-page\" })));\r\n };\r\n BotsPage.prototype.renderNoBotsPrompt = function () {\r\n return (React.createElement(\"div\", { className: \"no-bots-prompt\" },\r\n React.createElement(\"h1\", null, \"You haven't registered any bots yet\"),\r\n React.createElement(\"p\", null,\r\n \"Don't have a bot?\",\r\n \" \",\r\n React.createElement(\"a\", { href: ClientAppSettings_1.clientAppSettings.documentationUrl }, \"Learn how to build and deploy one\")),\r\n React.createElement(\"button\", { className: 'm-button-primary-outline-md create-bot', onClick: this.props.createBot }, \"Create a bot\")));\r\n };\r\n BotsPage.prototype.renderChannelFilter = function () {\r\n var _this = this;\r\n if (!this.props.channelFilter) {\r\n return null;\r\n }\r\n var filterChannelId = this.props.channelFilter;\r\n if (filterChannelId.indexOf('_all_') === 0) {\r\n filterChannelId = filterChannelId.substr(5);\r\n }\r\n var channels = ClientAppSettings_1.clientAppSettings.channels.filter(function (x) { return x.Id === filterChannelId; });\r\n var selectedChannel = channels.length ? channels[0] : null;\r\n if (!selectedChannel) {\r\n return null;\r\n }\r\n var allChannelId = \"_all_\" + this.props.channelFilter;\r\n var allChannel = {\r\n Name: 'All channels',\r\n Id: allChannelId\r\n };\r\n return (React.createElement(\"section\", null,\r\n React.createElement(\"label\", { htmlFor: 'channel_filter' }, \"Channel filter\"),\r\n React.createElement(\"p\", { className: \"channel_filter_box\" },\r\n React.createElement(\"select\", { id: 'channel_filter', onChange: function (e) {\r\n var newChannelFilter = e.currentTarget.value;\r\n _this.props.controller.app.navigate('/bots', { c: newChannelFilter });\r\n } },\r\n React.createElement(\"option\", { value: allChannelId, selected: this.props.channelFilter === allChannelId }, allChannel.Name),\r\n React.createElement(\"option\", { value: filterChannelId, selected: this.props.channelFilter === filterChannelId }, selectedChannel.Name)))));\r\n };\r\n BotsPage.prototype.renderBots = function () {\r\n var _this = this;\r\n if (this.state.bots && this.state.bots.length > 0) {\r\n var rows = [];\r\n var _loop_1 = function (i) {\r\n var bot = this_1.state.bots[i];\r\n var name_1 = bot.Name ? bot.Name : '(unnamed)';\r\n var linkHref = void 0;\r\n if (bot.Kind) {\r\n linkHref = Links_1.getAzureIbizaBotUrl(bot.SubscriptionId, bot.ResourceGroupName, bot.Id);\r\n }\r\n else {\r\n linkHref = (ClientAppSettings_1.clientAppSettings.homeUrl === '/' ? '/' : '') + \"bots?id=\" + bot.Id;\r\n }\r\n var row = (React.createElement(\"div\", { className: \"agent bot-card-hero\", key: i, \"data-agent-id\": bot.Id, onClick: function () { return _this.props.navigateToBot(bot); } },\r\n React.createElement(BotImageControl_1.BotImageControl, { bot: bot, className: \"image-cell\", transparentBackground: true, defaultIconUrl: ClientAppSettings_1.clientAppSettings.defaultIconUrl }),\r\n React.createElement(\"div\", { className: \"bot-content\" },\r\n React.createElement(\"a\", { className: \"link-underline\", href: linkHref, onClick: function (ev) { return ev.preventDefault(); } }, bot.Name))));\r\n rows.push(row);\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < this.state.bots.length; i++) {\r\n _loop_1(i);\r\n }\r\n return (React.createElement(\"div\", { \"data-test-id\": \"my-bots\" },\r\n React.createElement(\"div\", { className: \"flex-layout-grid stretched-row\" },\r\n React.createElement(\"h2\", null, \"My bots\"),\r\n React.createElement(\"button\", { className: 'm-button-primary-outline-md create-bot', onClick: this.props.createBot }, \"Create a bot\")),\r\n rows));\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n return BotsPage;\r\n }(React.Component));\r\n exports.BotsPage = BotsPage;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 268 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(79)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, ReactUtils_1) {\r\n var ChevronDropdownControl = (function (_super) {\r\n __extends(ChevronDropdownControl, _super);\r\n function ChevronDropdownControl(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.documentClicked = function (ev) {\r\n if (_this.state.open) {\r\n if (ev.defaultPrevented)\r\n return;\r\n var target = ev.srcElement;\r\n while (target) {\r\n if (target.className.toString().indexOf(_this.familyId) >= 0) {\r\n return;\r\n }\r\n target = target.parentElement;\r\n }\r\n _this.setState({\r\n open: false\r\n });\r\n }\r\n };\r\n _this.chevronClicked = function (ev) {\r\n var element = ev.nativeEvent.srcElement || ev.nativeEvent.target;\r\n if (element.className.toString().indexOf(_this.familyId) < 0)\r\n return;\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n _this.setState({\r\n open: !_this.state.open\r\n });\r\n };\r\n _this.handleKeyDown = _this.handleKeyDown.bind(_this);\r\n _this.state = {\r\n open: props.open,\r\n className: props.className\r\n };\r\n _this.familyId = Math.random().toString(24).substr(2, 12);\r\n return _this;\r\n }\r\n ChevronDropdownControl.prototype.componentDidUpdate = function (prevProps, prevState) {\r\n if (!prevState.open && this.state.open) {\r\n this.focusInput(0, 1);\r\n }\r\n };\r\n ChevronDropdownControl.prototype.componentDidMount = function () {\r\n document.body.addEventListener(\"click\", this.documentClicked);\r\n if (this.state.open) {\r\n this.focusInput(0, 1);\r\n }\r\n };\r\n ChevronDropdownControl.prototype.componentWillUnmount = function () {\r\n document.body.removeEventListener(\"click\", this.documentClicked);\r\n };\r\n ChevronDropdownControl.prototype.close = function () {\r\n this.setState({\r\n open: false\r\n });\r\n };\r\n ChevronDropdownControl.prototype.handleKeyDown = function (evt) {\r\n if (evt.keyCode === 27) {\r\n evt.stopPropagation();\r\n this.close();\r\n }\r\n };\r\n ChevronDropdownControl.prototype.focusInput = function (from, to) {\r\n var channelFilterElement = ReactDOM.findDOMNode(this.contentContainer);\r\n var allInputs = channelFilterElement ? channelFilterElement.querySelectorAll('input:not([type=\"radio\"]), input[type=\"radio\"]:checked') : [];\r\n var focusing = [].slice.call(allInputs, from, to);\r\n if (focusing[0]) {\r\n focusing[0].focus();\r\n }\r\n };\r\n ChevronDropdownControl.prototype.render = function () {\r\n var _this = this;\r\n var open = (this.state.open) ? \"open\" : \"\";\r\n var visible = (this.state.open) ? \"visible\" : \"\";\r\n return (React.createElement(\"div\", { className: ReactUtils_1.combineClassNames(\"chevron-dropdown\", this.state.className), onKeyDown: this.handleKeyDown, role: \"group\" },\r\n React.createElement(\"div\", { className: ReactUtils_1.combineClassNames(\"label\") }, this.props.label),\r\n React.createElement(\"button\", { className: ReactUtils_1.combineClassNames(\"chevron\", \"m-icon-ChevronDown\", open, this.familyId), onClick: function (ev) { return _this.chevronClicked(ev); }, \"aria-expanded\": this.state.open },\r\n React.createElement(\"span\", { className: \"offscreen\" }, this.props.buttonHiddenLabel)),\r\n React.createElement(\"div\", { className: ReactUtils_1.combineClassNames(\"content\", visible, this.familyId), ref: function (instance) { return _this.contentContainer = instance; }, role: \"menu\" },\r\n React.createElement(\"div\", { className: \"offscreen\", onFocus: function () { return _this.focusInput(-1); }, tabIndex: 0 }),\r\n this.props.content,\r\n React.createElement(\"div\", { className: \"offscreen\", onFocus: function () { return _this.focusInput(0, 1); }, tabIndex: 0 }))));\r\n };\r\n return ChevronDropdownControl;\r\n }(React.Component));\r\n exports.ChevronDropdownControl = ChevronDropdownControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 269 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(79)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactUtils_1) {\r\n var CompactDropdownControlProps = (function () {\r\n function CompactDropdownControlProps() {\r\n }\r\n return CompactDropdownControlProps;\r\n }());\r\n exports.CompactDropdownControlProps = CompactDropdownControlProps;\r\n var CompactDropdownControl = (function (_super) {\r\n __extends(CompactDropdownControl, _super);\r\n function CompactDropdownControl(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.documentClicked = function (ev) {\r\n if (_this.state.open) {\r\n if (ev.defaultPrevented)\r\n return;\r\n var clickIsInside = false;\r\n var clickedOnIcon = false;\r\n var target = ev.srcElement;\r\n while (target) {\r\n if (target.className.toString().indexOf(_this.familyId) >= 0) {\r\n clickIsInside = true;\r\n }\r\n if (target.className.toString().indexOf(\"compact-menu-icon\") >= 0) {\r\n clickedOnIcon = true;\r\n }\r\n target = target.parentElement;\r\n }\r\n if (!clickIsInside) {\r\n _this.close();\r\n }\r\n else if (_this.props.closeOnClick) {\r\n if (clickedOnIcon) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n _this.close();\r\n }\r\n }\r\n };\r\n _this.iconClicked = function (ev) {\r\n var element = ev.nativeEvent.srcElement || ev.nativeEvent.target;\r\n if (element.className.toString().indexOf(_this.familyId) < 0)\r\n return;\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n _this.setState({\r\n open: !_this.state.open\r\n }, function () {\r\n _this.toggleStatusBarDisplay(!_this.state.open);\r\n });\r\n };\r\n _this.state = {\r\n className: props.className,\r\n contentClassName: props.contentClassName\r\n };\r\n _this.familyId = Math.random().toString(24).substr(2, 12);\r\n return _this;\r\n }\r\n CompactDropdownControl.prototype.componentDidMount = function () {\r\n window.addEventListener(\"click\", this.documentClicked);\r\n };\r\n CompactDropdownControl.prototype.componentWillUnmount = function () {\r\n window.removeEventListener(\"click\", this.documentClicked);\r\n };\r\n CompactDropdownControl.prototype.close = function () {\r\n var _this = this;\r\n this.setState({\r\n open: false\r\n }, function () {\r\n _this.toggleStatusBarDisplay(true);\r\n });\r\n };\r\n CompactDropdownControl.prototype.toggleStatusBarDisplay = function (show) {\r\n $('#app-body > * > .status-bar').css({ display: show ? 'block' : 'none' });\r\n };\r\n CompactDropdownControl.prototype.render = function () {\r\n var _this = this;\r\n var open = (this.state.open) ? \"open\" : \"\";\r\n var visible = (this.state.open) ? \"visible\" : \"\";\r\n return (React.createElement(\"div\", { className: ReactUtils_1.combineClassNames(\"compact-dropdown-menu\", this.state.className) },\r\n React.createElement(\"button\", { \"aria-haspopup\": \"true\", role: \"button\", \"aria-controls\": \"MainMenu\", \"aria-label\": \"Main Menu\", className: ReactUtils_1.combineClassNames(\"compact-menu-icon\", open, this.familyId, \"compact-menu-icon-btn\"), onClick: function (ev) { return _this.iconClicked(ev); } },\r\n React.createElement(\"div\", { className: ReactUtils_1.combineClassNames(\"compact-menu-content\", this.state.contentClassName, visible) }, this.props.content))));\r\n };\r\n return CompactDropdownControl;\r\n }(React.Component));\r\n exports.CompactDropdownControl = CompactDropdownControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 270 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(161), __webpack_require__(15)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, BotChannels_1, Intercom_Resources_DevPortal_1) {\r\n var EmbedCodePanel = (function (_super) {\r\n __extends(EmbedCodePanel, _super);\r\n function EmbedCodePanel(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.handleFirstFocusTrapFocus = _this.handleFirstFocusTrapFocus.bind(_this);\r\n _this.handleLastFocusTrapFocus = _this.handleLastFocusTrapFocus.bind(_this);\r\n _this.handleEmbedCodeFocus = _this.handleEmbedCodeFocus.bind(_this);\r\n _this.saveCloseButton = _this.saveCloseButton.bind(_this);\r\n _this.saveEmbedCode = _this.saveEmbedCode.bind(_this);\r\n _this.state = {\r\n currentChannelContact: (_this.props.contacts.length > 0) ? _this.props.contacts[0] : null\r\n };\r\n return _this;\r\n }\r\n EmbedCodePanel.prototype.componentDidMount = function () {\r\n this.focusEmbedCode();\r\n };\r\n EmbedCodePanel.prototype.onChannelClick = function (contact) {\r\n this.setState({ currentChannelContact: contact });\r\n };\r\n EmbedCodePanel.prototype.getFooter = function () {\r\n if (this.state.currentChannelContact.ChannelName === 'Facebook')\r\n return (React.createElement(\"div\", { className: \"embed-footer\" },\r\n React.createElement(\"span\", null,\r\n Intercom_Resources_DevPortal_1.Resources.embedPanelFacebookFooter,\r\n \" \",\r\n React.createElement(\"a\", { href: \"https://developers.facebook.com/docs/messenger-platform/plugin-reference\" }, Intercom_Resources_DevPortal_1.Resources.embedPanelLearnMore))));\r\n else\r\n return null;\r\n };\r\n EmbedCodePanel.prototype.externalLink = function () {\r\n var path = this.props.webChatClick ? \"javascript:void(0)\" : BotChannels_1.BotChannels.getConfigUrl(this.props.botId, this.state.currentChannelContact.ChannelId);\r\n return (React.createElement(\"div\", null,\r\n React.createElement(\"div\", { className: \"embed-code-name\" }, Intercom_Resources_DevPortal_1.Resources.embedPanelChannelMovedHeader.replace('%1', this.state.currentChannelContact.ChannelName)),\r\n React.createElement(\"a\", { href: path, target: \"_self\", onClick: this.props.webChatClick || null, ref: this.saveEmbedCode },\r\n Intercom_Resources_DevPortal_1.Resources.embedPanelChannelMovedInstructions.replace('%1', this.state.currentChannelContact.ChannelName),\r\n \" \",\r\n React.createElement(\"span\", { className: \"icon-font\" }, '\\uE0E3'))));\r\n };\r\n EmbedCodePanel.prototype.embedInfo = function () {\r\n var beforeCodeValue = null;\r\n var beforeCodeNote = null;\r\n if (this.state.currentChannelContact.Secret) {\r\n beforeCodeValue = [\r\n (React.createElement(\"div\", { className: \"embed-code-name\" }, \"Secret\")), (React.createElement(\"div\", { className: \"embed-code-text\" },\r\n React.createElement(\"div\", { className: \"embed-code\" }, this.state.currentChannelContact.Secret)))\r\n ];\r\n }\r\n if (this.state.currentChannelContact.Note) {\r\n beforeCodeNote = (React.createElement(\"div\", { className: \"embed-code-note\" }, this.state.currentChannelContact.Note));\r\n }\r\n return (React.createElement(\"div\", null,\r\n beforeCodeValue,\r\n beforeCodeNote,\r\n React.createElement(\"div\", { className: \"embed-code-name\" },\r\n React.createElement(\"label\", { htmlFor: \"bot-channel-embed-code-label\" }, Intercom_Resources_DevPortal_1.Resources.embedPanelEmbedcodeForChannelLabel.replace('%1', this.state.currentChannelContact.ChannelName))),\r\n React.createElement(\"div\", { className: \"embed-code-text\" },\r\n React.createElement(\"div\", { className: \"embed-channel-icon-panel\" },\r\n React.createElement(\"img\", { className: \"embed-channel-icon\", alt: this.state.currentChannelContact.ChannelName, src: this.state.currentChannelContact.ChannelIconUrl })),\r\n React.createElement(\"textarea\", { className: \"embed-code\", id: \"bot-channel-embed-code-label\", ref: this.saveEmbedCode, readOnly: true, onFocus: this.handleEmbedCodeFocus, rows: 3, value: this.state.currentChannelContact.HtmlLink }),\r\n React.createElement(\"div\", { className: \"clean\" }))));\r\n };\r\n EmbedCodePanel.prototype.focusCloseButton = function () {\r\n var closeButtonElement = ReactDOM.findDOMNode(this._closeButton);\r\n closeButtonElement && closeButtonElement.focus();\r\n };\r\n EmbedCodePanel.prototype.focusEmbedCode = function () {\r\n var embedCodeElement = ReactDOM.findDOMNode(this._embedCode);\r\n embedCodeElement && embedCodeElement.focus();\r\n };\r\n EmbedCodePanel.prototype.handleEmbedCodeFocus = function () {\r\n var embedCodeElement = ReactDOM.findDOMNode(this._embedCode);\r\n embedCodeElement && embedCodeElement.select();\r\n };\r\n EmbedCodePanel.prototype.handleFirstFocusTrapFocus = function () {\r\n this.focusEmbedCode();\r\n };\r\n EmbedCodePanel.prototype.handleLastFocusTrapFocus = function () {\r\n this.focusCloseButton();\r\n };\r\n EmbedCodePanel.prototype.saveCloseButton = function (closeButton) {\r\n this._closeButton = closeButton;\r\n };\r\n EmbedCodePanel.prototype.saveEmbedCode = function (embedCode) {\r\n this._embedCode = embedCode;\r\n };\r\n EmbedCodePanel.prototype.render = function () {\r\n var _this = this;\r\n var iconList = this.props.contacts.map(function (contact) {\r\n return React.createElement(\"button\", { key: contact.ChannelId + \"-button\", className: \"image-button-container\", type: \"button\", title: contact.ChannelName, onClick: function () { return _this.onChannelClick(contact); } },\r\n React.createElement(\"img\", { className: \"embed-channel-icon\", alt: contact.ChannelName, src: contact.ChannelIconUrl }));\r\n });\r\n return (React.createElement(\"div\", { className: \"embed-code-panel\" },\r\n React.createElement(\"div\", { className: \"focus-trap\", \"aria-hidden\": \"true\", onFocus: this.handleFirstFocusTrapFocus, tabIndex: 0 }),\r\n React.createElement(\"button\", { className: \"dialog-close-button\", \"aria-label\": \"Close\", ref: this.saveCloseButton, type: \"button\" }),\r\n React.createElement(\"div\", { id: \"dialog-title\", className: \"embed-title\" }, Intercom_Resources_DevPortal_1.Resources.embedPanelTitle),\r\n React.createElement(\"div\", { className: \"embed-desc\" }, Intercom_Resources_DevPortal_1.Resources.embedPanelDescription),\r\n React.createElement(\"div\", { className: \"embed-icon-list\" }, iconList),\r\n this.state.currentChannelContact.ChannelId === 'webchat' ? this.externalLink() : this.embedInfo(),\r\n this.getFooter(),\r\n React.createElement(\"div\", { className: \"focus-trap\", \"aria-hidden\": \"true\", onFocus: this.handleLastFocusTrapFocus, tabIndex: 0 })));\r\n };\r\n return EmbedCodePanel;\r\n }(React.Component));\r\n exports.EmbedCodePanel = EmbedCodePanel;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 271 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(7), __webpack_require__(14), __webpack_require__(15), __webpack_require__(40), __webpack_require__(19), __webpack_require__(488), __webpack_require__(247), __webpack_require__(163), __webpack_require__(79), __webpack_require__(100), __webpack_require__(58), __webpack_require__(99)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, Rest, index_1, Intercom_Resources_DevPortal_1, Links_1, InFrame_1, userAgent_1, EmailSubscriptionConsent_1, MasterPageHeader_1, ReactUtils_1, index_2, HeaderKind_1, SupportedFeatureUtility_1) {\r\n var MasterPage = (function (_super) {\r\n __extends(MasterPage, _super);\r\n function MasterPage(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {\r\n signInState: null,\r\n signedInUser: null,\r\n signInInProgress: false,\r\n signInError: null,\r\n activeLink: index_1.NavLinks.root,\r\n statusBar: null\r\n };\r\n _this.emailSubscriptionConsent = new EmailSubscriptionConsent_1.EmailSubscriptionConsentConductor();\r\n return _this;\r\n }\r\n MasterPage.prototype.render = function () {\r\n if (this.state.unsupportedBrowser) {\r\n return this.renderUnsupportedBrowser();\r\n }\r\n else if (this.state.signInState) {\r\n return this.renderWaitListScreen();\r\n }\r\n else if (this.props.signInRequired && !this.state.signedInUser) {\r\n return this.renderSignInScreen();\r\n }\r\n else {\r\n return this.renderRegularScreen();\r\n }\r\n };\r\n MasterPage.prototype.componentWillUpdate = function (nextProps, state) {\r\n var jumbo = this.refs['jumbo'];\r\n if (jumbo) {\r\n jumbo.setState({ activeLink: state.activeLink });\r\n }\r\n var search = this.refs['searchBox'];\r\n if (search) {\r\n search.setState({ searchString: state.searchString });\r\n }\r\n };\r\n MasterPage.prototype.componentDidUpdate = function (prevProps, prevState) {\r\n if (this.state.signedInUser) {\r\n this.emailSubscriptionConsent.showIfRequired();\r\n }\r\n if (this.pageContent) {\r\n this.props.controller.app.scrolled(this.pageContent);\r\n }\r\n };\r\n MasterPage.prototype.toggleSearch = function () {\r\n var opened = _.isUndefined(this.state.expandSearch) ? true : !this.state.expandSearch;\r\n this.setState(_.extend(this.state, { expandSearch: opened }));\r\n };\r\n MasterPage.prototype.userFlightedDocuemntationLink = function () {\r\n return '//docs.microsoft.com/en-us/bot-framework/';\r\n };\r\n MasterPage.prototype.checkAzureSingleSignOn = function () {\r\n var host = null;\r\n try {\r\n host = this.singleSignOnChecker.contentWindow.location.hostname;\r\n }\r\n catch (error) {\r\n host = null;\r\n }\r\n if (host) {\r\n var curHost = window.location.hostname;\r\n if (host === curHost) {\r\n this.props.refreshSignedInUser();\r\n }\r\n }\r\n };\r\n Object.defineProperty(MasterPage.prototype, \"userAgent\", {\r\n get: function () {\r\n return userAgent_1.parseUserAgent();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MasterPage.prototype, \"isSafari\", {\r\n get: function () {\r\n var ua = this.userAgent;\r\n return ua.Safari && !(ua.Chrome || ua.Edge || ua.Firefox || ua.CriOS || ua.Opera);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n MasterPage.prototype.renderHiddenFrameToCheckAzureSingleSignOn = function () {\r\n return null;\r\n };\r\n MasterPage.prototype.renderHeader = function (showLinks) {\r\n var _this = this;\r\n if (showLinks === void 0) { showLinks = true; }\r\n if (InFrame_1.default() || this.props.headerKind === HeaderKind_1.HeaderKind.None) {\r\n return null;\r\n }\r\n var showJumboHeader = this.props.headerKind === HeaderKind_1.HeaderKind.Jumbo;\r\n var showUserMenu = SupportedFeatureUtility_1.SupportedFeatureUtility.isSupported(Rest.DevPortalFeatureFlags.SupportNonAzureUsers);\r\n return (React.createElement(MasterPageHeader_1.MasterPageHeader, { ref: function (x) { return _this.pageHeader = x; }, controller: this.props.controller, showLinks: showLinks, showUserMenu: showUserMenu, showSearch: true, showEnvironment: true, showMainNavLink: true, isAdmin: this.props.isAdmin, isReviewer: this.props.isReviewer, signedInUser: function () { return _this.state.signedInUser; }, renderHiddenFrameToCheckAzureSingleSignOn: function () { return _this.renderHiddenFrameToCheckAzureSingleSignOn(); }, onSearch: this.props.onSearch, onSignOutClicked: this.props.onSignOutClicked, onAccountClicked: this.props.onUserAccountClicked, showJumboHeader: showJumboHeader, isRoutableUrl: this.props.isRoutableUrl, announcements: this.state.announcements }));\r\n };\r\n MasterPage.prototype.renderRegularScreen = function () {\r\n var _this = this;\r\n var scrollHandler = _.debounce(function (element) { return _this.props.controller.app.scrolled(element); }, 100, false);\r\n var outlineClassOverrides;\r\n switch (this.props.headerKind) {\r\n case HeaderKind_1.HeaderKind.Small:\r\n outlineClassOverrides = \"small\";\r\n break;\r\n case HeaderKind_1.HeaderKind.Jumbo:\r\n outlineClassOverrides = \"\";\r\n break;\r\n case HeaderKind_1.HeaderKind.None:\r\n outlineClassOverrides = \"no-header\";\r\n break;\r\n }\r\n return (React.createElement(\"div\", { className: \"fullWidth\" },\r\n this.renderHeader(),\r\n this.state.statusBarScrolls ? null : this.state.statusBar,\r\n React.createElement(\"section\", { className: \"action-sheet\" }),\r\n React.createElement(\"main\", { className: ReactUtils_1.combineClassNames(\"outline\", outlineClassOverrides), role: \"main\" },\r\n React.createElement(\"div\", { ref: function (x) { return _this.pageContent = x; }, id: 'page-content', className: ReactUtils_1.combineClassNames(\"page-content\", outlineClassOverrides), onScroll: function (event) { return scrollHandler(event.nativeEvent.srcElement || event.nativeEvent.target); } }, this.state.statusBarScrolls ? this.state.statusBar : null),\r\n React.createElement(index_1.ProgressBarControl, null)),\r\n this.state.showProgressMask ? (React.createElement(\"div\", { className: 'dialog-mask' })) : null));\r\n };\r\n MasterPage.prototype.renderUnsupportedBrowser = function () {\r\n return (React.createElement(\"div\", { className: \"sign-in-screen\" },\r\n this.renderHeader(),\r\n React.createElement(\"div\", { className: \"sign-in-contents\" },\r\n React.createElement(\"div\", { className: \"sign-in-title\" }, InFrame_1.default() ? Intercom_Resources_DevPortal_1.Resources.unsupportedBrowser_Azure : Intercom_Resources_DevPortal_1.Resources.unsupportedBrowser))));\r\n };\r\n MasterPage.prototype.renderWaitListScreen = function () {\r\n return null;\r\n };\r\n MasterPage.prototype.renderSignInScreen = function () {\r\n var bottomPanel;\r\n var errorMessagePanel;\r\n if (InFrame_1.default()) {\r\n return null;\r\n }\r\n if (!SupportedFeatureUtility_1.SupportedFeatureUtility.isSupported(Rest.DevPortalFeatureFlags.SupportNonAzureUsers)) {\r\n return (React.createElement(\"div\", { className: \"sign-in-screen\" },\r\n this.renderHeader(false),\r\n React.createElement(\"div\", { className: \"sign-in-contents\" },\r\n React.createElement(\"div\", { className: \"sign-in-title\" }, \"Not supported\"),\r\n React.createElement(\"div\", { className: \"sign-in-details\" },\r\n React.createElement(\"div\", null, \"This feature is not supported in this environment.\"),\r\n React.createElement(\"div\", null, \"Please manage your bots from the Azure portal.\")))));\r\n }\r\n if (this.state.signInInProgress) {\r\n bottomPanel = (React.createElement(\"div\", null,\r\n React.createElement(\"div\", { className: \"sign-in-progress-text\" }, \"Signing in...\"),\r\n React.createElement(\"div\", { className: \"sign-in-progress-animation\" })));\r\n }\r\n else {\r\n bottomPanel = (React.createElement(\"div\", { className: \"button-panel\" },\r\n React.createElement(\"a\", { href: Links_1.getSignInUrl() },\r\n React.createElement(\"button\", { type: \"button\", className: \"sign-in default-button\" }, \"Sign in\")),\r\n this.renderHiddenFrameToCheckAzureSingleSignOn()));\r\n }\r\n if (this.state.signInError) {\r\n errorMessagePanel = React.createElement(\"div\", { className: \"sign-in-error\" }, this.state.signInError);\r\n }\r\n return (React.createElement(\"div\", { className: \"sign-in-screen\" },\r\n this.renderHeader(false),\r\n React.createElement(\"div\", { className: \"sign-in-contents\" },\r\n React.createElement(\"div\", { className: \"sign-in-title\" }, \"Sign in\"),\r\n React.createElement(\"div\", { className: \"sign-in-details\" },\r\n React.createElement(\"div\", null,\r\n \"Welcome to \",\r\n index_1.resourceStrings.botFramework,\r\n \" developer portal.\"),\r\n React.createElement(\"div\", null, \"To continue sign in with your work or school, or personal Microsoft account.\")),\r\n bottomPanel,\r\n errorMessagePanel)));\r\n };\r\n return MasterPage;\r\n }(React.Component));\r\n __decorate([\r\n index_2.lazy()\r\n ], MasterPage.prototype, \"userAgent\", null);\r\n __decorate([\r\n index_2.lazy()\r\n ], MasterPage.prototype, \"isSafari\", null);\r\n exports.MasterPage = MasterPage;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 272 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(8)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ClientAppSettings_1) {\r\n var RejectionDetailsPanel = (function (_super) {\r\n __extends(RejectionDetailsPanel, _super);\r\n function RejectionDetailsPanel(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n RejectionDetailsPanel.prototype.render = function () {\r\n var guidelineUrl = ClientAppSettings_1.clientAppSettings.documentationUrl + \"directory/review-guidelines/\";\r\n return (React.createElement(\"div\", { className: \"rejection-details-panel\" },\r\n React.createElement(\"div\", { className: \"dialog-close-button\" }),\r\n React.createElement(\"div\", { className: \"top-section\" },\r\n React.createElement(\"h2\", null, \"Your bot submission was rejected\")),\r\n React.createElement(\"div\", { className: \"middle-section\" },\r\n React.createElement(\"div\", { className: \"rejection-message\" },\r\n this.props.message,\r\n \" \\u00A0\" + \" \" + \"Questions? \\u00A0\",\r\n React.createElement(\"a\", { href: \"mailto:botreview@microsoft.com\" }, \"botreview@microsoft.com\"))),\r\n React.createElement(\"div\", { className: \"bottom-section\" },\r\n React.createElement(\"div\", { className: \"rejection-footer\" },\r\n \"Please make sure to have a look at our \",\r\n React.createElement(\"a\", { href: guidelineUrl }, \"review guidelines\"),\r\n \" and the criteria\" + \" \" + \"we use to evaluate bots for the directory.\"),\r\n React.createElement(\"div\", { className: \"button-panel\" },\r\n React.createElement(\"button\", { type: \"button\", className: \"ok-button default-button\" }, \"Close\")))));\r\n };\r\n return RejectionDetailsPanel;\r\n }(React.Component));\r\n exports.RejectionDetailsPanel = RejectionDetailsPanel;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 273 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(81)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, BotPage_1) {\r\n var TabControl = (function (_super) {\r\n __extends(TabControl, _super);\r\n function TabControl(props) {\r\n var _this = this;\r\n props.className = props.className || 'tabl-control';\r\n props.tabClassName = props.tabClassName || 'tab-control-tab';\r\n props.selectedClassName = props.selectedClassName || 'selected-tab';\r\n _this = _super.call(this, props) || this;\r\n return _this;\r\n }\r\n TabControl.prototype.onTabClicked = function (event, tab) {\r\n event.preventDefault();\r\n this.setState({ selectedTab: tab });\r\n if (typeof (this.props.clickHandler) === 'function')\r\n this.props.clickHandler(tab);\r\n };\r\n TabControl.prototype.render = function () {\r\n var _this = this;\r\n var tabs = this.props.tabs.map(function (tab) {\r\n var classes = _this.props.tabClassName;\r\n if (tab.tab === _this.props.selectedTab)\r\n classes += \" \" + _this.props.selectedClassName;\r\n var href = \"/bots/\" + BotPage_1.BotTabs[tab.tab].toLowerCase() + \"?id=\" + _this.props.botId;\r\n return (React.createElement(\"a\", { key: tab.tab, ref: 'tab' + tab.tab, href: href, className: classes, onClick: function (event) { return _this.onTabClicked(event, tab.tab); } }, tab.label));\r\n });\r\n return React.createElement(\"div\", { className: this.props.className },\r\n tabs,\r\n this.props.children);\r\n };\r\n return TabControl;\r\n }(React.Component));\r\n exports.TabControl = TabControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 274 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(14)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, index_1) {\r\n var BotProgress = (function (_super) {\r\n __extends(BotProgress, _super);\r\n function BotProgress() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n BotProgress.prototype.componentDidMount = function () {\r\n if (this.mask) {\r\n this.mask.focus();\r\n }\r\n };\r\n BotProgress.prototype.render = function () {\r\n var _this = this;\r\n return (React.createElement(\"div\", { className: \"status-mask progress\", tabIndex: -1, ref: function (x) { return _this.mask = x; }, onKeyDown: function (e) { e.preventDefault(); e.stopPropagation(); } },\r\n React.createElement(\"div\", { className: \"row\" },\r\n React.createElement(index_1.ProgressRingControl, { className: 'progress-large' })),\r\n React.createElement(\"p\", null, this.props.progress || 'Provisioning your bot... This might take a few minutes.')));\r\n };\r\n return BotProgress;\r\n }(React.Component));\r\n exports.BotProgress = BotProgress;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 275 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n function reflectName(setName) {\r\n var x = setName();\r\n var result = _.first(_.keys(x));\r\n delete x[result];\r\n return result;\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = reflectName;\r\n function reflectNameOf(callback) {\r\n var x = {};\r\n callback(x);\r\n return _.first(_.keys(x));\r\n }\r\n exports.reflectNameOf = reflectNameOf;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 276 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n function getExt(path) {\r\n var lastDotIndex = path.lastIndexOf('.');\r\n if (lastDotIndex >= 0) {\r\n return path.substr(lastDotIndex);\r\n }\r\n return \"\";\r\n }\r\n exports.getExt = getExt;\r\n function collapseDotDot(dirs) {\r\n var right = dirs.length - 1;\r\n var result = [];\r\n while (right >= 0) {\r\n var cur = dirs[right];\r\n if (cur === '..') {\r\n if (right > 0) {\r\n if (dirs[right - 1] !== '..') {\r\n right--;\r\n }\r\n }\r\n }\r\n else {\r\n result.push(cur);\r\n }\r\n right--;\r\n }\r\n return result;\r\n }\r\n function resolve() {\r\n var paths = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n paths[_i] = arguments[_i];\r\n }\r\n var parts = _.map(paths, function (path) { return path.replace('/./', '/'); });\r\n var dirs = _.flatten(_.map(parts, function (path) { return path.split('/'); }), true);\r\n var right = dirs.length - 1;\r\n var result = collapseDotDot(dirs);\r\n if (result.length < dirs.length) {\r\n for (;;) {\r\n var prev = result;\r\n result = collapseDotDot(prev);\r\n if (result.length === prev.length) {\r\n break;\r\n }\r\n }\r\n }\r\n return result.join('/');\r\n }\r\n exports.resolve = resolve;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 277 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(57)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, $) {\r\n var $PubSub = $({});\r\n var $Initialized = false;\r\n var RuntimeConnectedShadeUtils = (function () {\r\n function RuntimeConnectedShadeUtils() {\r\n }\r\n RuntimeConnectedShadeUtils.initialize = function () {\r\n if ($Initialized) {\r\n return;\r\n }\r\n window.addEventListener('message', this.OnMessage);\r\n $Initialized = true;\r\n };\r\n RuntimeConnectedShadeUtils.trigger = function (event, data) {\r\n var frame = $(\"#authoringSurfaceHost\")[0];\r\n if (!frame) {\r\n return false;\r\n }\r\n frame.contentWindow.postMessage(__assign({ action: event }, data), '*');\r\n return true;\r\n };\r\n RuntimeConnectedShadeUtils.on = function (event, callback) {\r\n $PubSub.on(event, callback);\r\n };\r\n RuntimeConnectedShadeUtils.off = function (event, callback) {\r\n $PubSub.on(event, callback);\r\n };\r\n RuntimeConnectedShadeUtils.OnMessage = function (e) {\r\n if (!e.data['action']) {\r\n return;\r\n }\r\n $PubSub.trigger(e.data.action, e.data);\r\n };\r\n return RuntimeConnectedShadeUtils;\r\n }());\r\n RuntimeConnectedShadeUtils.ModalVisibleEventName = \"modal.visible\";\r\n RuntimeConnectedShadeUtils.AuthoringToolDirtyEventName = \"authoring-tool.dirty\";\r\n RuntimeConnectedShadeUtils.AuthoringToolMaskEventName = \"authoring-tool.mask\";\r\n RuntimeConnectedShadeUtils.AuthoringToolErrorEventName = \"authoring-tool.error\";\r\n exports.RuntimeConnectedShadeUtils = RuntimeConnectedShadeUtils;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 278 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n var elementMap = {};\r\n function default_1(tagName, attrName) {\r\n var e = elementMap[tagName] || document.createElement(tagName);\r\n elementMap[tagName] = e;\r\n return (attrName in e);\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = default_1;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 279 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n function log(url, message) {\r\n try {\r\n clicky.log(url, message);\r\n }\r\n catch (ex) {\r\n }\r\n }\r\n exports.log = log;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 280 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n function pinToBottom($element, $footer, $box) {\r\n var offset = $element.offset();\r\n if (offset) {\r\n var top_1 = offset.top;\r\n var windowTop = window.scrollY;\r\n var windowHeight = window.innerHeight;\r\n var margin = parseInt($element.css('margin-bottom'));\r\n if (!margin || _.isNaN(margin)) {\r\n margin = 0;\r\n }\r\n var footerHeight = $footer && $footer.length ? $footer.height() : 0;\r\n var paddingHeight = $box && $box.length ? parseInt($box.css('padding-bottom')) : 0;\r\n if (_.isNaN(paddingHeight)) {\r\n paddingHeight = 0;\r\n }\r\n if (footerHeight) {\r\n footerHeight = Math.max(footerHeight, paddingHeight);\r\n var footertop = $footer.offset().top;\r\n if (footertop > windowHeight + windowTop) {\r\n footerHeight = 0;\r\n }\r\n }\r\n var minHeight = parseInt($element.css('min-height'));\r\n if (_.isNaN(minHeight) || !minHeight) {\r\n minHeight = 0;\r\n }\r\n var height = Math.max(windowTop + windowHeight - top_1 - margin - footerHeight, minHeight);\r\n $element.height(height);\r\n }\r\n }\r\n function bind($element, $footer, $box, callback) {\r\n var handler = function () {\r\n pinToBottom($element, $footer, $box);\r\n if (callback) {\r\n callback();\r\n }\r\n };\r\n var listener = _.debounce(function () { return handler(); }, 100, false);\r\n window.addEventListener('resize', listener);\r\n window.addEventListener('scroll', listener);\r\n _.defer(handler);\r\n return listener;\r\n }\r\n exports.bind = bind;\r\n function unbind(listener) {\r\n window.removeEventListener('resize', listener);\r\n window.removeEventListener('scroll', listener);\r\n }\r\n exports.unbind = unbind;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 281 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(17)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, Strings_1) {\r\n var SearchControl = (function (_super) {\r\n __extends(SearchControl, _super);\r\n function SearchControl(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.searching = false;\r\n _this.state = { searchString: '' };\r\n return _this;\r\n }\r\n SearchControl.prototype.render = function () {\r\n var searchBoxClass = this.props.expandSearch ? \"searchBox expand\" : \"searchBox\";\r\n return (React.createElement(\"div\", { className: \"search-outter\" },\r\n React.createElement(\"div\", { className: \"open-search\", ref: \"open-search\", onClick: _.debounce(_.bind(this.toggleSearchForm, this), 100, true) }),\r\n React.createElement(\"div\", { ref: \"searchDiv\", className: searchBoxClass },\r\n React.createElement(\"form\", { method: \"GET\", action: \"\", onSubmit: _.bind(this.onSearchClicked, this) },\r\n React.createElement(\"input\", { ref: \"searchInput\", name: \"searchInput\", type: \"text\", key: \"search_text\", className: \"searchText\", placeholder: this.props.promptText || \"Search Microsoft \" + Strings_1.resourceStrings.botDirectory + \"\\u2026\", value: this.state.searchString || '', onChange: _.bind(this.onChange, this), onKeyDown: _.bind(this.onKey, this) }),\r\n React.createElement(\"button\", { type: \"submit\", ref: \"searchIcon\", className: \"icon-search\", name: \"submit_search\" },\r\n React.createElement(\"span\", null, \"Search\"))))));\r\n };\r\n SearchControl.prototype.toggleSearchForm = function (e) {\r\n this.props.toggleSearchOpen();\r\n };\r\n SearchControl.prototype.onSearchClicked = function (e) {\r\n var $searchInput = $(ReactDOM.findDOMNode(this.refs[\"searchInput\"]));\r\n var $div = $(ReactDOM.findDOMNode(this.refs[\"searchDiv\"]));\r\n e.stopPropagation();\r\n e.preventDefault();\r\n var searchText = $searchInput.val().trim();\r\n if (searchText) {\r\n this.props.onSearch(searchText);\r\n }\r\n else {\r\n var willExpand = !$div.hasClass('expand');\r\n $div.toggleClass('expand');\r\n if (willExpand) {\r\n $searchInput.focus();\r\n }\r\n }\r\n return false;\r\n };\r\n SearchControl.prototype.onChange = function (e) {\r\n var target = e.target;\r\n var text = target['value'];\r\n this.setState({ searchString: text });\r\n };\r\n SearchControl.prototype.onKey = function (e) {\r\n if (e.key === 'Enter') {\r\n this.props.onSearch(this.state.searchString.trim());\r\n e.preventDefault();\r\n }\r\n };\r\n return SearchControl;\r\n }(React.Component));\r\n exports.SearchControl = SearchControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 282 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(17)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, Strings_1) {\r\n var latestMarker = \"shown\";\r\n var FlexLayoutBox = (function () {\r\n function FlexLayoutBox(top, left, width, height) {\r\n this.top = top;\r\n this.left = left;\r\n this.width = width;\r\n this.height = height;\r\n }\r\n FlexLayoutBox.prototype.bottom = function () {\r\n return this.top + this.height;\r\n };\r\n FlexLayoutBox.prototype.right = function () {\r\n return this.left + this.width;\r\n };\r\n FlexLayoutBox.prototype.inside = function (top, left) {\r\n return this.top <= top && top <= this.bottom() && this.left <= left && left <= this.right();\r\n };\r\n FlexLayoutBox.prototype.fitsIn = function (box) {\r\n return box.inside(this.top, this.left) && box.inside(this.bottom(), this.right());\r\n };\r\n FlexLayoutBox.prototype.moveToFitsIn = function (box) {\r\n if (this.fitsIn(box)) {\r\n return this;\r\n }\r\n var dx = this.left < box.left ? box.left - this.left :\r\n (this.right() > box.right() ? box.right() - this.right() : 0);\r\n var dy = this.top < box.top ? box.top - this.top :\r\n (this.bottom() > box.bottom() ? box.bottom() - this.bottom() : 0);\r\n return new FlexLayoutBox(this.top + dy, this.left + dx, this.width, this.height);\r\n };\r\n return FlexLayoutBox;\r\n }());\r\n var Borders;\r\n (function (Borders) {\r\n Borders[Borders[\"Top\"] = 0] = \"Top\";\r\n Borders[Borders[\"Left\"] = 1] = \"Left\";\r\n Borders[Borders[\"Right\"] = 2] = \"Right\";\r\n Borders[Borders[\"Bottom\"] = 3] = \"Bottom\";\r\n })(Borders = exports.Borders || (exports.Borders = {}));\r\n var TooltipControl = (function (_super) {\r\n __extends(TooltipControl, _super);\r\n function TooltipControl(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n TooltipControl.offsetBox = function ($el) {\r\n var offset = $el.offset();\r\n return new FlexLayoutBox(offset.top, offset.left, $el[0].offsetWidth, $el[0].offsetHeight);\r\n };\r\n TooltipControl.prototype.anchorTo = function ($anchor) {\r\n var $self = $(this.refs['container']);\r\n var $box = $self.offsetParent();\r\n var box = TooltipControl.offsetBox($box);\r\n var anchorBox = TooltipControl.offsetBox($anchor);\r\n var selfBox = TooltipControl.offsetBox($self);\r\n var anchorBorder = this.props.anchorBorder;\r\n var left = 0;\r\n var top = 0;\r\n switch (anchorBorder) {\r\n case Borders.Left:\r\n left = anchorBox.right() + 20;\r\n top = anchorBox.top + anchorBox.height / 2 - selfBox.height / 2;\r\n break;\r\n case Borders.Right:\r\n left = anchorBox.left - 20 - selfBox.width;\r\n top = anchorBox.top + anchorBox.height / 2 - selfBox.height / 2;\r\n break;\r\n case Borders.Bottom:\r\n top = anchorBox.top - selfBox.height - 20;\r\n left = anchorBox.left + anchorBox.width / 2 - selfBox.width;\r\n break;\r\n case Borders.Top:\r\n top = anchorBox.bottom() + 20;\r\n left = anchorBox.left + anchorBox.width / 2 - selfBox.width;\r\n break;\r\n }\r\n var targetBox = new FlexLayoutBox(top, left, selfBox.width, selfBox.height)\r\n .moveToFitsIn(box);\r\n $self.css({ top: targetBox.top - box.top + \"px\", left: targetBox.left - box.left + \"px\" });\r\n };\r\n TooltipControl.prototype.render = function () {\r\n var _this = this;\r\n return (React.createElement(\"div\", { className: \"tool-tip anchor\" + Borders[this.props.anchorBorder] + \" \" + (this.props.className || ''), onClick: function (evt) {\r\n evt.stopPropagation();\r\n }, ref: \"container\", \"data-tip-id\": this.props.tipId },\r\n this.props.className != \"modeless\" ?\r\n React.createElement(\"div\", { className: \"dialog-close-button\", onClick: function () { return _this.close(); } })\r\n : null,\r\n this.props.children));\r\n };\r\n TooltipControl.prototype.close = function () {\r\n $(\".tool-tip[data-tip-id=\\\"\" + this.props.tipId + \"\\\"]\").toggleClass('hidden', true);\r\n if (_.has(Strings_1.resourceStrings.tooltips, this.props.tipId)) {\r\n var key = \"tooltip_shown_\" + this.props.tipId;\r\n localStorage.setItem(key, latestMarker);\r\n }\r\n };\r\n TooltipControl.renderToolTipAsNeeded = function (props) {\r\n var key = \"tooltip_shown_\" + props.tipId;\r\n var prev = localStorage.getItem(key);\r\n if (!prev || prev !== latestMarker) {\r\n var tip = Strings_1.resourceStrings.tooltips[props.tipId];\r\n var tipContent = tip ? [\r\n React.createElement(\"h3\", { key: props.tipId + \"-title\" }, tip.title),\r\n React.createElement(\"p\", { key: props.tipId + \"-text\" }, tip.text)\r\n ] : props.children;\r\n var result = (React.createElement(TooltipControl, { className: props.className, tipId: props.tipId, ref: props.ref, anchorBorder: props.anchorBorder }, tipContent));\r\n return result;\r\n }\r\n return null;\r\n };\r\n return TooltipControl;\r\n }(React.Component));\r\n exports.TooltipControl = TooltipControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 283 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(518);\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/* 284 */\n/***/ (function(module, exports) {\n\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/* 285 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n/***/ }),\n/* 286 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(520);\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n/***/ }),\n/* 287 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n/***/ }),\n/* 288 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(171)\n , core = __webpack_require__(83)\n , fails = __webpack_require__(285);\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/* 289 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(284);\nmodule.exports = function(it){\n return Object(defined(it));\n};\n\n/***/ }),\n/* 290 */\n/***/ (function(module, exports) {\n\nmodule.exports.id = 'ace/mode/javascript_worker';\nmodule.exports.src = \"\\\"no use strict\\\";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\\\"\\\";testPath;){var alias=paths[testPath];if(\\\"string\\\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\\\/*$/,\\\"/\\\")+(tail||alias.main||alias.name);if(alias===!1)return\\\"\\\";var i=testPath.lastIndexOf(\\\"/\\\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\\\"log\\\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\\\"error\\\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\\\"!\\\")){var chunks=moduleName.split(\\\"!\\\");return window.normalizeModule(parentId,chunks[0])+\\\"!\\\"+window.normalizeModule(parentId,chunks[1])}if(\\\".\\\"==moduleName.charAt(0)){var base=parentId.split(\\\"/\\\").slice(0,-1).join(\\\"/\\\");for(moduleName=(base?base+\\\"/\\\":\\\"\\\")+moduleName;-1!==moduleName.indexOf(\\\".\\\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\\\.\\\\//,\\\"\\\").replace(/\\\\/\\\\.\\\\//,\\\"/\\\").replace(/[^\\\\/]+\\\\/\\\\.\\\\.\\\\//,\\\"\\\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\\\"worker.js acequire() accepts only (parentId, id) as arguments\\\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\\\"unable to load \\\"+id);var path=resolveModuleId(id,window.acequire.tlns);return\\\".js\\\"!=path.slice(-3)&&(path+=\\\".js\\\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\\\"string\\\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\\\"function\\\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\\\"require\\\",\\\"exports\\\",\\\"module\\\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\\\"require\\\":return req;case\\\"exports\\\":return module.exports;case\\\"module\\\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\\\"ace/lib/event_emitter\\\").EventEmitter,oop=window.acequire(\\\"ace/lib/oop\\\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\\\"call\\\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\\\"event\\\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\\\"Unknown command:\\\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\\\"ace/lib/es5-shim\\\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define(\\\"ace/lib/oop\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\\\"ace/range\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\\\"Range: [\\\"+this.start.row+\\\"/\\\"+this.start.column+\\\"] -> [\\\"+this.end.row+\\\"/\\\"+this.end.column+\\\"]\\\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\\\"object\\\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\\\"object\\\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\\\"ace/apply_delta\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\\\"\\\";switch(delta.action){case\\\"insert\\\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\\\"remove\\\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\\\"ace/lib/event_emitter\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\\\"object\\\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\\\"unshift\\\":\\\"push\\\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\\\"ace/anchor\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/lib/event_emitter\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\\\"change\\\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\\\"change\\\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\\\"change\\\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\\\"ace/document\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/apply_delta\\\",\\\"ace/lib/event_emitter\\\",\\\"ace/range\\\",\\\"ace/anchor\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),applyDelta=acequire(\\\"./apply_delta\\\").applyDelta,EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Range=acequire(\\\"./range\\\").Range,Anchor=acequire(\\\"./anchor\\\").Anchor,Document=function(textOrLines){this.$lines=[\\\"\\\"],0===textOrLines.length?this.$lines=[\\\"\\\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\\\"aaa\\\".split(/a/).length?function(text){return text.replace(/\\\\r\\\\n|\\\\r/g,\\\"\\\\n\\\").split(\\\"\\\\n\\\")}:function(text){return text.split(/\\\\r\\\\n|\\\\r|\\\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\\\r\\\\n|\\\\r|\\\\n)/m);this.$autoNewLine=match?match[1]:\\\"\\\\n\\\",this._signal(\\\"changeNewLineMode\\\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\\\"windows\\\":return\\\"\\\\r\\\\n\\\";case\\\"unix\\\":return\\\"\\\\n\\\";default:return this.$autoNewLine||\\\"\\\\n\\\"}},this.$autoNewLine=\\\"\\\",this.$newLineMode=\\\"auto\\\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\\\"changeNewLineMode\\\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\\\"\\\\r\\\\n\\\"==text||\\\"\\\\r\\\"==text||\\\"\\\\n\\\"==text},this.getLine=function(row){return this.$lines[row]||\\\"\\\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\\\"\\\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\\\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\\\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\\\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\\\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\\\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\\\"),this.insertMergedLines(position,[\\\"\\\",\\\"\\\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\\\"\\\"]),column=0):(lines=[\\\"\\\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\\\"remove\\\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\\\"remove\\\",lines:[\\\"\\\",\\\"\\\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\\\"insert\\\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\\\"change\\\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\\\"\\\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\\\"insert\\\"==delta.action?\\\"remove\\\":\\\"insert\\\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\\\"ace/lib/lang\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\\\"\\\").reverse().join(\\\"\\\")},exports.stringRepeat=function(string,count){for(var result=\\\"\\\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\\\s\\\\s*/,trimEndRegexp=/\\\\s\\\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\\\"\\\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\\\"\\\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\\\"object\\\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\\\"object\\\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}var cons=obj.constructor;if(cons===RegExp)return obj;copy=cons();for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\\\]\\\\/\\\\\\\\])/g,\\\"\\\\\\\\$1\\\")},exports.escapeHTML=function(str){return str.replace(/&/g,\\\"&\\\").replace(/\\\"/g,\\\""\\\").replace(/'/g,\\\"'\\\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\\\"insert\\\",start:data[i],lines:data[i+1]};else var d={action:\\\"remove\\\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\\\"ace/mode/javascript/jshint\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports,module){module.exports=function outer(modules,cache,entry){function newRequire(name,jumped){if(!cache[name]){if(!modules[name]){var currentRequire=\\\"function\\\"==typeof acequire&&acequire;if(!jumped&¤tRequire)return currentRequire(name,!0);if(previousRequire)return previousRequire(name,!0);var err=Error(\\\"Cannot find module '\\\"+name+\\\"'\\\");throw err.code=\\\"MODULE_NOT_FOUND\\\",err}var m=cache[name]={exports:{}};modules[name][0].call(m.exports,function(x){var id=modules[name][1][x];return newRequire(id?id:x)},m,m.exports,outer,modules,cache,entry)}return cache[name].exports}for(var previousRequire=\\\"function\\\"==typeof acequire&&acequire,i=0;entry.length>i;i++)newRequire(entry[i]);return newRequire(entry[0])}({\\\"/node_modules/browserify/node_modules/events/events.js\\\":[function(_dereq_,module){function EventEmitter(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function isFunction(arg){return\\\"function\\\"==typeof arg}function isNumber(arg){return\\\"number\\\"==typeof arg}function isObject(arg){return\\\"object\\\"==typeof arg&&null!==arg}function isUndefined(arg){return void 0===arg}module.exports=EventEmitter,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||0>n||isNaN(n))throw TypeError(\\\"n must be a positive number\\\");return this._maxListeners=n,this},EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(this._events||(this._events={}),\\\"error\\\"===type&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length)){if(er=arguments[1],er instanceof Error)throw er;throw TypeError('Uncaught, unspecified \\\"error\\\" event.')}if(handler=this._events[type],isUndefined(handler))return!1;if(isFunction(handler))switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:for(len=arguments.length,args=Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];handler.apply(this,args)}else if(isObject(handler)){for(len=arguments.length,args=Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];for(listeners=handler.slice(),len=listeners.length,i=0;len>i;i++)listeners[i].apply(this,args)}return!0},EventEmitter.prototype.addListener=function(type,listener){var m;if(!isFunction(listener))throw TypeError(\\\"listener must be a function\\\");if(this._events||(this._events={}),this._events.newListener&&this.emit(\\\"newListener\\\",type,isFunction(listener.listener)?listener.listener:listener),this._events[type]?isObject(this._events[type])?this._events[type].push(listener):this._events[type]=[this._events[type],listener]:this._events[type]=listener,isObject(this._events[type])&&!this._events[type].warned){var m;m=isUndefined(this._maxListeners)?EventEmitter.defaultMaxListeners:this._maxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error(\\\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\\\",this._events[type].length),\\\"function\\\"==typeof console.trace&&console.trace())}return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){function g(){this.removeListener(type,g),fired||(fired=!0,listener.apply(this,arguments))}if(!isFunction(listener))throw TypeError(\\\"listener must be a function\\\");var fired=!1;return g.listener=listener,this.on(type,g),this},EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError(\\\"listener must be a function\\\");if(!this._events||!this._events[type])return this;if(list=this._events[type],length=list.length,position=-1,list===listener||isFunction(list.listener)&&list.listener===listener)delete this._events[type],this._events.removeListener&&this.emit(\\\"removeListener\\\",type,listener);else if(isObject(list)){for(i=length;i-->0;)if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}if(0>position)return this;1===list.length?(list.length=0,delete this._events[type]):list.splice(position,1),this._events.removeListener&&this.emit(\\\"removeListener\\\",type,listener)}return this},EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[type]&&delete this._events[type],this;if(0===arguments.length){for(key in this._events)\\\"removeListener\\\"!==key&&this.removeAllListeners(key);return this.removeAllListeners(\\\"removeListener\\\"),this._events={},this\\n}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){var ret;return ret=this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.listenerCount=function(emitter,type){var ret;return ret=emitter._events&&emitter._events[type]?isFunction(emitter._events[type])?1:emitter._events[type].length:0}},{}],\\\"/node_modules/jshint/data/ascii-identifier-data.js\\\":[function(_dereq_,module){for(var identifierStartTable=[],i=0;128>i;i++)identifierStartTable[i]=36===i||i>=65&&90>=i||95===i||i>=97&&122>=i;for(var identifierPartTable=[],i=0;128>i;i++)identifierPartTable[i]=identifierStartTable[i]||i>=48&&57>=i;module.exports={asciiIdentifierStartTable:identifierStartTable,asciiIdentifierPartTable:identifierPartTable}},{}],\\\"/node_modules/jshint/lodash.js\\\":[function(_dereq_,module,exports){(function(global){(function(){function baseFindIndex(array,predicate,fromRight){for(var length=array.length,index=fromRight?length:-1;fromRight?index--:length>++index;)if(predicate(array[index],index,array))return index;return-1}function baseIndexOf(array,value,fromIndex){if(value!==value)return indexOfNaN(array,fromIndex);for(var index=fromIndex-1,length=array.length;length>++index;)if(array[index]===value)return index;return-1}function baseIsFunction(value){return\\\"function\\\"==typeof value||!1}function baseToString(value){return\\\"string\\\"==typeof value?value:null==value?\\\"\\\":value+\\\"\\\"}function indexOfNaN(array,fromIndex,fromRight){for(var length=array.length,index=fromIndex+(fromRight?0:-1);fromRight?index--:length>++index;){var other=array[index];if(other!==other)return index}return-1}function isObjectLike(value){return!!value&&\\\"object\\\"==typeof value}function lodash(){}function arrayCopy(source,array){var index=-1,length=source.length;for(array||(array=Array(length));length>++index;)array[index]=source[index];return array}function arrayEach(array,iteratee){for(var index=-1,length=array.length;length>++index&&iteratee(array[index],index,array)!==!1;);return array}function arrayFilter(array,predicate){for(var index=-1,length=array.length,resIndex=-1,result=[];length>++index;){var value=array[index];predicate(value,index,array)&&(result[++resIndex]=value)}return result}function arrayMap(array,iteratee){for(var index=-1,length=array.length,result=Array(length);length>++index;)result[index]=iteratee(array[index],index,array);return result}function arrayMax(array){for(var index=-1,length=array.length,result=NEGATIVE_INFINITY;length>++index;){var value=array[index];value>result&&(result=value)}return result}function arraySome(array,predicate){for(var index=-1,length=array.length;length>++index;)if(predicate(array[index],index,array))return!0;return!1}function assignWith(object,source,customizer){var props=keys(source);push.apply(props,getSymbols(source));for(var index=-1,length=props.length;length>++index;){var key=props[index],value=object[key],result=customizer(value,source[key],key,object,source);(result===result?result===value:value!==value)&&(value!==undefined||key in object)||(object[key]=result)}return object}function baseCopy(source,props,object){object||(object={});for(var index=-1,length=props.length;length>++index;){var key=props[index];object[key]=source[key]}return object}function baseCallback(func,thisArg,argCount){var type=typeof func;return\\\"function\\\"==type?thisArg===undefined?func:bindCallback(func,thisArg,argCount):null==func?identity:\\\"object\\\"==type?baseMatches(func):thisArg===undefined?property(func):baseMatchesProperty(func,thisArg)}function baseClone(value,isDeep,customizer,key,object,stackA,stackB){var result;if(customizer&&(result=object?customizer(value,key,object):customizer(value)),result!==undefined)return result;if(!isObject(value))return value;var isArr=isArray(value);if(isArr){if(result=initCloneArray(value),!isDeep)return arrayCopy(value,result)}else{var tag=objToString.call(value),isFunc=tag==funcTag;if(tag!=objectTag&&tag!=argsTag&&(!isFunc||object))return cloneableTags[tag]?initCloneByTag(value,tag,isDeep):object?value:{};if(result=initCloneObject(isFunc?{}:value),!isDeep)return baseAssign(result,value)}stackA||(stackA=[]),stackB||(stackB=[]);for(var length=stackA.length;length--;)if(stackA[length]==value)return stackB[length];return stackA.push(value),stackB.push(result),(isArr?arrayEach:baseForOwn)(value,function(subValue,key){result[key]=baseClone(subValue,isDeep,customizer,key,value,stackA,stackB)}),result}function baseFilter(collection,predicate){var result=[];return baseEach(collection,function(value,index,collection){predicate(value,index,collection)&&result.push(value)}),result}function baseForIn(object,iteratee){return baseFor(object,iteratee,keysIn)}function baseForOwn(object,iteratee){return baseFor(object,iteratee,keys)}function baseGet(object,path,pathKey){if(null!=object){pathKey!==undefined&&pathKey in toObject(object)&&(path=[pathKey]);for(var index=-1,length=path.length;null!=object&&length>++index;)var result=object=object[path[index]];return result}}function baseIsEqual(value,other,customizer,isLoose,stackA,stackB){if(value===other)return 0!==value||1/value==1/other;var valType=typeof value,othType=typeof other;return\\\"function\\\"!=valType&&\\\"object\\\"!=valType&&\\\"function\\\"!=othType&&\\\"object\\\"!=othType||null==value||null==other?value!==value&&other!==other:baseIsEqualDeep(value,other,baseIsEqual,customizer,isLoose,stackA,stackB)}function baseIsEqualDeep(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objIsArr=isArray(object),othIsArr=isArray(other),objTag=arrayTag,othTag=arrayTag;objIsArr||(objTag=objToString.call(object),objTag==argsTag?objTag=objectTag:objTag!=objectTag&&(objIsArr=isTypedArray(object))),othIsArr||(othTag=objToString.call(other),othTag==argsTag?othTag=objectTag:othTag!=objectTag&&(othIsArr=isTypedArray(other)));var objIsObj=objTag==objectTag,othIsObj=othTag==objectTag,isSameTag=objTag==othTag;if(isSameTag&&!objIsArr&&!objIsObj)return equalByTag(object,other,objTag);if(!isLoose){var valWrapped=objIsObj&&hasOwnProperty.call(object,\\\"__wrapped__\\\"),othWrapped=othIsObj&&hasOwnProperty.call(other,\\\"__wrapped__\\\");if(valWrapped||othWrapped)return equalFunc(valWrapped?object.value():object,othWrapped?other.value():other,customizer,isLoose,stackA,stackB)}if(!isSameTag)return!1;stackA||(stackA=[]),stackB||(stackB=[]);for(var length=stackA.length;length--;)if(stackA[length]==object)return stackB[length]==other;stackA.push(object),stackB.push(other);var result=(objIsArr?equalArrays:equalObjects)(object,other,equalFunc,customizer,isLoose,stackA,stackB);return stackA.pop(),stackB.pop(),result}function baseIsMatch(object,props,values,strictCompareFlags,customizer){for(var index=-1,length=props.length,noCustomizer=!customizer;length>++index;)if(noCustomizer&&strictCompareFlags[index]?values[index]!==object[props[index]]:!(props[index]in object))return!1;for(index=-1;length>++index;){var key=props[index],objValue=object[key],srcValue=values[index];if(noCustomizer&&strictCompareFlags[index])var result=objValue!==undefined||key in object;else result=customizer?customizer(objValue,srcValue,key):undefined,result===undefined&&(result=baseIsEqual(srcValue,objValue,customizer,!0));if(!result)return!1}return!0}function baseMatches(source){var props=keys(source),length=props.length;if(!length)return constant(!0);if(1==length){var key=props[0],value=source[key];if(isStrictComparable(value))return function(object){return null==object?!1:object[key]===value&&(value!==undefined||key in toObject(object))}}for(var values=Array(length),strictCompareFlags=Array(length);length--;)value=source[props[length]],values[length]=value,strictCompareFlags[length]=isStrictComparable(value);return function(object){return null!=object&&baseIsMatch(toObject(object),props,values,strictCompareFlags)}}function baseMatchesProperty(path,value){var isArr=isArray(path),isCommon=isKey(path)&&isStrictComparable(value),pathKey=path+\\\"\\\";return path=toPath(path),function(object){if(null==object)return!1;var key=pathKey;if(object=toObject(object),!(!isArr&&isCommon||key in object)){if(object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),null==object)return!1;key=last(path),object=toObject(object)}return object[key]===value?value!==undefined||key in object:baseIsEqual(value,object[key],null,!0)}}function baseMerge(object,source,customizer,stackA,stackB){if(!isObject(object))return object;var isSrcArr=isLength(source.length)&&(isArray(source)||isTypedArray(source));if(!isSrcArr){var props=keys(source);push.apply(props,getSymbols(source))}return arrayEach(props||source,function(srcValue,key){if(props&&(key=srcValue,srcValue=source[key]),isObjectLike(srcValue))stackA||(stackA=[]),stackB||(stackB=[]),baseMergeDeep(object,source,key,baseMerge,customizer,stackA,stackB);else{var value=object[key],result=customizer?customizer(value,srcValue,key,object,source):undefined,isCommon=result===undefined;isCommon&&(result=srcValue),!isSrcArr&&result===undefined||!isCommon&&(result===result?result===value:value!==value)||(object[key]=result)}}),object}function baseMergeDeep(object,source,key,mergeFunc,customizer,stackA,stackB){for(var length=stackA.length,srcValue=source[key];length--;)if(stackA[length]==srcValue)return object[key]=stackB[length],undefined;var value=object[key],result=customizer?customizer(value,srcValue,key,object,source):undefined,isCommon=result===undefined;isCommon&&(result=srcValue,isLength(srcValue.length)&&(isArray(srcValue)||isTypedArray(srcValue))?result=isArray(value)?value:getLength(value)?arrayCopy(value):[]:isPlainObject(srcValue)||isArguments(srcValue)?result=isArguments(value)?toPlainObject(value):isPlainObject(value)?value:{}:isCommon=!1),stackA.push(srcValue),stackB.push(result),isCommon?object[key]=mergeFunc(result,srcValue,customizer,stackA,stackB):(result===result?result!==value:value===value)&&(object[key]=result)}function baseProperty(key){return function(object){return null==object?undefined:object[key]}}function basePropertyDeep(path){var pathKey=path+\\\"\\\";return path=toPath(path),function(object){return baseGet(object,path,pathKey)}}function baseSlice(array,start,end){var index=-1,length=array.length;start=null==start?0:+start||0,0>start&&(start=-start>length?0:length+start),end=end===undefined||end>length?length:+end||0,0>end&&(end+=length),length=start>end?0:end-start>>>0,start>>>=0;for(var result=Array(length);length>++index;)result[index]=array[index+start];return result}function baseSome(collection,predicate){var result;return baseEach(collection,function(value,index,collection){return result=predicate(value,index,collection),!result}),!!result}function baseValues(object,props){for(var index=-1,length=props.length,result=Array(length);length>++index;)result[index]=object[props[index]];return result}function binaryIndex(array,value,retHighest){var low=0,high=array?array.length:low;if(\\\"number\\\"==typeof value&&value===value&&HALF_MAX_ARRAY_LENGTH>=high){for(;high>low;){var mid=low+high>>>1,computed=array[mid];(retHighest?value>=computed:value>computed)?low=mid+1:high=mid}return high}return binaryIndexBy(array,value,identity,retHighest)}function binaryIndexBy(array,value,iteratee,retHighest){value=iteratee(value);for(var low=0,high=array?array.length:0,valIsNaN=value!==value,valIsUndef=value===undefined;high>low;){var mid=floor((low+high)/2),computed=iteratee(array[mid]),isReflexive=computed===computed;if(valIsNaN)var setLow=isReflexive||retHighest;else setLow=valIsUndef?isReflexive&&(retHighest||computed!==undefined):retHighest?value>=computed:value>computed;setLow?low=mid+1:high=mid}return nativeMin(high,MAX_ARRAY_INDEX)}function bindCallback(func,thisArg,argCount){if(\\\"function\\\"!=typeof func)return identity;if(thisArg===undefined)return func;switch(argCount){case 1:return function(value){return func.call(thisArg,value)};case 3:return function(value,index,collection){return func.call(thisArg,value,index,collection)};case 4:return function(accumulator,value,index,collection){return func.call(thisArg,accumulator,value,index,collection)};case 5:return function(value,other,key,object,source){return func.call(thisArg,value,other,key,object,source)}}return function(){return func.apply(thisArg,arguments)}}function bufferClone(buffer){return bufferSlice.call(buffer,0)}function createAssigner(assigner){return restParam(function(object,sources){var index=-1,length=null==object?0:sources.length,customizer=length>2&&sources[length-2],guard=length>2&&sources[2],thisArg=length>1&&sources[length-1];for(\\\"function\\\"==typeof customizer?(customizer=bindCallback(customizer,thisArg,5),length-=2):(customizer=\\\"function\\\"==typeof thisArg?thisArg:null,length-=customizer?1:0),guard&&isIterateeCall(sources[0],sources[1],guard)&&(customizer=3>length?null:customizer,length=1);length>++index;){var source=sources[index];source&&assigner(object,source,customizer)}return object})}function createBaseEach(eachFunc,fromRight){return function(collection,iteratee){var length=collection?getLength(collection):0;if(!isLength(length))return eachFunc(collection,iteratee);for(var index=fromRight?length:-1,iterable=toObject(collection);(fromRight?index--:length>++index)&&iteratee(iterable[index],index,iterable)!==!1;);return collection}}function createBaseFor(fromRight){return function(object,iteratee,keysFunc){for(var iterable=toObject(object),props=keysFunc(object),length=props.length,index=fromRight?length:-1;fromRight?index--:length>++index;){var key=props[index];if(iteratee(iterable[key],key,iterable)===!1)break}return object}}function createFindIndex(fromRight){return function(array,predicate,thisArg){return array&&array.length?(predicate=getCallback(predicate,thisArg,3),baseFindIndex(array,predicate,fromRight)):-1}}function createForEach(arrayFunc,eachFunc){return function(collection,iteratee,thisArg){return\\\"function\\\"==typeof iteratee&&thisArg===undefined&&isArray(collection)?arrayFunc(collection,iteratee):eachFunc(collection,bindCallback(iteratee,thisArg,3))}}function equalArrays(array,other,equalFunc,customizer,isLoose,stackA,stackB){var index=-1,arrLength=array.length,othLength=other.length,result=!0;if(arrLength!=othLength&&!(isLoose&&othLength>arrLength))return!1;for(;result&&arrLength>++index;){var arrValue=array[index],othValue=other[index];if(result=undefined,customizer&&(result=isLoose?customizer(othValue,arrValue,index):customizer(arrValue,othValue,index)),result===undefined)if(isLoose)for(var othIndex=othLength;othIndex--&&(othValue=other[othIndex],!(result=arrValue&&arrValue===othValue||equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB))););else result=arrValue&&arrValue===othValue||equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB)}return!!result}function equalByTag(object,other,tag){switch(tag){case boolTag:case dateTag:return+object==+other;case errorTag:return object.name==other.name&&object.message==other.message;case numberTag:return object!=+object?other!=+other:0==object?1/object==1/other:object==+other;case regexpTag:case stringTag:return object==other+\\\"\\\"}return!1}function equalObjects(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objProps=keys(object),objLength=objProps.length,othProps=keys(other),othLength=othProps.length;if(objLength!=othLength&&!isLoose)return!1;for(var skipCtor=isLoose,index=-1;objLength>++index;){var key=objProps[index],result=isLoose?key in other:hasOwnProperty.call(other,key);if(result){var objValue=object[key],othValue=other[key];result=undefined,customizer&&(result=isLoose?customizer(othValue,objValue,key):customizer(objValue,othValue,key)),result===undefined&&(result=objValue&&objValue===othValue||equalFunc(objValue,othValue,customizer,isLoose,stackA,stackB))}if(!result)return!1;skipCtor||(skipCtor=\\\"constructor\\\"==key)}if(!skipCtor){var objCtor=object.constructor,othCtor=other.constructor;if(objCtor!=othCtor&&\\\"constructor\\\"in object&&\\\"constructor\\\"in other&&!(\\\"function\\\"==typeof objCtor&&objCtor instanceof objCtor&&\\\"function\\\"==typeof othCtor&&othCtor instanceof othCtor))return!1}return!0}function getCallback(func,thisArg,argCount){var result=lodash.callback||callback;return result=result===callback?baseCallback:result,argCount?result(func,thisArg,argCount):result}function getIndexOf(collection,target,fromIndex){var result=lodash.indexOf||indexOf;return result=result===indexOf?baseIndexOf:result,collection?result(collection,target,fromIndex):result}function initCloneArray(array){var length=array.length,result=new array.constructor(length);return length&&\\\"string\\\"==typeof array[0]&&hasOwnProperty.call(array,\\\"index\\\")&&(result.index=array.index,result.input=array.input),result}function initCloneObject(object){var Ctor=object.constructor;return\\\"function\\\"==typeof Ctor&&Ctor instanceof Ctor||(Ctor=Object),new Ctor}function initCloneByTag(object,tag,isDeep){var Ctor=object.constructor;switch(tag){case arrayBufferTag:return bufferClone(object);case boolTag:case dateTag:return new Ctor(+object);case float32Tag:case float64Tag:case int8Tag:case int16Tag:case int32Tag:case uint8Tag:case uint8ClampedTag:case uint16Tag:case uint32Tag:var buffer=object.buffer;return new Ctor(isDeep?bufferClone(buffer):buffer,object.byteOffset,object.length);case numberTag:case stringTag:return new Ctor(object);case regexpTag:var result=new Ctor(object.source,reFlags.exec(object));result.lastIndex=object.lastIndex}return result}function isIndex(value,length){return value=+value,length=null==length?MAX_SAFE_INTEGER:length,value>-1&&0==value%1&&length>value}function isIterateeCall(value,index,object){if(!isObject(object))return!1;var type=typeof index;if(\\\"number\\\"==type)var length=getLength(object),prereq=isLength(length)&&isIndex(index,length);else prereq=\\\"string\\\"==type&&index in object;if(prereq){var other=object[index];return value===value?value===other:other!==other}return!1}function isKey(value,object){var type=typeof value;if(\\\"string\\\"==type&&reIsPlainProp.test(value)||\\\"number\\\"==type)return!0;if(isArray(value))return!1;var result=!reIsDeepProp.test(value);return result||null!=object&&value in toObject(object)}function isLength(value){return\\\"number\\\"==typeof value&&value>-1&&0==value%1&&MAX_SAFE_INTEGER>=value}function isStrictComparable(value){return value===value&&(0===value?1/value>0:!isObject(value))}function shimIsPlainObject(value){var Ctor;if(lodash.support,!isObjectLike(value)||objToString.call(value)!=objectTag||!hasOwnProperty.call(value,\\\"constructor\\\")&&(Ctor=value.constructor,\\\"function\\\"==typeof Ctor&&!(Ctor instanceof Ctor)))return!1;var result;return baseForIn(value,function(subValue,key){result=key}),result===undefined||hasOwnProperty.call(value,result)}function shimKeys(object){for(var props=keysIn(object),propsLength=props.length,length=propsLength&&object.length,support=lodash.support,allowIndexes=length&&isLength(length)&&(isArray(object)||support.nonEnumArgs&&isArguments(object)),index=-1,result=[];propsLength>++index;){var key=props[index];(allowIndexes&&isIndex(key,length)||hasOwnProperty.call(object,key))&&result.push(key)}return result}function toObject(value){return isObject(value)?value:Object(value)}function toPath(value){if(isArray(value))return value;var result=[];return baseToString(value).replace(rePropName,function(match,number,quote,string){result.push(quote?string.replace(reEscapeChar,\\\"$1\\\"):number||match)}),result}function indexOf(array,value,fromIndex){var length=array?array.length:0;if(!length)return-1;if(\\\"number\\\"==typeof fromIndex)fromIndex=0>fromIndex?nativeMax(length+fromIndex,0):fromIndex;else if(fromIndex){var index=binaryIndex(array,value),other=array[index];return(value===value?value===other:other!==other)?index:-1}return baseIndexOf(array,value,fromIndex||0)}function last(array){var length=array?array.length:0;return length?array[length-1]:undefined}function slice(array,start,end){var length=array?array.length:0;return length?(end&&\\\"number\\\"!=typeof end&&isIterateeCall(array,start,end)&&(start=0,end=length),baseSlice(array,start,end)):[]}function unzip(array){for(var index=-1,length=(array&&array.length&&arrayMax(arrayMap(array,getLength)))>>>0,result=Array(length);length>++index;)result[index]=arrayMap(array,baseProperty(index));return result}function includes(collection,target,fromIndex,guard){var length=collection?getLength(collection):0;return isLength(length)||(collection=values(collection),length=collection.length),length?(fromIndex=\\\"number\\\"!=typeof fromIndex||guard&&isIterateeCall(target,fromIndex,guard)?0:0>fromIndex?nativeMax(length+fromIndex,0):fromIndex||0,\\\"string\\\"==typeof collection||!isArray(collection)&&isString(collection)?length>fromIndex&&collection.indexOf(target,fromIndex)>-1:getIndexOf(collection,target,fromIndex)>-1):!1}function reject(collection,predicate,thisArg){var func=isArray(collection)?arrayFilter:baseFilter;return predicate=getCallback(predicate,thisArg,3),func(collection,function(value,index,collection){return!predicate(value,index,collection)})}function some(collection,predicate,thisArg){var func=isArray(collection)?arraySome:baseSome;return thisArg&&isIterateeCall(collection,predicate,thisArg)&&(predicate=null),(\\\"function\\\"!=typeof predicate||thisArg!==undefined)&&(predicate=getCallback(predicate,thisArg,3)),func(collection,predicate)}function restParam(func,start){if(\\\"function\\\"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return start=nativeMax(start===undefined?func.length-1:+start||0,0),function(){for(var args=arguments,index=-1,length=nativeMax(args.length-start,0),rest=Array(length);length>++index;)rest[index]=args[start+index];switch(start){case 0:return func.call(this,rest);case 1:return func.call(this,args[0],rest);case 2:return func.call(this,args[0],args[1],rest)}var otherArgs=Array(start+1);for(index=-1;start>++index;)otherArgs[index]=args[index];return otherArgs[start]=rest,func.apply(this,otherArgs)}}function clone(value,isDeep,customizer,thisArg){return isDeep&&\\\"boolean\\\"!=typeof isDeep&&isIterateeCall(value,isDeep,customizer)?isDeep=!1:\\\"function\\\"==typeof isDeep&&(thisArg=customizer,customizer=isDeep,isDeep=!1),customizer=\\\"function\\\"==typeof customizer&&bindCallback(customizer,thisArg,1),baseClone(value,isDeep,customizer)}function isArguments(value){var length=isObjectLike(value)?value.length:undefined;return isLength(length)&&objToString.call(value)==argsTag}function isEmpty(value){if(null==value)return!0;var length=getLength(value);return isLength(length)&&(isArray(value)||isString(value)||isArguments(value)||isObjectLike(value)&&isFunction(value.splice))?!length:!keys(value).length}function isObject(value){var type=typeof value;return\\\"function\\\"==type||!!value&&\\\"object\\\"==type}function isNative(value){return null==value?!1:objToString.call(value)==funcTag?reIsNative.test(fnToString.call(value)):isObjectLike(value)&&reIsHostCtor.test(value)}function isNumber(value){return\\\"number\\\"==typeof value||isObjectLike(value)&&objToString.call(value)==numberTag}function isString(value){return\\\"string\\\"==typeof value||isObjectLike(value)&&objToString.call(value)==stringTag}function isTypedArray(value){return isObjectLike(value)&&isLength(value.length)&&!!typedArrayTags[objToString.call(value)]}function toPlainObject(value){return baseCopy(value,keysIn(value))}function has(object,path){if(null==object)return!1;var result=hasOwnProperty.call(object,path);return result||isKey(path)||(path=toPath(path),object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),path=last(path),result=null!=object&&hasOwnProperty.call(object,path)),result}function keysIn(object){if(null==object)return[];isObject(object)||(object=Object(object));var length=object.length;length=length&&isLength(length)&&(isArray(object)||support.nonEnumArgs&&isArguments(object))&&length||0;for(var Ctor=object.constructor,index=-1,isProto=\\\"function\\\"==typeof Ctor&&Ctor.prototype===object,result=Array(length),skipIndexes=length>0;length>++index;)result[index]=index+\\\"\\\";for(var key in object)skipIndexes&&isIndex(key,length)||\\\"constructor\\\"==key&&(isProto||!hasOwnProperty.call(object,key))||result.push(key);return result}function values(object){return baseValues(object,keys(object))}function escapeRegExp(string){return string=baseToString(string),string&&reHasRegExpChars.test(string)?string.replace(reRegExpChars,\\\"\\\\\\\\$&\\\"):string}function callback(func,thisArg,guard){return guard&&isIterateeCall(func,thisArg,guard)&&(thisArg=null),baseCallback(func,thisArg)}function constant(value){return function(){return value}}function identity(value){return value}function property(path){return isKey(path)?baseProperty(path):basePropertyDeep(path)}var undefined,VERSION=\\\"3.7.0\\\",FUNC_ERROR_TEXT=\\\"Expected a function\\\",argsTag=\\\"[object Arguments]\\\",arrayTag=\\\"[object Array]\\\",boolTag=\\\"[object Boolean]\\\",dateTag=\\\"[object Date]\\\",errorTag=\\\"[object Error]\\\",funcTag=\\\"[object Function]\\\",mapTag=\\\"[object Map]\\\",numberTag=\\\"[object Number]\\\",objectTag=\\\"[object Object]\\\",regexpTag=\\\"[object RegExp]\\\",setTag=\\\"[object Set]\\\",stringTag=\\\"[object String]\\\",weakMapTag=\\\"[object WeakMap]\\\",arrayBufferTag=\\\"[object ArrayBuffer]\\\",float32Tag=\\\"[object Float32Array]\\\",float64Tag=\\\"[object Float64Array]\\\",int8Tag=\\\"[object Int8Array]\\\",int16Tag=\\\"[object Int16Array]\\\",int32Tag=\\\"[object Int32Array]\\\",uint8Tag=\\\"[object Uint8Array]\\\",uint8ClampedTag=\\\"[object Uint8ClampedArray]\\\",uint16Tag=\\\"[object Uint16Array]\\\",uint32Tag=\\\"[object Uint32Array]\\\",reIsDeepProp=/\\\\.|\\\\[(?:[^[\\\\]]+|([\\\"'])(?:(?!\\\\1)[^\\\\n\\\\\\\\]|\\\\\\\\.)*?)\\\\1\\\\]/,reIsPlainProp=/^\\\\w*$/,rePropName=/[^.[\\\\]]+|\\\\[(?:(-?\\\\d+(?:\\\\.\\\\d+)?)|([\\\"'])((?:(?!\\\\2)[^\\\\n\\\\\\\\]|\\\\\\\\.)*?)\\\\2)\\\\]/g,reRegExpChars=/[.*+?^${}()|[\\\\]\\\\/\\\\\\\\]/g,reHasRegExpChars=RegExp(reRegExpChars.source),reEscapeChar=/\\\\\\\\(\\\\\\\\)?/g,reFlags=/\\\\w*$/,reIsHostCtor=/^\\\\[object .+?Constructor\\\\]$/,typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;var cloneableTags={};cloneableTags[argsTag]=cloneableTags[arrayTag]=cloneableTags[arrayBufferTag]=cloneableTags[boolTag]=cloneableTags[dateTag]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[numberTag]=cloneableTags[objectTag]=cloneableTags[regexpTag]=cloneableTags[stringTag]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=!0,cloneableTags[errorTag]=cloneableTags[funcTag]=cloneableTags[mapTag]=cloneableTags[setTag]=cloneableTags[weakMapTag]=!1;var objectTypes={\\\"function\\\":!0,object:!0},freeExports=objectTypes[typeof exports]&&exports&&!exports.nodeType&&exports,freeModule=objectTypes[typeof module]&&module&&!module.nodeType&&module,freeGlobal=freeExports&&freeModule&&\\\"object\\\"==typeof global&&global&&global.Object&&global,freeSelf=objectTypes[typeof self]&&self&&self.Object&&self,freeWindow=objectTypes[typeof window]&&window&&window.Object&&window,moduleExports=freeModule&&freeModule.exports===freeExports&&freeExports,root=freeGlobal||freeWindow!==(this&&this.window)&&freeWindow||freeSelf||this,arrayProto=Array.prototype,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp(\\\"^\\\"+escapeRegExp(objToString).replace(/toString|(function).*?(?=\\\\\\\\\\\\()| for .+?(?=\\\\\\\\\\\\])/g,\\\"$1.*?\\\")+\\\"$\\\"),ArrayBuffer=isNative(ArrayBuffer=root.ArrayBuffer)&&ArrayBuffer,bufferSlice=isNative(bufferSlice=ArrayBuffer&&new ArrayBuffer(0).slice)&&bufferSlice,floor=Math.floor,getOwnPropertySymbols=isNative(getOwnPropertySymbols=Object.getOwnPropertySymbols)&&getOwnPropertySymbols,getPrototypeOf=isNative(getPrototypeOf=Object.getPrototypeOf)&&getPrototypeOf,push=arrayProto.push,preventExtensions=isNative(Object.preventExtensions=Object.preventExtensions)&&preventExtensions,propertyIsEnumerable=objectProto.propertyIsEnumerable,Uint8Array=isNative(Uint8Array=root.Uint8Array)&&Uint8Array,Float64Array=function(){try{var func=isNative(func=root.Float64Array)&&func,result=new func(new ArrayBuffer(10),0,1)&&func}catch(e){}return result}(),nativeAssign=function(){var object={1:0},func=preventExtensions&&isNative(func=Object.assign)&&func;try{func(preventExtensions(object),\\\"xo\\\")}catch(e){}return!object[1]&&func}(),nativeIsArray=isNative(nativeIsArray=Array.isArray)&&nativeIsArray,nativeKeys=isNative(nativeKeys=Object.keys)&&nativeKeys,nativeMax=Math.max,nativeMin=Math.min,NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY,MAX_ARRAY_LENGTH=Math.pow(2,32)-1,MAX_ARRAY_INDEX=MAX_ARRAY_LENGTH-1,HALF_MAX_ARRAY_LENGTH=MAX_ARRAY_LENGTH>>>1,FLOAT64_BYTES_PER_ELEMENT=Float64Array?Float64Array.BYTES_PER_ELEMENT:0,MAX_SAFE_INTEGER=Math.pow(2,53)-1,support=lodash.support={};(function(x){var Ctor=function(){this.x=x},props=[];Ctor.prototype={valueOf:x,y:x};for(var key in new Ctor)props.push(key);support.funcDecomp=/\\\\bthis\\\\b/.test(function(){return this}),support.funcNames=\\\"string\\\"==typeof Function.name;try{support.nonEnumArgs=!propertyIsEnumerable.call(arguments,1)}catch(e){support.nonEnumArgs=!0}})(1,0);var baseAssign=nativeAssign||function(object,source){return null==source?object:baseCopy(source,getSymbols(source),baseCopy(source,keys(source),object))},baseEach=createBaseEach(baseForOwn),baseFor=createBaseFor();bufferSlice||(bufferClone=ArrayBuffer&&Uint8Array?function(buffer){var byteLength=buffer.byteLength,floatLength=Float64Array?floor(byteLength/FLOAT64_BYTES_PER_ELEMENT):0,offset=floatLength*FLOAT64_BYTES_PER_ELEMENT,result=new ArrayBuffer(byteLength);if(floatLength){var view=new Float64Array(result,0,floatLength);view.set(new Float64Array(buffer,0,floatLength))}return byteLength!=offset&&(view=new Uint8Array(result,offset),view.set(new Uint8Array(buffer,offset))),result}:constant(null));var getLength=baseProperty(\\\"length\\\"),getSymbols=getOwnPropertySymbols?function(object){return getOwnPropertySymbols(toObject(object))}:constant([]),findLastIndex=createFindIndex(!0),zip=restParam(unzip),forEach=createForEach(arrayEach,baseEach),isArray=nativeIsArray||function(value){return isObjectLike(value)&&isLength(value.length)&&objToString.call(value)==arrayTag},isFunction=baseIsFunction(/x/)||Uint8Array&&!baseIsFunction(Uint8Array)?function(value){return objToString.call(value)==funcTag}:baseIsFunction,isPlainObject=getPrototypeOf?function(value){if(!value||objToString.call(value)!=objectTag)return!1;var valueOf=value.valueOf,objProto=isNative(valueOf)&&(objProto=getPrototypeOf(valueOf))&&getPrototypeOf(objProto);return objProto?value==objProto||getPrototypeOf(value)==objProto:shimIsPlainObject(value)}:shimIsPlainObject,assign=createAssigner(function(object,source,customizer){return customizer?assignWith(object,source,customizer):baseAssign(object,source)}),keys=nativeKeys?function(object){if(object)var Ctor=object.constructor,length=object.length;return\\\"function\\\"==typeof Ctor&&Ctor.prototype===object||\\\"function\\\"!=typeof object&&isLength(length)?shimKeys(object):isObject(object)?nativeKeys(object):[]}:shimKeys,merge=createAssigner(baseMerge);lodash.assign=assign,lodash.callback=callback,lodash.constant=constant,lodash.forEach=forEach,lodash.keys=keys,lodash.keysIn=keysIn,lodash.merge=merge,lodash.property=property,lodash.reject=reject,lodash.restParam=restParam,lodash.slice=slice,lodash.toPlainObject=toPlainObject,lodash.unzip=unzip,lodash.values=values,lodash.zip=zip,lodash.each=forEach,lodash.extend=assign,lodash.iteratee=callback,lodash.clone=clone,lodash.escapeRegExp=escapeRegExp,lodash.findLastIndex=findLastIndex,lodash.has=has,lodash.identity=identity,lodash.includes=includes,lodash.indexOf=indexOf,lodash.isArguments=isArguments,lodash.isArray=isArray,lodash.isEmpty=isEmpty,lodash.isFunction=isFunction,lodash.isNative=isNative,lodash.isNumber=isNumber,lodash.isObject=isObject,lodash.isPlainObject=isPlainObject,lodash.isString=isString,lodash.isTypedArray=isTypedArray,lodash.last=last,lodash.some=some,lodash.any=some,lodash.contains=includes,lodash.include=includes,lodash.VERSION=VERSION,freeExports&&freeModule?moduleExports?(freeModule.exports=lodash)._=lodash:freeExports._=lodash:root._=lodash\\n}).call(this)}).call(this,\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{}],\\\"/node_modules/jshint/src/jshint.js\\\":[function(_dereq_,module,exports){var _=_dereq_(\\\"../lodash\\\"),events=_dereq_(\\\"events\\\"),vars=_dereq_(\\\"./vars.js\\\"),messages=_dereq_(\\\"./messages.js\\\"),Lexer=_dereq_(\\\"./lex.js\\\").Lexer,reg=_dereq_(\\\"./reg.js\\\"),state=_dereq_(\\\"./state.js\\\").state,style=_dereq_(\\\"./style.js\\\"),options=_dereq_(\\\"./options.js\\\"),scopeManager=_dereq_(\\\"./scope-manager.js\\\"),JSHINT=function(){\\\"use strict\\\";function checkOption(name,t){return name=name.trim(),/^[+-]W\\\\d{3}$/g.test(name)?!0:-1!==options.validNames.indexOf(name)||\\\"jslint\\\"===t.type||_.has(options.removed,name)?!0:(error(\\\"E001\\\",t,name),!1)}function isString(obj){return\\\"[object String]\\\"===Object.prototype.toString.call(obj)}function isIdentifier(tkn,value){return tkn?tkn.identifier&&tkn.value===value?!0:!1:!1}function isReserved(token){if(!token.reserved)return!1;var meta=token.meta;if(meta&&meta.isFutureReservedWord&&state.inES5()){if(!meta.es5)return!1;if(meta.strictOnly&&!state.option.strict&&!state.isStrict())return!1;if(token.isProperty)return!1}return!0}function supplant(str,data){return str.replace(/\\\\{([^{}]*)\\\\}/g,function(a,b){var r=data[b];return\\\"string\\\"==typeof r||\\\"number\\\"==typeof r?r:a})}function combine(dest,src){Object.keys(src).forEach(function(name){_.has(JSHINT.blacklist,name)||(dest[name]=src[name])})}function processenforceall(){if(state.option.enforceall){for(var enforceopt in options.bool.enforcing)void 0!==state.option[enforceopt]||options.noenforceall[enforceopt]||(state.option[enforceopt]=!0);for(var relaxopt in options.bool.relaxing)void 0===state.option[relaxopt]&&(state.option[relaxopt]=!1)}}function assume(){processenforceall(),state.option.esversion||state.option.moz||(state.option.esversion=state.option.es3?3:state.option.esnext?6:5),state.inES5()&&combine(predefined,vars.ecmaIdentifiers[5]),state.inES6()&&combine(predefined,vars.ecmaIdentifiers[6]),state.option.module&&(state.option.strict===!0&&(state.option.strict=\\\"global\\\"),state.inES6()||warning(\\\"W134\\\",state.tokens.next,\\\"module\\\",6)),state.option.couch&&combine(predefined,vars.couch),state.option.qunit&&combine(predefined,vars.qunit),state.option.rhino&&combine(predefined,vars.rhino),state.option.shelljs&&(combine(predefined,vars.shelljs),combine(predefined,vars.node)),state.option.typed&&combine(predefined,vars.typed),state.option.phantom&&(combine(predefined,vars.phantom),state.option.strict===!0&&(state.option.strict=\\\"global\\\")),state.option.prototypejs&&combine(predefined,vars.prototypejs),state.option.node&&(combine(predefined,vars.node),combine(predefined,vars.typed),state.option.strict===!0&&(state.option.strict=\\\"global\\\")),state.option.devel&&combine(predefined,vars.devel),state.option.dojo&&combine(predefined,vars.dojo),state.option.browser&&(combine(predefined,vars.browser),combine(predefined,vars.typed)),state.option.browserify&&(combine(predefined,vars.browser),combine(predefined,vars.typed),combine(predefined,vars.browserify),state.option.strict===!0&&(state.option.strict=\\\"global\\\")),state.option.nonstandard&&combine(predefined,vars.nonstandard),state.option.jasmine&&combine(predefined,vars.jasmine),state.option.jquery&&combine(predefined,vars.jquery),state.option.mootools&&combine(predefined,vars.mootools),state.option.worker&&combine(predefined,vars.worker),state.option.wsh&&combine(predefined,vars.wsh),state.option.globalstrict&&state.option.strict!==!1&&(state.option.strict=\\\"global\\\"),state.option.yui&&combine(predefined,vars.yui),state.option.mocha&&combine(predefined,vars.mocha)}function quit(code,line,chr){var percentage=Math.floor(100*(line/state.lines.length)),message=messages.errors[code].desc;throw{name:\\\"JSHintError\\\",line:line,character:chr,message:message+\\\" (\\\"+percentage+\\\"% scanned).\\\",raw:message,code:code}}function removeIgnoredMessages(){var ignored=state.ignoredLines;_.isEmpty(ignored)||(JSHINT.errors=_.reject(JSHINT.errors,function(err){return ignored[err.line]}))}function warning(code,t,a,b,c,d){var ch,l,w,msg;if(/^W\\\\d{3}$/.test(code)){if(state.ignored[code])return;msg=messages.warnings[code]}else/E\\\\d{3}/.test(code)?msg=messages.errors[code]:/I\\\\d{3}/.test(code)&&(msg=messages.info[code]);return t=t||state.tokens.next||{},\\\"(end)\\\"===t.id&&(t=state.tokens.curr),l=t.line||0,ch=t.from||0,w={id:\\\"(error)\\\",raw:msg.desc,code:msg.code,evidence:state.lines[l-1]||\\\"\\\",line:l,character:ch,scope:JSHINT.scope,a:a,b:b,c:c,d:d},w.reason=supplant(msg.desc,w),JSHINT.errors.push(w),removeIgnoredMessages(),JSHINT.errors.length>=state.option.maxerr&&quit(\\\"E043\\\",l,ch),w}function warningAt(m,l,ch,a,b,c,d){return warning(m,{line:l,from:ch},a,b,c,d)}function error(m,t,a,b,c,d){warning(m,t,a,b,c,d)}function errorAt(m,l,ch,a,b,c,d){return error(m,{line:l,from:ch},a,b,c,d)}function addInternalSrc(elem,src){var i;return i={id:\\\"(internal)\\\",elem:elem,value:src},JSHINT.internals.push(i),i}function doOption(){var nt=state.tokens.next,body=nt.body.match(/(-\\\\s+)?[^\\\\s,:]+(?:\\\\s*:\\\\s*(-\\\\s+)?[^\\\\s,]+)?/g)||[],predef={};if(\\\"globals\\\"===nt.type){body.forEach(function(g,idx){g=g.split(\\\":\\\");var key=(g[0]||\\\"\\\").trim(),val=(g[1]||\\\"\\\").trim();if(\\\"-\\\"===key||!key.length){if(idx>0&&idx===body.length-1)return;return error(\\\"E002\\\",nt),void 0}\\\"-\\\"===key.charAt(0)?(key=key.slice(1),val=!1,JSHINT.blacklist[key]=key,delete predefined[key]):predef[key]=\\\"true\\\"===val}),combine(predefined,predef);for(var key in predef)_.has(predef,key)&&(declared[key]=nt)}\\\"exported\\\"===nt.type&&body.forEach(function(e,idx){if(!e.length){if(idx>0&&idx===body.length-1)return;return error(\\\"E002\\\",nt),void 0}state.funct[\\\"(scope)\\\"].addExported(e)}),\\\"members\\\"===nt.type&&(membersOnly=membersOnly||{},body.forEach(function(m){var ch1=m.charAt(0),ch2=m.charAt(m.length-1);ch1!==ch2||'\\\"'!==ch1&&\\\"'\\\"!==ch1||(m=m.substr(1,m.length-2).replace('\\\\\\\\\\\"','\\\"')),membersOnly[m]=!1}));var numvals=[\\\"maxstatements\\\",\\\"maxparams\\\",\\\"maxdepth\\\",\\\"maxcomplexity\\\",\\\"maxerr\\\",\\\"maxlen\\\",\\\"indent\\\"];(\\\"jshint\\\"===nt.type||\\\"jslint\\\"===nt.type)&&(body.forEach(function(g){g=g.split(\\\":\\\");var key=(g[0]||\\\"\\\").trim(),val=(g[1]||\\\"\\\").trim();if(checkOption(key,nt))if(numvals.indexOf(key)>=0)if(\\\"false\\\"!==val){if(val=+val,\\\"number\\\"!=typeof val||!isFinite(val)||0>=val||Math.floor(val)!==val)return error(\\\"E032\\\",nt,g[1].trim()),void 0;state.option[key]=val}else state.option[key]=\\\"indent\\\"===key?4:!1;else{if(\\\"validthis\\\"===key)return state.funct[\\\"(global)\\\"]?void error(\\\"E009\\\"):\\\"true\\\"!==val&&\\\"false\\\"!==val?void error(\\\"E002\\\",nt):(state.option.validthis=\\\"true\\\"===val,void 0);if(\\\"quotmark\\\"!==key)if(\\\"shadow\\\"!==key)if(\\\"unused\\\"!==key)if(\\\"latedef\\\"!==key)if(\\\"ignore\\\"!==key)if(\\\"strict\\\"!==key){\\\"module\\\"===key&&(hasParsedCode(state.funct)||error(\\\"E055\\\",state.tokens.next,\\\"module\\\"));var esversions={es3:3,es5:5,esnext:6};if(!_.has(esversions,key)){if(\\\"esversion\\\"===key){switch(val){case\\\"5\\\":state.inES5(!0)&&warning(\\\"I003\\\");case\\\"3\\\":case\\\"6\\\":state.option.moz=!1,state.option.esversion=+val;break;case\\\"2015\\\":state.option.moz=!1,state.option.esversion=6;break;default:error(\\\"E002\\\",nt)}return hasParsedCode(state.funct)||error(\\\"E055\\\",state.tokens.next,\\\"esversion\\\"),void 0}var match=/^([+-])(W\\\\d{3})$/g.exec(key);if(match)return state.ignored[match[2]]=\\\"-\\\"===match[1],void 0;var tn;return\\\"true\\\"===val||\\\"false\\\"===val?(\\\"jslint\\\"===nt.type?(tn=options.renamed[key]||key,state.option[tn]=\\\"true\\\"===val,void 0!==options.inverted[tn]&&(state.option[tn]=!state.option[tn])):state.option[key]=\\\"true\\\"===val,\\\"newcap\\\"===key&&(state.option[\\\"(explicitNewcap)\\\"]=!0),void 0):(error(\\\"E002\\\",nt),void 0)}switch(val){case\\\"true\\\":state.option.moz=!1,state.option.esversion=esversions[key];break;case\\\"false\\\":state.option.moz||(state.option.esversion=5);break;default:error(\\\"E002\\\",nt)}}else switch(val){case\\\"true\\\":state.option.strict=!0;break;case\\\"false\\\":state.option.strict=!1;break;case\\\"func\\\":case\\\"global\\\":case\\\"implied\\\":state.option.strict=val;break;default:error(\\\"E002\\\",nt)}else switch(val){case\\\"line\\\":state.ignoredLines[nt.line]=!0,removeIgnoredMessages();break;default:error(\\\"E002\\\",nt)}else switch(val){case\\\"true\\\":state.option.latedef=!0;break;case\\\"false\\\":state.option.latedef=!1;break;case\\\"nofunc\\\":state.option.latedef=\\\"nofunc\\\";break;default:error(\\\"E002\\\",nt)}else switch(val){case\\\"true\\\":state.option.unused=!0;break;case\\\"false\\\":state.option.unused=!1;break;case\\\"vars\\\":case\\\"strict\\\":state.option.unused=val;break;default:error(\\\"E002\\\",nt)}else switch(val){case\\\"true\\\":state.option.shadow=!0;break;case\\\"outer\\\":state.option.shadow=\\\"outer\\\";break;case\\\"false\\\":case\\\"inner\\\":state.option.shadow=\\\"inner\\\";break;default:error(\\\"E002\\\",nt)}else switch(val){case\\\"true\\\":case\\\"false\\\":state.option.quotmark=\\\"true\\\"===val;break;case\\\"double\\\":case\\\"single\\\":state.option.quotmark=val;break;default:error(\\\"E002\\\",nt)}}}),assume())}function peek(p){var t,i=p||0,j=lookahead.length;if(j>i)return lookahead[i];for(;i>=j;)t=lookahead[j],t||(t=lookahead[j]=lex.token()),j+=1;return t||\\\"(end)\\\"!==state.tokens.next.id?t:state.tokens.next}function peekIgnoreEOL(){var t,i=0;do t=peek(i++);while(\\\"(endline)\\\"===t.id);return t}function advance(id,t){switch(state.tokens.curr.id){case\\\"(number)\\\":\\\".\\\"===state.tokens.next.id&&warning(\\\"W005\\\",state.tokens.curr);break;case\\\"-\\\":(\\\"-\\\"===state.tokens.next.id||\\\"--\\\"===state.tokens.next.id)&&warning(\\\"W006\\\");break;case\\\"+\\\":(\\\"+\\\"===state.tokens.next.id||\\\"++\\\"===state.tokens.next.id)&&warning(\\\"W007\\\")}for(id&&state.tokens.next.id!==id&&(t?\\\"(end)\\\"===state.tokens.next.id?error(\\\"E019\\\",t,t.id):error(\\\"E020\\\",state.tokens.next,id,t.id,t.line,state.tokens.next.value):(\\\"(identifier)\\\"!==state.tokens.next.type||state.tokens.next.value!==id)&&warning(\\\"W116\\\",state.tokens.next,id,state.tokens.next.value)),state.tokens.prev=state.tokens.curr,state.tokens.curr=state.tokens.next;;){if(state.tokens.next=lookahead.shift()||lex.token(),state.tokens.next||quit(\\\"E041\\\",state.tokens.curr.line),\\\"(end)\\\"===state.tokens.next.id||\\\"(error)\\\"===state.tokens.next.id)return;if(state.tokens.next.check&&state.tokens.next.check(),state.tokens.next.isSpecial)\\\"falls through\\\"===state.tokens.next.type?state.tokens.curr.caseFallsThrough=!0:doOption();else if(\\\"(endline)\\\"!==state.tokens.next.id)break}}function isInfix(token){return token.infix||!token.identifier&&!token.template&&!!token.led}function isEndOfExpr(){var curr=state.tokens.curr,next=state.tokens.next;return\\\";\\\"===next.id||\\\"}\\\"===next.id||\\\":\\\"===next.id?!0:isInfix(next)===isInfix(curr)||\\\"yield\\\"===curr.id&&state.inMoz()?curr.line!==startLine(next):!1}function isBeginOfExpr(prev){return!prev.left&&\\\"unary\\\"!==prev.arity}function expression(rbp,initial){var left,isArray=!1,isObject=!1,isLetExpr=!1;state.nameStack.push(),initial||\\\"let\\\"!==state.tokens.next.value||\\\"(\\\"!==peek(0).value||(state.inMoz()||warning(\\\"W118\\\",state.tokens.next,\\\"let expressions\\\"),isLetExpr=!0,state.funct[\\\"(scope)\\\"].stack(),advance(\\\"let\\\"),advance(\\\"(\\\"),state.tokens.prev.fud(),advance(\\\")\\\")),\\\"(end)\\\"===state.tokens.next.id&&error(\\\"E006\\\",state.tokens.curr);var isDangerous=state.option.asi&&state.tokens.prev.line!==startLine(state.tokens.curr)&&_.contains([\\\"]\\\",\\\")\\\"],state.tokens.prev.id)&&_.contains([\\\"[\\\",\\\"(\\\"],state.tokens.curr.id);if(isDangerous&&warning(\\\"W014\\\",state.tokens.curr,state.tokens.curr.id),advance(),initial&&(state.funct[\\\"(verb)\\\"]=state.tokens.curr.value,state.tokens.curr.beginsStmt=!0),initial===!0&&state.tokens.curr.fud)left=state.tokens.curr.fud();else for(state.tokens.curr.nud?left=state.tokens.curr.nud():error(\\\"E030\\\",state.tokens.curr,state.tokens.curr.id);(state.tokens.next.lbp>rbp||\\\"(template)\\\"===state.tokens.next.type)&&!isEndOfExpr();)isArray=\\\"Array\\\"===state.tokens.curr.value,isObject=\\\"Object\\\"===state.tokens.curr.value,left&&(left.value||left.first&&left.first.value)&&(\\\"new\\\"!==left.value||left.first&&left.first.value&&\\\".\\\"===left.first.value)&&(isArray=!1,left.value!==state.tokens.curr.value&&(isObject=!1)),advance(),isArray&&\\\"(\\\"===state.tokens.curr.id&&\\\")\\\"===state.tokens.next.id&&warning(\\\"W009\\\",state.tokens.curr),isObject&&\\\"(\\\"===state.tokens.curr.id&&\\\")\\\"===state.tokens.next.id&&warning(\\\"W010\\\",state.tokens.curr),left&&state.tokens.curr.led?left=state.tokens.curr.led(left):error(\\\"E033\\\",state.tokens.curr,state.tokens.curr.id);return isLetExpr&&state.funct[\\\"(scope)\\\"].unstack(),state.nameStack.pop(),left}function startLine(token){return token.startLine||token.line}function nobreaknonadjacent(left,right){left=left||state.tokens.curr,right=right||state.tokens.next,state.option.laxbreak||left.line===startLine(right)||warning(\\\"W014\\\",right,right.value)}function nolinebreak(t){t=t||state.tokens.curr,t.line!==startLine(state.tokens.next)&&warning(\\\"E022\\\",t,t.value)}function nobreakcomma(left,right){left.line!==startLine(right)&&(state.option.laxcomma||(comma.first&&(warning(\\\"I001\\\"),comma.first=!1),warning(\\\"W014\\\",left,right.value)))}function comma(opts){if(opts=opts||{},opts.peek?nobreakcomma(state.tokens.prev,state.tokens.curr):(nobreakcomma(state.tokens.curr,state.tokens.next),advance(\\\",\\\")),state.tokens.next.identifier&&(!opts.property||!state.inES5()))switch(state.tokens.next.value){case\\\"break\\\":case\\\"case\\\":case\\\"catch\\\":case\\\"continue\\\":case\\\"default\\\":case\\\"do\\\":case\\\"else\\\":case\\\"finally\\\":case\\\"for\\\":case\\\"if\\\":case\\\"in\\\":case\\\"instanceof\\\":case\\\"return\\\":case\\\"switch\\\":case\\\"throw\\\":case\\\"try\\\":case\\\"var\\\":case\\\"let\\\":case\\\"while\\\":case\\\"with\\\":return error(\\\"E024\\\",state.tokens.next,state.tokens.next.value),!1}if(\\\"(punctuator)\\\"===state.tokens.next.type)switch(state.tokens.next.value){case\\\"}\\\":case\\\"]\\\":case\\\",\\\":if(opts.allowTrailing)return!0;case\\\")\\\":return error(\\\"E024\\\",state.tokens.next,state.tokens.next.value),!1}return!0}function symbol(s,p){var x=state.syntax[s];return x&&\\\"object\\\"==typeof x||(state.syntax[s]=x={id:s,lbp:p,value:s}),x}function delim(s){var x=symbol(s,0);return x.delim=!0,x}function stmt(s,f){var x=delim(s);return x.identifier=x.reserved=!0,x.fud=f,x}function blockstmt(s,f){var x=stmt(s,f);return x.block=!0,x}function reserveName(x){var c=x.id.charAt(0);return(c>=\\\"a\\\"&&\\\"z\\\">=c||c>=\\\"A\\\"&&\\\"Z\\\">=c)&&(x.identifier=x.reserved=!0),x}function prefix(s,f){var x=symbol(s,150);return reserveName(x),x.nud=\\\"function\\\"==typeof f?f:function(){return this.arity=\\\"unary\\\",this.right=expression(150),(\\\"++\\\"===this.id||\\\"--\\\"===this.id)&&(state.option.plusplus?warning(\\\"W016\\\",this,this.id):!this.right||this.right.identifier&&!isReserved(this.right)||\\\".\\\"===this.right.id||\\\"[\\\"===this.right.id||warning(\\\"W017\\\",this),this.right&&this.right.isMetaProperty?error(\\\"E031\\\",this):this.right&&this.right.identifier&&state.funct[\\\"(scope)\\\"].block.modify(this.right.value,this)),this},x}function type(s,f){var x=delim(s);return x.type=s,x.nud=f,x}function reserve(name,func){var x=type(name,func);return x.identifier=!0,x.reserved=!0,x}function FutureReservedWord(name,meta){var x=type(name,meta&&meta.nud||function(){return this});return meta=meta||{},meta.isFutureReservedWord=!0,x.value=name,x.identifier=!0,x.reserved=!0,x.meta=meta,x}function reservevar(s,v){return reserve(s,function(){return\\\"function\\\"==typeof v&&v(this),this})}function infix(s,f,p,w){var x=symbol(s,p);return reserveName(x),x.infix=!0,x.led=function(left){return w||nobreaknonadjacent(state.tokens.prev,state.tokens.curr),\\\"in\\\"!==s&&\\\"instanceof\\\"!==s||\\\"!\\\"!==left.id||warning(\\\"W018\\\",left,\\\"!\\\"),\\\"function\\\"==typeof f?f(left,this):(this.left=left,this.right=expression(p),this)},x}function application(s){var x=symbol(s,42);return x.led=function(left){return nobreaknonadjacent(state.tokens.prev,state.tokens.curr),this.left=left,this.right=doFunction({type:\\\"arrow\\\",loneArg:left}),this},x}function relation(s,f){var x=symbol(s,100);return x.led=function(left){nobreaknonadjacent(state.tokens.prev,state.tokens.curr),this.left=left;var right=this.right=expression(100);return isIdentifier(left,\\\"NaN\\\")||isIdentifier(right,\\\"NaN\\\")?warning(\\\"W019\\\",this):f&&f.apply(this,[left,right]),left&&right||quit(\\\"E041\\\",state.tokens.curr.line),\\\"!\\\"===left.id&&warning(\\\"W018\\\",left,\\\"!\\\"),\\\"!\\\"===right.id&&warning(\\\"W018\\\",right,\\\"!\\\"),this},x}function isPoorRelation(node){return node&&(\\\"(number)\\\"===node.type&&0===+node.value||\\\"(string)\\\"===node.type&&\\\"\\\"===node.value||\\\"null\\\"===node.type&&!state.option.eqnull||\\\"true\\\"===node.type||\\\"false\\\"===node.type||\\\"undefined\\\"===node.type)}function isTypoTypeof(left,right,state){var values;return state.option.notypeof?!1:left&&right?(values=state.inES6()?typeofValues.es6:typeofValues.es3,\\\"(identifier)\\\"===right.type&&\\\"typeof\\\"===right.value&&\\\"(string)\\\"===left.type?!_.contains(values,left.value):!1):!1}function isGlobalEval(left,state){var isGlobal=!1;return\\\"this\\\"===left.type&&null===state.funct[\\\"(context)\\\"]?isGlobal=!0:\\\"(identifier)\\\"===left.type&&(state.option.node&&\\\"global\\\"===left.value?isGlobal=!0:!state.option.browser||\\\"window\\\"!==left.value&&\\\"document\\\"!==left.value||(isGlobal=!0)),isGlobal}function findNativePrototype(left){function walkPrototype(obj){return\\\"object\\\"==typeof obj?\\\"prototype\\\"===obj.right?obj:walkPrototype(obj.left):void 0}function walkNative(obj){for(;!obj.identifier&&\\\"object\\\"==typeof obj.left;)obj=obj.left;return obj.identifier&&natives.indexOf(obj.value)>=0?obj.value:void 0}var natives=[\\\"Array\\\",\\\"ArrayBuffer\\\",\\\"Boolean\\\",\\\"Collator\\\",\\\"DataView\\\",\\\"Date\\\",\\\"DateTimeFormat\\\",\\\"Error\\\",\\\"EvalError\\\",\\\"Float32Array\\\",\\\"Float64Array\\\",\\\"Function\\\",\\\"Infinity\\\",\\\"Intl\\\",\\\"Int16Array\\\",\\\"Int32Array\\\",\\\"Int8Array\\\",\\\"Iterator\\\",\\\"Number\\\",\\\"NumberFormat\\\",\\\"Object\\\",\\\"RangeError\\\",\\\"ReferenceError\\\",\\\"RegExp\\\",\\\"StopIteration\\\",\\\"String\\\",\\\"SyntaxError\\\",\\\"TypeError\\\",\\\"Uint16Array\\\",\\\"Uint32Array\\\",\\\"Uint8Array\\\",\\\"Uint8ClampedArray\\\",\\\"URIError\\\"],prototype=walkPrototype(left);return prototype?walkNative(prototype):void 0}function checkLeftSideAssign(left,assignToken,options){var allowDestructuring=options&&options.allowDestructuring;if(assignToken=assignToken||left,state.option.freeze){var nativeObject=findNativePrototype(left);nativeObject&&warning(\\\"W121\\\",left,nativeObject)}return left.identifier&&!left.isMetaProperty&&state.funct[\\\"(scope)\\\"].block.reassign(left.value,left),\\\".\\\"===left.id?((!left.left||\\\"arguments\\\"===left.left.value&&!state.isStrict())&&warning(\\\"E031\\\",assignToken),state.nameStack.set(state.tokens.prev),!0):\\\"{\\\"===left.id||\\\"[\\\"===left.id?(allowDestructuring&&state.tokens.curr.left.destructAssign?state.tokens.curr.left.destructAssign.forEach(function(t){t.id&&state.funct[\\\"(scope)\\\"].block.modify(t.id,t.token)}):\\\"{\\\"!==left.id&&left.left?\\\"arguments\\\"!==left.left.value||state.isStrict()||warning(\\\"E031\\\",assignToken):warning(\\\"E031\\\",assignToken),\\\"[\\\"===left.id&&state.nameStack.set(left.right),!0):left.isMetaProperty?(error(\\\"E031\\\",assignToken),!0):left.identifier&&!isReserved(left)?(\\\"exception\\\"===state.funct[\\\"(scope)\\\"].labeltype(left.value)&&warning(\\\"W022\\\",left),state.nameStack.set(left),!0):(left===state.syntax[\\\"function\\\"]&&warning(\\\"W023\\\",state.tokens.curr),!1)}function assignop(s,f,p){var x=infix(s,\\\"function\\\"==typeof f?f:function(left,that){return that.left=left,left&&checkLeftSideAssign(left,that,{allowDestructuring:!0})?(that.right=expression(10),that):(error(\\\"E031\\\",that),void 0)},p);return x.exps=!0,x.assign=!0,x}function bitwise(s,f,p){var x=symbol(s,p);return reserveName(x),x.led=\\\"function\\\"==typeof f?f:function(left){return state.option.bitwise&&warning(\\\"W016\\\",this,this.id),this.left=left,this.right=expression(p),this},x}function bitwiseassignop(s){return assignop(s,function(left,that){return state.option.bitwise&&warning(\\\"W016\\\",that,that.id),left&&checkLeftSideAssign(left,that)?(that.right=expression(10),that):(error(\\\"E031\\\",that),void 0)},20)}function suffix(s){var x=symbol(s,150);return x.led=function(left){return state.option.plusplus?warning(\\\"W016\\\",this,this.id):left.identifier&&!isReserved(left)||\\\".\\\"===left.id||\\\"[\\\"===left.id||warning(\\\"W017\\\",this),left.isMetaProperty?error(\\\"E031\\\",this):left&&left.identifier&&state.funct[\\\"(scope)\\\"].block.modify(left.value,left),this.left=left,this},x}function optionalidentifier(fnparam,prop,preserve){if(state.tokens.next.identifier){preserve||advance();var curr=state.tokens.curr,val=state.tokens.curr.value;return isReserved(curr)?prop&&state.inES5()?val:fnparam&&\\\"undefined\\\"===val?val:(warning(\\\"W024\\\",state.tokens.curr,state.tokens.curr.id),val):val}}function identifier(fnparam,prop){var i=optionalidentifier(fnparam,prop,!1);if(i)return i;if(\\\"...\\\"===state.tokens.next.value){if(state.inES6(!0)||warning(\\\"W119\\\",state.tokens.next,\\\"spread/rest operator\\\",\\\"6\\\"),advance(),checkPunctuator(state.tokens.next,\\\"...\\\"))for(warning(\\\"E024\\\",state.tokens.next,\\\"...\\\");checkPunctuator(state.tokens.next,\\\"...\\\");)advance();return state.tokens.next.identifier?identifier(fnparam,prop):(warning(\\\"E024\\\",state.tokens.curr,\\\"...\\\"),void 0)}error(\\\"E030\\\",state.tokens.next,state.tokens.next.value),\\\";\\\"!==state.tokens.next.id&&advance()}function reachable(controlToken){var t,i=0;if(\\\";\\\"===state.tokens.next.id&&!controlToken.inBracelessBlock)for(;;){do t=peek(i),i+=1;while(\\\"(end)\\\"!==t.id&&\\\"(comment)\\\"===t.id);if(t.reach)return;if(\\\"(endline)\\\"!==t.id){if(\\\"function\\\"===t.id){state.option.latedef===!0&&warning(\\\"W026\\\",t);break}warning(\\\"W027\\\",t,t.value,controlToken.value);break}}}function parseFinalSemicolon(){if(\\\";\\\"!==state.tokens.next.id){if(state.tokens.next.isUnclosed)return advance();var sameLine=startLine(state.tokens.next)===state.tokens.curr.line&&\\\"(end)\\\"!==state.tokens.next.id,blockEnd=checkPunctuator(state.tokens.next,\\\"}\\\");sameLine&&!blockEnd?errorAt(\\\"E058\\\",state.tokens.curr.line,state.tokens.curr.character):state.option.asi||(blockEnd&&!state.option.lastsemic||!sameLine)&&warningAt(\\\"W033\\\",state.tokens.curr.line,state.tokens.curr.character)}else advance(\\\";\\\")}function statement(){var r,i=indent,t=state.tokens.next,hasOwnScope=!1;if(\\\";\\\"===t.id)return advance(\\\";\\\"),void 0;var res=isReserved(t);if(res&&t.meta&&t.meta.isFutureReservedWord&&\\\":\\\"===peek().id&&(warning(\\\"W024\\\",t,t.id),res=!1),t.identifier&&!res&&\\\":\\\"===peek().id&&(advance(),advance(\\\":\\\"),hasOwnScope=!0,state.funct[\\\"(scope)\\\"].stack(),state.funct[\\\"(scope)\\\"].block.addBreakLabel(t.value,{token:state.tokens.curr}),state.tokens.next.labelled||\\\"{\\\"===state.tokens.next.value||warning(\\\"W028\\\",state.tokens.next,t.value,state.tokens.next.value),state.tokens.next.label=t.value,t=state.tokens.next),\\\"{\\\"===t.id){var iscase=\\\"case\\\"===state.funct[\\\"(verb)\\\"]&&\\\":\\\"===state.tokens.curr.value;return block(!0,!0,!1,!1,iscase),void 0}return r=expression(0,!0),!r||r.identifier&&\\\"function\\\"===r.value||\\\"(punctuator)\\\"===r.type&&r.left&&r.left.identifier&&\\\"function\\\"===r.left.value||state.isStrict()||\\\"global\\\"!==state.option.strict||warning(\\\"E007\\\"),t.block||(state.option.expr||r&&r.exps?state.option.nonew&&r&&r.left&&\\\"(\\\"===r.id&&\\\"new\\\"===r.left.id&&warning(\\\"W031\\\",t):warning(\\\"W030\\\",state.tokens.curr),parseFinalSemicolon()),indent=i,hasOwnScope&&state.funct[\\\"(scope)\\\"].unstack(),r}function statements(){for(var p,a=[];!state.tokens.next.reach&&\\\"(end)\\\"!==state.tokens.next.id;)\\\";\\\"===state.tokens.next.id?(p=peek(),(!p||\\\"(\\\"!==p.id&&\\\"[\\\"!==p.id)&&warning(\\\"W032\\\"),advance(\\\";\\\")):a.push(statement());return a}function directives(){for(var i,p,pn;\\\"(string)\\\"===state.tokens.next.id;){if(p=peek(0),\\\"(endline)\\\"===p.id){i=1;do pn=peek(i++);while(\\\"(endline)\\\"===pn.id);if(\\\";\\\"===pn.id)p=pn;else{if(\\\"[\\\"===pn.value||\\\".\\\"===pn.value)break;state.option.asi&&\\\"(\\\"!==pn.value||warning(\\\"W033\\\",state.tokens.next)}}else{if(\\\".\\\"===p.id||\\\"[\\\"===p.id)break;\\\";\\\"!==p.id&&warning(\\\"W033\\\",p)}advance();var directive=state.tokens.curr.value;(state.directive[directive]||\\\"use strict\\\"===directive&&\\\"implied\\\"===state.option.strict)&&warning(\\\"W034\\\",state.tokens.curr,directive),state.directive[directive]=!0,\\\";\\\"===p.id&&advance(\\\";\\\")}state.isStrict()&&(state.option[\\\"(explicitNewcap)\\\"]||(state.option.newcap=!0),state.option.undef=!0)}function block(ordinary,stmt,isfunc,isfatarrow,iscase){var a,m,t,line,d,b=inblock,old_indent=indent;inblock=ordinary,t=state.tokens.next;var metrics=state.funct[\\\"(metrics)\\\"];if(metrics.nestedBlockDepth+=1,metrics.verifyMaxNestedBlockDepthPerFunction(),\\\"{\\\"===state.tokens.next.id){if(advance(\\\"{\\\"),state.funct[\\\"(scope)\\\"].stack(),line=state.tokens.curr.line,\\\"}\\\"!==state.tokens.next.id){for(indent+=state.option.indent;!ordinary&&state.tokens.next.from>indent;)indent+=state.option.indent;if(isfunc){m={};for(d in state.directive)_.has(state.directive,d)&&(m[d]=state.directive[d]);directives(),state.option.strict&&state.funct[\\\"(context)\\\"][\\\"(global)\\\"]&&(m[\\\"use strict\\\"]||state.isStrict()||warning(\\\"E007\\\"))}a=statements(),metrics.statementCount+=a.length,indent-=state.option.indent}advance(\\\"}\\\",t),isfunc&&(state.funct[\\\"(scope)\\\"].validateParams(),m&&(state.directive=m)),state.funct[\\\"(scope)\\\"].unstack(),indent=old_indent}else if(ordinary)state.funct[\\\"(noblockscopedvar)\\\"]=\\\"for\\\"!==state.tokens.next.id,state.funct[\\\"(scope)\\\"].stack(),(!stmt||state.option.curly)&&warning(\\\"W116\\\",state.tokens.next,\\\"{\\\",state.tokens.next.value),state.tokens.next.inBracelessBlock=!0,indent+=state.option.indent,a=[statement()],indent-=state.option.indent,state.funct[\\\"(scope)\\\"].unstack(),delete state.funct[\\\"(noblockscopedvar)\\\"];else if(isfunc){if(state.funct[\\\"(scope)\\\"].stack(),m={},!stmt||isfatarrow||state.inMoz()||error(\\\"W118\\\",state.tokens.curr,\\\"function closure expressions\\\"),!stmt)for(d in state.directive)_.has(state.directive,d)&&(m[d]=state.directive[d]);expression(10),state.option.strict&&state.funct[\\\"(context)\\\"][\\\"(global)\\\"]&&(m[\\\"use strict\\\"]||state.isStrict()||warning(\\\"E007\\\")),state.funct[\\\"(scope)\\\"].unstack()}else error(\\\"E021\\\",state.tokens.next,\\\"{\\\",state.tokens.next.value);switch(state.funct[\\\"(verb)\\\"]){case\\\"break\\\":case\\\"continue\\\":case\\\"return\\\":case\\\"throw\\\":if(iscase)break;default:state.funct[\\\"(verb)\\\"]=null}return inblock=b,!ordinary||!state.option.noempty||a&&0!==a.length||warning(\\\"W035\\\",state.tokens.prev),metrics.nestedBlockDepth-=1,a}function countMember(m){membersOnly&&\\\"boolean\\\"!=typeof membersOnly[m]&&warning(\\\"W036\\\",state.tokens.curr,m),\\\"number\\\"==typeof member[m]?member[m]+=1:member[m]=1}function comprehensiveArrayExpression(){var res={};res.exps=!0,state.funct[\\\"(comparray)\\\"].stack();var reversed=!1;return\\\"for\\\"!==state.tokens.next.value&&(reversed=!0,state.inMoz()||warning(\\\"W116\\\",state.tokens.next,\\\"for\\\",state.tokens.next.value),state.funct[\\\"(comparray)\\\"].setState(\\\"use\\\"),res.right=expression(10)),advance(\\\"for\\\"),\\\"each\\\"===state.tokens.next.value&&(advance(\\\"each\\\"),state.inMoz()||warning(\\\"W118\\\",state.tokens.curr,\\\"for each\\\")),advance(\\\"(\\\"),state.funct[\\\"(comparray)\\\"].setState(\\\"define\\\"),res.left=expression(130),_.contains([\\\"in\\\",\\\"of\\\"],state.tokens.next.value)?advance():error(\\\"E045\\\",state.tokens.curr),state.funct[\\\"(comparray)\\\"].setState(\\\"generate\\\"),expression(10),advance(\\\")\\\"),\\\"if\\\"===state.tokens.next.value&&(advance(\\\"if\\\"),advance(\\\"(\\\"),state.funct[\\\"(comparray)\\\"].setState(\\\"filter\\\"),res.filter=expression(10),advance(\\\")\\\")),reversed||(state.funct[\\\"(comparray)\\\"].setState(\\\"use\\\"),res.right=expression(10)),advance(\\\"]\\\"),state.funct[\\\"(comparray)\\\"].unstack(),res}function isMethod(){return state.funct[\\\"(statement)\\\"]&&\\\"class\\\"===state.funct[\\\"(statement)\\\"].type||state.funct[\\\"(context)\\\"]&&\\\"class\\\"===state.funct[\\\"(context)\\\"][\\\"(verb)\\\"]}function isPropertyName(token){return token.identifier||\\\"(string)\\\"===token.id||\\\"(number)\\\"===token.id}function propertyName(preserveOrToken){var id,preserve=!0;return\\\"object\\\"==typeof preserveOrToken?id=preserveOrToken:(preserve=preserveOrToken,id=optionalidentifier(!1,!0,preserve)),id?\\\"object\\\"==typeof id&&(\\\"(string)\\\"===id.id||\\\"(identifier)\\\"===id.id?id=id.value:\\\"(number)\\\"===id.id&&(id=\\\"\\\"+id.value)):\\\"(string)\\\"===state.tokens.next.id?(id=state.tokens.next.value,preserve||advance()):\\\"(number)\\\"===state.tokens.next.id&&(id=\\\"\\\"+state.tokens.next.value,preserve||advance()),\\\"hasOwnProperty\\\"===id&&warning(\\\"W001\\\"),id}function functionparams(options){function addParam(addParamArgs){state.funct[\\\"(scope)\\\"].addParam.apply(state.funct[\\\"(scope)\\\"],addParamArgs)}var next,ident,t,paramsIds=[],tokens=[],pastDefault=!1,pastRest=!1,arity=0,loneArg=options&&options.loneArg;if(loneArg&&loneArg.identifier===!0)return state.funct[\\\"(scope)\\\"].addParam(loneArg.value,loneArg),{arity:1,params:[loneArg.value]};if(next=state.tokens.next,options&&options.parsedOpening||advance(\\\"(\\\"),\\\")\\\"===state.tokens.next.id)return advance(\\\")\\\"),void 0;for(;;){arity++;var currentParams=[];if(_.contains([\\\"{\\\",\\\"[\\\"],state.tokens.next.id)){tokens=destructuringPattern();for(t in tokens)t=tokens[t],t.id&&(paramsIds.push(t.id),currentParams.push([t.id,t.token]))}else if(checkPunctuator(state.tokens.next,\\\"...\\\")&&(pastRest=!0),ident=identifier(!0))paramsIds.push(ident),currentParams.push([ident,state.tokens.curr]);else for(;!checkPunctuators(state.tokens.next,[\\\",\\\",\\\")\\\"]);)advance();if(pastDefault&&\\\"=\\\"!==state.tokens.next.id&&error(\\\"W138\\\",state.tokens.current),\\\"=\\\"===state.tokens.next.id&&(state.inES6()||warning(\\\"W119\\\",state.tokens.next,\\\"default parameters\\\",\\\"6\\\"),advance(\\\"=\\\"),pastDefault=!0,expression(10)),currentParams.forEach(addParam),\\\",\\\"!==state.tokens.next.id)return advance(\\\")\\\",next),{arity:arity,params:paramsIds};pastRest&&warning(\\\"W131\\\",state.tokens.next),comma()}}function functor(name,token,overwrites){var funct={\\\"(name)\\\":name,\\\"(breakage)\\\":0,\\\"(loopage)\\\":0,\\\"(tokens)\\\":{},\\\"(properties)\\\":{},\\\"(catch)\\\":!1,\\\"(global)\\\":!1,\\\"(line)\\\":null,\\\"(character)\\\":null,\\\"(metrics)\\\":null,\\\"(statement)\\\":null,\\\"(context)\\\":null,\\\"(scope)\\\":null,\\\"(comparray)\\\":null,\\\"(generator)\\\":null,\\\"(arrow)\\\":null,\\\"(params)\\\":null};return token&&_.extend(funct,{\\\"(line)\\\":token.line,\\\"(character)\\\":token.character,\\\"(metrics)\\\":createMetrics(token)}),_.extend(funct,overwrites),funct[\\\"(context)\\\"]&&(funct[\\\"(scope)\\\"]=funct[\\\"(context)\\\"][\\\"(scope)\\\"],funct[\\\"(comparray)\\\"]=funct[\\\"(context)\\\"][\\\"(comparray)\\\"]),funct}function isFunctor(token){return\\\"(scope)\\\"in token}function hasParsedCode(funct){return funct[\\\"(global)\\\"]&&!funct[\\\"(verb)\\\"]}function doTemplateLiteral(left){function end(){if(state.tokens.curr.template&&state.tokens.curr.tail&&state.tokens.curr.context===ctx)return!0;var complete=state.tokens.next.template&&state.tokens.next.tail&&state.tokens.next.context===ctx;return complete&&advance(),complete||state.tokens.next.isUnclosed}var ctx=this.context,noSubst=this.noSubst,depth=this.depth;if(!noSubst)for(;!end();)!state.tokens.next.template||state.tokens.next.depth>depth?expression(0):advance();return{id:\\\"(template)\\\",type:\\\"(template)\\\",tag:left}}function doFunction(options){var f,token,name,statement,classExprBinding,isGenerator,isArrow,ignoreLoopFunc,oldOption=state.option,oldIgnored=state.ignored;options&&(name=options.name,statement=options.statement,classExprBinding=options.classExprBinding,isGenerator=\\\"generator\\\"===options.type,isArrow=\\\"arrow\\\"===options.type,ignoreLoopFunc=options.ignoreLoopFunc),state.option=Object.create(state.option),state.ignored=Object.create(state.ignored),state.funct=functor(name||state.nameStack.infer(),state.tokens.next,{\\\"(statement)\\\":statement,\\\"(context)\\\":state.funct,\\\"(arrow)\\\":isArrow,\\\"(generator)\\\":isGenerator}),f=state.funct,token=state.tokens.curr,token.funct=state.funct,functions.push(state.funct),state.funct[\\\"(scope)\\\"].stack(\\\"functionouter\\\");var internallyAccessibleName=name||classExprBinding;internallyAccessibleName&&state.funct[\\\"(scope)\\\"].block.add(internallyAccessibleName,classExprBinding?\\\"class\\\":\\\"function\\\",state.tokens.curr,!1),state.funct[\\\"(scope)\\\"].stack(\\\"functionparams\\\");var paramsInfo=functionparams(options);return paramsInfo?(state.funct[\\\"(params)\\\"]=paramsInfo.params,state.funct[\\\"(metrics)\\\"].arity=paramsInfo.arity,state.funct[\\\"(metrics)\\\"].verifyMaxParametersPerFunction()):state.funct[\\\"(metrics)\\\"].arity=0,isArrow&&(state.inES6(!0)||warning(\\\"W119\\\",state.tokens.curr,\\\"arrow function syntax (=>)\\\",\\\"6\\\"),options.loneArg||advance(\\\"=>\\\")),block(!1,!0,!0,isArrow),!state.option.noyield&&isGenerator&&\\\"yielded\\\"!==state.funct[\\\"(generator)\\\"]&&warning(\\\"W124\\\",state.tokens.curr),state.funct[\\\"(metrics)\\\"].verifyMaxStatementsPerFunction(),state.funct[\\\"(metrics)\\\"].verifyMaxComplexityPerFunction(),state.funct[\\\"(unusedOption)\\\"]=state.option.unused,state.option=oldOption,state.ignored=oldIgnored,state.funct[\\\"(last)\\\"]=state.tokens.curr.line,state.funct[\\\"(lastcharacter)\\\"]=state.tokens.curr.character,state.funct[\\\"(scope)\\\"].unstack(),state.funct[\\\"(scope)\\\"].unstack(),state.funct=state.funct[\\\"(context)\\\"],ignoreLoopFunc||state.option.loopfunc||!state.funct[\\\"(loopage)\\\"]||f[\\\"(isCapturing)\\\"]&&warning(\\\"W083\\\",token),f}function createMetrics(functionStartToken){return{statementCount:0,nestedBlockDepth:-1,ComplexityCount:1,arity:0,verifyMaxStatementsPerFunction:function(){state.option.maxstatements&&this.statementCount>state.option.maxstatements&&warning(\\\"W071\\\",functionStartToken,this.statementCount)\\n},verifyMaxParametersPerFunction:function(){_.isNumber(state.option.maxparams)&&this.arity>state.option.maxparams&&warning(\\\"W072\\\",functionStartToken,this.arity)},verifyMaxNestedBlockDepthPerFunction:function(){state.option.maxdepth&&this.nestedBlockDepth>0&&this.nestedBlockDepth===state.option.maxdepth+1&&warning(\\\"W073\\\",null,this.nestedBlockDepth)},verifyMaxComplexityPerFunction:function(){var max=state.option.maxcomplexity,cc=this.ComplexityCount;max&&cc>max&&warning(\\\"W074\\\",functionStartToken,cc)}}}function increaseComplexityCount(){state.funct[\\\"(metrics)\\\"].ComplexityCount+=1}function checkCondAssignment(expr){var id,paren;switch(expr&&(id=expr.id,paren=expr.paren,\\\",\\\"===id&&(expr=expr.exprs[expr.exprs.length-1])&&(id=expr.id,paren=paren||expr.paren)),id){case\\\"=\\\":case\\\"+=\\\":case\\\"-=\\\":case\\\"*=\\\":case\\\"%=\\\":case\\\"&=\\\":case\\\"|=\\\":case\\\"^=\\\":case\\\"/=\\\":paren||state.option.boss||warning(\\\"W084\\\")}}function checkProperties(props){if(state.inES5())for(var name in props)props[name]&&props[name].setterToken&&!props[name].getterToken&&warning(\\\"W078\\\",props[name].setterToken)}function metaProperty(name,c){if(checkPunctuator(state.tokens.next,\\\".\\\")){var left=state.tokens.curr.id;advance(\\\".\\\");var id=identifier();return state.tokens.curr.isMetaProperty=!0,name!==id?error(\\\"E057\\\",state.tokens.prev,left,id):c(),state.tokens.curr}}function destructuringPattern(options){var isAssignment=options&&options.assignment;return state.inES6()||warning(\\\"W104\\\",state.tokens.curr,isAssignment?\\\"destructuring assignment\\\":\\\"destructuring binding\\\",\\\"6\\\"),destructuringPatternRecursive(options)}function destructuringPatternRecursive(options){var ids,identifiers=[],openingParsed=options&&options.openingParsed,isAssignment=options&&options.assignment,recursiveOptions=isAssignment?{assignment:isAssignment}:null,firstToken=openingParsed?state.tokens.curr:state.tokens.next,nextInnerDE=function(){var ident;if(checkPunctuators(state.tokens.next,[\\\"[\\\",\\\"{\\\"])){ids=destructuringPatternRecursive(recursiveOptions);for(var id in ids)id=ids[id],identifiers.push({id:id.id,token:id.token})}else if(checkPunctuator(state.tokens.next,\\\",\\\"))identifiers.push({id:null,token:state.tokens.curr});else{if(!checkPunctuator(state.tokens.next,\\\"(\\\")){var is_rest=checkPunctuator(state.tokens.next,\\\"...\\\");if(isAssignment){var identifierToken=is_rest?peek(0):state.tokens.next;identifierToken.identifier||warning(\\\"E030\\\",identifierToken,identifierToken.value);var assignTarget=expression(155);assignTarget&&(checkLeftSideAssign(assignTarget),assignTarget.identifier&&(ident=assignTarget.value))}else ident=identifier();return ident&&identifiers.push({id:ident,token:state.tokens.curr}),is_rest}advance(\\\"(\\\"),nextInnerDE(),advance(\\\")\\\")}return!1},assignmentProperty=function(){var id;checkPunctuator(state.tokens.next,\\\"[\\\")?(advance(\\\"[\\\"),expression(10),advance(\\\"]\\\"),advance(\\\":\\\"),nextInnerDE()):\\\"(string)\\\"===state.tokens.next.id||\\\"(number)\\\"===state.tokens.next.id?(advance(),advance(\\\":\\\"),nextInnerDE()):(id=identifier(),checkPunctuator(state.tokens.next,\\\":\\\")?(advance(\\\":\\\"),nextInnerDE()):id&&(isAssignment&&checkLeftSideAssign(state.tokens.curr),identifiers.push({id:id,token:state.tokens.curr})))};if(checkPunctuator(firstToken,\\\"[\\\")){openingParsed||advance(\\\"[\\\"),checkPunctuator(state.tokens.next,\\\"]\\\")&&warning(\\\"W137\\\",state.tokens.curr);for(var element_after_rest=!1;!checkPunctuator(state.tokens.next,\\\"]\\\");)nextInnerDE()&&!element_after_rest&&checkPunctuator(state.tokens.next,\\\",\\\")&&(warning(\\\"W130\\\",state.tokens.next),element_after_rest=!0),checkPunctuator(state.tokens.next,\\\"=\\\")&&(checkPunctuator(state.tokens.prev,\\\"...\\\")?advance(\\\"]\\\"):advance(\\\"=\\\"),\\\"undefined\\\"===state.tokens.next.id&&warning(\\\"W080\\\",state.tokens.prev,state.tokens.prev.value),expression(10)),checkPunctuator(state.tokens.next,\\\"]\\\")||advance(\\\",\\\");advance(\\\"]\\\")}else if(checkPunctuator(firstToken,\\\"{\\\")){for(openingParsed||advance(\\\"{\\\"),checkPunctuator(state.tokens.next,\\\"}\\\")&&warning(\\\"W137\\\",state.tokens.curr);!checkPunctuator(state.tokens.next,\\\"}\\\")&&(assignmentProperty(),checkPunctuator(state.tokens.next,\\\"=\\\")&&(advance(\\\"=\\\"),\\\"undefined\\\"===state.tokens.next.id&&warning(\\\"W080\\\",state.tokens.prev,state.tokens.prev.value),expression(10)),checkPunctuator(state.tokens.next,\\\"}\\\")||(advance(\\\",\\\"),!checkPunctuator(state.tokens.next,\\\"}\\\"))););advance(\\\"}\\\")}return identifiers}function destructuringPatternMatch(tokens,value){var first=value.first;first&&_.zip(tokens,Array.isArray(first)?first:[first]).forEach(function(val){var token=val[0],value=val[1];token&&value?token.first=value:token&&token.first&&!value&&warning(\\\"W080\\\",token.first,token.first.value)})}function blockVariableStatement(type,statement,context){var tokens,lone,value,letblock,prefix=context&&context.prefix,inexport=context&&context.inexport,isLet=\\\"let\\\"===type,isConst=\\\"const\\\"===type;for(state.inES6()||warning(\\\"W104\\\",state.tokens.curr,type,\\\"6\\\"),isLet&&\\\"(\\\"===state.tokens.next.value?(state.inMoz()||warning(\\\"W118\\\",state.tokens.next,\\\"let block\\\"),advance(\\\"(\\\"),state.funct[\\\"(scope)\\\"].stack(),letblock=!0):state.funct[\\\"(noblockscopedvar)\\\"]&&error(\\\"E048\\\",state.tokens.curr,isConst?\\\"Const\\\":\\\"Let\\\"),statement.first=[];;){var names=[];_.contains([\\\"{\\\",\\\"[\\\"],state.tokens.next.value)?(tokens=destructuringPattern(),lone=!1):(tokens=[{id:identifier(),token:state.tokens.curr}],lone=!0),!prefix&&isConst&&\\\"=\\\"!==state.tokens.next.id&&warning(\\\"E012\\\",state.tokens.curr,state.tokens.curr.value);for(var t in tokens)tokens.hasOwnProperty(t)&&(t=tokens[t],state.funct[\\\"(scope)\\\"].block.isGlobal()&&predefined[t.id]===!1&&warning(\\\"W079\\\",t.token,t.id),t.id&&!state.funct[\\\"(noblockscopedvar)\\\"]&&(state.funct[\\\"(scope)\\\"].addlabel(t.id,{type:type,token:t.token}),names.push(t.token),lone&&inexport&&state.funct[\\\"(scope)\\\"].setExported(t.token.value,t.token)));if(\\\"=\\\"===state.tokens.next.id&&(advance(\\\"=\\\"),prefix||\\\"undefined\\\"!==state.tokens.next.id||warning(\\\"W080\\\",state.tokens.prev,state.tokens.prev.value),!prefix&&\\\"=\\\"===peek(0).id&&state.tokens.next.identifier&&warning(\\\"W120\\\",state.tokens.next,state.tokens.next.value),value=expression(prefix?120:10),lone?tokens[0].first=value:destructuringPatternMatch(names,value)),statement.first=statement.first.concat(names),\\\",\\\"!==state.tokens.next.id)break;comma()}return letblock&&(advance(\\\")\\\"),block(!0,!0),statement.block=!0,state.funct[\\\"(scope)\\\"].unstack()),statement}function classdef(isStatement){return state.inES6()||warning(\\\"W104\\\",state.tokens.curr,\\\"class\\\",\\\"6\\\"),isStatement?(this.name=identifier(),state.funct[\\\"(scope)\\\"].addlabel(this.name,{type:\\\"class\\\",token:state.tokens.curr})):state.tokens.next.identifier&&\\\"extends\\\"!==state.tokens.next.value?(this.name=identifier(),this.namedExpr=!0):this.name=state.nameStack.infer(),classtail(this),this}function classtail(c){var wasInClassBody=state.inClassBody;\\\"extends\\\"===state.tokens.next.value&&(advance(\\\"extends\\\"),c.heritage=expression(10)),state.inClassBody=!0,advance(\\\"{\\\"),c.body=classbody(c),advance(\\\"}\\\"),state.inClassBody=wasInClassBody}function classbody(c){for(var name,isStatic,isGenerator,getset,computed,props=Object.create(null),staticProps=Object.create(null),i=0;\\\"}\\\"!==state.tokens.next.id;++i)if(name=state.tokens.next,isStatic=!1,isGenerator=!1,getset=null,\\\";\\\"!==name.id){if(\\\"*\\\"===name.id&&(isGenerator=!0,advance(\\\"*\\\"),name=state.tokens.next),\\\"[\\\"===name.id)name=computedPropertyName(),computed=!0;else{if(!isPropertyName(name)){warning(\\\"W052\\\",state.tokens.next,state.tokens.next.value||state.tokens.next.type),advance();continue}advance(),computed=!1,name.identifier&&\\\"static\\\"===name.value&&(checkPunctuator(state.tokens.next,\\\"*\\\")&&(isGenerator=!0,advance(\\\"*\\\")),(isPropertyName(state.tokens.next)||\\\"[\\\"===state.tokens.next.id)&&(computed=\\\"[\\\"===state.tokens.next.id,isStatic=!0,name=state.tokens.next,\\\"[\\\"===state.tokens.next.id?name=computedPropertyName():advance())),!name.identifier||\\\"get\\\"!==name.value&&\\\"set\\\"!==name.value||(isPropertyName(state.tokens.next)||\\\"[\\\"===state.tokens.next.id)&&(computed=\\\"[\\\"===state.tokens.next.id,getset=name,name=state.tokens.next,\\\"[\\\"===state.tokens.next.id?name=computedPropertyName():advance())}if(!checkPunctuator(state.tokens.next,\\\"(\\\")){for(error(\\\"E054\\\",state.tokens.next,state.tokens.next.value);\\\"}\\\"!==state.tokens.next.id&&!checkPunctuator(state.tokens.next,\\\"(\\\");)advance();\\\"(\\\"!==state.tokens.next.value&&doFunction({statement:c})}if(computed||(getset?saveAccessor(getset.value,isStatic?staticProps:props,name.value,name,!0,isStatic):(\\\"constructor\\\"===name.value?state.nameStack.set(c):state.nameStack.set(name),saveProperty(isStatic?staticProps:props,name.value,name,!0,isStatic))),getset&&\\\"constructor\\\"===name.value){var propDesc=\\\"get\\\"===getset.value?\\\"class getter method\\\":\\\"class setter method\\\";error(\\\"E049\\\",name,propDesc,\\\"constructor\\\")}else\\\"prototype\\\"===name.value&&error(\\\"E049\\\",name,\\\"class method\\\",\\\"prototype\\\");propertyName(name),doFunction({statement:c,type:isGenerator?\\\"generator\\\":null,classExprBinding:c.namedExpr?c.name:null})}else warning(\\\"W032\\\"),advance(\\\";\\\");checkProperties(props)}function saveProperty(props,name,tkn,isClass,isStatic){var msg=[\\\"key\\\",\\\"class method\\\",\\\"static class method\\\"];msg=msg[(isClass||!1)+(isStatic||!1)],tkn.identifier&&(name=tkn.value),props[name]&&\\\"__proto__\\\"!==name?warning(\\\"W075\\\",state.tokens.next,msg,name):props[name]=Object.create(null),props[name].basic=!0,props[name].basictkn=tkn}function saveAccessor(accessorType,props,name,tkn,isClass,isStatic){var flagName=\\\"get\\\"===accessorType?\\\"getterToken\\\":\\\"setterToken\\\",msg=\\\"\\\";isClass?(isStatic&&(msg+=\\\"static \\\"),msg+=accessorType+\\\"ter method\\\"):msg=\\\"key\\\",state.tokens.curr.accessorType=accessorType,state.nameStack.set(tkn),props[name]?(props[name].basic||props[name][flagName])&&\\\"__proto__\\\"!==name&&warning(\\\"W075\\\",state.tokens.next,msg,name):props[name]=Object.create(null),props[name][flagName]=tkn}function computedPropertyName(){advance(\\\"[\\\"),state.inES6()||warning(\\\"W119\\\",state.tokens.curr,\\\"computed property names\\\",\\\"6\\\");var value=expression(10);return advance(\\\"]\\\"),value}function checkPunctuators(token,values){return\\\"(punctuator)\\\"===token.type?_.contains(values,token.value):!1}function checkPunctuator(token,value){return\\\"(punctuator)\\\"===token.type&&token.value===value}function destructuringAssignOrJsonValue(){var block=lookupBlockType();block.notJson?(!state.inES6()&&block.isDestAssign&&warning(\\\"W104\\\",state.tokens.curr,\\\"destructuring assignment\\\",\\\"6\\\"),statements()):(state.option.laxbreak=!0,state.jsonMode=!0,jsonValue())}function jsonValue(){function jsonObject(){var o={},t=state.tokens.next;if(advance(\\\"{\\\"),\\\"}\\\"!==state.tokens.next.id)for(;;){if(\\\"(end)\\\"===state.tokens.next.id)error(\\\"E026\\\",state.tokens.next,t.line);else{if(\\\"}\\\"===state.tokens.next.id){warning(\\\"W094\\\",state.tokens.curr);break}\\\",\\\"===state.tokens.next.id?error(\\\"E028\\\",state.tokens.next):\\\"(string)\\\"!==state.tokens.next.id&&warning(\\\"W095\\\",state.tokens.next,state.tokens.next.value)}if(o[state.tokens.next.value]===!0?warning(\\\"W075\\\",state.tokens.next,\\\"key\\\",state.tokens.next.value):\\\"__proto__\\\"===state.tokens.next.value&&!state.option.proto||\\\"__iterator__\\\"===state.tokens.next.value&&!state.option.iterator?warning(\\\"W096\\\",state.tokens.next,state.tokens.next.value):o[state.tokens.next.value]=!0,advance(),advance(\\\":\\\"),jsonValue(),\\\",\\\"!==state.tokens.next.id)break;advance(\\\",\\\")}advance(\\\"}\\\")}function jsonArray(){var t=state.tokens.next;if(advance(\\\"[\\\"),\\\"]\\\"!==state.tokens.next.id)for(;;){if(\\\"(end)\\\"===state.tokens.next.id)error(\\\"E027\\\",state.tokens.next,t.line);else{if(\\\"]\\\"===state.tokens.next.id){warning(\\\"W094\\\",state.tokens.curr);break}\\\",\\\"===state.tokens.next.id&&error(\\\"E028\\\",state.tokens.next)}if(jsonValue(),\\\",\\\"!==state.tokens.next.id)break;advance(\\\",\\\")}advance(\\\"]\\\")}switch(state.tokens.next.id){case\\\"{\\\":jsonObject();break;case\\\"[\\\":jsonArray();break;case\\\"true\\\":case\\\"false\\\":case\\\"null\\\":case\\\"(number)\\\":case\\\"(string)\\\":advance();break;case\\\"-\\\":advance(\\\"-\\\"),advance(\\\"(number)\\\");break;default:error(\\\"E003\\\",state.tokens.next)}}var api,declared,functions,inblock,indent,lookahead,lex,member,membersOnly,predefined,stack,urls,bang={\\\"<\\\":!0,\\\"<=\\\":!0,\\\"==\\\":!0,\\\"===\\\":!0,\\\"!==\\\":!0,\\\"!=\\\":!0,\\\">\\\":!0,\\\">=\\\":!0,\\\"+\\\":!0,\\\"-\\\":!0,\\\"*\\\":!0,\\\"/\\\":!0,\\\"%\\\":!0},functionicity=[\\\"closure\\\",\\\"exception\\\",\\\"global\\\",\\\"label\\\",\\\"outer\\\",\\\"unused\\\",\\\"var\\\"],extraModules=[],emitter=new events.EventEmitter,typeofValues={};typeofValues.legacy=[\\\"xml\\\",\\\"unknown\\\"],typeofValues.es3=[\\\"undefined\\\",\\\"boolean\\\",\\\"number\\\",\\\"string\\\",\\\"function\\\",\\\"object\\\"],typeofValues.es3=typeofValues.es3.concat(typeofValues.legacy),typeofValues.es6=typeofValues.es3.concat(\\\"symbol\\\"),type(\\\"(number)\\\",function(){return this}),type(\\\"(string)\\\",function(){return this}),state.syntax[\\\"(identifier)\\\"]={type:\\\"(identifier)\\\",lbp:0,identifier:!0,nud:function(){var v=this.value;return\\\"=>\\\"===state.tokens.next.id?this:(state.funct[\\\"(comparray)\\\"].check(v)||state.funct[\\\"(scope)\\\"].block.use(v,state.tokens.curr),this)},led:function(){error(\\\"E033\\\",state.tokens.next,state.tokens.next.value)}};var baseTemplateSyntax={lbp:0,identifier:!1,template:!0};state.syntax[\\\"(template)\\\"]=_.extend({type:\\\"(template)\\\",nud:doTemplateLiteral,led:doTemplateLiteral,noSubst:!1},baseTemplateSyntax),state.syntax[\\\"(template middle)\\\"]=_.extend({type:\\\"(template middle)\\\",middle:!0,noSubst:!1},baseTemplateSyntax),state.syntax[\\\"(template tail)\\\"]=_.extend({type:\\\"(template tail)\\\",tail:!0,noSubst:!1},baseTemplateSyntax),state.syntax[\\\"(no subst template)\\\"]=_.extend({type:\\\"(template)\\\",nud:doTemplateLiteral,led:doTemplateLiteral,noSubst:!0,tail:!0},baseTemplateSyntax),type(\\\"(regexp)\\\",function(){return this}),delim(\\\"(endline)\\\"),delim(\\\"(begin)\\\"),delim(\\\"(end)\\\").reach=!0,delim(\\\"(error)\\\").reach=!0,delim(\\\"}\\\").reach=!0,delim(\\\")\\\"),delim(\\\"]\\\"),delim('\\\"').reach=!0,delim(\\\"'\\\").reach=!0,delim(\\\";\\\"),delim(\\\":\\\").reach=!0,delim(\\\"#\\\"),reserve(\\\"else\\\"),reserve(\\\"case\\\").reach=!0,reserve(\\\"catch\\\"),reserve(\\\"default\\\").reach=!0,reserve(\\\"finally\\\"),reservevar(\\\"arguments\\\",function(x){state.isStrict()&&state.funct[\\\"(global)\\\"]&&warning(\\\"E008\\\",x)}),reservevar(\\\"eval\\\"),reservevar(\\\"false\\\"),reservevar(\\\"Infinity\\\"),reservevar(\\\"null\\\"),reservevar(\\\"this\\\",function(x){state.isStrict()&&!isMethod()&&!state.option.validthis&&(state.funct[\\\"(statement)\\\"]&&state.funct[\\\"(name)\\\"].charAt(0)>\\\"Z\\\"||state.funct[\\\"(global)\\\"])&&warning(\\\"W040\\\",x)}),reservevar(\\\"true\\\"),reservevar(\\\"undefined\\\"),assignop(\\\"=\\\",\\\"assign\\\",20),assignop(\\\"+=\\\",\\\"assignadd\\\",20),assignop(\\\"-=\\\",\\\"assignsub\\\",20),assignop(\\\"*=\\\",\\\"assignmult\\\",20),assignop(\\\"/=\\\",\\\"assigndiv\\\",20).nud=function(){error(\\\"E014\\\")},assignop(\\\"%=\\\",\\\"assignmod\\\",20),bitwiseassignop(\\\"&=\\\"),bitwiseassignop(\\\"|=\\\"),bitwiseassignop(\\\"^=\\\"),bitwiseassignop(\\\"<<=\\\"),bitwiseassignop(\\\">>=\\\"),bitwiseassignop(\\\">>>=\\\"),infix(\\\",\\\",function(left,that){var expr;if(that.exprs=[left],state.option.nocomma&&warning(\\\"W127\\\"),!comma({peek:!0}))return that;for(;;){if(!(expr=expression(10)))break;if(that.exprs.push(expr),\\\",\\\"!==state.tokens.next.value||!comma())break}return that},10,!0),infix(\\\"?\\\",function(left,that){return increaseComplexityCount(),that.left=left,that.right=expression(10),advance(\\\":\\\"),that[\\\"else\\\"]=expression(10),that},30);var orPrecendence=40;infix(\\\"||\\\",function(left,that){return increaseComplexityCount(),that.left=left,that.right=expression(orPrecendence),that},orPrecendence),infix(\\\"&&\\\",\\\"and\\\",50),bitwise(\\\"|\\\",\\\"bitor\\\",70),bitwise(\\\"^\\\",\\\"bitxor\\\",80),bitwise(\\\"&\\\",\\\"bitand\\\",90),relation(\\\"==\\\",function(left,right){var eqnull=state.option.eqnull&&(\\\"null\\\"===(left&&left.value)||\\\"null\\\"===(right&&right.value));switch(!0){case!eqnull&&state.option.eqeqeq:this.from=this.character,warning(\\\"W116\\\",this,\\\"===\\\",\\\"==\\\");break;case isPoorRelation(left):warning(\\\"W041\\\",this,\\\"===\\\",left.value);break;case isPoorRelation(right):warning(\\\"W041\\\",this,\\\"===\\\",right.value);break;case isTypoTypeof(right,left,state):warning(\\\"W122\\\",this,right.value);break;case isTypoTypeof(left,right,state):warning(\\\"W122\\\",this,left.value)}return this}),relation(\\\"===\\\",function(left,right){return isTypoTypeof(right,left,state)?warning(\\\"W122\\\",this,right.value):isTypoTypeof(left,right,state)&&warning(\\\"W122\\\",this,left.value),this}),relation(\\\"!=\\\",function(left,right){var eqnull=state.option.eqnull&&(\\\"null\\\"===(left&&left.value)||\\\"null\\\"===(right&&right.value));return!eqnull&&state.option.eqeqeq?(this.from=this.character,warning(\\\"W116\\\",this,\\\"!==\\\",\\\"!=\\\")):isPoorRelation(left)?warning(\\\"W041\\\",this,\\\"!==\\\",left.value):isPoorRelation(right)?warning(\\\"W041\\\",this,\\\"!==\\\",right.value):isTypoTypeof(right,left,state)?warning(\\\"W122\\\",this,right.value):isTypoTypeof(left,right,state)&&warning(\\\"W122\\\",this,left.value),this}),relation(\\\"!==\\\",function(left,right){return isTypoTypeof(right,left,state)?warning(\\\"W122\\\",this,right.value):isTypoTypeof(left,right,state)&&warning(\\\"W122\\\",this,left.value),this}),relation(\\\"<\\\"),relation(\\\">\\\"),relation(\\\"<=\\\"),relation(\\\">=\\\"),bitwise(\\\"<<\\\",\\\"shiftleft\\\",120),bitwise(\\\">>\\\",\\\"shiftright\\\",120),bitwise(\\\">>>\\\",\\\"shiftrightunsigned\\\",120),infix(\\\"in\\\",\\\"in\\\",120),infix(\\\"instanceof\\\",\\\"instanceof\\\",120),infix(\\\"+\\\",function(left,that){var right;return that.left=left,that.right=right=expression(130),left&&right&&\\\"(string)\\\"===left.id&&\\\"(string)\\\"===right.id?(left.value+=right.value,left.character=right.character,!state.option.scripturl&®.javascriptURL.test(left.value)&&warning(\\\"W050\\\",left),left):that},130),prefix(\\\"+\\\",\\\"num\\\"),prefix(\\\"+++\\\",function(){return warning(\\\"W007\\\"),this.arity=\\\"unary\\\",this.right=expression(150),this}),infix(\\\"+++\\\",function(left){return warning(\\\"W007\\\"),this.left=left,this.right=expression(130),this},130),infix(\\\"-\\\",\\\"sub\\\",130),prefix(\\\"-\\\",\\\"neg\\\"),prefix(\\\"---\\\",function(){return warning(\\\"W006\\\"),this.arity=\\\"unary\\\",this.right=expression(150),this}),infix(\\\"---\\\",function(left){return warning(\\\"W006\\\"),this.left=left,this.right=expression(130),this},130),infix(\\\"*\\\",\\\"mult\\\",140),infix(\\\"/\\\",\\\"div\\\",140),infix(\\\"%\\\",\\\"mod\\\",140),suffix(\\\"++\\\"),prefix(\\\"++\\\",\\\"preinc\\\"),state.syntax[\\\"++\\\"].exps=!0,suffix(\\\"--\\\"),prefix(\\\"--\\\",\\\"predec\\\"),state.syntax[\\\"--\\\"].exps=!0,prefix(\\\"delete\\\",function(){var p=expression(10);return p?(\\\".\\\"!==p.id&&\\\"[\\\"!==p.id&&warning(\\\"W051\\\"),this.first=p,p.identifier&&!state.isStrict()&&(p.forgiveUndef=!0),this):this}).exps=!0,prefix(\\\"~\\\",function(){return state.option.bitwise&&warning(\\\"W016\\\",this,\\\"~\\\"),this.arity=\\\"unary\\\",this.right=expression(150),this}),prefix(\\\"...\\\",function(){return state.inES6(!0)||warning(\\\"W119\\\",this,\\\"spread/rest operator\\\",\\\"6\\\"),state.tokens.next.identifier||\\\"(string)\\\"===state.tokens.next.type||checkPunctuators(state.tokens.next,[\\\"[\\\",\\\"(\\\"])||error(\\\"E030\\\",state.tokens.next,state.tokens.next.value),expression(150),this}),prefix(\\\"!\\\",function(){return this.arity=\\\"unary\\\",this.right=expression(150),this.right||quit(\\\"E041\\\",this.line||0),bang[this.right.id]===!0&&warning(\\\"W018\\\",this,\\\"!\\\"),this}),prefix(\\\"typeof\\\",function(){var p=expression(150);return this.first=this.right=p,p||quit(\\\"E041\\\",this.line||0,this.character||0),p.identifier&&(p.forgiveUndef=!0),this}),prefix(\\\"new\\\",function(){var mp=metaProperty(\\\"target\\\",function(){state.inES6(!0)||warning(\\\"W119\\\",state.tokens.prev,\\\"new.target\\\",\\\"6\\\");for(var inFunction,c=state.funct;c&&(inFunction=!c[\\\"(global)\\\"],c[\\\"(arrow)\\\"]);)c=c[\\\"(context)\\\"];inFunction||warning(\\\"W136\\\",state.tokens.prev,\\\"new.target\\\")});if(mp)return mp;var i,c=expression(155);if(c&&\\\"function\\\"!==c.id)if(c.identifier)switch(c[\\\"new\\\"]=!0,c.value){case\\\"Number\\\":case\\\"String\\\":case\\\"Boolean\\\":case\\\"Math\\\":case\\\"JSON\\\":warning(\\\"W053\\\",state.tokens.prev,c.value);break;case\\\"Symbol\\\":state.inES6()&&warning(\\\"W053\\\",state.tokens.prev,c.value);break;case\\\"Function\\\":state.option.evil||warning(\\\"W054\\\");break;case\\\"Date\\\":case\\\"RegExp\\\":case\\\"this\\\":break;default:\\\"function\\\"!==c.id&&(i=c.value.substr(0,1),state.option.newcap&&(\\\"A\\\">i||i>\\\"Z\\\")&&!state.funct[\\\"(scope)\\\"].isPredefined(c.value)&&warning(\\\"W055\\\",state.tokens.curr))}else\\\".\\\"!==c.id&&\\\"[\\\"!==c.id&&\\\"(\\\"!==c.id&&warning(\\\"W056\\\",state.tokens.curr);else state.option.supernew||warning(\\\"W057\\\",this);return\\\"(\\\"===state.tokens.next.id||state.option.supernew||warning(\\\"W058\\\",state.tokens.curr,state.tokens.curr.value),this.first=this.right=c,this}),state.syntax[\\\"new\\\"].exps=!0,prefix(\\\"void\\\").exps=!0,infix(\\\".\\\",function(left,that){var m=identifier(!1,!0);return\\\"string\\\"==typeof m&&countMember(m),that.left=left,that.right=m,m&&\\\"hasOwnProperty\\\"===m&&\\\"=\\\"===state.tokens.next.value&&warning(\\\"W001\\\"),!left||\\\"arguments\\\"!==left.value||\\\"callee\\\"!==m&&\\\"caller\\\"!==m?state.option.evil||!left||\\\"document\\\"!==left.value||\\\"write\\\"!==m&&\\\"writeln\\\"!==m||warning(\\\"W060\\\",left):state.option.noarg?warning(\\\"W059\\\",left,m):state.isStrict()&&error(\\\"E008\\\"),state.option.evil||\\\"eval\\\"!==m&&\\\"execScript\\\"!==m||isGlobalEval(left,state)&&warning(\\\"W061\\\"),that},160,!0),infix(\\\"(\\\",function(left,that){state.option.immed&&left&&!left.immed&&\\\"function\\\"===left.id&&warning(\\\"W062\\\");var n=0,p=[];if(left&&\\\"(identifier)\\\"===left.type&&left.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&-1===\\\"Array Number String Boolean Date Object Error Symbol\\\".indexOf(left.value)&&(\\\"Math\\\"===left.value?warning(\\\"W063\\\",left):state.option.newcap&&warning(\\\"W064\\\",left)),\\\")\\\"!==state.tokens.next.id)for(;p[p.length]=expression(10),n+=1,\\\",\\\"===state.tokens.next.id;)comma();return advance(\\\")\\\"),\\\"object\\\"==typeof left&&(state.inES5()||\\\"parseInt\\\"!==left.value||1!==n||warning(\\\"W065\\\",state.tokens.curr),state.option.evil||(\\\"eval\\\"===left.value||\\\"Function\\\"===left.value||\\\"execScript\\\"===left.value?(warning(\\\"W061\\\",left),p[0]&&\\\"(string)\\\"===[0].id&&addInternalSrc(left,p[0].value)):!p[0]||\\\"(string)\\\"!==p[0].id||\\\"setTimeout\\\"!==left.value&&\\\"setInterval\\\"!==left.value?!p[0]||\\\"(string)\\\"!==p[0].id||\\\".\\\"!==left.value||\\\"window\\\"!==left.left.value||\\\"setTimeout\\\"!==left.right&&\\\"setInterval\\\"!==left.right||(warning(\\\"W066\\\",left),addInternalSrc(left,p[0].value)):(warning(\\\"W066\\\",left),addInternalSrc(left,p[0].value))),left.identifier||\\\".\\\"===left.id||\\\"[\\\"===left.id||\\\"=>\\\"===left.id||\\\"(\\\"===left.id||\\\"&&\\\"===left.id||\\\"||\\\"===left.id||\\\"?\\\"===left.id||state.inES6()&&left[\\\"(name)\\\"]||warning(\\\"W067\\\",that)),that.left=left,that},155,!0).exps=!0,prefix(\\\"(\\\",function(){var pn1,ret,triggerFnExpr,first,last,pn=state.tokens.next,i=-1,parens=1,opening=state.tokens.curr,preceeding=state.tokens.prev,isNecessary=!state.option.singleGroups;do\\\"(\\\"===pn.value?parens+=1:\\\")\\\"===pn.value&&(parens-=1),i+=1,pn1=pn,pn=peek(i);while((0!==parens||\\\")\\\"!==pn1.value)&&\\\";\\\"!==pn.value&&\\\"(end)\\\"!==pn.type);if(\\\"function\\\"===state.tokens.next.id&&(triggerFnExpr=state.tokens.next.immed=!0),\\\"=>\\\"===pn.value)return doFunction({type:\\\"arrow\\\",parsedOpening:!0});var exprs=[];if(\\\")\\\"!==state.tokens.next.id)for(;exprs.push(expression(10)),\\\",\\\"===state.tokens.next.id;)state.option.nocomma&&warning(\\\"W127\\\"),comma();return advance(\\\")\\\",this),state.option.immed&&exprs[0]&&\\\"function\\\"===exprs[0].id&&\\\"(\\\"!==state.tokens.next.id&&\\\".\\\"!==state.tokens.next.id&&\\\"[\\\"!==state.tokens.next.id&&warning(\\\"W068\\\",this),exprs.length?(exprs.length>1?(ret=Object.create(state.syntax[\\\",\\\"]),ret.exprs=exprs,first=exprs[0],last=exprs[exprs.length-1],isNecessary||(isNecessary=preceeding.assign||preceeding.delim)):(ret=first=last=exprs[0],isNecessary||(isNecessary=opening.beginsStmt&&(\\\"{\\\"===ret.id||triggerFnExpr||isFunctor(ret))||triggerFnExpr&&(!isEndOfExpr()||\\\"}\\\"!==state.tokens.prev.id)||isFunctor(ret)&&!isEndOfExpr()||\\\"{\\\"===ret.id&&\\\"=>\\\"===preceeding.id||\\\"(number)\\\"===ret.type&&checkPunctuator(pn,\\\".\\\")&&/^\\\\d+$/.test(ret.value))),ret&&(!isNecessary&&(first.left||first.right||ret.exprs)&&(isNecessary=!isBeginOfExpr(preceeding)&&first.lbp<=preceeding.lbp||!isEndOfExpr()&&last.lbp\\\"),infix(\\\"[\\\",function(left,that){var s,e=expression(10);return e&&\\\"(string)\\\"===e.type&&(state.option.evil||\\\"eval\\\"!==e.value&&\\\"execScript\\\"!==e.value||isGlobalEval(left,state)&&warning(\\\"W061\\\"),countMember(e.value),!state.option.sub&®.identifier.test(e.value)&&(s=state.syntax[e.value],s&&isReserved(s)||warning(\\\"W069\\\",state.tokens.prev,e.value))),advance(\\\"]\\\",that),e&&\\\"hasOwnProperty\\\"===e.value&&\\\"=\\\"===state.tokens.next.value&&warning(\\\"W001\\\"),that.left=left,that.right=e,that},160,!0),prefix(\\\"[\\\",function(){var blocktype=lookupBlockType();if(blocktype.isCompArray)return state.option.esnext||state.inMoz()||warning(\\\"W118\\\",state.tokens.curr,\\\"array comprehension\\\"),comprehensiveArrayExpression();if(blocktype.isDestAssign)return this.destructAssign=destructuringPattern({openingParsed:!0,assignment:!0}),this;var b=state.tokens.curr.line!==startLine(state.tokens.next);for(this.first=[],b&&(indent+=state.option.indent,state.tokens.next.from===indent+state.option.indent&&(indent+=state.option.indent));\\\"(end)\\\"!==state.tokens.next.id;){for(;\\\",\\\"===state.tokens.next.id;){if(!state.option.elision){if(state.inES5()){warning(\\\"W128\\\");do advance(\\\",\\\");while(\\\",\\\"===state.tokens.next.id);continue}warning(\\\"W070\\\")}advance(\\\",\\\")}if(\\\"]\\\"===state.tokens.next.id)break;if(this.first.push(expression(10)),\\\",\\\"!==state.tokens.next.id)break;if(comma({allowTrailing:!0}),\\\"]\\\"===state.tokens.next.id&&!state.inES5()){warning(\\\"W070\\\",state.tokens.curr);break}}return b&&(indent-=state.option.indent),advance(\\\"]\\\",this),this}),function(x){x.nud=function(){var b,f,i,p,t,nextVal,isGeneratorMethod=!1,props=Object.create(null);b=state.tokens.curr.line!==startLine(state.tokens.next),b&&(indent+=state.option.indent,state.tokens.next.from===indent+state.option.indent&&(indent+=state.option.indent));var blocktype=lookupBlockType();if(blocktype.isDestAssign)return this.destructAssign=destructuringPattern({openingParsed:!0,assignment:!0}),this;for(;\\\"}\\\"!==state.tokens.next.id;){if(nextVal=state.tokens.next.value,!state.tokens.next.identifier||\\\",\\\"!==peekIgnoreEOL().id&&\\\"}\\\"!==peekIgnoreEOL().id)if(\\\":\\\"===peek().id||\\\"get\\\"!==nextVal&&\\\"set\\\"!==nextVal){if(\\\"*\\\"===state.tokens.next.value&&\\\"(punctuator)\\\"===state.tokens.next.type?(state.inES6()||warning(\\\"W104\\\",state.tokens.next,\\\"generator functions\\\",\\\"6\\\"),advance(\\\"*\\\"),isGeneratorMethod=!0):isGeneratorMethod=!1,\\\"[\\\"===state.tokens.next.id)i=computedPropertyName(),state.nameStack.set(i);else if(state.nameStack.set(state.tokens.next),i=propertyName(),saveProperty(props,i,state.tokens.next),\\\"string\\\"!=typeof i)break;\\\"(\\\"===state.tokens.next.value?(state.inES6()||warning(\\\"W104\\\",state.tokens.curr,\\\"concise methods\\\",\\\"6\\\"),doFunction({type:isGeneratorMethod?\\\"generator\\\":null})):(advance(\\\":\\\"),expression(10))}else advance(nextVal),state.inES5()||error(\\\"E034\\\"),i=propertyName(),i||state.inES6()||error(\\\"E035\\\"),i&&saveAccessor(nextVal,props,i,state.tokens.curr),t=state.tokens.next,f=doFunction(),p=f[\\\"(params)\\\"],\\\"get\\\"===nextVal&&i&&p?warning(\\\"W076\\\",t,p[0],i):\\\"set\\\"!==nextVal||!i||p&&1===p.length||warning(\\\"W077\\\",t,i);else state.inES6()||warning(\\\"W104\\\",state.tokens.next,\\\"object short notation\\\",\\\"6\\\"),i=propertyName(!0),saveProperty(props,i,state.tokens.next),expression(10);if(countMember(i),\\\",\\\"!==state.tokens.next.id)break;comma({allowTrailing:!0,property:!0}),\\\",\\\"===state.tokens.next.id?warning(\\\"W070\\\",state.tokens.curr):\\\"}\\\"!==state.tokens.next.id||state.inES5()||warning(\\\"W070\\\",state.tokens.curr)}return b&&(indent-=state.option.indent),advance(\\\"}\\\",this),checkProperties(props),this},x.fud=function(){error(\\\"E036\\\",state.tokens.curr)}}(delim(\\\"{\\\"));var conststatement=stmt(\\\"const\\\",function(context){return blockVariableStatement(\\\"const\\\",this,context)});conststatement.exps=!0;var letstatement=stmt(\\\"let\\\",function(context){return blockVariableStatement(\\\"let\\\",this,context)});letstatement.exps=!0;var varstatement=stmt(\\\"var\\\",function(context){var tokens,lone,value,prefix=context&&context.prefix,inexport=context&&context.inexport,implied=context&&context.implied,report=!(context&&context.ignore);for(this.first=[];;){var names=[];_.contains([\\\"{\\\",\\\"[\\\"],state.tokens.next.value)?(tokens=destructuringPattern(),lone=!1):(tokens=[{id:identifier(),token:state.tokens.curr}],lone=!0),prefix&&implied||!report||!state.option.varstmt||warning(\\\"W132\\\",this),this.first=this.first.concat(names);for(var t in tokens)tokens.hasOwnProperty(t)&&(t=tokens[t],!implied&&state.funct[\\\"(global)\\\"]&&(predefined[t.id]===!1?warning(\\\"W079\\\",t.token,t.id):state.option.futurehostile===!1&&(!state.inES5()&&vars.ecmaIdentifiers[5][t.id]===!1||!state.inES6()&&vars.ecmaIdentifiers[6][t.id]===!1)&&warning(\\\"W129\\\",t.token,t.id)),t.id&&(\\\"for\\\"===implied?(state.funct[\\\"(scope)\\\"].has(t.id)||report&&warning(\\\"W088\\\",t.token,t.id),state.funct[\\\"(scope)\\\"].block.use(t.id,t.token)):(state.funct[\\\"(scope)\\\"].addlabel(t.id,{type:\\\"var\\\",token:t.token}),lone&&inexport&&state.funct[\\\"(scope)\\\"].setExported(t.id,t.token)),names.push(t.token)));if(\\\"=\\\"===state.tokens.next.id&&(state.nameStack.set(state.tokens.curr),advance(\\\"=\\\"),prefix||!report||state.funct[\\\"(loopage)\\\"]||\\\"undefined\\\"!==state.tokens.next.id||warning(\\\"W080\\\",state.tokens.prev,state.tokens.prev.value),\\\"=\\\"===peek(0).id&&state.tokens.next.identifier&&(!prefix&&report&&!state.funct[\\\"(params)\\\"]||-1===state.funct[\\\"(params)\\\"].indexOf(state.tokens.next.value))&&warning(\\\"W120\\\",state.tokens.next,state.tokens.next.value),value=expression(prefix?120:10),lone?tokens[0].first=value:destructuringPatternMatch(names,value)),\\\",\\\"!==state.tokens.next.id)break;comma()}return this});varstatement.exps=!0,blockstmt(\\\"class\\\",function(){return classdef.call(this,!0)}),blockstmt(\\\"function\\\",function(context){var inexport=context&&context.inexport,generator=!1;\\\"*\\\"===state.tokens.next.value&&(advance(\\\"*\\\"),state.inES6({strict:!0})?generator=!0:warning(\\\"W119\\\",state.tokens.curr,\\\"function*\\\",\\\"6\\\")),inblock&&warning(\\\"W082\\\",state.tokens.curr);var i=optionalidentifier();return state.funct[\\\"(scope)\\\"].addlabel(i,{type:\\\"function\\\",token:state.tokens.curr}),void 0===i?warning(\\\"W025\\\"):inexport&&state.funct[\\\"(scope)\\\"].setExported(i,state.tokens.prev),doFunction({name:i,statement:this,type:generator?\\\"generator\\\":null,ignoreLoopFunc:inblock}),\\\"(\\\"===state.tokens.next.id&&state.tokens.next.line===state.tokens.curr.line&&error(\\\"E039\\\"),this}),prefix(\\\"function\\\",function(){var generator=!1;\\\"*\\\"===state.tokens.next.value&&(state.inES6()||warning(\\\"W119\\\",state.tokens.curr,\\\"function*\\\",\\\"6\\\"),advance(\\\"*\\\"),generator=!0);var i=optionalidentifier();return doFunction({name:i,type:generator?\\\"generator\\\":null}),this}),blockstmt(\\\"if\\\",function(){var t=state.tokens.next;increaseComplexityCount(),state.condition=!0,advance(\\\"(\\\");var expr=expression(0);checkCondAssignment(expr);var forinifcheck=null;state.option.forin&&state.forinifcheckneeded&&(state.forinifcheckneeded=!1,forinifcheck=state.forinifchecks[state.forinifchecks.length-1],forinifcheck.type=\\\"(punctuator)\\\"===expr.type&&\\\"!\\\"===expr.value?\\\"(negative)\\\":\\\"(positive)\\\"),advance(\\\")\\\",t),state.condition=!1;var s=block(!0,!0);return forinifcheck&&\\\"(negative)\\\"===forinifcheck.type&&s&&s[0]&&\\\"(identifier)\\\"===s[0].type&&\\\"continue\\\"===s[0].value&&(forinifcheck.type=\\\"(negative-with-continue)\\\"),\\\"else\\\"===state.tokens.next.id&&(advance(\\\"else\\\"),\\\"if\\\"===state.tokens.next.id||\\\"switch\\\"===state.tokens.next.id?statement():block(!0,!0)),this}),blockstmt(\\\"try\\\",function(){function doCatch(){if(advance(\\\"catch\\\"),advance(\\\"(\\\"),state.funct[\\\"(scope)\\\"].stack(\\\"catchparams\\\"),checkPunctuators(state.tokens.next,[\\\"[\\\",\\\"{\\\"])){var tokens=destructuringPattern();_.each(tokens,function(token){token.id&&state.funct[\\\"(scope)\\\"].addParam(token.id,token,\\\"exception\\\")})}else\\\"(identifier)\\\"!==state.tokens.next.type?warning(\\\"E030\\\",state.tokens.next,state.tokens.next.value):state.funct[\\\"(scope)\\\"].addParam(identifier(),state.tokens.curr,\\\"exception\\\");\\\"if\\\"===state.tokens.next.value&&(state.inMoz()||warning(\\\"W118\\\",state.tokens.curr,\\\"catch filter\\\"),advance(\\\"if\\\"),expression(0)),advance(\\\")\\\"),block(!1),state.funct[\\\"(scope)\\\"].unstack()}var b;for(block(!0);\\\"catch\\\"===state.tokens.next.id;)increaseComplexityCount(),b&&!state.inMoz()&&warning(\\\"W118\\\",state.tokens.next,\\\"multiple catch blocks\\\"),doCatch(),b=!0;return\\\"finally\\\"===state.tokens.next.id?(advance(\\\"finally\\\"),block(!0),void 0):(b||error(\\\"E021\\\",state.tokens.next,\\\"catch\\\",state.tokens.next.value),this)}),blockstmt(\\\"while\\\",function(){var t=state.tokens.next;return state.funct[\\\"(breakage)\\\"]+=1,state.funct[\\\"(loopage)\\\"]+=1,increaseComplexityCount(),advance(\\\"(\\\"),checkCondAssignment(expression(0)),advance(\\\")\\\",t),block(!0,!0),state.funct[\\\"(breakage)\\\"]-=1,state.funct[\\\"(loopage)\\\"]-=1,this}).labelled=!0,blockstmt(\\\"with\\\",function(){var t=state.tokens.next;return state.isStrict()?error(\\\"E010\\\",state.tokens.curr):state.option.withstmt||warning(\\\"W085\\\",state.tokens.curr),advance(\\\"(\\\"),expression(0),advance(\\\")\\\",t),block(!0,!0),this}),blockstmt(\\\"switch\\\",function(){var t=state.tokens.next,g=!1,noindent=!1;\\nfor(state.funct[\\\"(breakage)\\\"]+=1,advance(\\\"(\\\"),checkCondAssignment(expression(0)),advance(\\\")\\\",t),t=state.tokens.next,advance(\\\"{\\\"),state.tokens.next.from===indent&&(noindent=!0),noindent||(indent+=state.option.indent),this.cases=[];;)switch(state.tokens.next.id){case\\\"case\\\":switch(state.funct[\\\"(verb)\\\"]){case\\\"yield\\\":case\\\"break\\\":case\\\"case\\\":case\\\"continue\\\":case\\\"return\\\":case\\\"switch\\\":case\\\"throw\\\":break;default:state.tokens.curr.caseFallsThrough||warning(\\\"W086\\\",state.tokens.curr,\\\"case\\\")}advance(\\\"case\\\"),this.cases.push(expression(0)),increaseComplexityCount(),g=!0,advance(\\\":\\\"),state.funct[\\\"(verb)\\\"]=\\\"case\\\";break;case\\\"default\\\":switch(state.funct[\\\"(verb)\\\"]){case\\\"yield\\\":case\\\"break\\\":case\\\"continue\\\":case\\\"return\\\":case\\\"throw\\\":break;default:this.cases.length&&(state.tokens.curr.caseFallsThrough||warning(\\\"W086\\\",state.tokens.curr,\\\"default\\\"))}advance(\\\"default\\\"),g=!0,advance(\\\":\\\");break;case\\\"}\\\":return noindent||(indent-=state.option.indent),advance(\\\"}\\\",t),state.funct[\\\"(breakage)\\\"]-=1,state.funct[\\\"(verb)\\\"]=void 0,void 0;case\\\"(end)\\\":return error(\\\"E023\\\",state.tokens.next,\\\"}\\\"),void 0;default:if(indent+=state.option.indent,g)switch(state.tokens.curr.id){case\\\",\\\":return error(\\\"E040\\\"),void 0;case\\\":\\\":g=!1,statements();break;default:return error(\\\"E025\\\",state.tokens.curr),void 0}else{if(\\\":\\\"!==state.tokens.curr.id)return error(\\\"E021\\\",state.tokens.next,\\\"case\\\",state.tokens.next.value),void 0;advance(\\\":\\\"),error(\\\"E024\\\",state.tokens.curr,\\\":\\\"),statements()}indent-=state.option.indent}return this}).labelled=!0,stmt(\\\"debugger\\\",function(){return state.option.debug||warning(\\\"W087\\\",this),this}).exps=!0,function(){var x=stmt(\\\"do\\\",function(){state.funct[\\\"(breakage)\\\"]+=1,state.funct[\\\"(loopage)\\\"]+=1,increaseComplexityCount(),this.first=block(!0,!0),advance(\\\"while\\\");var t=state.tokens.next;return advance(\\\"(\\\"),checkCondAssignment(expression(0)),advance(\\\")\\\",t),state.funct[\\\"(breakage)\\\"]-=1,state.funct[\\\"(loopage)\\\"]-=1,this});x.labelled=!0,x.exps=!0}(),blockstmt(\\\"for\\\",function(){var s,t=state.tokens.next,letscope=!1,foreachtok=null;\\\"each\\\"===t.value&&(foreachtok=t,advance(\\\"each\\\"),state.inMoz()||warning(\\\"W118\\\",state.tokens.curr,\\\"for each\\\")),increaseComplexityCount(),advance(\\\"(\\\");var nextop,comma,initializer,i=0,inof=[\\\"in\\\",\\\"of\\\"],level=0;checkPunctuators(state.tokens.next,[\\\"{\\\",\\\"[\\\"])&&++level;do{if(nextop=peek(i),++i,checkPunctuators(nextop,[\\\"{\\\",\\\"[\\\"])?++level:checkPunctuators(nextop,[\\\"}\\\",\\\"]\\\"])&&--level,0>level)break;0===level&&(!comma&&checkPunctuator(nextop,\\\",\\\")?comma=nextop:!initializer&&checkPunctuator(nextop,\\\"=\\\")&&(initializer=nextop))}while(level>0||!_.contains(inof,nextop.value)&&\\\";\\\"!==nextop.value&&\\\"(end)\\\"!==nextop.type);if(_.contains(inof,nextop.value)){state.inES6()||\\\"of\\\"!==nextop.value||warning(\\\"W104\\\",nextop,\\\"for of\\\",\\\"6\\\");var ok=!(initializer||comma);if(initializer&&error(\\\"W133\\\",comma,nextop.value,\\\"initializer is forbidden\\\"),comma&&error(\\\"W133\\\",comma,nextop.value,\\\"more than one ForBinding\\\"),\\\"var\\\"===state.tokens.next.id?(advance(\\\"var\\\"),state.tokens.curr.fud({prefix:!0})):\\\"let\\\"===state.tokens.next.id||\\\"const\\\"===state.tokens.next.id?(advance(state.tokens.next.id),letscope=!0,state.funct[\\\"(scope)\\\"].stack(),state.tokens.curr.fud({prefix:!0})):Object.create(varstatement).fud({prefix:!0,implied:\\\"for\\\",ignore:!ok}),advance(nextop.value),expression(20),advance(\\\")\\\",t),\\\"in\\\"===nextop.value&&state.option.forin&&(state.forinifcheckneeded=!0,void 0===state.forinifchecks&&(state.forinifchecks=[]),state.forinifchecks.push({type:\\\"(none)\\\"})),state.funct[\\\"(breakage)\\\"]+=1,state.funct[\\\"(loopage)\\\"]+=1,s=block(!0,!0),\\\"in\\\"===nextop.value&&state.option.forin){if(state.forinifchecks&&state.forinifchecks.length>0){var check=state.forinifchecks.pop();(s&&s.length>0&&(\\\"object\\\"!=typeof s[0]||\\\"if\\\"!==s[0].value)||\\\"(positive)\\\"===check.type&&s.length>1||\\\"(negative)\\\"===check.type)&&warning(\\\"W089\\\",this)}state.forinifcheckneeded=!1}state.funct[\\\"(breakage)\\\"]-=1,state.funct[\\\"(loopage)\\\"]-=1}else{if(foreachtok&&error(\\\"E045\\\",foreachtok),\\\";\\\"!==state.tokens.next.id)if(\\\"var\\\"===state.tokens.next.id)advance(\\\"var\\\"),state.tokens.curr.fud();else if(\\\"let\\\"===state.tokens.next.id)advance(\\\"let\\\"),letscope=!0,state.funct[\\\"(scope)\\\"].stack(),state.tokens.curr.fud();else for(;expression(0,\\\"for\\\"),\\\",\\\"===state.tokens.next.id;)comma();if(nolinebreak(state.tokens.curr),advance(\\\";\\\"),state.funct[\\\"(loopage)\\\"]+=1,\\\";\\\"!==state.tokens.next.id&&checkCondAssignment(expression(0)),nolinebreak(state.tokens.curr),advance(\\\";\\\"),\\\";\\\"===state.tokens.next.id&&error(\\\"E021\\\",state.tokens.next,\\\")\\\",\\\";\\\"),\\\")\\\"!==state.tokens.next.id)for(;expression(0,\\\"for\\\"),\\\",\\\"===state.tokens.next.id;)comma();advance(\\\")\\\",t),state.funct[\\\"(breakage)\\\"]+=1,block(!0,!0),state.funct[\\\"(breakage)\\\"]-=1,state.funct[\\\"(loopage)\\\"]-=1}return letscope&&state.funct[\\\"(scope)\\\"].unstack(),this}).labelled=!0,stmt(\\\"break\\\",function(){var v=state.tokens.next.value;return state.option.asi||nolinebreak(this),\\\";\\\"===state.tokens.next.id||state.tokens.next.reach||state.tokens.curr.line!==startLine(state.tokens.next)?0===state.funct[\\\"(breakage)\\\"]&&warning(\\\"W052\\\",state.tokens.next,this.value):(state.funct[\\\"(scope)\\\"].funct.hasBreakLabel(v)||warning(\\\"W090\\\",state.tokens.next,v),this.first=state.tokens.next,advance()),reachable(this),this}).exps=!0,stmt(\\\"continue\\\",function(){var v=state.tokens.next.value;return 0===state.funct[\\\"(breakage)\\\"]&&warning(\\\"W052\\\",state.tokens.next,this.value),state.funct[\\\"(loopage)\\\"]||warning(\\\"W052\\\",state.tokens.next,this.value),state.option.asi||nolinebreak(this),\\\";\\\"===state.tokens.next.id||state.tokens.next.reach||state.tokens.curr.line===startLine(state.tokens.next)&&(state.funct[\\\"(scope)\\\"].funct.hasBreakLabel(v)||warning(\\\"W090\\\",state.tokens.next,v),this.first=state.tokens.next,advance()),reachable(this),this}).exps=!0,stmt(\\\"return\\\",function(){return this.line===startLine(state.tokens.next)?\\\";\\\"===state.tokens.next.id||state.tokens.next.reach||(this.first=expression(0),!this.first||\\\"(punctuator)\\\"!==this.first.type||\\\"=\\\"!==this.first.value||this.first.paren||state.option.boss||warningAt(\\\"W093\\\",this.first.line,this.first.character)):\\\"(punctuator)\\\"===state.tokens.next.type&&[\\\"[\\\",\\\"{\\\",\\\"+\\\",\\\"-\\\"].indexOf(state.tokens.next.value)>-1&&nolinebreak(this),reachable(this),this}).exps=!0,function(x){x.exps=!0,x.lbp=25}(prefix(\\\"yield\\\",function(){var prev=state.tokens.prev;state.inES6(!0)&&!state.funct[\\\"(generator)\\\"]?\\\"(catch)\\\"===state.funct[\\\"(name)\\\"]&&state.funct[\\\"(context)\\\"][\\\"(generator)\\\"]||error(\\\"E046\\\",state.tokens.curr,\\\"yield\\\"):state.inES6()||warning(\\\"W104\\\",state.tokens.curr,\\\"yield\\\",\\\"6\\\"),state.funct[\\\"(generator)\\\"]=\\\"yielded\\\";var delegatingYield=!1;return\\\"*\\\"===state.tokens.next.value&&(delegatingYield=!0,advance(\\\"*\\\")),this.line!==startLine(state.tokens.next)&&state.inMoz()?state.option.asi||nolinebreak(this):((delegatingYield||\\\";\\\"!==state.tokens.next.id&&!state.option.asi&&!state.tokens.next.reach&&state.tokens.next.nud)&&(nobreaknonadjacent(state.tokens.curr,state.tokens.next),this.first=expression(10),\\\"(punctuator)\\\"!==this.first.type||\\\"=\\\"!==this.first.value||this.first.paren||state.option.boss||warningAt(\\\"W093\\\",this.first.line,this.first.character)),state.inMoz()&&\\\")\\\"!==state.tokens.next.id&&(prev.lbp>30||!prev.assign&&!isEndOfExpr()||\\\"yield\\\"===prev.id)&&error(\\\"E050\\\",this)),this})),stmt(\\\"throw\\\",function(){return nolinebreak(this),this.first=expression(20),reachable(this),this}).exps=!0,stmt(\\\"import\\\",function(){if(state.inES6()||warning(\\\"W119\\\",state.tokens.curr,\\\"import\\\",\\\"6\\\"),\\\"(string)\\\"===state.tokens.next.type)return advance(\\\"(string)\\\"),this;if(state.tokens.next.identifier){if(this.name=identifier(),state.funct[\\\"(scope)\\\"].addlabel(this.name,{type:\\\"const\\\",token:state.tokens.curr}),\\\",\\\"!==state.tokens.next.value)return advance(\\\"from\\\"),advance(\\\"(string)\\\"),this;advance(\\\",\\\")}if(\\\"*\\\"===state.tokens.next.id)advance(\\\"*\\\"),advance(\\\"as\\\"),state.tokens.next.identifier&&(this.name=identifier(),state.funct[\\\"(scope)\\\"].addlabel(this.name,{type:\\\"const\\\",token:state.tokens.curr}));else for(advance(\\\"{\\\");;){if(\\\"}\\\"===state.tokens.next.value){advance(\\\"}\\\");break}var importName;if(\\\"default\\\"===state.tokens.next.type?(importName=\\\"default\\\",advance(\\\"default\\\")):importName=identifier(),\\\"as\\\"===state.tokens.next.value&&(advance(\\\"as\\\"),importName=identifier()),state.funct[\\\"(scope)\\\"].addlabel(importName,{type:\\\"const\\\",token:state.tokens.curr}),\\\",\\\"!==state.tokens.next.value){if(\\\"}\\\"===state.tokens.next.value){advance(\\\"}\\\");break}error(\\\"E024\\\",state.tokens.next,state.tokens.next.value);break}advance(\\\",\\\")}return advance(\\\"from\\\"),advance(\\\"(string)\\\"),this}).exps=!0,stmt(\\\"export\\\",function(){var token,identifier,ok=!0;if(state.inES6()||(warning(\\\"W119\\\",state.tokens.curr,\\\"export\\\",\\\"6\\\"),ok=!1),state.funct[\\\"(scope)\\\"].block.isGlobal()||(error(\\\"E053\\\",state.tokens.curr),ok=!1),\\\"*\\\"===state.tokens.next.value)return advance(\\\"*\\\"),advance(\\\"from\\\"),advance(\\\"(string)\\\"),this;if(\\\"default\\\"===state.tokens.next.type){state.nameStack.set(state.tokens.next),advance(\\\"default\\\");var exportType=state.tokens.next.id;return(\\\"function\\\"===exportType||\\\"class\\\"===exportType)&&(this.block=!0),token=peek(),expression(10),identifier=token.value,this.block&&(state.funct[\\\"(scope)\\\"].addlabel(identifier,{type:exportType,token:token}),state.funct[\\\"(scope)\\\"].setExported(identifier,token)),this}if(\\\"{\\\"===state.tokens.next.value){advance(\\\"{\\\");for(var exportedTokens=[];;){if(state.tokens.next.identifier||error(\\\"E030\\\",state.tokens.next,state.tokens.next.value),advance(),exportedTokens.push(state.tokens.curr),\\\"as\\\"===state.tokens.next.value&&(advance(\\\"as\\\"),state.tokens.next.identifier||error(\\\"E030\\\",state.tokens.next,state.tokens.next.value),advance()),\\\",\\\"!==state.tokens.next.value){if(\\\"}\\\"===state.tokens.next.value){advance(\\\"}\\\");break}error(\\\"E024\\\",state.tokens.next,state.tokens.next.value);break}advance(\\\",\\\")}return\\\"from\\\"===state.tokens.next.value?(advance(\\\"from\\\"),advance(\\\"(string)\\\")):ok&&exportedTokens.forEach(function(token){state.funct[\\\"(scope)\\\"].setExported(token.value,token)}),this}if(\\\"var\\\"===state.tokens.next.id)advance(\\\"var\\\"),state.tokens.curr.fud({inexport:!0});else if(\\\"let\\\"===state.tokens.next.id)advance(\\\"let\\\"),state.tokens.curr.fud({inexport:!0});else if(\\\"const\\\"===state.tokens.next.id)advance(\\\"const\\\"),state.tokens.curr.fud({inexport:!0});else if(\\\"function\\\"===state.tokens.next.id)this.block=!0,advance(\\\"function\\\"),state.syntax[\\\"function\\\"].fud({inexport:!0});else if(\\\"class\\\"===state.tokens.next.id){this.block=!0,advance(\\\"class\\\");var classNameToken=state.tokens.next;state.syntax[\\\"class\\\"].fud(),state.funct[\\\"(scope)\\\"].setExported(classNameToken.value,classNameToken)}else error(\\\"E024\\\",state.tokens.next,state.tokens.next.value);return this}).exps=!0,FutureReservedWord(\\\"abstract\\\"),FutureReservedWord(\\\"boolean\\\"),FutureReservedWord(\\\"byte\\\"),FutureReservedWord(\\\"char\\\"),FutureReservedWord(\\\"class\\\",{es5:!0,nud:classdef}),FutureReservedWord(\\\"double\\\"),FutureReservedWord(\\\"enum\\\",{es5:!0}),FutureReservedWord(\\\"export\\\",{es5:!0}),FutureReservedWord(\\\"extends\\\",{es5:!0}),FutureReservedWord(\\\"final\\\"),FutureReservedWord(\\\"float\\\"),FutureReservedWord(\\\"goto\\\"),FutureReservedWord(\\\"implements\\\",{es5:!0,strictOnly:!0}),FutureReservedWord(\\\"import\\\",{es5:!0}),FutureReservedWord(\\\"int\\\"),FutureReservedWord(\\\"interface\\\",{es5:!0,strictOnly:!0}),FutureReservedWord(\\\"long\\\"),FutureReservedWord(\\\"native\\\"),FutureReservedWord(\\\"package\\\",{es5:!0,strictOnly:!0}),FutureReservedWord(\\\"private\\\",{es5:!0,strictOnly:!0}),FutureReservedWord(\\\"protected\\\",{es5:!0,strictOnly:!0}),FutureReservedWord(\\\"public\\\",{es5:!0,strictOnly:!0}),FutureReservedWord(\\\"short\\\"),FutureReservedWord(\\\"static\\\",{es5:!0,strictOnly:!0}),FutureReservedWord(\\\"super\\\",{es5:!0}),FutureReservedWord(\\\"synchronized\\\"),FutureReservedWord(\\\"transient\\\"),FutureReservedWord(\\\"volatile\\\");var lookupBlockType=function(){var pn,pn1,prev,i=-1,bracketStack=0,ret={};checkPunctuators(state.tokens.curr,[\\\"[\\\",\\\"{\\\"])&&(bracketStack+=1);do{if(prev=-1===i?state.tokens.curr:pn,pn=-1===i?state.tokens.next:peek(i),pn1=peek(i+1),i+=1,checkPunctuators(pn,[\\\"[\\\",\\\"{\\\"])?bracketStack+=1:checkPunctuators(pn,[\\\"]\\\",\\\"}\\\"])&&(bracketStack-=1),1===bracketStack&&pn.identifier&&\\\"for\\\"===pn.value&&!checkPunctuator(prev,\\\".\\\")){ret.isCompArray=!0,ret.notJson=!0;break}if(0===bracketStack&&checkPunctuators(pn,[\\\"}\\\",\\\"]\\\"])){if(\\\"=\\\"===pn1.value){ret.isDestAssign=!0,ret.notJson=!0;break}if(\\\".\\\"===pn1.value){ret.notJson=!0;break}}checkPunctuator(pn,\\\";\\\")&&(ret.isBlock=!0,ret.notJson=!0)}while(bracketStack>0&&\\\"(end)\\\"!==pn.id);return ret},arrayComprehension=function(){function declare(v){var l=_current.variables.filter(function(elt){return elt.value===v?(elt.undef=!1,v):void 0}).length;return 0!==l}function use(v){var l=_current.variables.filter(function(elt){return elt.value!==v||elt.undef?void 0:(elt.unused===!0&&(elt.unused=!1),v)}).length;return 0===l}var _current,CompArray=function(){this.mode=\\\"use\\\",this.variables=[]},_carrays=[];return{stack:function(){_current=new CompArray,_carrays.push(_current)},unstack:function(){_current.variables.filter(function(v){v.unused&&warning(\\\"W098\\\",v.token,v.raw_text||v.value),v.undef&&state.funct[\\\"(scope)\\\"].block.use(v.value,v.token)}),_carrays.splice(-1,1),_current=_carrays[_carrays.length-1]},setState:function(s){_.contains([\\\"use\\\",\\\"define\\\",\\\"generate\\\",\\\"filter\\\"],s)&&(_current.mode=s)},check:function(v){return _current?_current&&\\\"use\\\"===_current.mode?(use(v)&&_current.variables.push({funct:state.funct,token:state.tokens.curr,value:v,undef:!0,unused:!1}),!0):_current&&\\\"define\\\"===_current.mode?(declare(v)||_current.variables.push({funct:state.funct,token:state.tokens.curr,value:v,undef:!1,unused:!0}),!0):_current&&\\\"generate\\\"===_current.mode?(state.funct[\\\"(scope)\\\"].block.use(v,state.tokens.curr),!0):_current&&\\\"filter\\\"===_current.mode?(use(v)&&state.funct[\\\"(scope)\\\"].block.use(v,state.tokens.curr),!0):!1:void 0}}},escapeRegex=function(str){return str.replace(/[-\\\\/\\\\\\\\^$*+?.()|[\\\\]{}]/g,\\\"\\\\\\\\$&\\\")},itself=function(s,o,g){function each(obj,cb){obj&&(Array.isArray(obj)||\\\"object\\\"!=typeof obj||(obj=Object.keys(obj)),obj.forEach(cb))}var i,k,x,reIgnoreStr,reIgnore,optionKeys,newOptionObj={},newIgnoredObj={};o=_.clone(o),state.reset(),o&&o.scope?JSHINT.scope=o.scope:(JSHINT.errors=[],JSHINT.undefs=[],JSHINT.internals=[],JSHINT.blacklist={},JSHINT.scope=\\\"(main)\\\"),predefined=Object.create(null),combine(predefined,vars.ecmaIdentifiers[3]),combine(predefined,vars.reservedVars),combine(predefined,g||{}),declared=Object.create(null);var exported=Object.create(null);if(o)for(each(o.predef||null,function(item){var slice,prop;\\\"-\\\"===item[0]?(slice=item.slice(1),JSHINT.blacklist[slice]=slice,delete predefined[slice]):(prop=Object.getOwnPropertyDescriptor(o.predef,item),predefined[item]=prop?prop.value:!1)}),each(o.exported||null,function(item){exported[item]=!0}),delete o.predef,delete o.exported,optionKeys=Object.keys(o),x=0;optionKeys.length>x;x++)if(/^-W\\\\d{3}$/g.test(optionKeys[x]))newIgnoredObj[optionKeys[x].slice(1)]=!0;else{var optionKey=optionKeys[x];newOptionObj[optionKey]=o[optionKey],(\\\"esversion\\\"===optionKey&&5===o[optionKey]||\\\"es5\\\"===optionKey&&o[optionKey])&&warning(\\\"I003\\\"),\\\"newcap\\\"===optionKeys[x]&&o[optionKey]===!1&&(newOptionObj[\\\"(explicitNewcap)\\\"]=!0)}state.option=newOptionObj,state.ignored=newIgnoredObj,state.option.indent=state.option.indent||4,state.option.maxerr=state.option.maxerr||50,indent=1;var scopeManagerInst=scopeManager(state,predefined,exported,declared);if(scopeManagerInst.on(\\\"warning\\\",function(ev){warning.apply(null,[ev.code,ev.token].concat(ev.data))}),scopeManagerInst.on(\\\"error\\\",function(ev){error.apply(null,[ev.code,ev.token].concat(ev.data))}),state.funct=functor(\\\"(global)\\\",null,{\\\"(global)\\\":!0,\\\"(scope)\\\":scopeManagerInst,\\\"(comparray)\\\":arrayComprehension(),\\\"(metrics)\\\":createMetrics(state.tokens.next)}),functions=[state.funct],urls=[],stack=null,member={},membersOnly=null,inblock=!1,lookahead=[],!isString(s)&&!Array.isArray(s))return errorAt(\\\"E004\\\",0),!1;api={get isJSON(){return state.jsonMode},getOption:function(name){return state.option[name]||null},getCache:function(name){return state.cache[name]},setCache:function(name,value){state.cache[name]=value},warn:function(code,data){warningAt.apply(null,[code,data.line,data.char].concat(data.data))},on:function(names,listener){names.split(\\\" \\\").forEach(function(name){emitter.on(name,listener)}.bind(this))}},emitter.removeAllListeners(),(extraModules||[]).forEach(function(func){func(api)}),state.tokens.prev=state.tokens.curr=state.tokens.next=state.syntax[\\\"(begin)\\\"],o&&o.ignoreDelimiters&&(Array.isArray(o.ignoreDelimiters)||(o.ignoreDelimiters=[o.ignoreDelimiters]),o.ignoreDelimiters.forEach(function(delimiterPair){delimiterPair.start&&delimiterPair.end&&(reIgnoreStr=escapeRegex(delimiterPair.start)+\\\"[\\\\\\\\s\\\\\\\\S]*?\\\"+escapeRegex(delimiterPair.end),reIgnore=RegExp(reIgnoreStr,\\\"ig\\\"),s=s.replace(reIgnore,function(match){return match.replace(/./g,\\\" \\\")}))})),lex=new Lexer(s),lex.on(\\\"warning\\\",function(ev){warningAt.apply(null,[ev.code,ev.line,ev.character].concat(ev.data))}),lex.on(\\\"error\\\",function(ev){errorAt.apply(null,[ev.code,ev.line,ev.character].concat(ev.data))}),lex.on(\\\"fatal\\\",function(ev){quit(\\\"E041\\\",ev.line,ev.from)}),lex.on(\\\"Identifier\\\",function(ev){emitter.emit(\\\"Identifier\\\",ev)}),lex.on(\\\"String\\\",function(ev){emitter.emit(\\\"String\\\",ev)}),lex.on(\\\"Number\\\",function(ev){emitter.emit(\\\"Number\\\",ev)}),lex.start();for(var name in o)_.has(o,name)&&checkOption(name,state.tokens.curr);assume(),combine(predefined,g||{}),comma.first=!0;try{switch(advance(),state.tokens.next.id){case\\\"{\\\":case\\\"[\\\":destructuringAssignOrJsonValue();break;default:directives(),state.directive[\\\"use strict\\\"]&&\\\"global\\\"!==state.option.strict&&warning(\\\"W097\\\",state.tokens.prev),statements()}\\\"(end)\\\"!==state.tokens.next.id&&quit(\\\"E041\\\",state.tokens.curr.line),state.funct[\\\"(scope)\\\"].unstack()}catch(err){if(!err||\\\"JSHintError\\\"!==err.name)throw err;var nt=state.tokens.next||{};JSHINT.errors.push({scope:\\\"(main)\\\",raw:err.raw,code:err.code,reason:err.message,line:err.line||nt.line,character:err.character||nt.from},null)}if(\\\"(main)\\\"===JSHINT.scope)for(o=o||{},i=0;JSHINT.internals.length>i;i+=1)k=JSHINT.internals[i],o.scope=k.elem,itself(k.value,o,g);return 0===JSHINT.errors.length};return itself.addModule=function(func){extraModules.push(func)},itself.addModule(style.register),itself.data=function(){var fu,f,i,j,n,globals,data={functions:[],options:state.option};itself.errors.length&&(data.errors=itself.errors),state.jsonMode&&(data.json=!0);var impliedGlobals=state.funct[\\\"(scope)\\\"].getImpliedGlobals();for(impliedGlobals.length>0&&(data.implieds=impliedGlobals),urls.length>0&&(data.urls=urls),globals=state.funct[\\\"(scope)\\\"].getUsedOrDefinedGlobals(),globals.length>0&&(data.globals=globals),i=1;functions.length>i;i+=1){for(f=functions[i],fu={},j=0;functionicity.length>j;j+=1)fu[functionicity[j]]=[];for(j=0;functionicity.length>j;j+=1)0===fu[functionicity[j]].length&&delete fu[functionicity[j]];fu.name=f[\\\"(name)\\\"],fu.param=f[\\\"(params)\\\"],fu.line=f[\\\"(line)\\\"],fu.character=f[\\\"(character)\\\"],fu.last=f[\\\"(last)\\\"],fu.lastcharacter=f[\\\"(lastcharacter)\\\"],fu.metrics={complexity:f[\\\"(metrics)\\\"].ComplexityCount,parameters:f[\\\"(metrics)\\\"].arity,statements:f[\\\"(metrics)\\\"].statementCount},data.functions.push(fu)}var unuseds=state.funct[\\\"(scope)\\\"].getUnuseds();unuseds.length>0&&(data.unused=unuseds);for(n in member)if(\\\"number\\\"==typeof member[n]){data.member=member;break}return data},itself.jshint=itself,itself}();\\\"object\\\"==typeof exports&&exports&&(exports.JSHINT=JSHINT)},{\\\"../lodash\\\":\\\"/node_modules/jshint/lodash.js\\\",\\\"./lex.js\\\":\\\"/node_modules/jshint/src/lex.js\\\",\\\"./messages.js\\\":\\\"/node_modules/jshint/src/messages.js\\\",\\\"./options.js\\\":\\\"/node_modules/jshint/src/options.js\\\",\\\"./reg.js\\\":\\\"/node_modules/jshint/src/reg.js\\\",\\\"./scope-manager.js\\\":\\\"/node_modules/jshint/src/scope-manager.js\\\",\\\"./state.js\\\":\\\"/node_modules/jshint/src/state.js\\\",\\\"./style.js\\\":\\\"/node_modules/jshint/src/style.js\\\",\\\"./vars.js\\\":\\\"/node_modules/jshint/src/vars.js\\\",events:\\\"/node_modules/browserify/node_modules/events/events.js\\\"}],\\\"/node_modules/jshint/src/lex.js\\\":[function(_dereq_,module,exports){\\\"use strict\\\";function asyncTrigger(){var _checks=[];return{push:function(fn){_checks.push(fn)},check:function(){for(var check=0;_checks.length>check;++check)_checks[check]();_checks.splice(0,_checks.length)}}}function Lexer(source){var lines=source;\\\"string\\\"==typeof lines&&(lines=lines.replace(/\\\\r\\\\n/g,\\\"\\\\n\\\").replace(/\\\\r/g,\\\"\\\\n\\\").split(\\\"\\\\n\\\")),lines[0]&&\\\"#!\\\"===lines[0].substr(0,2)&&(-1!==lines[0].indexOf(\\\"node\\\")&&(state.option.node=!0),lines[0]=\\\"\\\"),this.emitter=new events.EventEmitter,this.source=source,this.setLines(lines),this.prereg=!0,this.line=0,this.char=1,this.from=1,this.input=\\\"\\\",this.inComment=!1,this.context=[],this.templateStarts=[];for(var i=0;state.option.indent>i;i+=1)state.tab+=\\\" \\\";this.ignoreLinterErrors=!1}var _=_dereq_(\\\"../lodash\\\"),events=_dereq_(\\\"events\\\"),reg=_dereq_(\\\"./reg.js\\\"),state=_dereq_(\\\"./state.js\\\").state,unicodeData=_dereq_(\\\"../data/ascii-identifier-data.js\\\"),asciiIdentifierStartTable=unicodeData.asciiIdentifierStartTable,asciiIdentifierPartTable=unicodeData.asciiIdentifierPartTable,Token={Identifier:1,Punctuator:2,NumericLiteral:3,StringLiteral:4,Comment:5,Keyword:6,NullLiteral:7,BooleanLiteral:8,RegExp:9,TemplateHead:10,TemplateMiddle:11,TemplateTail:12,NoSubstTemplate:13},Context={Block:1,Template:2};Lexer.prototype={_lines:[],inContext:function(ctxType){return this.context.length>0&&this.context[this.context.length-1].type===ctxType},pushContext:function(ctxType){this.context.push({type:ctxType})},popContext:function(){return this.context.pop()},isContext:function(context){return this.context.length>0&&this.context[this.context.length-1]===context},currentContext:function(){return this.context.length>0&&this.context[this.context.length-1]},getLines:function(){return this._lines=state.lines,this._lines},setLines:function(val){this._lines=val,state.lines=this._lines},peek:function(i){return this.input.charAt(i||0)},skip:function(i){i=i||1,this.char+=i,this.input=this.input.slice(i)},on:function(names,listener){names.split(\\\" \\\").forEach(function(name){this.emitter.on(name,listener)}.bind(this))},trigger:function(){this.emitter.emit.apply(this.emitter,Array.prototype.slice.call(arguments))},triggerAsync:function(type,args,checks,fn){checks.push(function(){fn()&&this.trigger(type,args)}.bind(this))},scanPunctuator:function(){var ch2,ch3,ch4,ch1=this.peek();switch(ch1){case\\\".\\\":if(/^[0-9]$/.test(this.peek(1)))return null;if(\\\".\\\"===this.peek(1)&&\\\".\\\"===this.peek(2))return{type:Token.Punctuator,value:\\\"...\\\"};case\\\"(\\\":case\\\")\\\":case\\\";\\\":case\\\",\\\":case\\\"[\\\":case\\\"]\\\":case\\\":\\\":case\\\"~\\\":case\\\"?\\\":return{type:Token.Punctuator,value:ch1};case\\\"{\\\":return this.pushContext(Context.Block),{type:Token.Punctuator,value:ch1};case\\\"}\\\":return this.inContext(Context.Block)&&this.popContext(),{type:Token.Punctuator,value:ch1};case\\\"#\\\":return{type:Token.Punctuator,value:ch1};case\\\"\\\":return null}return ch2=this.peek(1),ch3=this.peek(2),ch4=this.peek(3),\\\">\\\"===ch1&&\\\">\\\"===ch2&&\\\">\\\"===ch3&&\\\"=\\\"===ch4?{type:Token.Punctuator,value:\\\">>>=\\\"}:\\\"=\\\"===ch1&&\\\"=\\\"===ch2&&\\\"=\\\"===ch3?{type:Token.Punctuator,value:\\\"===\\\"}:\\\"!\\\"===ch1&&\\\"=\\\"===ch2&&\\\"=\\\"===ch3?{type:Token.Punctuator,value:\\\"!==\\\"}:\\\">\\\"===ch1&&\\\">\\\"===ch2&&\\\">\\\"===ch3?{type:Token.Punctuator,value:\\\">>>\\\"}:\\\"<\\\"===ch1&&\\\"<\\\"===ch2&&\\\"=\\\"===ch3?{type:Token.Punctuator,value:\\\"<<=\\\"}:\\\">\\\"===ch1&&\\\">\\\"===ch2&&\\\"=\\\"===ch3?{type:Token.Punctuator,value:\\\">>=\\\"}:\\\"=\\\"===ch1&&\\\">\\\"===ch2?{type:Token.Punctuator,value:ch1+ch2}:ch1===ch2&&\\\"+-<>&|\\\".indexOf(ch1)>=0?{type:Token.Punctuator,value:ch1+ch2}:\\\"<>=!+-*%&|^\\\".indexOf(ch1)>=0?\\\"=\\\"===ch2?{type:Token.Punctuator,value:ch1+ch2}:{type:Token.Punctuator,value:ch1}:\\\"/\\\"===ch1?\\\"=\\\"===ch2?{type:Token.Punctuator,value:\\\"/=\\\"}:{type:Token.Punctuator,value:\\\"/\\\"}:null},scanComments:function(){function commentToken(label,body,opt){var special=[\\\"jshint\\\",\\\"jslint\\\",\\\"members\\\",\\\"member\\\",\\\"globals\\\",\\\"global\\\",\\\"exported\\\"],isSpecial=!1,value=label+body,commentType=\\\"plain\\\";return opt=opt||{},opt.isMultiline&&(value+=\\\"*/\\\"),body=body.replace(/\\\\n/g,\\\" \\\"),\\\"/*\\\"===label&®.fallsThrough.test(body)&&(isSpecial=!0,commentType=\\\"falls through\\\"),special.forEach(function(str){if(!isSpecial&&(\\\"//\\\"!==label||\\\"jshint\\\"===str)&&(\\\" \\\"===body.charAt(str.length)&&body.substr(0,str.length)===str&&(isSpecial=!0,label+=str,body=body.substr(str.length)),isSpecial||\\\" \\\"!==body.charAt(0)||\\\" \\\"!==body.charAt(str.length+1)||body.substr(1,str.length)!==str||(isSpecial=!0,label=label+\\\" \\\"+str,body=body.substr(str.length+1)),isSpecial))switch(str){case\\\"member\\\":commentType=\\\"members\\\";break;case\\\"global\\\":commentType=\\\"globals\\\";break;default:var options=body.split(\\\":\\\").map(function(v){return v.replace(/^\\\\s+/,\\\"\\\").replace(/\\\\s+$/,\\\"\\\")});if(2===options.length)switch(options[0]){case\\\"ignore\\\":switch(options[1]){case\\\"start\\\":self.ignoringLinterErrors=!0,isSpecial=!1;break;case\\\"end\\\":self.ignoringLinterErrors=!1,isSpecial=!1}}commentType=str}}),{type:Token.Comment,commentType:commentType,value:value,body:body,isSpecial:isSpecial,isMultiline:opt.isMultiline||!1,isMalformed:opt.isMalformed||!1}}var ch1=this.peek(),ch2=this.peek(1),rest=this.input.substr(2),startLine=this.line,startChar=this.char,self=this;if(\\\"*\\\"===ch1&&\\\"/\\\"===ch2)return this.trigger(\\\"error\\\",{code:\\\"E018\\\",line:startLine,character:startChar}),this.skip(2),null;if(\\\"/\\\"!==ch1||\\\"*\\\"!==ch2&&\\\"/\\\"!==ch2)return null;if(\\\"/\\\"===ch2)return this.skip(this.input.length),commentToken(\\\"//\\\",rest);var body=\\\"\\\";if(\\\"*\\\"===ch2){for(this.inComment=!0,this.skip(2);\\\"*\\\"!==this.peek()||\\\"/\\\"!==this.peek(1);)if(\\\"\\\"===this.peek()){if(body+=\\\"\\\\n\\\",!this.nextLine())return this.trigger(\\\"error\\\",{code:\\\"E017\\\",line:startLine,character:startChar}),this.inComment=!1,commentToken(\\\"/*\\\",body,{isMultiline:!0,isMalformed:!0})}else body+=this.peek(),this.skip();return this.skip(2),this.inComment=!1,commentToken(\\\"/*\\\",body,{isMultiline:!0})}},scanKeyword:function(){var result=/^[a-zA-Z_$][a-zA-Z0-9_$]*/.exec(this.input),keywords=[\\\"if\\\",\\\"in\\\",\\\"do\\\",\\\"var\\\",\\\"for\\\",\\\"new\\\",\\\"try\\\",\\\"let\\\",\\\"this\\\",\\\"else\\\",\\\"case\\\",\\\"void\\\",\\\"with\\\",\\\"enum\\\",\\\"while\\\",\\\"break\\\",\\\"catch\\\",\\\"throw\\\",\\\"const\\\",\\\"yield\\\",\\\"class\\\",\\\"super\\\",\\\"return\\\",\\\"typeof\\\",\\\"delete\\\",\\\"switch\\\",\\\"export\\\",\\\"import\\\",\\\"default\\\",\\\"finally\\\",\\\"extends\\\",\\\"function\\\",\\\"continue\\\",\\\"debugger\\\",\\\"instanceof\\\"];return result&&keywords.indexOf(result[0])>=0?{type:Token.Keyword,value:result[0]}:null},scanIdentifier:function(){function isNonAsciiIdentifierStart(code){return code>256}function isNonAsciiIdentifierPart(code){return code>256}function isHexDigit(str){return/^[0-9a-fA-F]$/.test(str)}function removeEscapeSequences(id){return id.replace(/\\\\\\\\u([0-9a-fA-F]{4})/g,function(m0,codepoint){return String.fromCharCode(parseInt(codepoint,16))})}var type,char,id=\\\"\\\",index=0,readUnicodeEscapeSequence=function(){if(index+=1,\\\"u\\\"!==this.peek(index))return null;var code,ch1=this.peek(index+1),ch2=this.peek(index+2),ch3=this.peek(index+3),ch4=this.peek(index+4);return isHexDigit(ch1)&&isHexDigit(ch2)&&isHexDigit(ch3)&&isHexDigit(ch4)?(code=parseInt(ch1+ch2+ch3+ch4,16),asciiIdentifierPartTable[code]||isNonAsciiIdentifierPart(code)?(index+=5,\\\"\\\\\\\\u\\\"+ch1+ch2+ch3+ch4):null):null}.bind(this),getIdentifierStart=function(){var chr=this.peek(index),code=chr.charCodeAt(0);return 92===code?readUnicodeEscapeSequence():128>code?asciiIdentifierStartTable[code]?(index+=1,chr):null:isNonAsciiIdentifierStart(code)?(index+=1,chr):null}.bind(this),getIdentifierPart=function(){var chr=this.peek(index),code=chr.charCodeAt(0);return 92===code?readUnicodeEscapeSequence():128>code?asciiIdentifierPartTable[code]?(index+=1,chr):null:isNonAsciiIdentifierPart(code)?(index+=1,chr):null}.bind(this);if(char=getIdentifierStart(),null===char)return null;for(id=char;char=getIdentifierPart(),null!==char;)id+=char;switch(id){case\\\"true\\\":case\\\"false\\\":type=Token.BooleanLiteral;break;case\\\"null\\\":type=Token.NullLiteral;break;default:type=Token.Identifier}return{type:type,value:removeEscapeSequences(id),text:id,tokenLength:id.length}},scanNumericLiteral:function(){function isDecimalDigit(str){return/^[0-9]$/.test(str)}function isOctalDigit(str){return/^[0-7]$/.test(str)}function isBinaryDigit(str){return/^[01]$/.test(str)}function isHexDigit(str){return/^[0-9a-fA-F]$/.test(str)}function isIdentifierStart(ch){return\\\"$\\\"===ch||\\\"_\\\"===ch||\\\"\\\\\\\\\\\"===ch||ch>=\\\"a\\\"&&\\\"z\\\">=ch||ch>=\\\"A\\\"&&\\\"Z\\\">=ch}var bad,index=0,value=\\\"\\\",length=this.input.length,char=this.peek(index),isAllowedDigit=isDecimalDigit,base=10,isLegacy=!1;if(\\\".\\\"!==char&&!isDecimalDigit(char))return null;if(\\\".\\\"!==char){for(value=this.peek(index),index+=1,char=this.peek(index),\\\"0\\\"===value&&((\\\"x\\\"===char||\\\"X\\\"===char)&&(isAllowedDigit=isHexDigit,base=16,index+=1,value+=char),(\\\"o\\\"===char||\\\"O\\\"===char)&&(isAllowedDigit=isOctalDigit,base=8,state.inES6(!0)||this.trigger(\\\"warning\\\",{code:\\\"W119\\\",line:this.line,character:this.char,data:[\\\"Octal integer literal\\\",\\\"6\\\"]}),index+=1,value+=char),(\\\"b\\\"===char||\\\"B\\\"===char)&&(isAllowedDigit=isBinaryDigit,base=2,state.inES6(!0)||this.trigger(\\\"warning\\\",{code:\\\"W119\\\",line:this.line,character:this.char,data:[\\\"Binary integer literal\\\",\\\"6\\\"]}),index+=1,value+=char),isOctalDigit(char)&&(isAllowedDigit=isOctalDigit,base=8,isLegacy=!0,bad=!1,index+=1,value+=char),!isOctalDigit(char)&&isDecimalDigit(char)&&(index+=1,value+=char));length>index;){if(char=this.peek(index),isLegacy&&isDecimalDigit(char))bad=!0;else if(!isAllowedDigit(char))break;value+=char,index+=1}if(isAllowedDigit!==isDecimalDigit)return!isLegacy&&2>=value.length?{type:Token.NumericLiteral,value:value,isMalformed:!0}:length>index&&(char=this.peek(index),isIdentifierStart(char))?null:{type:Token.NumericLiteral,value:value,base:base,isLegacy:isLegacy,isMalformed:!1}}if(\\\".\\\"===char)for(value+=char,index+=1;length>index&&(char=this.peek(index),isDecimalDigit(char));)value+=char,index+=1;if(\\\"e\\\"===char||\\\"E\\\"===char){if(value+=char,index+=1,char=this.peek(index),(\\\"+\\\"===char||\\\"-\\\"===char)&&(value+=this.peek(index),index+=1),char=this.peek(index),!isDecimalDigit(char))return null;for(value+=char,index+=1;length>index&&(char=this.peek(index),isDecimalDigit(char));)value+=char,index+=1}return length>index&&(char=this.peek(index),isIdentifierStart(char))?null:{type:Token.NumericLiteral,value:value,base:base,isMalformed:!isFinite(value)}},scanEscapeSequence:function(checks){var allowNewLine=!1,jump=1;this.skip();var char=this.peek();switch(char){case\\\"'\\\":this.triggerAsync(\\\"warning\\\",{code:\\\"W114\\\",line:this.line,character:this.char,data:[\\\"\\\\\\\\'\\\"]},checks,function(){return state.jsonMode});break;case\\\"b\\\":char=\\\"\\\\\\\\b\\\";break;case\\\"f\\\":char=\\\"\\\\\\\\f\\\";break;case\\\"n\\\":char=\\\"\\\\\\\\n\\\";break;case\\\"r\\\":char=\\\"\\\\\\\\r\\\";break;case\\\"t\\\":char=\\\"\\\\\\\\t\\\";break;case\\\"0\\\":char=\\\"\\\\\\\\0\\\";var n=parseInt(this.peek(1),10);this.triggerAsync(\\\"warning\\\",{code:\\\"W115\\\",line:this.line,character:this.char},checks,function(){return n>=0&&7>=n&&state.isStrict()});break;case\\\"u\\\":var hexCode=this.input.substr(1,4),code=parseInt(hexCode,16);isNaN(code)&&this.trigger(\\\"warning\\\",{code:\\\"W052\\\",line:this.line,character:this.char,data:[\\\"u\\\"+hexCode]}),char=String.fromCharCode(code),jump=5;break;case\\\"v\\\":this.triggerAsync(\\\"warning\\\",{code:\\\"W114\\\",line:this.line,character:this.char,data:[\\\"\\\\\\\\v\\\"]},checks,function(){return state.jsonMode}),char=\\\"\\u000b\\\";break;case\\\"x\\\":var x=parseInt(this.input.substr(1,2),16);this.triggerAsync(\\\"warning\\\",{code:\\\"W114\\\",line:this.line,character:this.char,data:[\\\"\\\\\\\\x-\\\"]},checks,function(){return state.jsonMode}),char=String.fromCharCode(x),jump=3;break;case\\\"\\\\\\\\\\\":char=\\\"\\\\\\\\\\\\\\\\\\\";break;case'\\\"':char='\\\\\\\\\\\"';break;case\\\"/\\\":break;case\\\"\\\":allowNewLine=!0,char=\\\"\\\"}return{\\\"char\\\":char,jump:jump,allowNewLine:allowNewLine}},scanTemplateLiteral:function(checks){var tokenType,ch,value=\\\"\\\",startLine=this.line,startChar=this.char,depth=this.templateStarts.length;if(!state.inES6(!0))return null;if(\\\"`\\\"===this.peek())tokenType=Token.TemplateHead,this.templateStarts.push({line:this.line,\\\"char\\\":this.char}),depth=this.templateStarts.length,this.skip(1),this.pushContext(Context.Template);else{if(!this.inContext(Context.Template)||\\\"}\\\"!==this.peek())return null;tokenType=Token.TemplateMiddle}for(;\\\"`\\\"!==this.peek();){for(;\\\"\\\"===(ch=this.peek());)if(value+=\\\"\\\\n\\\",!this.nextLine()){var startPos=this.templateStarts.pop();return this.trigger(\\\"error\\\",{code:\\\"E052\\\",line:startPos.line,character:startPos.char}),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!0,depth:depth,context:this.popContext()}}if(\\\"$\\\"===ch&&\\\"{\\\"===this.peek(1))return value+=\\\"${\\\",this.skip(2),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,depth:depth,context:this.currentContext()};\\nif(\\\"\\\\\\\\\\\"===ch){var escape=this.scanEscapeSequence(checks);value+=escape.char,this.skip(escape.jump)}else\\\"`\\\"!==ch&&(value+=ch,this.skip(1))}return tokenType=tokenType===Token.TemplateHead?Token.NoSubstTemplate:Token.TemplateTail,this.skip(1),this.templateStarts.pop(),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,depth:depth,context:this.popContext()}},scanStringLiteral:function(checks){var quote=this.peek();if('\\\"'!==quote&&\\\"'\\\"!==quote)return null;this.triggerAsync(\\\"warning\\\",{code:\\\"W108\\\",line:this.line,character:this.char},checks,function(){return state.jsonMode&&'\\\"'!==quote});var value=\\\"\\\",startLine=this.line,startChar=this.char,allowNewLine=!1;for(this.skip();this.peek()!==quote;)if(\\\"\\\"===this.peek()){if(allowNewLine?(allowNewLine=!1,this.triggerAsync(\\\"warning\\\",{code:\\\"W043\\\",line:this.line,character:this.char},checks,function(){return!state.option.multistr}),this.triggerAsync(\\\"warning\\\",{code:\\\"W042\\\",line:this.line,character:this.char},checks,function(){return state.jsonMode&&state.option.multistr})):this.trigger(\\\"warning\\\",{code:\\\"W112\\\",line:this.line,character:this.char}),!this.nextLine())return this.trigger(\\\"error\\\",{code:\\\"E029\\\",line:startLine,character:startChar}),{type:Token.StringLiteral,value:value,startLine:startLine,startChar:startChar,isUnclosed:!0,quote:quote}}else{allowNewLine=!1;var char=this.peek(),jump=1;if(\\\" \\\">char&&this.trigger(\\\"warning\\\",{code:\\\"W113\\\",line:this.line,character:this.char,data:[\\\"\\\"]}),\\\"\\\\\\\\\\\"===char){var parsed=this.scanEscapeSequence(checks);char=parsed.char,jump=parsed.jump,allowNewLine=parsed.allowNewLine}value+=char,this.skip(jump)}return this.skip(),{type:Token.StringLiteral,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,quote:quote}},scanRegExp:function(){var terminated,index=0,length=this.input.length,char=this.peek(),value=char,body=\\\"\\\",flags=[],malformed=!1,isCharSet=!1,scanUnexpectedChars=function(){\\\" \\\">char&&(malformed=!0,this.trigger(\\\"warning\\\",{code:\\\"W048\\\",line:this.line,character:this.char})),\\\"<\\\"===char&&(malformed=!0,this.trigger(\\\"warning\\\",{code:\\\"W049\\\",line:this.line,character:this.char,data:[char]}))}.bind(this);if(!this.prereg||\\\"/\\\"!==char)return null;for(index+=1,terminated=!1;length>index;)if(char=this.peek(index),value+=char,body+=char,isCharSet)\\\"]\\\"===char&&(\\\"\\\\\\\\\\\"!==this.peek(index-1)||\\\"\\\\\\\\\\\"===this.peek(index-2))&&(isCharSet=!1),\\\"\\\\\\\\\\\"===char&&(index+=1,char=this.peek(index),body+=char,value+=char,scanUnexpectedChars()),index+=1;else{if(\\\"\\\\\\\\\\\"===char){if(index+=1,char=this.peek(index),body+=char,value+=char,scanUnexpectedChars(),\\\"/\\\"===char){index+=1;continue}if(\\\"[\\\"===char){index+=1;continue}}if(\\\"[\\\"!==char){if(\\\"/\\\"===char){body=body.substr(0,body.length-1),terminated=!0,index+=1;break}index+=1}else isCharSet=!0,index+=1}if(!terminated)return this.trigger(\\\"error\\\",{code:\\\"E015\\\",line:this.line,character:this.from}),void this.trigger(\\\"fatal\\\",{line:this.line,from:this.from});for(;length>index&&(char=this.peek(index),/[gim]/.test(char));)flags.push(char),value+=char,index+=1;try{RegExp(body,flags.join(\\\"\\\"))}catch(err){malformed=!0,this.trigger(\\\"error\\\",{code:\\\"E016\\\",line:this.line,character:this.char,data:[err.message]})}return{type:Token.RegExp,value:value,flags:flags,isMalformed:malformed}},scanNonBreakingSpaces:function(){return state.option.nonbsp?this.input.search(/(\\\\u00A0)/):-1},scanUnsafeChars:function(){return this.input.search(reg.unsafeChars)},next:function(checks){this.from=this.char;var start;if(/\\\\s/.test(this.peek()))for(start=this.char;/\\\\s/.test(this.peek());)this.from+=1,this.skip();var match=this.scanComments()||this.scanStringLiteral(checks)||this.scanTemplateLiteral(checks);return match?match:(match=this.scanRegExp()||this.scanPunctuator()||this.scanKeyword()||this.scanIdentifier()||this.scanNumericLiteral(),match?(this.skip(match.tokenLength||match.value.length),match):null)},nextLine:function(){var char;if(this.line>=this.getLines().length)return!1;this.input=this.getLines()[this.line],this.line+=1,this.char=1,this.from=1;var inputTrimmed=this.input.trim(),startsWith=function(){return _.some(arguments,function(prefix){return 0===inputTrimmed.indexOf(prefix)})},endsWith=function(){return _.some(arguments,function(suffix){return-1!==inputTrimmed.indexOf(suffix,inputTrimmed.length-suffix.length)})};if(this.ignoringLinterErrors===!0&&(startsWith(\\\"/*\\\",\\\"//\\\")||this.inComment&&endsWith(\\\"*/\\\")||(this.input=\\\"\\\")),char=this.scanNonBreakingSpaces(),char>=0&&this.trigger(\\\"warning\\\",{code:\\\"W125\\\",line:this.line,character:char+1}),this.input=this.input.replace(/\\\\t/g,state.tab),char=this.scanUnsafeChars(),char>=0&&this.trigger(\\\"warning\\\",{code:\\\"W100\\\",line:this.line,character:char}),!this.ignoringLinterErrors&&state.option.maxlen&&state.option.maxlen=0;--i){var scopeLabels=_scopeStack[i][\\\"(labels)\\\"];if(scopeLabels[labelName])return scopeLabels}}function usedSoFarInCurrentFunction(labelName){for(var i=_scopeStack.length-1;i>=0;i--){var current=_scopeStack[i];if(current[\\\"(usages)\\\"][labelName])return current[\\\"(usages)\\\"][labelName];if(current===_currentFunctBody)break}return!1}function _checkOuterShadow(labelName,token){if(\\\"outer\\\"===state.option.shadow)for(var isGlobal=\\\"global\\\"===_currentFunctBody[\\\"(type)\\\"],isNewFunction=\\\"functionparams\\\"===_current[\\\"(type)\\\"],outsideCurrentFunction=!isGlobal,i=0;_scopeStack.length>i;i++){var stackItem=_scopeStack[i];isNewFunction||_scopeStack[i+1]!==_currentFunctBody||(outsideCurrentFunction=!1),outsideCurrentFunction&&stackItem[\\\"(labels)\\\"][labelName]&&warning(\\\"W123\\\",token,labelName),stackItem[\\\"(breakLabels)\\\"][labelName]&&warning(\\\"W123\\\",token,labelName)}}function _latedefWarning(type,labelName,token){state.option.latedef&&(state.option.latedef===!0&&\\\"function\\\"===type||\\\"function\\\"!==type)&&warning(\\\"W003\\\",token,labelName)}var _current,_scopeStack=[];_newScope(\\\"global\\\"),_current[\\\"(predefined)\\\"]=predefined;var _currentFunctBody=_current,usedPredefinedAndGlobals=Object.create(null),impliedGlobals=Object.create(null),unuseds=[],emitter=new events.EventEmitter,_getUnusedOption=function(unused_opt){return void 0===unused_opt&&(unused_opt=state.option.unused),unused_opt===!0&&(unused_opt=\\\"last-param\\\"),unused_opt},_warnUnused=function(name,tkn,type,unused_opt){var line=tkn.line,chr=tkn.from,raw_name=tkn.raw_text||name;unused_opt=_getUnusedOption(unused_opt);var warnable_types={vars:[\\\"var\\\"],\\\"last-param\\\":[\\\"var\\\",\\\"param\\\"],strict:[\\\"var\\\",\\\"param\\\",\\\"last-param\\\"]};unused_opt&&warnable_types[unused_opt]&&-1!==warnable_types[unused_opt].indexOf(type)&&warning(\\\"W098\\\",{line:line,from:chr},raw_name),(unused_opt||\\\"var\\\"===type)&&unuseds.push({name:name,line:line,character:chr})},scopeManagerInst={on:function(names,listener){names.split(\\\" \\\").forEach(function(name){emitter.on(name,listener)})},isPredefined:function(labelName){return!this.has(labelName)&&_.has(_scopeStack[0][\\\"(predefined)\\\"],labelName)},stack:function(type){var previousScope=_current;_newScope(type),type||\\\"functionparams\\\"!==previousScope[\\\"(type)\\\"]||(_current[\\\"(isFuncBody)\\\"]=!0,_current[\\\"(context)\\\"]=_currentFunctBody,_currentFunctBody=_current)},unstack:function(){var i,j,subScope=_scopeStack.length>1?_scopeStack[_scopeStack.length-2]:null,isUnstackingFunctionBody=_current===_currentFunctBody,isUnstackingFunctionParams=\\\"functionparams\\\"===_current[\\\"(type)\\\"],isUnstackingFunctionOuter=\\\"functionouter\\\"===_current[\\\"(type)\\\"],currentUsages=_current[\\\"(usages)\\\"],currentLabels=_current[\\\"(labels)\\\"],usedLabelNameList=Object.keys(currentUsages);for(currentUsages.__proto__&&-1===usedLabelNameList.indexOf(\\\"__proto__\\\")&&usedLabelNameList.push(\\\"__proto__\\\"),i=0;usedLabelNameList.length>i;i++){var usedLabelName=usedLabelNameList[i],usage=currentUsages[usedLabelName],usedLabel=currentLabels[usedLabelName];if(usedLabel){var usedLabelType=usedLabel[\\\"(type)\\\"];if(usedLabel[\\\"(useOutsideOfScope)\\\"]&&!state.option.funcscope){var usedTokens=usage[\\\"(tokens)\\\"];if(usedTokens)for(j=0;usedTokens.length>j;j++)usedLabel[\\\"(function)\\\"]===usedTokens[j][\\\"(function)\\\"]&&error(\\\"W038\\\",usedTokens[j],usedLabelName)}if(_current[\\\"(labels)\\\"][usedLabelName][\\\"(unused)\\\"]=!1,\\\"const\\\"===usedLabelType&&usage[\\\"(modified)\\\"])for(j=0;usage[\\\"(modified)\\\"].length>j;j++)error(\\\"E013\\\",usage[\\\"(modified)\\\"][j],usedLabelName);if((\\\"function\\\"===usedLabelType||\\\"class\\\"===usedLabelType)&&usage[\\\"(reassigned)\\\"])for(j=0;usage[\\\"(reassigned)\\\"].length>j;j++)error(\\\"W021\\\",usage[\\\"(reassigned)\\\"][j],usedLabelName,usedLabelType)}else if(isUnstackingFunctionOuter&&(state.funct[\\\"(isCapturing)\\\"]=!0),subScope)if(subScope[\\\"(usages)\\\"][usedLabelName]){var subScopeUsage=subScope[\\\"(usages)\\\"][usedLabelName];subScopeUsage[\\\"(modified)\\\"]=subScopeUsage[\\\"(modified)\\\"].concat(usage[\\\"(modified)\\\"]),subScopeUsage[\\\"(tokens)\\\"]=subScopeUsage[\\\"(tokens)\\\"].concat(usage[\\\"(tokens)\\\"]),subScopeUsage[\\\"(reassigned)\\\"]=subScopeUsage[\\\"(reassigned)\\\"].concat(usage[\\\"(reassigned)\\\"]),subScopeUsage[\\\"(onlyUsedSubFunction)\\\"]=!1}else subScope[\\\"(usages)\\\"][usedLabelName]=usage,isUnstackingFunctionBody&&(subScope[\\\"(usages)\\\"][usedLabelName][\\\"(onlyUsedSubFunction)\\\"]=!0);else if(\\\"boolean\\\"==typeof _current[\\\"(predefined)\\\"][usedLabelName]){if(delete declared[usedLabelName],usedPredefinedAndGlobals[usedLabelName]=marker,_current[\\\"(predefined)\\\"][usedLabelName]===!1&&usage[\\\"(reassigned)\\\"])for(j=0;usage[\\\"(reassigned)\\\"].length>j;j++)warning(\\\"W020\\\",usage[\\\"(reassigned)\\\"][j])}else if(usage[\\\"(tokens)\\\"])for(j=0;usage[\\\"(tokens)\\\"].length>j;j++){var undefinedToken=usage[\\\"(tokens)\\\"][j];undefinedToken.forgiveUndef||(state.option.undef&&!undefinedToken.ignoreUndef&&warning(\\\"W117\\\",undefinedToken,usedLabelName),impliedGlobals[usedLabelName]?impliedGlobals[usedLabelName].line.push(undefinedToken.line):impliedGlobals[usedLabelName]={name:usedLabelName,line:[undefinedToken.line]})}}if(subScope||Object.keys(declared).forEach(function(labelNotUsed){_warnUnused(labelNotUsed,declared[labelNotUsed],\\\"var\\\")}),subScope&&!isUnstackingFunctionBody&&!isUnstackingFunctionParams&&!isUnstackingFunctionOuter){var labelNames=Object.keys(currentLabels);for(i=0;labelNames.length>i;i++){var defLabelName=labelNames[i];currentLabels[defLabelName][\\\"(blockscoped)\\\"]||\\\"exception\\\"===currentLabels[defLabelName][\\\"(type)\\\"]||this.funct.has(defLabelName,{excludeCurrent:!0})||(subScope[\\\"(labels)\\\"][defLabelName]=currentLabels[defLabelName],\\\"global\\\"!==_currentFunctBody[\\\"(type)\\\"]&&(subScope[\\\"(labels)\\\"][defLabelName][\\\"(useOutsideOfScope)\\\"]=!0),delete currentLabels[defLabelName])}}_checkForUnused(),_scopeStack.pop(),isUnstackingFunctionBody&&(_currentFunctBody=_scopeStack[_.findLastIndex(_scopeStack,function(scope){return scope[\\\"(isFuncBody)\\\"]||\\\"global\\\"===scope[\\\"(type)\\\"]})]),_current=subScope},addParam:function(labelName,token,type){if(type=type||\\\"param\\\",\\\"exception\\\"===type){var previouslyDefinedLabelType=this.funct.labeltype(labelName);previouslyDefinedLabelType&&\\\"exception\\\"!==previouslyDefinedLabelType&&(state.option.node||warning(\\\"W002\\\",state.tokens.next,labelName))}if(_.has(_current[\\\"(labels)\\\"],labelName)?_current[\\\"(labels)\\\"][labelName].duplicated=!0:(_checkOuterShadow(labelName,token,type),_current[\\\"(labels)\\\"][labelName]={\\\"(type)\\\":type,\\\"(token)\\\":token,\\\"(unused)\\\":!0},_current[\\\"(params)\\\"].push(labelName)),_.has(_current[\\\"(usages)\\\"],labelName)){var usage=_current[\\\"(usages)\\\"][labelName];usage[\\\"(onlyUsedSubFunction)\\\"]?_latedefWarning(type,labelName,token):warning(\\\"E056\\\",token,labelName,type)}},validateParams:function(){if(\\\"global\\\"!==_currentFunctBody[\\\"(type)\\\"]){var isStrict=state.isStrict(),currentFunctParamScope=_currentFunctBody[\\\"(parent)\\\"];currentFunctParamScope[\\\"(params)\\\"]&¤tFunctParamScope[\\\"(params)\\\"].forEach(function(labelName){var label=currentFunctParamScope[\\\"(labels)\\\"][labelName];label&&label.duplicated&&(isStrict?warning(\\\"E011\\\",label[\\\"(token)\\\"],labelName):state.option.shadow!==!0&&warning(\\\"W004\\\",label[\\\"(token)\\\"],labelName))})}},getUsedOrDefinedGlobals:function(){var list=Object.keys(usedPredefinedAndGlobals);return usedPredefinedAndGlobals.__proto__===marker&&-1===list.indexOf(\\\"__proto__\\\")&&list.push(\\\"__proto__\\\"),list},getImpliedGlobals:function(){var values=_.values(impliedGlobals),hasProto=!1;return impliedGlobals.__proto__&&(hasProto=values.some(function(value){return\\\"__proto__\\\"===value.name}),hasProto||values.push(impliedGlobals.__proto__)),values},getUnuseds:function(){return unuseds},has:function(labelName){return Boolean(_getLabel(labelName))},labeltype:function(labelName){var scopeLabels=_getLabel(labelName);return scopeLabels?scopeLabels[labelName][\\\"(type)\\\"]:null},addExported:function(labelName){var globalLabels=_scopeStack[0][\\\"(labels)\\\"];if(_.has(declared,labelName))delete declared[labelName];else if(_.has(globalLabels,labelName))globalLabels[labelName][\\\"(unused)\\\"]=!1;else{for(var i=1;_scopeStack.length>i;i++){var scope=_scopeStack[i];if(scope[\\\"(type)\\\"])break;if(_.has(scope[\\\"(labels)\\\"],labelName)&&!scope[\\\"(labels)\\\"][labelName][\\\"(blockscoped)\\\"])return scope[\\\"(labels)\\\"][labelName][\\\"(unused)\\\"]=!1,void 0}exported[labelName]=!0}},setExported:function(labelName,token){this.block.use(labelName,token)\\n},addlabel:function(labelName,opts){var type=opts.type,token=opts.token,isblockscoped=\\\"let\\\"===type||\\\"const\\\"===type||\\\"class\\\"===type,isexported=\\\"global\\\"===(isblockscoped?_current:_currentFunctBody)[\\\"(type)\\\"]&&_.has(exported,labelName);if(_checkOuterShadow(labelName,token,type),isblockscoped){var declaredInCurrentScope=_current[\\\"(labels)\\\"][labelName];if(declaredInCurrentScope||_current!==_currentFunctBody||\\\"global\\\"===_current[\\\"(type)\\\"]||(declaredInCurrentScope=!!_currentFunctBody[\\\"(parent)\\\"][\\\"(labels)\\\"][labelName]),!declaredInCurrentScope&&_current[\\\"(usages)\\\"][labelName]){var usage=_current[\\\"(usages)\\\"][labelName];usage[\\\"(onlyUsedSubFunction)\\\"]?_latedefWarning(type,labelName,token):warning(\\\"E056\\\",token,labelName,type)}declaredInCurrentScope?warning(\\\"E011\\\",token,labelName):\\\"outer\\\"===state.option.shadow&&scopeManagerInst.funct.has(labelName)&&warning(\\\"W004\\\",token,labelName),scopeManagerInst.block.add(labelName,type,token,!isexported)}else{var declaredInCurrentFunctionScope=scopeManagerInst.funct.has(labelName);!declaredInCurrentFunctionScope&&usedSoFarInCurrentFunction(labelName)&&_latedefWarning(type,labelName,token),scopeManagerInst.funct.has(labelName,{onlyBlockscoped:!0})?warning(\\\"E011\\\",token,labelName):state.option.shadow!==!0&&declaredInCurrentFunctionScope&&\\\"__proto__\\\"!==labelName&&\\\"global\\\"!==_currentFunctBody[\\\"(type)\\\"]&&warning(\\\"W004\\\",token,labelName),scopeManagerInst.funct.add(labelName,type,token,!isexported),\\\"global\\\"===_currentFunctBody[\\\"(type)\\\"]&&(usedPredefinedAndGlobals[labelName]=marker)}},funct:{labeltype:function(labelName,options){for(var onlyBlockscoped=options&&options.onlyBlockscoped,excludeParams=options&&options.excludeParams,currentScopeIndex=_scopeStack.length-(options&&options.excludeCurrent?2:1),i=currentScopeIndex;i>=0;i--){var current=_scopeStack[i];if(current[\\\"(labels)\\\"][labelName]&&(!onlyBlockscoped||current[\\\"(labels)\\\"][labelName][\\\"(blockscoped)\\\"]))return current[\\\"(labels)\\\"][labelName][\\\"(type)\\\"];var scopeCheck=excludeParams?_scopeStack[i-1]:current;if(scopeCheck&&\\\"functionparams\\\"===scopeCheck[\\\"(type)\\\"])return null}return null},hasBreakLabel:function(labelName){for(var i=_scopeStack.length-1;i>=0;i--){var current=_scopeStack[i];if(current[\\\"(breakLabels)\\\"][labelName])return!0;if(\\\"functionparams\\\"===current[\\\"(type)\\\"])return!1}return!1},has:function(labelName,options){return Boolean(this.labeltype(labelName,options))},add:function(labelName,type,tok,unused){_current[\\\"(labels)\\\"][labelName]={\\\"(type)\\\":type,\\\"(token)\\\":tok,\\\"(blockscoped)\\\":!1,\\\"(function)\\\":_currentFunctBody,\\\"(unused)\\\":unused}}},block:{isGlobal:function(){return\\\"global\\\"===_current[\\\"(type)\\\"]},use:function(labelName,token){var paramScope=_currentFunctBody[\\\"(parent)\\\"];paramScope&¶mScope[\\\"(labels)\\\"][labelName]&&\\\"param\\\"===paramScope[\\\"(labels)\\\"][labelName][\\\"(type)\\\"]&&(scopeManagerInst.funct.has(labelName,{excludeParams:!0,onlyBlockscoped:!0})||(paramScope[\\\"(labels)\\\"][labelName][\\\"(unused)\\\"]=!1)),token&&(state.ignored.W117||state.option.undef===!1)&&(token.ignoreUndef=!0),_setupUsages(labelName),token&&(token[\\\"(function)\\\"]=_currentFunctBody,_current[\\\"(usages)\\\"][labelName][\\\"(tokens)\\\"].push(token))},reassign:function(labelName,token){this.modify(labelName,token),_current[\\\"(usages)\\\"][labelName][\\\"(reassigned)\\\"].push(token)},modify:function(labelName,token){_setupUsages(labelName),_current[\\\"(usages)\\\"][labelName][\\\"(modified)\\\"].push(token)},add:function(labelName,type,tok,unused){_current[\\\"(labels)\\\"][labelName]={\\\"(type)\\\":type,\\\"(token)\\\":tok,\\\"(blockscoped)\\\":!0,\\\"(unused)\\\":unused}},addBreakLabel:function(labelName,opts){var token=opts.token;scopeManagerInst.funct.hasBreakLabel(labelName)?warning(\\\"E011\\\",token,labelName):\\\"outer\\\"===state.option.shadow&&(scopeManagerInst.funct.has(labelName)?warning(\\\"W004\\\",token,labelName):_checkOuterShadow(labelName,token)),_current[\\\"(breakLabels)\\\"][labelName]=token}}};return scopeManagerInst};module.exports=scopeManager},{\\\"../lodash\\\":\\\"/node_modules/jshint/lodash.js\\\",events:\\\"/node_modules/browserify/node_modules/events/events.js\\\"}],\\\"/node_modules/jshint/src/state.js\\\":[function(_dereq_,module,exports){\\\"use strict\\\";var NameStack=_dereq_(\\\"./name-stack.js\\\"),state={syntax:{},isStrict:function(){return this.directive[\\\"use strict\\\"]||this.inClassBody||this.option.module||\\\"implied\\\"===this.option.strict},inMoz:function(){return this.option.moz},inES6:function(){return this.option.moz||this.option.esversion>=6},inES5:function(strict){return strict?!(this.option.esversion&&5!==this.option.esversion||this.option.moz):!this.option.esversion||this.option.esversion>=5||this.option.moz},reset:function(){this.tokens={prev:null,next:null,curr:null},this.option={},this.funct=null,this.ignored={},this.directive={},this.jsonMode=!1,this.jsonWarnings=[],this.lines=[],this.tab=\\\"\\\",this.cache={},this.ignoredLines={},this.forinifcheckneeded=!1,this.nameStack=new NameStack,this.inClassBody=!1}};exports.state=state},{\\\"./name-stack.js\\\":\\\"/node_modules/jshint/src/name-stack.js\\\"}],\\\"/node_modules/jshint/src/style.js\\\":[function(_dereq_,module,exports){\\\"use strict\\\";exports.register=function(linter){linter.on(\\\"Identifier\\\",function(data){linter.getOption(\\\"proto\\\")||\\\"__proto__\\\"===data.name&&linter.warn(\\\"W103\\\",{line:data.line,\\\"char\\\":data.char,data:[data.name,\\\"6\\\"]})}),linter.on(\\\"Identifier\\\",function(data){linter.getOption(\\\"iterator\\\")||\\\"__iterator__\\\"===data.name&&linter.warn(\\\"W103\\\",{line:data.line,\\\"char\\\":data.char,data:[data.name]})}),linter.on(\\\"Identifier\\\",function(data){linter.getOption(\\\"camelcase\\\")&&data.name.replace(/^_+|_+$/g,\\\"\\\").indexOf(\\\"_\\\")>-1&&!data.name.match(/^[A-Z0-9_]*$/)&&linter.warn(\\\"W106\\\",{line:data.line,\\\"char\\\":data.from,data:[data.name]})}),linter.on(\\\"String\\\",function(data){var code,quotmark=linter.getOption(\\\"quotmark\\\");quotmark&&(\\\"single\\\"===quotmark&&\\\"'\\\"!==data.quote&&(code=\\\"W109\\\"),\\\"double\\\"===quotmark&&'\\\"'!==data.quote&&(code=\\\"W108\\\"),quotmark===!0&&(linter.getCache(\\\"quotmark\\\")||linter.setCache(\\\"quotmark\\\",data.quote),linter.getCache(\\\"quotmark\\\")!==data.quote&&(code=\\\"W110\\\")),code&&linter.warn(code,{line:data.line,\\\"char\\\":data.char}))}),linter.on(\\\"Number\\\",function(data){\\\".\\\"===data.value.charAt(0)&&linter.warn(\\\"W008\\\",{line:data.line,\\\"char\\\":data.char,data:[data.value]}),\\\".\\\"===data.value.substr(data.value.length-1)&&linter.warn(\\\"W047\\\",{line:data.line,\\\"char\\\":data.char,data:[data.value]}),/^00+/.test(data.value)&&linter.warn(\\\"W046\\\",{line:data.line,\\\"char\\\":data.char,data:[data.value]})}),linter.on(\\\"String\\\",function(data){var re=/^(?:javascript|jscript|ecmascript|vbscript|livescript)\\\\s*:/i;linter.getOption(\\\"scripturl\\\")||re.test(data.value)&&linter.warn(\\\"W107\\\",{line:data.line,\\\"char\\\":data.char})})}},{}],\\\"/node_modules/jshint/src/vars.js\\\":[function(_dereq_,module,exports){\\\"use strict\\\";exports.reservedVars={arguments:!1,NaN:!1},exports.ecmaIdentifiers={3:{Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},5:{JSON:!1},6:{Map:!1,Promise:!1,Proxy:!1,Reflect:!1,Set:!1,Symbol:!1,WeakMap:!1,WeakSet:!1}},exports.browser={Audio:!1,Blob:!1,addEventListener:!1,applicationCache:!1,atob:!1,blur:!1,btoa:!1,cancelAnimationFrame:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,CSS:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,Comment:!1,CustomEvent:!1,DOMParser:!1,defaultStatus:!1,Document:!1,document:!1,DocumentFragment:!1,Element:!1,ElementTimeControl:!1,Event:!1,event:!1,fetch:!1,FileReader:!1,FormData:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,HTMLAnchorElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLCollection:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPreElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTemplateElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLUListElement:!1,HTMLVideoElement:!1,history:!1,Image:!1,Intl:!1,length:!1,localStorage:!1,location:!1,matchMedia:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationObserver:!1,name:!1,Node:!1,NodeFilter:!1,NodeList:!1,Notification:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,performance:!1,print:!1,Range:!1,requestAnimationFrame:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,SharedWorker:!1,status:!1,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPathData:!1,SVGAnimatedPoints:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimationElement:!1,SVGCSSRule:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGColorProfileElement:!1,SVGColorProfileRule:!1,SVGComponentTransferFunctionElement:!1,SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGExternalResourcesRequired:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFilterPrimitiveStandardAttributes:!1,SVGFitToViewBox:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,SVGHKernElement:!1,SVGICCColor:!1,SVGImageElement:!1,SVGLangSpace:!1,SVGLength:!1,SVGLengthList:!1,SVGLineElement:!1,SVGLinearGradientElement:!1,SVGLocatable:!1,SVGMPathElement:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGRenderingIntent:!1,SVGSVGElement:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStylable:!1,SVGStyleElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGTests:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformList:!1,SVGTransformable:!1,SVGURIReference:!1,SVGUnitTypes:!1,SVGUseElement:!1,SVGVKernElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGZoomAndPan:!1,Text:!1,TextDecoder:!1,TextEncoder:!1,TimeEvent:!1,top:!1,URL:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLTexture:!1,WebGLUniformLocation:!1,WebSocket:!1,window:!1,Window:!1,Worker:!1,XDomainRequest:!1,XMLHttpRequest:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},exports.devel={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},exports.worker={importScripts:!0,postMessage:!0,self:!0,FileReaderSync:!0},exports.nonstandard={escape:!1,unescape:!1},exports.couch={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1,provides:!1},exports.node={__filename:!1,__dirname:!1,GLOBAL:!1,global:!1,module:!1,acequire:!1,Buffer:!0,console:!0,exports:!0,process:!0,setTimeout:!0,clearTimeout:!0,setInterval:!0,clearInterval:!0,setImmediate:!0,clearImmediate:!0},exports.browserify={__filename:!1,__dirname:!1,global:!1,module:!1,acequire:!1,Buffer:!0,exports:!0,process:!0},exports.phantom={phantom:!0,acequire:!0,WebPage:!0,console:!0,exports:!0},exports.qunit={asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,\\\"throws\\\":!1},exports.rhino={defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},exports.shelljs={target:!1,echo:!1,exit:!1,cd:!1,pwd:!1,ls:!1,find:!1,cp:!1,rm:!1,mv:!1,mkdir:!1,test:!1,cat:!1,sed:!1,grep:!1,which:!1,dirs:!1,pushd:!1,popd:!1,env:!1,exec:!1,chmod:!1,config:!1,error:!1,tempdir:!1},exports.typed={ArrayBuffer:!1,ArrayBufferView:!1,DataView:!1,Float32Array:!1,Float64Array:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1},exports.wsh={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0,XDomainRequest:!0},exports.dojo={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},exports.jquery={$:!1,jQuery:!1},exports.mootools={$:!1,$$:!1,Asset:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMEvent:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,IFrame:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},exports.prototypejs={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},exports.yui={YUI:!1,Y:!1,YUI_config:!1},exports.mocha={mocha:!1,describe:!1,xdescribe:!1,it:!1,xit:!1,context:!1,xcontext:!1,before:!1,after:!1,beforeEach:!1,afterEach:!1,suite:!1,test:!1,setup:!1,teardown:!1,suiteSetup:!1,suiteTeardown:!1},exports.jasmine={jasmine:!1,describe:!1,xdescribe:!1,it:!1,xit:!1,beforeEach:!1,afterEach:!1,setFixtures:!1,loadFixtures:!1,spyOn:!1,expect:!1,runs:!1,waitsFor:!1,waits:!1,beforeAll:!1,afterAll:!1,fail:!1,fdescribe:!1,fit:!1,pending:!1}},{}]},{},[\\\"/node_modules/jshint/src/jshint.js\\\"])}),ace.define(\\\"ace/mode/javascript_worker\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/worker/mirror\\\",\\\"ace/mode/javascript/jshint\\\"],function(acequire,exports,module){\\\"use strict\\\";function startRegex(arr){return RegExp(\\\"^(\\\"+arr.join(\\\"|\\\")+\\\")\\\")}var oop=acequire(\\\"../lib/oop\\\"),Mirror=acequire(\\\"../worker/mirror\\\").Mirror,lint=acequire(\\\"./javascript/jshint\\\").JSHINT,disabledWarningsRe=startRegex([\\\"Bad for in variable '(.+)'.\\\",'Missing \\\"use strict\\\"']),errorsRe=startRegex([\\\"Unexpected\\\",\\\"Expected \\\",\\\"Confusing (plus|minus)\\\",\\\"\\\\\\\\{a\\\\\\\\} unterminated regular expression\\\",\\\"Unclosed \\\",\\\"Unmatched \\\",\\\"Unbegun comment\\\",\\\"Bad invocation\\\",\\\"Missing space after\\\",\\\"Missing operator at\\\"]),infoRe=startRegex([\\\"Expected an assignment\\\",\\\"Bad escapement of EOL\\\",\\\"Unexpected comma\\\",\\\"Unexpected space\\\",\\\"Missing radix parameter.\\\",\\\"A leading decimal point can\\\",\\\"\\\\\\\\['{a}'\\\\\\\\] is better written in dot notation.\\\",\\\"'{a}' used out of scope\\\"]),JavaScriptWorker=exports.JavaScriptWorker=function(sender){Mirror.call(this,sender),this.setTimeout(500),this.setOptions()};oop.inherits(JavaScriptWorker,Mirror),function(){this.setOptions=function(options){this.options=options||{esnext:!0,moz:!0,devel:!0,browser:!0,node:!0,laxcomma:!0,laxbreak:!0,lastsemic:!0,onevar:!1,passfail:!1,maxerr:100,expr:!0,multistr:!0,globalstrict:!0},this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.changeOptions=function(newOptions){oop.mixin(this.options,newOptions),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.isValidJS=function(str){try{eval(\\\"throw 0;\\\"+str)}catch(e){if(0===e)return!0}return!1},this.onUpdate=function(){var value=this.doc.getValue();if(value=value.replace(/^#!.*\\\\n/,\\\"\\\\n\\\"),!value)return this.sender.emit(\\\"annotate\\\",[]);var errors=[],maxErrorLevel=this.isValidJS(value)?\\\"warning\\\":\\\"error\\\";lint(value,this.options);for(var results=lint.errors,errorAdded=!1,i=0;results.length>i;i++){var error=results[i];if(error){var raw=error.raw,type=\\\"warning\\\";if(\\\"Missing semicolon.\\\"==raw){var str=error.evidence.substr(error.character);str=str.charAt(str.search(/\\\\S/)),\\\"error\\\"==maxErrorLevel&&str&&/[\\\\w\\\\d{(['\\\"]/.test(str)?(error.reason='Missing \\\";\\\" before statement',type=\\\"error\\\"):type=\\\"info\\\"}else{if(disabledWarningsRe.test(raw))continue;infoRe.test(raw)?type=\\\"info\\\":errorsRe.test(raw)?(errorAdded=!0,type=maxErrorLevel):\\\"'{a}' is not defined.\\\"==raw?type=\\\"warning\\\":\\\"'{a}' is defined but never used.\\\"==raw&&(type=\\\"info\\\")}errors.push({row:error.line-1,column:error.character-1,text:error.reason,type:type,raw:raw})}}this.sender.emit(\\\"annotate\\\",errors)}}.call(JavaScriptWorker.prototype)}),ace.define(\\\"ace/lib/es5-shim\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\\\"sentinel\\\",{}),\\\"sentinel\\\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\\\"function\\\"!=typeof target)throw new TypeError(\\\"Function.prototype.bind called on incompatible \\\"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\\\"__defineGetter__\\\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\\\"XXX\\\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\\\"[object Array]\\\"==_toString(obj)});var boxedString=Object(\\\"a\\\"),splitString=\\\"a\\\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduce of empty array with no initial value\\\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\\\"reduce of empty array with no initial value\\\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\\\"Object.getOwnPropertyDescriptor called on a non-object: \\\";Object.getOwnPropertyDescriptor=function(object,property){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\\\"object\\\"!=typeof prototype)throw new TypeError(\\\"typeof prototype[\\\"+typeof prototype+\\\"] != 'object'\\\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\\\"undefined\\\"==typeof document||doesDefinePropertyWork(document.createElement(\\\"div\\\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\\\"Property description must be an object: \\\",ERR_NON_OBJECT_TARGET=\\\"Object.defineProperty called on non-object: \\\",ERR_ACCESSORS_NOT_SUPPORTED=\\\"getters & setters can not be defined on this javascript engine\\\";Object.defineProperty=function(object,property,descriptor){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\\\"object\\\"!=typeof descriptor&&\\\"function\\\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\\\"value\\\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\\\"get\\\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\\\"set\\\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\\\"function\\\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\\\"\\\";owns(object,name);)name+=\\\"?\\\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\\\"toString\\\",\\\"toLocaleString\\\",\\\"valueOf\\\",\\\"hasOwnProperty\\\",\\\"isPrototypeOf\\\",\\\"propertyIsEnumerable\\\",\\\"constructor\\\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(\\\"Object.keys called on a non-object\\\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\\\"\\t\\\\n\\u000b\\\\f\\\\r   ᠎              \\\\u2028\\\\u2029\\\";if(!String.prototype.trim||ws.trim()){ws=\\\"[\\\"+ws+\\\"]\\\";var trimBeginRegexp=RegExp(\\\"^\\\"+ws+ws+\\\"*\\\"),trimEndRegexp=RegExp(ws+ws+\\\"*$\\\");String.prototype.trim=function(){return(this+\\\"\\\").replace(trimBeginRegexp,\\\"\\\").replace(trimEndRegexp,\\\"\\\")}}var toObject=function(o){if(null==o)throw new TypeError(\\\"can't convert \\\"+o+\\\" to object\\\");return Object(o)}});\";\n\n/***/ }),\n/* 291 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return slice; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return map; });\nvar array = Array.prototype;\n\nvar slice = array.slice;\nvar map = array.map;\n\n\n/***/ }),\n/* 292 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export bisectRight */\n/* unused harmony export bisectLeft */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ascending__ = __webpack_require__(63);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__bisector__ = __webpack_require__(293);\n\n\n\nvar ascendingBisect = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__bisector__[\"a\" /* default */])(__WEBPACK_IMPORTED_MODULE_0__ascending__[\"a\" /* default */]);\nvar bisectRight = ascendingBisect.right;\nvar bisectLeft = ascendingBisect.left;\n/* harmony default export */ __webpack_exports__[\"a\"] = (bisectRight);\n\n\n/***/ }),\n/* 293 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ascending__ = __webpack_require__(63);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n});\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__ascending__[\"a\" /* default */])(f(d), x);\n };\n}\n\n\n/***/ }),\n/* 294 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__variance__ = __webpack_require__(302);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(array, f) {\n var v = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__variance__[\"a\" /* default */])(array, f);\n return v ? Math.sqrt(v) : v;\n});\n\n\n/***/ }),\n/* 295 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n return [min, max];\n});\n\n\n/***/ }),\n/* 296 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n return min;\n});\n\n\n/***/ }),\n/* 297 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = pair;\n/* unused harmony default export */ var _unused_webpack_default_export = (function(array, f) {\n if (f == null) f = pair;\n var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = f(p, p = array[++i]);\n return pairs;\n});\n\nfunction pair(a, b) {\n return [a, b];\n}\n\n\n/***/ }),\n/* 298 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n});\n\n\n/***/ }),\n/* 299 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n});\n\n\n/***/ }),\n/* 300 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = tickIncrement;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = tickStep;\nvar e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\n/* harmony default export */ __webpack_exports__[\"b\"] = (function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n});\n\nfunction tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nfunction tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n\n\n/***/ }),\n/* 301 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__min__ = __webpack_require__(296);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__min__[\"a\" /* default */])(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n});\n\nfunction length(d) {\n return d.length;\n}\n\n\n/***/ }),\n/* 302 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__number__ = __webpack_require__(85);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values, valueof) {\n var n = values.length,\n m = 0,\n i = -1,\n mean = 0,\n value,\n delta,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(values[i]))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(valueof(values[i], i, values)))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n if (m > 1) return sum / (m - 1);\n});\n\n\n/***/ }),\n/* 303 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return deg2rad; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return rad2deg; });\nvar deg2rad = Math.PI / 180;\nvar rad2deg = 180 / Math.PI;\n\n\n/***/ }),\n/* 304 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return prefixExponent; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__formatDecimal__ = __webpack_require__(176);\n\n\nvar prefixExponent;\n\n/* harmony default export */ __webpack_exports__[\"b\"] = (function(x, p) {\n var d = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__formatDecimal__[\"a\" /* default */])(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__formatDecimal__[\"a\" /* default */])(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n});\n\n\n/***/ }),\n/* 305 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = formatSpecifier;\n// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nfunction formatSpecifier(specifier) {\n return new FormatSpecifier(specifier);\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nfunction FormatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n this.fill = match[1] || \" \";\n this.align = match[2] || \">\";\n this.sign = match[3] || \"-\";\n this.symbol = match[4] || \"\";\n this.zero = !!match[5];\n this.width = match[6] && +match[6];\n this.comma = !!match[7];\n this.precision = match[8] && +match[8].slice(1);\n this.trim = !!match[9];\n this.type = match[10] || \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width == null ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision == null ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n\n\n/***/ }),\n/* 306 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defaultLocale__ = __webpack_require__(563);\n/* unused harmony reexport formatDefaultLocale */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return __WEBPACK_IMPORTED_MODULE_0__defaultLocale__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_0__defaultLocale__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__locale__ = __webpack_require__(307);\n/* unused harmony reexport formatLocale */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__formatSpecifier__ = __webpack_require__(305);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_2__formatSpecifier__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__precisionFixed__ = __webpack_require__(570);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return __WEBPACK_IMPORTED_MODULE_3__precisionFixed__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__precisionPrefix__ = __webpack_require__(571);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_4__precisionPrefix__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__precisionRound__ = __webpack_require__(572);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return __WEBPACK_IMPORTED_MODULE_5__precisionRound__[\"a\"]; });\n\n\n\n\n\n\n\n\n/***/ }),\n/* 307 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__exponent__ = __webpack_require__(116);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__formatGroup__ = __webpack_require__(564);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__formatNumerals__ = __webpack_require__(565);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__formatSpecifier__ = __webpack_require__(305);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__formatTrim__ = __webpack_require__(567);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__formatTypes__ = __webpack_require__(568);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__formatPrefixAuto__ = __webpack_require__(304);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__identity__ = __webpack_require__(569);\n\n\n\n\n\n\n\n\n\nvar prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(locale) {\n var group = locale.grouping && locale.thousands ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__formatGroup__[\"a\" /* default */])(locale.grouping, locale.thousands) : __WEBPACK_IMPORTED_MODULE_7__identity__[\"a\" /* default */],\n currency = locale.currency,\n decimal = locale.decimal,\n numerals = locale.numerals ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__formatNumerals__[\"a\" /* default */])(locale.numerals) : __WEBPACK_IMPORTED_MODULE_7__identity__[\"a\" /* default */],\n percent = locale.percent || \"%\";\n\n function newFormat(specifier) {\n specifier = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__formatSpecifier__[\"a\" /* default */])(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!__WEBPACK_IMPORTED_MODULE_5__formatTypes__[\"a\" /* default */][type]) precision == null && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currency[0] : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currency[1] : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = __WEBPACK_IMPORTED_MODULE_5__formatTypes__[\"a\" /* default */][type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision == null ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Perform the initial formatting.\n var valueNegative = value < 0;\n value = formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__formatTrim__[\"a\" /* default */])(value);\n\n // If a negative value rounds to zero during formatting, treat as positive.\n if (valueNegative && +value === 0) valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : \"-\") : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + __WEBPACK_IMPORTED_MODULE_6__formatPrefixAuto__[\"a\" /* prefixExponent */] / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__formatSpecifier__[\"a\" /* default */])(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__exponent__[\"a\" /* default */])(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n});\n\n\n/***/ }),\n/* 308 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__value__ = __webpack_require__(178);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__value__[\"a\" /* default */])(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n});\n\n\n/***/ }),\n/* 309 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__basis__ = __webpack_require__(177);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__basis__[\"b\" /* basis */])((t - i / n) * n, v0, v1, v2, v3);\n };\n});\n\n\n/***/ }),\n/* 310 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return function() {\n return x;\n };\n});\n\n\n/***/ }),\n/* 311 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n var d = new Date;\n return a = +a, b -= a, function(t) {\n return d.setTime(a + b * t), d;\n };\n});\n\n\n/***/ }),\n/* 312 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__value__ = __webpack_require__(178);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__value__[\"a\" /* default */])(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n});\n\n\n/***/ }),\n/* 313 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export rgbBasis */\n/* unused harmony export rgbBasisClosed */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(64);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__basis__ = __webpack_require__(177);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__basisClosed__ = __webpack_require__(309);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__color__ = __webpack_require__(65);\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ((function rgbGamma(y) {\n var color = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__color__[\"c\" /* gamma */])(y);\n\n function rgb(start, end) {\n var r = color((start = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"e\" /* rgb */])(start)).r, (end = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"e\" /* rgb */])(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__color__[\"a\" /* default */])(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1));\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"e\" /* rgb */])(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nvar rgbBasis = rgbSpline(__WEBPACK_IMPORTED_MODULE_1__basis__[\"a\" /* default */]);\nvar rgbBasisClosed = rgbSpline(__WEBPACK_IMPORTED_MODULE_2__basisClosed__[\"a\" /* default */]);\n\n\n/***/ }),\n/* 314 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__number__ = __webpack_require__(117);\n\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n});\n\n\n/***/ }),\n/* 315 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__band__ = __webpack_require__(588);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleBand\", function() { return __WEBPACK_IMPORTED_MODULE_0__band__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scalePoint\", function() { return __WEBPACK_IMPORTED_MODULE_0__band__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__identity__ = __webpack_require__(591);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleIdentity\", function() { return __WEBPACK_IMPORTED_MODULE_1__identity__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__linear__ = __webpack_require__(50);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleLinear\", function() { return __WEBPACK_IMPORTED_MODULE_2__linear__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__log__ = __webpack_require__(179);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleLog\", function() { return __WEBPACK_IMPORTED_MODULE_3__log__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__symlog__ = __webpack_require__(181);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleSymlog\", function() { return __WEBPACK_IMPORTED_MODULE_4__symlog__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__ordinal__ = __webpack_require__(318);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleOrdinal\", function() { return __WEBPACK_IMPORTED_MODULE_5__ordinal__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleImplicit\", function() { return __WEBPACK_IMPORTED_MODULE_5__ordinal__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__pow__ = __webpack_require__(180);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scalePow\", function() { return __WEBPACK_IMPORTED_MODULE_6__pow__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleSqrt\", function() { return __WEBPACK_IMPORTED_MODULE_6__pow__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__quantile__ = __webpack_require__(592);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleQuantile\", function() { return __WEBPACK_IMPORTED_MODULE_7__quantile__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__quantize__ = __webpack_require__(593);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleQuantize\", function() { return __WEBPACK_IMPORTED_MODULE_8__quantize__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__threshold__ = __webpack_require__(595);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleThreshold\", function() { return __WEBPACK_IMPORTED_MODULE_9__threshold__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__time__ = __webpack_require__(321);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleTime\", function() { return __WEBPACK_IMPORTED_MODULE_10__time__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__utcTime__ = __webpack_require__(596);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleUtc\", function() { return __WEBPACK_IMPORTED_MODULE_11__utcTime__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__sequential__ = __webpack_require__(319);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleSequential\", function() { return __WEBPACK_IMPORTED_MODULE_12__sequential__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleSequentialLog\", function() { return __WEBPACK_IMPORTED_MODULE_12__sequential__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleSequentialPow\", function() { return __WEBPACK_IMPORTED_MODULE_12__sequential__[\"c\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleSequentialSqrt\", function() { return __WEBPACK_IMPORTED_MODULE_12__sequential__[\"d\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleSequentialSymlog\", function() { return __WEBPACK_IMPORTED_MODULE_12__sequential__[\"e\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__sequentialQuantile__ = __webpack_require__(594);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleSequentialQuantile\", function() { return __WEBPACK_IMPORTED_MODULE_13__sequentialQuantile__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__diverging__ = __webpack_require__(590);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleDiverging\", function() { return __WEBPACK_IMPORTED_MODULE_14__diverging__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleDivergingLog\", function() { return __WEBPACK_IMPORTED_MODULE_14__diverging__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleDivergingPow\", function() { return __WEBPACK_IMPORTED_MODULE_14__diverging__[\"c\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleDivergingSqrt\", function() { return __WEBPACK_IMPORTED_MODULE_14__diverging__[\"d\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleDivergingSymlog\", function() { return __WEBPACK_IMPORTED_MODULE_14__diverging__[\"e\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__tickFormat__ = __webpack_require__(320);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"tickFormat\", function() { return __WEBPACK_IMPORTED_MODULE_15__tickFormat__[\"a\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 316 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n});\n\n\n/***/ }),\n/* 317 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return +x;\n});\n\n\n/***/ }),\n/* 318 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return implicit; });\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = ordinal;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_collection__ = __webpack_require__(556);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__array__ = __webpack_require__(49);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__init__ = __webpack_require__(20);\n\n\n\n\nvar implicit = {name: \"implicit\"};\n\nfunction ordinal() {\n var index = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_collection__[\"a\" /* map */])(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_collection__[\"a\" /* map */])();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = __WEBPACK_IMPORTED_MODULE_1__array__[\"b\" /* slice */].call(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n __WEBPACK_IMPORTED_MODULE_2__init__[\"b\" /* initRange */].apply(scale, arguments);\n\n return scale;\n}\n\n\n/***/ }),\n/* 319 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"f\"] = copy;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = sequential;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = sequentialLog;\n/* harmony export (immutable) */ __webpack_exports__[\"e\"] = sequentialSymlog;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = sequentialPow;\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = sequentialSqrt;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__continuous__ = __webpack_require__(41);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__init__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__linear__ = __webpack_require__(50);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__log__ = __webpack_require__(179);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__symlog__ = __webpack_require__(181);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__pow__ = __webpack_require__(180);\n\n\n\n\n\n\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = __WEBPACK_IMPORTED_MODULE_0__continuous__[\"a\" /* identity */],\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nfunction copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nfunction sequential() {\n var scale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__linear__[\"b\" /* linearish */])(transformer()(__WEBPACK_IMPORTED_MODULE_0__continuous__[\"a\" /* identity */]));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return __WEBPACK_IMPORTED_MODULE_1__init__[\"a\" /* initInterpolator */].apply(scale, arguments);\n}\n\nfunction sequentialLog() {\n var scale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__log__[\"b\" /* loggish */])(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return __WEBPACK_IMPORTED_MODULE_1__init__[\"a\" /* initInterpolator */].apply(scale, arguments);\n}\n\nfunction sequentialSymlog() {\n var scale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__symlog__[\"b\" /* symlogish */])(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return __WEBPACK_IMPORTED_MODULE_1__init__[\"a\" /* initInterpolator */].apply(scale, arguments);\n}\n\nfunction sequentialPow() {\n var scale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__pow__[\"c\" /* powish */])(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return __WEBPACK_IMPORTED_MODULE_1__init__[\"a\" /* initInterpolator */].apply(scale, arguments);\n}\n\nfunction sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n\n\n/***/ }),\n/* 320 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_format__ = __webpack_require__(306);\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(start, stop, count, specifier) {\n var step = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"a\" /* tickStep */])(start, stop, count),\n precision;\n specifier = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_format__[\"a\" /* formatSpecifier */])(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_format__[\"b\" /* precisionPrefix */])(step, value))) specifier.precision = precision;\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_format__[\"c\" /* formatPrefix */])(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_format__[\"d\" /* precisionRound */])(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_format__[\"e\" /* precisionFixed */])(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_format__[\"f\" /* format */])(specifier);\n});\n\n\n/***/ }),\n/* 321 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = calendar;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_time__ = __webpack_require__(188);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_d3_time_format__ = __webpack_require__(337);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__array__ = __webpack_require__(49);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__continuous__ = __webpack_require__(41);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__init__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__nice__ = __webpack_require__(316);\n\n\n\n\n\n\n\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nfunction calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__continuous__[\"d\" /* default */])(__WEBPACK_IMPORTED_MODULE_4__continuous__[\"a\" /* identity */], __WEBPACK_IMPORTED_MODULE_4__continuous__[\"a\" /* identity */]),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"f\" /* bisector */])(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"a\" /* tickStep */])(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"a\" /* tickStep */])(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(__WEBPACK_IMPORTED_MODULE_3__array__[\"a\" /* map */].call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__nice__[\"a\" /* default */])(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__continuous__[\"c\" /* copy */])(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n return __WEBPACK_IMPORTED_MODULE_5__init__[\"b\" /* initRange */].apply(calendar(__WEBPACK_IMPORTED_MODULE_1_d3_time__[\"l\" /* timeYear */], __WEBPACK_IMPORTED_MODULE_1_d3_time__[\"q\" /* timeMonth */], __WEBPACK_IMPORTED_MODULE_1_d3_time__[\"r\" /* timeWeek */], __WEBPACK_IMPORTED_MODULE_1_d3_time__[\"k\" /* timeDay */], __WEBPACK_IMPORTED_MODULE_1_d3_time__[\"s\" /* timeHour */], __WEBPACK_IMPORTED_MODULE_1_d3_time__[\"t\" /* timeMinute */], __WEBPACK_IMPORTED_MODULE_1_d3_time__[\"u\" /* timeSecond */], __WEBPACK_IMPORTED_MODULE_1_d3_time__[\"v\" /* timeMillisecond */], __WEBPACK_IMPORTED_MODULE_2_d3_time_format__[\"b\" /* timeFormat */]).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n});\n\n\n/***/ }),\n/* 322 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_path__ = __webpack_require__(86);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constant__ = __webpack_require__(51);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__curve_linear__ = __webpack_require__(120);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__line__ = __webpack_require__(184);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__point__ = __webpack_require__(186);\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n var x0 = __WEBPACK_IMPORTED_MODULE_4__point__[\"a\" /* x */],\n x1 = null,\n y0 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(0),\n y1 = __WEBPACK_IMPORTED_MODULE_4__point__[\"b\" /* y */],\n defined = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(true),\n context = null,\n curve = __WEBPACK_IMPORTED_MODULE_2__curve_linear__[\"a\" /* default */],\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_path__[\"a\" /* path */])());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__line__[\"a\" /* default */])().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n});\n\n\n/***/ }),\n/* 323 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return slice; });\nvar slice = Array.prototype.slice;\n\n\n/***/ }),\n/* 324 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = CardinalClosed;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__noop__ = __webpack_require__(121);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__cardinal__ = __webpack_require__(119);\n\n\n\nfunction CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: __WEBPACK_IMPORTED_MODULE_0__noop__[\"a\" /* default */],\n areaEnd: __WEBPACK_IMPORTED_MODULE_0__noop__[\"a\" /* default */],\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__cardinal__[\"b\" /* point */])(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = ((function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0));\n\n\n/***/ }),\n/* 325 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = CardinalOpen;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__cardinal__ = __webpack_require__(119);\n\n\nfunction CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__cardinal__[\"b\" /* point */])(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = ((function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0));\n\n\n/***/ }),\n/* 326 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return curveRadialLinear; });\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = curveRadial;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__linear__ = __webpack_require__(120);\n\n\nvar curveRadialLinear = curveRadial(__WEBPACK_IMPORTED_MODULE_0__linear__[\"a\" /* default */]);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nfunction curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n\n\n/***/ }),\n/* 327 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = lineRadial;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__curve_radial__ = __webpack_require__(326);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__line__ = __webpack_require__(184);\n\n\n\nfunction lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__curve_radial__[\"a\" /* default */])(_)) : c()._curve;\n };\n\n return l;\n}\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function() {\n return lineRadial(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__line__[\"a\" /* default */])().curve(__WEBPACK_IMPORTED_MODULE_0__curve_radial__[\"b\" /* curveRadialLinear */]));\n});\n\n\n/***/ }),\n/* 328 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__none__ = __webpack_require__(89);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(series) {\n var peaks = series.map(peak);\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__none__[\"a\" /* default */])(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n});\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n\n\n/***/ }),\n/* 329 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n});\n\n\n/***/ }),\n/* 330 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__math__ = __webpack_require__(87);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n draw: function(context, size) {\n var r = Math.sqrt(size / __WEBPACK_IMPORTED_MODULE_0__math__[\"b\" /* pi */]);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, __WEBPACK_IMPORTED_MODULE_0__math__[\"c\" /* tau */]);\n }\n});\n\n\n/***/ }),\n/* 331 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n});\n\n\n/***/ }),\n/* 332 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n});\n\n\n/***/ }),\n/* 333 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n});\n\n\n/***/ }),\n/* 334 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__math__ = __webpack_require__(87);\n\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(__WEBPACK_IMPORTED_MODULE_0__math__[\"b\" /* pi */] / 10) / Math.sin(7 * __WEBPACK_IMPORTED_MODULE_0__math__[\"b\" /* pi */] / 10),\n kx = Math.sin(__WEBPACK_IMPORTED_MODULE_0__math__[\"c\" /* tau */] / 10) * kr,\n ky = -Math.cos(__WEBPACK_IMPORTED_MODULE_0__math__[\"c\" /* tau */] / 10) * kr;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = __WEBPACK_IMPORTED_MODULE_0__math__[\"c\" /* tau */] * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n});\n\n\n/***/ }),\n/* 335 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar sqrt3 = Math.sqrt(3);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n});\n\n\n/***/ }),\n/* 336 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n});\n\n\n/***/ }),\n/* 337 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defaultLocale__ = __webpack_require__(187);\n/* unused harmony reexport timeFormatDefaultLocale */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_0__defaultLocale__[\"c\"]; });\n/* unused harmony reexport timeParse */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__defaultLocale__[\"a\"]; });\n/* unused harmony reexport utcParse */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__locale__ = __webpack_require__(339);\n/* unused harmony reexport timeFormatLocale */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__isoFormat__ = __webpack_require__(338);\n/* unused harmony reexport isoFormat */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__isoParse__ = __webpack_require__(621);\n/* unused harmony reexport isoParse */\n\n\n\n\n\n\n/***/ }),\n/* 338 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return isoSpecifier; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defaultLocale__ = __webpack_require__(187);\n\n\nvar isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__defaultLocale__[\"a\" /* utcFormat */])(isoSpecifier);\n\n/* unused harmony default export */ var _unused_webpack_default_export = (formatIso);\n\n\n/***/ }),\n/* 339 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = formatLocale;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_time__ = __webpack_require__(188);\n\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newYear(y) {\n return {y: y, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0};\n}\n\nfunction formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, newDate) {\n return function(string) {\n var d = newYear(1900),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newYear(d.y)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? __WEBPACK_IMPORTED_MODULE_0_d3_time__[\"i\" /* utcMonday */].ceil(week) : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"i\" /* utcMonday */])(week);\n week = __WEBPACK_IMPORTED_MODULE_0_d3_time__[\"d\" /* utcDay */].offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = newDate(newYear(d.y)), day = week.getDay();\n week = day > 4 || day === 0 ? __WEBPACK_IMPORTED_MODULE_0_d3_time__[\"j\" /* timeMonday */].ceil(week) : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"j\" /* timeMonday */])(week);\n week = __WEBPACK_IMPORTED_MODULE_0_d3_time__[\"k\" /* timeDay */].offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return newDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", localDate);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier, utcDate);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = (+n[0]) * 1000, i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + __WEBPACK_IMPORTED_MODULE_0_d3_time__[\"k\" /* timeDay */].count(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"l\" /* timeYear */])(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"m\" /* timeSunday */].count(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"l\" /* timeYear */])(d), d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"n\" /* timeThursday */])(d) : __WEBPACK_IMPORTED_MODULE_0_d3_time__[\"n\" /* timeThursday */].ceil(d);\n return pad(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"n\" /* timeThursday */].count(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"l\" /* timeYear */])(d), d) + (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"l\" /* timeYear */])(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"j\" /* timeMonday */].count(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"l\" /* timeYear */])(d), d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + __WEBPACK_IMPORTED_MODULE_0_d3_time__[\"d\" /* utcDay */].count(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"a\" /* utcYear */])(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"o\" /* utcSunday */].count(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"a\" /* utcYear */])(d), d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"p\" /* utcThursday */])(d) : __WEBPACK_IMPORTED_MODULE_0_d3_time__[\"p\" /* utcThursday */].ceil(d);\n return pad(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"p\" /* utcThursday */].count(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"a\" /* utcYear */])(d), d) + (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"a\" /* utcYear */])(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"i\" /* utcMonday */].count(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__[\"a\" /* utcYear */])(d), d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n\n\n/***/ }),\n/* 340 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_RESULT__;/*! decimal.js-light v2.5.0 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.5.0\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2018 Michael Mclaughlin \r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return this.s === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '1e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (true) {\r\n !(__WEBPACK_AMD_DEFINE_RESULT__ = function () {\r\n return Decimal;\r\n }.call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n\n\n/***/ }),\n/* 341 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hyphenateStyleName);\n\n\n/***/ }),\n/* 342 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getNative = __webpack_require__(52),\n root = __webpack_require__(28);\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n\n\n/***/ }),\n/* 343 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar root = __webpack_require__(28);\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n\n\n/***/ }),\n/* 344 */\n/***/ (function(module, exports) {\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\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 == null ? 0 : 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/* 345 */\n/***/ (function(module, exports) {\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n\n\n/***/ }),\n/* 346 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIndexOf = __webpack_require__(665);\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n\n\n/***/ }),\n/* 347 */\n/***/ (function(module, exports) {\n\n/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n\n\n/***/ }),\n/* 348 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseTimes = __webpack_require__(688),\n isArguments = __webpack_require__(208),\n isArray = __webpack_require__(12),\n isBuffer = __webpack_require__(209),\n isIndex = __webpack_require__(202),\n isTypedArray = __webpack_require__(371);\n\n/** Used for built-in 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 enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n\n\n/***/ }),\n/* 349 */\n/***/ (function(module, exports) {\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\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 == null ? 0 : 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/* 350 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseAssignValue = __webpack_require__(194),\n eq = __webpack_require__(130);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n\n\n/***/ }),\n/* 351 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\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 value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n\n\n/***/ }),\n/* 352 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseFor = __webpack_require__(663),\n keys = __webpack_require__(43);\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\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 object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n\n\n/***/ }),\n/* 353 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayPush = __webpack_require__(193),\n isArray = __webpack_require__(12);\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n\n\n/***/ }),\n/* 354 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n\n\n/***/ }),\n/* 355 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n\n\n/***/ }),\n/* 356 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseEach = __webpack_require__(90),\n isArrayLike = __webpack_require__(54);\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} 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/* 357 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getNative = __webpack_require__(52);\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n\n\n/***/ }),\n/* 358 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar SetCache = __webpack_require__(191),\n arraySome = __webpack_require__(349),\n cacheHas = __webpack_require__(198);\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\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 {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n\n\n/***/ }),\n/* 359 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(47)))\n\n/***/ }),\n/* 360 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetAllKeys = __webpack_require__(353),\n getSymbols = __webpack_require__(201),\n keys = __webpack_require__(43);\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n\n\n/***/ }),\n/* 361 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetAllKeys = __webpack_require__(353),\n getSymbolsIn = __webpack_require__(362),\n keysIn = __webpack_require__(135);\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n\n\n/***/ }),\n/* 362 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayPush = __webpack_require__(193),\n getPrototype = __webpack_require__(200),\n getSymbols = __webpack_require__(201),\n stubArray = __webpack_require__(378);\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n\n\n/***/ }),\n/* 363 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(21);\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/* 364 */\n/***/ (function(module, exports) {\n\n/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n\n\n/***/ }),\n/* 365 */\n/***/ (function(module, exports) {\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n/***/ }),\n/* 366 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar apply = __webpack_require__(655);\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\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 * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n\n\n/***/ }),\n/* 367 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseSetToString = __webpack_require__(683),\n shortOut = __webpack_require__(749);\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n\n\n/***/ }),\n/* 368 */\n/***/ (function(module, exports) {\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n\n\n/***/ }),\n/* 369 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(21),\n now = __webpack_require__(776),\n toNumber = __webpack_require__(380);\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n\n\n/***/ }),\n/* 370 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayEvery = __webpack_require__(656),\n baseEvery = __webpack_require__(661),\n baseIteratee = __webpack_require__(24),\n isArray = __webpack_require__(12),\n isIterateeCall = __webpack_require__(92);\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = every;\n\n\n/***/ }),\n/* 371 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsTypedArray = __webpack_require__(674),\n baseUnary = __webpack_require__(91),\n nodeUtil = __webpack_require__(205);\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n\n\n/***/ }),\n/* 372 */\n/***/ (function(module, exports) {\n\n/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\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 == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n\n\n/***/ }),\n/* 373 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayMap = __webpack_require__(67),\n baseIteratee = __webpack_require__(24),\n baseMap = __webpack_require__(356),\n isArray = __webpack_require__(12);\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\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`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n\n\n/***/ }),\n/* 374 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseExtremum = __webpack_require__(124),\n baseGt = __webpack_require__(354),\n identity = __webpack_require__(53);\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nmodule.exports = max;\n\n\n/***/ }),\n/* 375 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseExtremum = __webpack_require__(124),\n baseGt = __webpack_require__(354),\n baseIteratee = __webpack_require__(24);\n\n/**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\nfunction maxBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseGt)\n : undefined;\n}\n\nmodule.exports = maxBy;\n\n\n/***/ }),\n/* 376 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseExtremum = __webpack_require__(124),\n baseLt = __webpack_require__(355),\n identity = __webpack_require__(53);\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n\n\n/***/ }),\n/* 377 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar createRange = __webpack_require__(710);\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n\n\n/***/ }),\n/* 378 */\n/***/ (function(module, exports) {\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n\n\n/***/ }),\n/* 379 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toNumber = __webpack_require__(380);\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n\n\n/***/ }),\n/* 380 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseTrim = __webpack_require__(690),\n isObject = __webpack_require__(21),\n isSymbol = __webpack_require__(70);\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n\n\n/***/ }),\n/* 381 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIteratee = __webpack_require__(24),\n baseUniq = __webpack_require__(691);\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n\n\n/***/ }),\n/* 382 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var now = __webpack_require__(789)\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(47)))\n\n/***/ }),\n/* 383 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"polyfill\", function() { return polyfill; });\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\n\n\n\n/***/ }),\n/* 384 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__ = __webpack_require__(22);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(215);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__AnimateManager__ = __webpack_require__(805);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__PureRender__ = __webpack_require__(806);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__easing__ = __webpack_require__(385);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__configUpdate__ = __webpack_require__(807);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__util__ = __webpack_require__(137);\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\n\n\n\n\n\n\n\n\nvar Animate = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Animate, _Component);\n\n function Animate(props, context) {\n var _this;\n\n _classCallCheck(this, Animate);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Animate).call(this, props, context));\n var _this$props = _this.props,\n isActive = _this$props.isActive,\n attributeName = _this$props.attributeName,\n from = _this$props.from,\n to = _this$props.to,\n steps = _this$props.steps,\n children = _this$props.children;\n _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n\n if (!isActive) {\n _this.state = {\n style: {}\n }; // if children is a function and animation is not active, set style to 'to'\n\n if (typeof children === 'function') {\n _this.state = {\n style: to\n };\n }\n\n return _possibleConstructorReturn(_this);\n }\n\n if (steps && steps.length) {\n _this.state = {\n style: steps[0].style\n };\n } else if (from) {\n if (typeof children === 'function') {\n _this.state = {\n style: from\n };\n return _possibleConstructorReturn(_this);\n }\n\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = {\n style: {}\n };\n }\n\n return _this;\n }\n\n _createClass(Animate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props2 = this.props,\n isActive = _this$props2.isActive,\n canBegin = _this$props2.canBegin;\n this.mounted = true;\n\n if (!isActive || !canBegin) {\n return;\n }\n\n this.runAnimation(this.props);\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var isActive = nextProps.isActive,\n canBegin = nextProps.canBegin,\n attributeName = nextProps.attributeName,\n shouldReAnimate = nextProps.shouldReAnimate;\n\n if (!canBegin) {\n return;\n }\n\n if (!isActive) {\n this.setState({\n style: attributeName ? _defineProperty({}, attributeName, nextProps.to) : nextProps.to\n });\n return;\n }\n\n if (__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default()(this.props.to, nextProps.to) && this.props.canBegin && this.props.isActive) {\n return;\n }\n\n var isTriggered = !this.props.canBegin || !this.props.isActive;\n\n if (this.manager) {\n this.manager.stop();\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n\n var from = isTriggered || shouldReAnimate ? nextProps.from : this.props.to;\n this.setState({\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n });\n this.runAnimation(_objectSpread({}, nextProps, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n }\n }, {\n key: \"runJSAnimation\",\n value: function runJSAnimation(props) {\n var _this2 = this;\n\n var from = props.from,\n to = props.to,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart;\n var startAnimation = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__configUpdate__[\"a\" /* default */])(from, to, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__easing__[\"a\" /* configEasing */])(easing), duration, this.changeStyle);\n\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\n\n this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);\n }\n }, {\n key: \"runStepAnimation\",\n value: function runStepAnimation(props) {\n var _this3 = this;\n\n var steps = props.steps,\n begin = props.begin,\n onAnimationStart = props.onAnimationStart;\n var _steps$ = steps[0],\n initialStyle = _steps$.style,\n _steps$$duration = _steps$.duration,\n initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;\n\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === void 0 ? 'ease' : _nextItem$easing,\n style = nextItem.style,\n nextProperties = nextItem.properties,\n onAnimationEnd = nextItem.onAnimationEnd;\n var preItem = index > 0 ? steps[index - 1] : nextItem;\n var properties = nextProperties || Object.keys(style);\n\n if (typeof easing === 'function' || easing === 'spring') {\n return _toConsumableArray(sequence).concat([_this3.runJSAnimation.bind(_this3, {\n from: preItem.style,\n to: style,\n duration: duration,\n easing: easing\n }), duration]);\n }\n\n var transition = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__util__[\"a\" /* getTransitionVal */])(properties, duration, easing);\n\n var newStyle = _objectSpread({}, preItem.style, style, {\n transition: transition\n });\n\n return _toConsumableArray(sequence).concat([newStyle, duration, onAnimationEnd]).filter(__WEBPACK_IMPORTED_MODULE_7__util__[\"b\" /* identity */]);\n };\n\n return this.manager.start([onAnimationStart].concat(_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));\n }\n }, {\n key: \"runAnimation\",\n value: function runAnimation(props) {\n if (!this.manager) {\n this.manager = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__AnimateManager__[\"a\" /* default */])();\n }\n\n var begin = props.begin,\n duration = props.duration,\n attributeName = props.attributeName,\n propsTo = props.to,\n easing = props.easing,\n onAnimationStart = props.onAnimationStart,\n onAnimationEnd = props.onAnimationEnd,\n steps = props.steps,\n children = props.children;\n var manager = this.manager;\n this.unSubscribe = manager.subscribe(this.handleStyleChange);\n\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__util__[\"a\" /* getTransitionVal */])(Object.keys(to), duration, easing);\n manager.start([onAnimationStart, begin, _objectSpread({}, to, {\n transition: transition\n }), duration, onAnimationEnd]);\n }\n }, {\n key: \"handleStyleChange\",\n value: function handleStyleChange(style) {\n this.changeStyle(style);\n }\n }, {\n key: \"changeStyle\",\n value: function changeStyle(style) {\n if (this.mounted) {\n this.setState({\n style: style\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props3 = this.props,\n children = _this$props3.children,\n begin = _this$props3.begin,\n duration = _this$props3.duration,\n attributeName = _this$props3.attributeName,\n easing = _this$props3.easing,\n isActive = _this$props3.isActive,\n steps = _this$props3.steps,\n from = _this$props3.from,\n to = _this$props3.to,\n canBegin = _this$props3.canBegin,\n onAnimationEnd = _this$props3.onAnimationEnd,\n shouldReAnimate = _this$props3.shouldReAnimate,\n onAnimationReStart = _this$props3.onAnimationReStart,\n others = _objectWithoutProperties(_this$props3, [\"children\", \"begin\", \"duration\", \"attributeName\", \"easing\", \"isActive\", \"steps\", \"from\", \"to\", \"canBegin\", \"onAnimationEnd\", \"shouldReAnimate\", \"onAnimationReStart\"]);\n\n var count = __WEBPACK_IMPORTED_MODULE_1_react__[\"Children\"].count(children);\n var stateStyle = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__util__[\"c\" /* translateStyle */])(this.state.style);\n\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n\n if (!isActive || count === 0) {\n return children;\n }\n\n var cloneContainer = function cloneContainer(container) {\n var _container$props = container.props,\n _container$props$styl = _container$props.style,\n style = _container$props$styl === void 0 ? {} : _container$props$styl,\n className = _container$props.className;\n var res = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_react__[\"cloneElement\"])(container, _objectSpread({}, others, {\n style: _objectSpread({}, style, stateStyle),\n className: className\n }));\n return res;\n };\n\n if (count === 1) {\n return cloneContainer(__WEBPACK_IMPORTED_MODULE_1_react__[\"Children\"].only(children));\n }\n\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\"div\", null, __WEBPACK_IMPORTED_MODULE_1_react__[\"Children\"].map(children, function (child) {\n return cloneContainer(child);\n }));\n }\n }]);\n\n return Animate;\n}(__WEBPACK_IMPORTED_MODULE_1_react__[\"Component\"]), _class2.displayName = 'Animate', _class2.propTypes = {\n from: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string]),\n to: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string]),\n attributeName: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string,\n // animation duration\n duration: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n begin: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n easing: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func]),\n steps: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.shape({\n duration: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number.isRequired,\n style: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object.isRequired,\n easing: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func]),\n // transition css properties(dash case), optional\n properties: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.arrayOf('string'),\n onAnimationEnd: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func\n })),\n children: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.node, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func]),\n isActive: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool,\n canBegin: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool,\n onAnimationEnd: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,\n // decide if it should reanimate with initial from style when props change\n shouldReAnimate: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool,\n onAnimationStart: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,\n onAnimationReStart: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func\n}, _class2.defaultProps = {\n begin: 0,\n duration: 1000,\n from: '',\n to: '',\n attributeName: '',\n easing: 'ease',\n isActive: true,\n canBegin: true,\n steps: [],\n onAnimationEnd: function onAnimationEnd() {},\n onAnimationStart: function onAnimationStart() {}\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Animate);\n\n/***/ }),\n/* 385 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export configBezier */\n/* unused harmony export configSpring */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return configEasing; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(137);\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\n\nvar ACCURACY = 1e-4;\n\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\n\nvar multyTime = function multyTime(params, t) {\n return params.map(function (param, i) {\n return param * Math.pow(t, i);\n }).reduce(function (pre, curr) {\n return pre + curr;\n });\n};\n\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n return multyTime(params, t);\n };\n};\n\nvar derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n\n var newParams = _toConsumableArray(params.map(function (param, i) {\n return param * i;\n }).slice(1)).concat([0]);\n\n return multyTime(newParams, t);\n };\n}; // calculate cubic-bezier using Newton's method\n\n\nvar configBezier = function configBezier() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n break;\n\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n default:\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__util__[\"d\" /* warn */])(false, '[configBezier]: arguments should be one of ' + 'oneOf \\'linear\\', \\'ease\\', \\'ease-in\\', \\'ease-out\\', ' + '\\'ease-in-out\\', instead received %s', args);\n }\n }\n\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__util__[\"d\" /* warn */])([x1, x2, y1, y2].every(function (num) {\n return typeof num === 'number' && num >= 0 && num <= 1;\n }), '[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s', args);\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n\n var rangeValue = function rangeValue(value) {\n if (value > 1) {\n return 1;\n } else if (value < 0) {\n return 0;\n }\n\n return value;\n };\n\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n\n x = rangeValue(x - evalT / derVal);\n }\n\n return curveY(x);\n };\n\n bezier.isStepper = false;\n return bezier;\n};\nvar configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === void 0 ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === void 0 ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === void 0 ? 17 : _config$dt;\n\n var stepper = function stepper(currX, destX, currV) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n\n return [newX, newV];\n };\n\n stepper.isStepper = true;\n stepper.dt = dt;\n return stepper;\n};\nvar configEasing = function configEasing() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var easing = args[0];\n\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n\n case 'spring':\n return configSpring();\n\n default:\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__util__[\"d\" /* warn */])(false, '[configEasing]: first argument should be one of \\'ease\\', \\'ease-in\\', ' + '\\'ease-out\\', \\'ease-in-out\\', \\'linear\\' and \\'spring\\', instead received %s', args);\n }\n }\n\n if (typeof easing === 'function') {\n return easing;\n }\n\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__util__[\"d\" /* warn */])(false, '[configEasing]: first argument type should be function or ' + 'string, instead received %s', args);\n return null;\n};\n\n/***/ }),\n/* 386 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _CSSTransition = _interopRequireDefault(__webpack_require__(812));\n\nvar _ReplaceTransition = _interopRequireDefault(__webpack_require__(813));\n\nvar _TransitionGroup = _interopRequireDefault(__webpack_require__(218));\n\nvar _Transition = _interopRequireDefault(__webpack_require__(217));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};\n\n/***/ }),\n/* 387 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(95));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 388 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = __webpack_require__(821);\n\n\n/***/ }),\n/* 389 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _get = __webpack_require__(113)['default'];\n\nvar _inherits = __webpack_require__(114)['default'];\n\nvar _createClass = __webpack_require__(112)['default'];\n\nvar _classCallCheck = __webpack_require__(111)['default'];\n\nvar _interopRequireDefault = __webpack_require__(115)['default'];\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _radium = __webpack_require__(853);\n\nvar _radium2 = _interopRequireDefault(_radium);\n\nvar _velocityReact = __webpack_require__(428);\n\nvar Loading = function Loading(props) {\n return _react2['default'].createElement(\n 'div',\n { style: props.style },\n 'loading...'\n );\n};\n\nLoading.propTypes = {\n style: _react2['default'].PropTypes.object\n};\n\nvar Toggle = function Toggle(props) {\n var style = props.style;\n var height = style.height;\n var width = style.width;\n var midHeight = height * 0.5;\n var points = '0,0 0,' + height + ' ' + width + ',' + midHeight;\n return _react2['default'].createElement(\n 'div',\n { style: style.base },\n _react2['default'].createElement(\n 'div',\n { style: style.wrapper },\n _react2['default'].createElement(\n 'svg',\n { height: height, width: width },\n _react2['default'].createElement('polygon', {\n points: points,\n style: style.arrow\n })\n )\n )\n );\n};\n\nToggle.propTypes = {\n style: _react2['default'].PropTypes.object\n};\n\nvar Header = function Header(props) {\n var style = props.style;\n return _react2['default'].createElement(\n 'div',\n { style: style.base },\n _react2['default'].createElement(\n 'div',\n { style: style.title },\n props.node.name\n )\n );\n};\n\nHeader.propTypes = {\n style: _react2['default'].PropTypes.object,\n node: _react2['default'].PropTypes.object.isRequired\n};\n\nvar Container = (function (_React$Component) {\n _inherits(Container, _React$Component);\n\n function Container(props) {\n _classCallCheck(this, _Container);\n\n _get(Object.getPrototypeOf(_Container.prototype), 'constructor', this).call(this, props);\n }\n\n _createClass(Container, [{\n key: 'render',\n value: function render() {\n var _props = this.props;\n var style = _props.style;\n var decorators = _props.decorators;\n var terminal = _props.terminal;\n var onClick = _props.onClick;\n var node = _props.node;\n\n return _react2['default'].createElement(\n 'div',\n {\n ref: 'clickable',\n onClick: onClick,\n style: style.container },\n !terminal ? this.renderToggle() : null,\n _react2['default'].createElement(decorators.Header, {\n node: node,\n style: style.header\n })\n );\n }\n }, {\n key: 'renderToggle',\n value: function renderToggle() {\n var animations = this.props.animations;\n if (!animations) {\n return this.renderToggleDecorator();\n }\n return _react2['default'].createElement(\n _velocityReact.VelocityComponent,\n { ref: 'velocity',\n duration: animations.toggle.duration,\n animation: animations.toggle.animation },\n this.renderToggleDecorator()\n );\n }\n }, {\n key: 'renderToggleDecorator',\n value: function renderToggleDecorator() {\n var _props2 = this.props;\n var style = _props2.style;\n var decorators = _props2.decorators;\n\n return _react2['default'].createElement(decorators.Toggle, { style: style.toggle });\n }\n }]);\n\n var _Container = Container;\n Container = (0, _radium2['default'])(Container) || Container;\n return Container;\n})(_react2['default'].Component);\n\nContainer.propTypes = {\n style: _react2['default'].PropTypes.object.isRequired,\n decorators: _react2['default'].PropTypes.object.isRequired,\n terminal: _react2['default'].PropTypes.bool.isRequired,\n onClick: _react2['default'].PropTypes.func.isRequired,\n animations: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.object, _react2['default'].PropTypes.bool]).isRequired,\n node: _react2['default'].PropTypes.object.isRequired\n};\n\nexports['default'] = {\n Loading: Loading,\n Toggle: Toggle,\n Header: Header,\n Container: Container\n};\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 390 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = {\n toggle: function toggle(props) {\n return {\n animation: { rotateZ: props.node.toggled ? 90 : 0 },\n duration: 300\n };\n },\n drawer: function drawer() /* props */{\n return {\n enter: {\n animation: 'slideDown',\n duration: 300\n },\n leave: {\n animation: 'slideUp',\n duration: 300\n }\n };\n }\n};\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 391 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = {\n tree: {\n base: {\n listStyle: 'none',\n backgroundColor: '#21252B',\n margin: 0,\n padding: 0,\n color: '#9DA5AB',\n fontFamily: 'lucida grande ,tahoma,verdana,arial,sans-serif',\n fontSize: '14px'\n },\n node: {\n base: {\n position: 'relative'\n },\n link: {\n cursor: 'pointer',\n position: 'relative',\n padding: '0px 5px',\n display: 'block'\n },\n activeLink: {\n background: '#31363F'\n },\n toggle: {\n base: {\n position: 'relative',\n display: 'inline-block',\n verticalAlign: 'top',\n marginLeft: '-5px',\n height: '24px',\n width: '24px'\n },\n wrapper: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n margin: '-7px 0 0 -7px',\n height: '14px'\n },\n height: 14,\n width: 14,\n arrow: {\n fill: '#9DA5AB',\n strokeWidth: 0\n }\n },\n header: {\n base: {\n display: 'inline-block',\n verticalAlign: 'top',\n color: '#9DA5AB'\n },\n connector: {\n width: '2px',\n height: '12px',\n borderLeft: 'solid 2px black',\n borderBottom: 'solid 2px black',\n position: 'absolute',\n top: '0px',\n left: '-21px'\n },\n title: {\n lineHeight: '24px',\n verticalAlign: 'middle'\n }\n },\n subtree: {\n listStyle: 'none',\n paddingLeft: '19px'\n },\n loading: {\n color: '#E2C089'\n }\n }\n }\n};\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 392 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = { \"Webkit\": { \"transform\": true, \"transformOrigin\": true, \"transformOriginX\": true, \"transformOriginY\": true, \"backfaceVisibility\": true, \"perspective\": true, \"perspectiveOrigin\": true, \"transformStyle\": true, \"transformOriginZ\": true, \"animation\": true, \"animationDelay\": true, \"animationDirection\": true, \"animationFillMode\": true, \"animationDuration\": true, \"animationIterationCount\": true, \"animationName\": true, \"animationPlayState\": true, \"animationTimingFunction\": true, \"appearance\": true, \"userSelect\": true, \"fontKerning\": true, \"textEmphasisPosition\": true, \"textEmphasis\": true, \"textEmphasisStyle\": true, \"textEmphasisColor\": true, \"boxDecorationBreak\": true, \"clipPath\": true, \"maskImage\": true, \"maskMode\": true, \"maskRepeat\": true, \"maskPosition\": true, \"maskClip\": true, \"maskOrigin\": true, \"maskSize\": true, \"maskComposite\": true, \"mask\": true, \"maskBorderSource\": true, \"maskBorderMode\": true, \"maskBorderSlice\": true, \"maskBorderWidth\": true, \"maskBorderOutset\": true, \"maskBorderRepeat\": true, \"maskBorder\": true, \"maskType\": true, \"textDecorationStyle\": true, \"textDecorationSkip\": true, \"textDecorationLine\": true, \"textDecorationColor\": true, \"filter\": true, \"fontFeatureSettings\": true, \"breakAfter\": true, \"breakBefore\": true, \"breakInside\": true, \"columnCount\": true, \"columnFill\": true, \"columnGap\": true, \"columnRule\": true, \"columnRuleColor\": true, \"columnRuleStyle\": true, \"columnRuleWidth\": true, \"columns\": true, \"columnSpan\": true, \"columnWidth\": true, \"flex\": true, \"flexBasis\": true, \"flexDirection\": true, \"flexGrow\": true, \"flexFlow\": true, \"flexShrink\": true, \"flexWrap\": true, \"alignContent\": true, \"alignItems\": true, \"alignSelf\": true, \"justifyContent\": true, \"order\": true, \"transition\": true, \"transitionDelay\": true, \"transitionDuration\": true, \"transitionProperty\": true, \"transitionTimingFunction\": true, \"backdropFilter\": true, \"scrollSnapType\": true, \"scrollSnapPointsX\": true, \"scrollSnapPointsY\": true, \"scrollSnapDestination\": true, \"scrollSnapCoordinate\": true, \"shapeImageThreshold\": true, \"shapeImageMargin\": true, \"shapeImageOutside\": true, \"hyphens\": true, \"flowInto\": true, \"flowFrom\": true, \"regionFragment\": true, \"textSizeAdjust\": true }, \"Moz\": { \"appearance\": true, \"userSelect\": true, \"boxSizing\": true, \"textAlignLast\": true, \"textDecorationStyle\": true, \"textDecorationSkip\": true, \"textDecorationLine\": true, \"textDecorationColor\": true, \"tabSize\": true, \"hyphens\": true, \"fontFeatureSettings\": true, \"breakAfter\": true, \"breakBefore\": true, \"breakInside\": true, \"columnCount\": true, \"columnFill\": true, \"columnGap\": true, \"columnRule\": true, \"columnRuleColor\": true, \"columnRuleStyle\": true, \"columnRuleWidth\": true, \"columns\": true, \"columnSpan\": true, \"columnWidth\": true }, \"ms\": { \"flex\": true, \"flexBasis\": false, \"flexDirection\": true, \"flexGrow\": false, \"flexFlow\": true, \"flexShrink\": false, \"flexWrap\": true, \"alignContent\": false, \"alignItems\": false, \"alignSelf\": false, \"justifyContent\": false, \"order\": false, \"transform\": true, \"transformOrigin\": true, \"transformOriginX\": true, \"transformOriginY\": true, \"userSelect\": true, \"wrapFlow\": true, \"wrapThrough\": true, \"wrapMargin\": true, \"scrollSnapType\": true, \"scrollSnapPointsX\": true, \"scrollSnapPointsY\": true, \"scrollSnapDestination\": true, \"scrollSnapCoordinate\": true, \"touchAction\": true, \"hyphens\": true, \"flowInto\": true, \"flowFrom\": true, \"breakBefore\": true, \"breakAfter\": true, \"breakInside\": true, \"regionFragment\": true, \"gridTemplateColumns\": true, \"gridTemplateRows\": true, \"gridTemplateAreas\": true, \"gridTemplate\": true, \"gridAutoColumns\": true, \"gridAutoRows\": true, \"gridAutoFlow\": true, \"grid\": true, \"gridRowStart\": true, \"gridColumnStart\": true, \"gridRowEnd\": true, \"gridRow\": true, \"gridColumn\": true, \"gridColumnEnd\": true, \"gridColumnGap\": true, \"gridRowGap\": true, \"gridArea\": true, \"gridGap\": true, \"textSizeAdjust\": true } };\nmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 393 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sortPrefixedStyle;\n\nvar _isPrefixedProperty = __webpack_require__(846);\n\nvar _isPrefixedProperty2 = _interopRequireDefault(_isPrefixedProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sortPrefixedStyle(style) {\n return Object.keys(style).sort(function (left, right) {\n if ((0, _isPrefixedProperty2.default)(left) && !(0, _isPrefixedProperty2.default)(right)) {\n return -1;\n } else if (!(0, _isPrefixedProperty2.default)(left) && (0, _isPrefixedProperty2.default)(right)) {\n return 1;\n }\n return 0;\n }).reduce(function (sortedStyle, prop) {\n sortedStyle[prop] = style[prop];\n return sortedStyle;\n }, {});\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 394 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = appendPxIfNeeded;\n\n\n// Copied from https://github.com/facebook/react/blob/\n// 102cd291899f9942a76c40a0e78920a6fe544dc1/\n// src/renderers/dom/shared/CSSProperty.js\nvar isUnitlessNumber = {\n animationIterationCount: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridColumn: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n stopOpacity: true,\n strokeDashoffset: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\nfunction appendPxIfNeeded(propertyName, value) {\n var needsPxSuffix = !isUnitlessNumber[propertyName] && typeof value === 'number' && value !== 0;\n return needsPxSuffix ? value + 'px' : value;\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 395 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = enhanceWithRadium;\n\nvar _react = __webpack_require__(0);\n\nvar _styleKeeper = __webpack_require__(224);\n\nvar _styleKeeper2 = _interopRequireDefault(_styleKeeper);\n\nvar _resolveStyles = __webpack_require__(401);\n\nvar _resolveStyles2 = _interopRequireDefault(_resolveStyles);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar KEYS_TO_IGNORE_WHEN_COPYING_PROPERTIES = ['arguments', 'callee', 'caller', 'length', 'name', 'prototype', 'type'];\n\nfunction copyProperties(source, target) {\n Object.getOwnPropertyNames(source).forEach(function (key) {\n if (KEYS_TO_IGNORE_WHEN_COPYING_PROPERTIES.indexOf(key) < 0 && !target.hasOwnProperty(key)) {\n var descriptor = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, descriptor);\n }\n });\n}\n\nfunction isStateless(component) {\n return !component.render && !(component.prototype && component.prototype.render);\n}\n\nfunction enhanceWithRadium(configOrComposedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (typeof configOrComposedComponent !== 'function') {\n var newConfig = _extends({}, config, configOrComposedComponent);\n return function (configOrComponent) {\n return enhanceWithRadium(configOrComponent, newConfig);\n };\n }\n\n var component = configOrComposedComponent;\n var ComposedComponent = component;\n\n // Handle stateless components\n if (isStateless(ComposedComponent)) {\n ComposedComponent = function (_Component) {\n _inherits(ComposedComponent, _Component);\n\n function ComposedComponent() {\n _classCallCheck(this, ComposedComponent);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n ComposedComponent.prototype.render = function render() {\n return component(this.props, this.context);\n };\n\n return ComposedComponent;\n }(_react.Component);\n ComposedComponent.displayName = component.displayName || component.name;\n }\n\n var RadiumEnhancer = (_temp = _class = function (_ComposedComponent) {\n _inherits(RadiumEnhancer, _ComposedComponent);\n\n function RadiumEnhancer() {\n _classCallCheck(this, RadiumEnhancer);\n\n var _this2 = _possibleConstructorReturn(this, _ComposedComponent.apply(this, arguments));\n\n _this2.state = _this2.state || {};\n _this2.state._radiumStyleState = {};\n _this2._radiumIsMounted = true;\n return _this2;\n }\n\n RadiumEnhancer.prototype.componentWillUnmount = function componentWillUnmount() {\n if (_ComposedComponent.prototype.componentWillUnmount) {\n _ComposedComponent.prototype.componentWillUnmount.call(this);\n }\n\n this._radiumIsMounted = false;\n\n if (this._radiumMouseUpListener) {\n this._radiumMouseUpListener.remove();\n }\n\n if (this._radiumMediaQueryListenersByQuery) {\n Object.keys(this._radiumMediaQueryListenersByQuery).forEach(function (query) {\n this._radiumMediaQueryListenersByQuery[query].remove();\n }, this);\n }\n };\n\n RadiumEnhancer.prototype.getChildContext = function getChildContext() {\n var superChildContext = _ComposedComponent.prototype.getChildContext ? _ComposedComponent.prototype.getChildContext.call(this) : {};\n\n if (!this.props.radiumConfig) {\n return superChildContext;\n }\n\n var newContext = _extends({}, superChildContext);\n\n if (this.props.radiumConfig) {\n newContext._radiumConfig = this.props.radiumConfig;\n }\n\n return newContext;\n };\n\n RadiumEnhancer.prototype.render = function render() {\n var renderedElement = _ComposedComponent.prototype.render.call(this);\n var currentConfig = this.props.radiumConfig || this.context._radiumConfig || config;\n\n if (config && currentConfig !== config) {\n currentConfig = _extends({}, config, currentConfig);\n }\n\n return (0, _resolveStyles2.default)(this, renderedElement, currentConfig);\n };\n\n return RadiumEnhancer;\n }(ComposedComponent), _class._isRadiumEnhanced = true, _temp);\n\n // Class inheritance uses Object.create and because of __proto__ issues\n // with IE <10 any static properties of the superclass aren't inherited and\n // so need to be manually populated.\n // See http://babeljs.io/docs/advanced/caveats/#classes-10-and-below-\n\n copyProperties(component, RadiumEnhancer);\n\n if (process.env.NODE_ENV !== 'production') {\n // This also fixes React Hot Loader by exposing the original components top\n // level prototype methods on the Radium enhanced prototype as discussed in\n // https://github.com/FormidableLabs/radium/issues/219.\n copyProperties(ComposedComponent.prototype, RadiumEnhancer.prototype);\n }\n\n if (RadiumEnhancer.propTypes && RadiumEnhancer.propTypes.style) {\n RadiumEnhancer.propTypes = _extends({}, RadiumEnhancer.propTypes, {\n style: _react.PropTypes.oneOfType([_react.PropTypes.array, _react.PropTypes.object])\n });\n }\n\n RadiumEnhancer.displayName = component.displayName || component.name || 'Component';\n\n RadiumEnhancer.contextTypes = _extends({}, RadiumEnhancer.contextTypes, {\n _radiumConfig: _react.PropTypes.object,\n _radiumStyleKeeper: _react.PropTypes.instanceOf(_styleKeeper2.default)\n });\n\n RadiumEnhancer.childContextTypes = _extends({}, RadiumEnhancer.childContextTypes, {\n _radiumConfig: _react.PropTypes.object,\n _radiumStyleKeeper: _react.PropTypes.instanceOf(_styleKeeper2.default)\n });\n\n return RadiumEnhancer;\n}\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 396 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar getStateKey = function getStateKey(elementKey) {\n return elementKey === null || elementKey === undefined ? 'main' : elementKey.toString();\n};\n\nexports.default = getStateKey;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 397 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _getStateKey = __webpack_require__(396);\n\nvar _getStateKey2 = _interopRequireDefault(_getStateKey);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar getState = function getState(state, elementKey, value) {\n var key = (0, _getStateKey2.default)(elementKey);\n\n return !!state && !!state._radiumStyleState && !!state._radiumStyleState[key] && state._radiumStyleState[key][value];\n};\n\nexports.default = getState;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 398 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = hash;\n\n\n// a simple djb2 hash based on hash-string:\n// https://github.com/MatthewBarker/hash-string/blob/master/source/hash-string.js\n// returns a hex-encoded hash\nfunction hash(text) {\n if (!text) {\n return '';\n }\n\n var hashValue = 5381;\n var index = text.length - 1;\n\n while (index) {\n hashValue = hashValue * 33 ^ text.charCodeAt(index);\n index -= 1;\n }\n\n return (hashValue >>> 0).toString(16);\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 399 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = mapObject;\nfunction mapObject(object, mapper) {\n return Object.keys(object).reduce(function (result, key) {\n result[key] = mapper(object[key], key);\n return result;\n }, {});\n}\nmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 400 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _checkPropsPlugin = __webpack_require__(856);\n\nvar _checkPropsPlugin2 = _interopRequireDefault(_checkPropsPlugin);\n\nvar _keyframesPlugin = __webpack_require__(857);\n\nvar _keyframesPlugin2 = _interopRequireDefault(_keyframesPlugin);\n\nvar _mergeStyleArrayPlugin = __webpack_require__(858);\n\nvar _mergeStyleArrayPlugin2 = _interopRequireDefault(_mergeStyleArrayPlugin);\n\nvar _prefixPlugin = __webpack_require__(860);\n\nvar _prefixPlugin2 = _interopRequireDefault(_prefixPlugin);\n\nvar _removeNestedStylesPlugin = __webpack_require__(861);\n\nvar _removeNestedStylesPlugin2 = _interopRequireDefault(_removeNestedStylesPlugin);\n\nvar _resolveInteractionStylesPlugin = __webpack_require__(862);\n\nvar _resolveInteractionStylesPlugin2 = _interopRequireDefault(_resolveInteractionStylesPlugin);\n\nvar _resolveMediaQueriesPlugin = __webpack_require__(863);\n\nvar _resolveMediaQueriesPlugin2 = _interopRequireDefault(_resolveMediaQueriesPlugin);\n\nvar _visitedPlugin = __webpack_require__(864);\n\nvar _visitedPlugin2 = _interopRequireDefault(_visitedPlugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n checkProps: _checkPropsPlugin2.default,\n keyframes: _keyframesPlugin2.default,\n mergeStyleArray: _mergeStyleArrayPlugin2.default,\n prefix: _prefixPlugin2.default,\n removeNestedStyles: _removeNestedStylesPlugin2.default,\n resolveInteractionStyles: _resolveInteractionStylesPlugin2.default,\n resolveMediaQueries: _resolveMediaQueriesPlugin2.default,\n visited: _visitedPlugin2.default\n};\n/* eslint-disable block-scoped-const */\n\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 401 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _appendImportantToEachValue = __webpack_require__(848);\n\nvar _appendImportantToEachValue2 = _interopRequireDefault(_appendImportantToEachValue);\n\nvar _cssRuleSetToString = __webpack_require__(222);\n\nvar _cssRuleSetToString2 = _interopRequireDefault(_cssRuleSetToString);\n\nvar _getState = __webpack_require__(397);\n\nvar _getState2 = _interopRequireDefault(_getState);\n\nvar _getStateKey = __webpack_require__(396);\n\nvar _getStateKey2 = _interopRequireDefault(_getStateKey);\n\nvar _hash = __webpack_require__(398);\n\nvar _hash2 = _interopRequireDefault(_hash);\n\nvar _mergeStyles = __webpack_require__(855);\n\nvar _plugins = __webpack_require__(400);\n\nvar _plugins2 = _interopRequireDefault(_plugins);\n\nvar _exenv = __webpack_require__(643);\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DEFAULT_CONFIG = {\n plugins: [_plugins2.default.mergeStyleArray, _plugins2.default.checkProps, _plugins2.default.resolveMediaQueries, _plugins2.default.resolveInteractionStyles, _plugins2.default.keyframes, _plugins2.default.visited, _plugins2.default.removeNestedStyles, _plugins2.default.prefix, _plugins2.default.checkProps]\n};\n\n// Gross\nvar globalState = {};\n\n// Declare early for recursive helpers.\nvar resolveStyles = null;\n\nvar _shouldResolveStyles = function _shouldResolveStyles(component) {\n return component.type && !component.type._isRadiumEnhanced;\n};\n\nvar _resolveChildren = function _resolveChildren(_ref) {\n var children = _ref.children,\n component = _ref.component,\n config = _ref.config,\n existingKeyMap = _ref.existingKeyMap;\n\n if (!children) {\n return children;\n }\n\n var childrenType = typeof children === 'undefined' ? 'undefined' : _typeof(children);\n\n if (childrenType === 'string' || childrenType === 'number') {\n // Don't do anything with a single primitive child\n return children;\n }\n\n if (childrenType === 'function') {\n // Wrap the function, resolving styles on the result\n return function () {\n var result = children.apply(this, arguments);\n if (_react2.default.isValidElement(result)) {\n return resolveStyles(component, result, config, existingKeyMap, true);\n }\n return result;\n };\n }\n\n if (_react2.default.Children.count(children) === 1 && children.type) {\n // If a React Element is an only child, don't wrap it in an array for\n // React.Children.map() for React.Children.only() compatibility.\n var onlyChild = _react2.default.Children.only(children);\n return resolveStyles(component, onlyChild, config, existingKeyMap, true);\n }\n\n return _react2.default.Children.map(children, function (child) {\n if (_react2.default.isValidElement(child)) {\n return resolveStyles(component, child, config, existingKeyMap, true);\n }\n\n return child;\n });\n};\n\n// Recurse over props, just like children\nvar _resolveProps = function _resolveProps(_ref2) {\n var component = _ref2.component,\n config = _ref2.config,\n existingKeyMap = _ref2.existingKeyMap,\n props = _ref2.props;\n\n var newProps = props;\n\n Object.keys(props).forEach(function (prop) {\n // We already recurse over children above\n if (prop === 'children') {\n return;\n }\n\n var propValue = props[prop];\n if (_react2.default.isValidElement(propValue)) {\n newProps = _extends({}, newProps);\n newProps[prop] = resolveStyles(component, propValue, config, existingKeyMap, true);\n }\n });\n\n return newProps;\n};\n\nvar _buildGetKey = function _buildGetKey(_ref3) {\n var componentName = _ref3.componentName,\n existingKeyMap = _ref3.existingKeyMap,\n renderedElement = _ref3.renderedElement;\n\n // We need a unique key to correlate state changes due to user interaction\n // with the rendered element, so we know to apply the proper interactive\n // styles.\n var originalKey = typeof renderedElement.ref === 'string' ? renderedElement.ref : renderedElement.key;\n var key = (0, _getStateKey2.default)(originalKey);\n\n var alreadyGotKey = false;\n var getKey = function getKey() {\n if (alreadyGotKey) {\n return key;\n }\n\n alreadyGotKey = true;\n\n if (existingKeyMap[key]) {\n var elementName = void 0;\n if (typeof renderedElement.type === 'string') {\n elementName = renderedElement.type;\n } else if (renderedElement.type.constructor) {\n elementName = renderedElement.type.constructor.displayName || renderedElement.type.constructor.name;\n }\n\n throw new Error('Radium requires each element with interactive styles to have a unique ' + 'key, set using either the ref or key prop. ' + (originalKey ? 'Key \"' + originalKey + '\" is a duplicate.' : 'Multiple elements have no key specified.') + ' ' + 'Component: \"' + componentName + '\". ' + (elementName ? 'Element: \"' + elementName + '\".' : ''));\n }\n\n existingKeyMap[key] = true;\n\n return key;\n };\n\n return getKey;\n};\n\nvar _setStyleState = function _setStyleState(component, key, stateKey, value) {\n if (!component._radiumIsMounted) {\n return;\n }\n\n var existing = component._lastRadiumState || component.state && component.state._radiumStyleState || {};\n\n var state = { _radiumStyleState: _extends({}, existing) };\n state._radiumStyleState[key] = _extends({}, state._radiumStyleState[key]);\n state._radiumStyleState[key][stateKey] = value;\n\n component._lastRadiumState = state._radiumStyleState;\n component.setState(state);\n};\n\nvar _runPlugins = function _runPlugins(_ref4) {\n var component = _ref4.component,\n config = _ref4.config,\n existingKeyMap = _ref4.existingKeyMap,\n props = _ref4.props,\n renderedElement = _ref4.renderedElement;\n\n // Don't run plugins if renderedElement is not a simple ReactDOMElement or has\n // no style.\n if (!_react2.default.isValidElement(renderedElement) || typeof renderedElement.type !== 'string' || !props.style) {\n return props;\n }\n\n var newProps = props;\n\n var plugins = config.plugins || DEFAULT_CONFIG.plugins;\n\n var componentName = component.constructor.displayName || component.constructor.name;\n var getKey = _buildGetKey({\n renderedElement: renderedElement,\n existingKeyMap: existingKeyMap,\n componentName: componentName\n });\n var getComponentField = function getComponentField(key) {\n return component[key];\n };\n var getGlobalState = function getGlobalState(key) {\n return globalState[key];\n };\n var componentGetState = function componentGetState(stateKey, elementKey) {\n return (0, _getState2.default)(component.state, elementKey || getKey(), stateKey);\n };\n var setState = function setState(stateKey, value, elementKey) {\n return _setStyleState(component, elementKey || getKey(), stateKey, value);\n };\n\n var addCSS = function addCSS(css) {\n var styleKeeper = component._radiumStyleKeeper || component.context._radiumStyleKeeper;\n if (!styleKeeper) {\n if (__isTestModeEnabled) {\n return {\n remove: function remove() {}\n };\n }\n\n throw new Error('To use plugins requiring `addCSS` (e.g. keyframes, media queries), ' + 'please wrap your application in the StyleRoot component. Component ' + 'name: `' + componentName + '`.');\n }\n\n return styleKeeper.addCSS(css);\n };\n\n var newStyle = props.style;\n\n plugins.forEach(function (plugin) {\n var result = plugin({\n ExecutionEnvironment: _exenv2.default,\n addCSS: addCSS,\n appendImportantToEachValue: _appendImportantToEachValue2.default,\n componentName: componentName,\n config: config,\n cssRuleSetToString: _cssRuleSetToString2.default,\n getComponentField: getComponentField,\n getGlobalState: getGlobalState,\n getState: componentGetState,\n hash: _hash2.default,\n mergeStyles: _mergeStyles.mergeStyles,\n props: newProps,\n setState: setState,\n isNestedStyle: _mergeStyles.isNestedStyle,\n style: newStyle\n }) || {};\n\n newStyle = result.style || newStyle;\n\n newProps = result.props && Object.keys(result.props).length ? _extends({}, newProps, result.props) : newProps;\n\n var newComponentFields = result.componentFields || {};\n Object.keys(newComponentFields).forEach(function (fieldName) {\n component[fieldName] = newComponentFields[fieldName];\n });\n\n var newGlobalState = result.globalState || {};\n Object.keys(newGlobalState).forEach(function (key) {\n globalState[key] = newGlobalState[key];\n });\n });\n\n if (newStyle !== props.style) {\n newProps = _extends({}, newProps, { style: newStyle });\n }\n\n return newProps;\n};\n\n// Wrapper around React.cloneElement. To avoid processing the same element\n// twice, whenever we clone an element add a special prop to make sure we don't\n// process this element again.\nvar _cloneElement = function _cloneElement(renderedElement, newProps, newChildren) {\n // Only add flag if this is a normal DOM element\n if (typeof renderedElement.type === 'string') {\n newProps = _extends({}, newProps, { 'data-radium': true });\n }\n\n return _react2.default.cloneElement(renderedElement, newProps, newChildren);\n};\n\n//\n// The nucleus of Radium. resolveStyles is called on the rendered elements\n// before they are returned in render. It iterates over the elements and\n// children, rewriting props to add event handlers required to capture user\n// interactions (e.g. mouse over). It also replaces the style prop because it\n// adds in the various interaction styles (e.g. :hover).\n//\nresolveStyles = function resolveStyles(component, // ReactComponent, flow+eslint complaining\nrenderedElement) {\n var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_CONFIG;\n var existingKeyMap = arguments[3];\n var shouldCheckBeforeResolve = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // ReactElement\n existingKeyMap = existingKeyMap || {};\n if (!renderedElement ||\n // Bail if we've already processed this element. This ensures that only the\n // owner of an element processes that element, since the owner's render\n // function will be called first (which will always be the case, since you\n // can't know what else to render until you render the parent component).\n renderedElement.props && renderedElement.props['data-radium'] ||\n // Bail if this element is a radium enhanced element, because if it is,\n // then it will take care of resolving its own styles.\n shouldCheckBeforeResolve && !_shouldResolveStyles(renderedElement)) {\n return renderedElement;\n }\n\n var newChildren = _resolveChildren({\n children: renderedElement.props.children,\n component: component,\n config: config,\n existingKeyMap: existingKeyMap\n });\n\n var newProps = _resolveProps({\n component: component,\n config: config,\n existingKeyMap: existingKeyMap,\n props: renderedElement.props\n });\n\n newProps = _runPlugins({\n component: component,\n config: config,\n existingKeyMap: existingKeyMap,\n props: newProps,\n renderedElement: renderedElement\n });\n\n // If nothing changed, don't bother cloning the element. Might be a bit\n // wasteful, as we add the sentinal to stop double-processing when we clone.\n // Assume benign double-processing is better than unneeded cloning.\n if (newChildren === renderedElement.props.children && newProps === renderedElement.props) {\n return renderedElement;\n }\n\n return _cloneElement(renderedElement, newProps !== renderedElement.props ? newProps : {}, newChildren);\n};\n\n// Only for use by tests\nvar __isTestModeEnabled = false;\nif (process.env.NODE_ENV !== 'production') {\n resolveStyles.__clearStateForTests = function () {\n globalState = {};\n };\n resolveStyles.__setTestMode = function (isEnabled) {\n __isTestModeEnabled = isEnabled;\n };\n}\n\nexports.default = resolveStyles;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 402 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.memoize = exports.reverse = exports.compose = exports.map = exports.range = exports.curry = exports.PLACE_HOLDER = void 0;\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nvar identity = function identity(i) {\n return i;\n};\n\nvar PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\nexports.PLACE_HOLDER = PLACE_HOLDER;\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nvar curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\n\nexports.curry = curry;\n\nvar range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\n\nexports.range = range;\nvar map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexports.map = map;\n\nvar compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\n\nexports.compose = compose;\n\nvar reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\n\nexports.reverse = reverse;\n\nvar memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};\n\nexports.memoize = memoize;\n\n/***/ }),\n/* 403 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_range__ = __webpack_require__(377);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_range___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_range__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_d3_scale__ = __webpack_require__(315);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__util_ChartUtils__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__component_Text__ = __webpack_require__(55);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__util_CssPrefixUtils__ = __webpack_require__(888);\n\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\n/**\n * @fileOverview Brush\n */\n\n\n\n\n\n\n\n\n\n\n\nvar Brush = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Brush, _Component);\n\n function Brush(props) {\n var _this;\n\n _classCallCheck(this, Brush);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Brush).call(this, props));\n\n _this.handleDrag = function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n };\n\n _this.handleDragEnd = function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n });\n };\n\n _this.handleLeaveWrapper = function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n };\n\n _this.handleEnterSlideOrTraveller = function () {\n _this.setState({\n isTextActive: true\n });\n };\n\n _this.handleLeaveSlideOrTraveller = function () {\n _this.setState({\n isTextActive: false\n });\n };\n\n _this.handleSlideDragStart = function (e) {\n var event = e.changedTouches && e.changedTouches.length ? e.changedTouches[0] : e;\n\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n };\n\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_assertThisInitialized(_this)), 'startX'),\n endX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_assertThisInitialized(_this)), 'endX')\n };\n _this.state = props.data && props.data.length ? _this.updateScale(props) : {};\n return _this;\n }\n\n _createClass(Brush, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this2 = this;\n\n var _this$props = this.props,\n data = _this$props.data,\n width = _this$props.width,\n x = _this$props.x,\n travellerWidth = _this$props.travellerWidth,\n updateId = _this$props.updateId;\n\n if ((nextProps.data !== data || nextProps.updateId !== updateId) && nextProps.data && nextProps.data.length) {\n this.setState(this.updateScale(nextProps));\n } else if (nextProps.width !== width || nextProps.x !== x || nextProps.travellerWidth !== travellerWidth) {\n this.scale.range([nextProps.x, nextProps.x + nextProps.width - nextProps.travellerWidth]);\n this.scaleValues = this.scale.domain().map(function (entry) {\n return _this2.scale(entry);\n });\n this.setState({\n startX: this.scale(nextProps.startIndex),\n endX: this.scale(nextProps.endIndex)\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.scale = null;\n this.scaleValues = null;\n\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref) {\n var startX = _ref.startX,\n endX = _ref.endX;\n var _this$props2 = this.props,\n gap = _this$props2.gap,\n data = _this$props2.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = this.constructor.getIndexInRange(this.scaleValues, min);\n var maxIndex = this.constructor.getIndexInRange(this.scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props3 = this.props,\n data = _this$props3.data,\n tickFormatter = _this$props3.tickFormatter,\n dataKey = _this$props3.dataKey;\n var text = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_ChartUtils__[\"o\" /* getValueByDataKey */])(data[index], dataKey, index);\n return __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default()(tickFormatter) ? tickFormatter(text) : text;\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n startIndex = _this$props4.startIndex,\n endIndex = _this$props4.endIndex,\n onChange = _this$props4.onChange;\n var delta = e.pageX - slideMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = e.changedTouches && e.changedTouches.length ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$setState;\n\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props5 = this.props,\n x = _this$props5.x,\n width = _this$props5.width,\n travellerWidth = _this$props5.travellerWidth,\n onChange = _this$props5.onChange,\n gap = _this$props5.gap,\n data = _this$props5.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n\n return false;\n };\n\n this.setState((_this$setState = {}, _defineProperty(_this$setState, movingTravellerId, prevValue + delta), _defineProperty(_this$setState, \"brushMoveStartX\", e.pageX), _this$setState), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"updateScale\",\n value: function updateScale(props) {\n var _this3 = this;\n\n var data = props.data,\n startIndex = props.startIndex,\n endIndex = props.endIndex,\n x = props.x,\n width = props.width,\n travellerWidth = props.travellerWidth;\n var len = data.length;\n this.scale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5_d3_scale__[\"scalePoint\"])().domain(__WEBPACK_IMPORTED_MODULE_0_lodash_range___default()(0, len)).range([x, x + width - travellerWidth]);\n this.scaleValues = this.scale.domain().map(function (entry) {\n return _this3.scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n startX: this.scale(startIndex),\n endX: this.scale(endIndex)\n };\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n fill = _this$props6.fill,\n stroke = _this$props6.stroke;\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props7 = this.props,\n x = _this$props7.x,\n y = _this$props7.y,\n width = _this$props7.width,\n height = _this$props7.height,\n data = _this$props7.data,\n children = _this$props7.children,\n padding = _this$props7.padding;\n var chartElement = __WEBPACK_IMPORTED_MODULE_2_react__[\"Children\"].only(children);\n\n if (!chartElement) {\n return null;\n }\n\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(travellerX, id) {\n var _this$props8 = this.props,\n y = _this$props8.y,\n travellerWidth = _this$props8.travellerWidth,\n height = _this$props8.height,\n stroke = _this$props8.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n var x = Math.max(travellerX, this.props.x);\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], {\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n style: {\n cursor: 'col-resize'\n }\n }, __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"rect\", {\n x: x,\n y: y,\n width: travellerWidth,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + travellerWidth - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + travellerWidth - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props9 = this.props,\n y = _this$props9.y,\n height = _this$props9.height,\n stroke = _this$props9.stroke;\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: Math.min(startX, endX),\n y: y,\n width: Math.abs(endX - startX),\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props10 = this.props,\n startIndex = _this$props10.startIndex,\n endIndex = _this$props10.endIndex,\n y = _this$props10.y,\n height = _this$props10.height,\n travellerWidth = _this$props10.travellerWidth,\n stroke = _this$props10.stroke;\n var _this$state3 = this.state,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], {\n className: \"recharts-brush-texts\"\n }, __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__component_Text__[\"a\" /* default */], _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__component_Text__[\"a\" /* default */], _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props11 = this.props,\n data = _this$props11.data,\n className = _this$props11.className,\n children = _this$props11.children,\n x = _this$props11.x,\n y = _this$props11.y,\n width = _this$props11.width,\n height = _this$props11.height;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX,\n isTextActive = _this$state4.isTextActive,\n isSlideMoving = _this$state4.isSlideMoving,\n isTravellerMoving = _this$state4.isTravellerMoving;\n\n if (!data || !data.length || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_DataUtils__[\"a\" /* isNumber */])(x) || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_DataUtils__[\"a\" /* isNumber */])(y) || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_DataUtils__[\"a\" /* isNumber */])(width) || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_DataUtils__[\"a\" /* isNumber */])(height) || width <= 0 || height <= 0) {\n return null;\n }\n\n var layerClass = __WEBPACK_IMPORTED_MODULE_4_classnames___default()('recharts-brush', className);\n var isPanoramic = __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.count(children) === 1;\n var style = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__util_CssPrefixUtils__[\"a\" /* generatePrefixStyle */])('userSelect', 'none');\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], {\n className: layerClass,\n onMouseMove: this.handleDrag,\n onMouseLeave: this.handleLeaveWrapper,\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTraveller(startX, 'startX'), this.renderTraveller(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving) && this.renderText());\n }\n }], [{\n key: \"getIndexInRange\",\n value: function getIndexInRange(range, x) {\n var len = range.length;\n var start = 0;\n var end = len - 1;\n\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n\n if (range[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n\n return x >= range[end] ? end : start;\n }\n }]);\n\n return Brush;\n}(__WEBPACK_IMPORTED_MODULE_2_react__[\"Component\"]), _class2.displayName = 'Brush', _class2.propTypes = {\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n fill: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n stroke: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n x: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n width: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number.isRequired,\n travellerWidth: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n gap: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n padding: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.shape({\n top: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n right: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n bottom: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n left: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number\n }),\n dataKey: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func]),\n data: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.array,\n startIndex: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n endIndex: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n tickFormatter: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node,\n onChange: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n updateId: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number]),\n leaveTimeOut: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number\n}, _class2.defaultProps = {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Brush);\n\n/***/ }),\n/* 404 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_DOMUtils__ = __webpack_require__(145);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__component_Text__ = __webpack_require__(55);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__component_Label__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__util_DataUtils__ = __webpack_require__(11);\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Cartesian Axis\n */\n\n\n\n\n\n\n\n\n\n\n\nvar CartesianAxis =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(CartesianAxis, _Component);\n\n function CartesianAxis() {\n _classCallCheck(this, CartesianAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(CartesianAxis).apply(this, arguments));\n }\n\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref, state) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, [\"viewBox\"]);\n\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, [\"viewBox\"]);\n\n return !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_PureRender__[\"b\" /* shallowEqual */])(viewBox, viewBoxOld) || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_PureRender__[\"b\" /* shallowEqual */])(restProps, restPropsOld) || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_PureRender__[\"b\" /* shallowEqual */])(state, this.state);\n }\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_DataUtils__[\"a\" /* isNumber */])(data.tickCoord) ? data.tickCoord : data.coordinate;\n\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + !mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + !mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n\n default:\n x1 = x2 = data.coordinate;\n y2 = y + mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n\n default:\n textAnchor = 'middle';\n break;\n }\n\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n axisLine = _this$props5.axisLine,\n mirror = _this$props5.mirror;\n\n var props = _objectSpread({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), {\n fill: 'none'\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(axisLine));\n\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n props = _objectSpread({}, props, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n props = _objectSpread({}, props, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\"line\", _extends({\n className: \"recharts-cartesian-axis-line\"\n }, props));\n }\n }, {\n key: \"renderTicks\",\n\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @return {ReactComponent} renderedTicks\n */\n value: function renderTicks(ticks) {\n var _this = this;\n\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = CartesianAxis.getTicks(_objectSpread({}, this.props, {\n ticks: ticks\n }));\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props);\n var customTickProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(tick);\n\n var tickLineProps = _objectSpread({}, axisProps, {\n fill: 'none'\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(tickLine));\n\n var items = finalTicks.map(function (entry, i) {\n var _this$getTickLineCoor = _this.getTickLineCoord(entry),\n lineCoord = _this$getTickLineCoor.line,\n tickCoord = _this$getTickLineCoor.tick;\n\n var tickProps = _objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps, {\n stroke: 'none',\n fill: stroke\n }, customTickProps, tickCoord, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length\n });\n\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__container_Layer__[\"a\" /* default */], _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(i)\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"n\" /* filterEventsOfChild */])(_this.props, entry, i)), tickLine && __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\"line\", _extends({\n className: \"recharts-cartesian-axis-tick-line\"\n }, tickLineProps, lineCoord)), tick && _this.constructor.renderTickItem(tick, tickProps, \"\".concat(__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default()(tickFormatter) ? tickFormatter(entry.value) : entry.value).concat(unit || '')));\n });\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n\n if (hide) {\n return null;\n }\n\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, [\"ticks\"]);\n\n var finalTicks = ticks;\n\n if (__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default()(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__container_Layer__[\"a\" /* default */], {\n className: __WEBPACK_IMPORTED_MODULE_3_classnames___default()('recharts-cartesian-axis', className)\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks), __WEBPACK_IMPORTED_MODULE_8__component_Label__[\"a\" /* default */].renderCallByParent(this.props));\n }\n }], [{\n key: \"getTicks\",\n value: function getTicks(props) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit;\n\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_DataUtils__[\"a\" /* isNumber */])(interval) || __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"m\" /* isSsr */])()) {\n return CartesianAxis.getNumberIntervalTicks(ticks, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_DataUtils__[\"a\" /* isNumber */])(interval) ? interval : 0);\n }\n\n if (interval === 'preserveStartEnd') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n }, true);\n }\n\n if (interval === 'preserveStart') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n\n return CartesianAxis.getTicksEnd({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n }, {\n key: \"getNumberIntervalTicks\",\n value: function getNumberIntervalTicks(ticks, interval) {\n return ticks.filter(function (entry, i) {\n return i % (interval + 1) === 0;\n });\n }\n }, {\n key: \"getTicksStart\",\n value: function getTicksStart(_ref2, preserveEnd) {\n var ticks = _ref2.ticks,\n tickFormatter = _ref2.tickFormatter,\n viewBox = _ref2.viewBox,\n orientation = _ref2.orientation,\n minTickGap = _ref2.minTickGap,\n unit = _ref2.unit;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var result = (ticks || []).slice(); // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_DOMUtils__[\"c\" /* getStringSize */])(unit)[sizeKey] : 0;\n var len = result.length;\n var sign = len >= 2 ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_DataUtils__[\"g\" /* mathSign */])(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailContent = __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default()(tickFormatter) ? tickFormatter(tail.value) : tail.value;\n var tailSize = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_DOMUtils__[\"c\" /* getStringSize */])(tailContent)[sizeKey] + unitSize;\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread({}, tail, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = sign * (tail.tickCoord - sign * tailSize / 2 - start) >= 0 && sign * (tail.tickCoord + sign * tailSize / 2 - end) <= 0;\n\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread({}, tail, {\n isShow: true\n });\n }\n }\n\n var count = preserveEnd ? len - 1 : len;\n\n for (var i = 0; i < count; i++) {\n var entry = result[i];\n var content = __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default()(tickFormatter) ? tickFormatter(entry.value) : entry.value;\n var size = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_DOMUtils__[\"c\" /* getStringSize */])(content)[sizeKey] + unitSize;\n\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * size / 2 - start);\n result[i] = entry = _objectSpread({}, entry, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread({}, entry, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n start = entry.tickCoord + sign * (size / 2 + minTickGap);\n result[i] = _objectSpread({}, entry, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"getTicksEnd\",\n value: function getTicksEnd(_ref3) {\n var ticks = _ref3.ticks,\n tickFormatter = _ref3.tickFormatter,\n viewBox = _ref3.viewBox,\n orientation = _ref3.orientation,\n minTickGap = _ref3.minTickGap,\n unit = _ref3.unit;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height'; // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_DOMUtils__[\"c\" /* getStringSize */])(unit)[sizeKey] : 0;\n var result = (ticks || []).slice();\n var len = result.length;\n var sign = len >= 2 ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_DataUtils__[\"g\" /* mathSign */])(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n for (var i = len - 1; i >= 0; i--) {\n var entry = result[i];\n var content = __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default()(tickFormatter) ? tickFormatter(entry.value) : entry.value;\n var size = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_DOMUtils__[\"c\" /* getStringSize */])(content)[sizeKey] + unitSize;\n\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * size / 2 - end);\n result[i] = entry = _objectSpread({}, entry, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread({}, entry, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n end = entry.tickCoord - sign * (size / 2 + minTickGap);\n result[i] = _objectSpread({}, entry, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n\n if (__WEBPACK_IMPORTED_MODULE_1_react___default.a.isValidElement(option)) {\n tickItem = __WEBPACK_IMPORTED_MODULE_1_react___default.a.cloneElement(option, props);\n } else if (__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default()(option)) {\n tickItem = option(props);\n } else {\n tickItem = __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__component_Text__[\"a\" /* default */], _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n\n return tickItem;\n }\n }]);\n\n return CartesianAxis;\n}(__WEBPACK_IMPORTED_MODULE_1_react__[\"Component\"]);\n\nCartesianAxis.displayName = 'CartesianAxis';\nCartesianAxis.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], __WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"d\" /* EVENT_ATTRIBUTES */], {\n className: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string,\n x: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n width: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n orientation: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOf(['top', 'bottom', 'left', 'right']),\n // The viewBox of svg\n viewBox: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.shape({\n x: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n width: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number\n }),\n tick: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.element]),\n axisLine: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object]),\n tickLine: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object]),\n mirror: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool,\n tickMargin: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number.isRequired,\n minTickGap: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n ticks: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.array,\n tickSize: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n stroke: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string,\n tickFormatter: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,\n ticksGenerator: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,\n interval: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOf(['preserveStart', 'preserveEnd', 'preserveStartEnd'])])\n});\nCartesianAxis.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = (CartesianAxis);\n\n/***/ }),\n/* 405 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__component_Label__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__util_CartesianUtils__ = __webpack_require__(45);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__util_ChartUtils__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__util_LogUtils__ = __webpack_require__(76);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__shape_Rectangle__ = __webpack_require__(75);\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Reference Line\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar ReferenceArea = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ReferenceArea, _Component);\n\n function ReferenceArea() {\n _classCallCheck(this, ReferenceArea);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ReferenceArea).apply(this, arguments));\n }\n\n _createClass(ReferenceArea, [{\n key: \"getRect\",\n value: function getRect(hasX1, hasX2, hasY1, hasY2) {\n var _this$props = this.props,\n xValue1 = _this$props.x1,\n xValue2 = _this$props.x2,\n yValue1 = _this$props.y1,\n yValue2 = _this$props.y2,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis;\n var scale = __WEBPACK_IMPORTED_MODULE_7__util_CartesianUtils__[\"b\" /* LabeledScaleHelper */].create({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scale.x.apply(xValue1) : scale.x.rangeMin,\n y: hasY1 ? scale.y.apply(yValue1) : scale.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scale.x.apply(xValue2) : scale.x.rangeMax,\n y: hasY2 ? scale.y.apply(yValue2) : scale.y.rangeMax\n };\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_ChartUtils__[\"D\" /* ifOverflowMatches */])(this.props, 'discard') && (!scale.isInRange(p1) || !scale.isInRange(p2))) {\n return null;\n }\n\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__util_CartesianUtils__[\"c\" /* rectWithPoints */])(p1, p2);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n x1 = _this$props2.x1,\n x2 = _this$props2.x2,\n y1 = _this$props2.y1,\n y2 = _this$props2.y2,\n className = _this$props2.className,\n alwaysShow = _this$props2.alwaysShow,\n clipPathId = _this$props2.clipPathId;\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_LogUtils__[\"a\" /* warn */])(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__[\"f\" /* isNumOrStr */])(x1);\n var hasX2 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__[\"f\" /* isNumOrStr */])(x2);\n var hasY1 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__[\"f\" /* isNumOrStr */])(y1);\n var hasY2 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__[\"f\" /* isNumOrStr */])(y2);\n\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2) {\n return null;\n }\n\n var rect = this.getRect(hasX1, hasX2, hasY1, hasY2);\n\n if (!rect) {\n return null;\n }\n\n var shape = this.props.shape;\n var clipPath = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_ChartUtils__[\"D\" /* ifOverflowMatches */])(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__container_Layer__[\"a\" /* default */], {\n className: __WEBPACK_IMPORTED_MODULE_3_classnames___default()('recharts-reference-area', className)\n }, this.constructor.renderRect(shape, _objectSpread({\n clipPath: clipPath\n }, this.props, rect)), __WEBPACK_IMPORTED_MODULE_6__component_Label__[\"a\" /* default */].renderCallByParent(this.props, rect));\n }\n }], [{\n key: \"renderRect\",\n value: function renderRect(option, props) {\n var rect;\n\n if (__WEBPACK_IMPORTED_MODULE_1_react___default.a.isValidElement(option)) {\n rect = __WEBPACK_IMPORTED_MODULE_1_react___default.a.cloneElement(option, props);\n } else if (__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default()(option)) {\n rect = option(props);\n } else {\n rect = __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_12__shape_Rectangle__[\"a\" /* default */], _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n\n return rect;\n }\n }]);\n\n return ReferenceArea;\n}(__WEBPACK_IMPORTED_MODULE_1_react__[\"Component\"]), _class2.displayName = 'ReferenceArea', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_11__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], {\n viewBox: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.shape({\n x: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n width: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number\n }),\n xAxis: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object,\n yAxis: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object,\n isFront: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool,\n alwaysShow: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool,\n ifOverflow: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOf(['hidden', 'visible', 'discard', 'extendDomain']),\n x1: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string]),\n x2: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string]),\n y1: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string]),\n y2: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string]),\n className: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string]),\n yAxisId: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number]),\n xAxisId: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number]),\n shape: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.element])\n}), _class2.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (ReferenceArea);\n\n/***/ }),\n/* 406 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__shape_Dot__ = __webpack_require__(56);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__component_Label__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__util_ChartUtils__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__util_CartesianUtils__ = __webpack_require__(45);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__util_LogUtils__ = __webpack_require__(76);\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Reference Dot\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar ReferenceDot = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ReferenceDot, _Component);\n\n function ReferenceDot() {\n _classCallCheck(this, ReferenceDot);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ReferenceDot).apply(this, arguments));\n }\n\n _createClass(ReferenceDot, [{\n key: \"getCoordinate\",\n value: function getCoordinate() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis;\n var scales = __WEBPACK_IMPORTED_MODULE_11__util_CartesianUtils__[\"b\" /* LabeledScaleHelper */].create({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_ChartUtils__[\"D\" /* ifOverflowMatches */])(this.props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n\n return result;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n r = _this$props2.r,\n alwaysShow = _this$props2.alwaysShow,\n clipPathId = _this$props2.clipPathId;\n var isX = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__[\"f\" /* isNumOrStr */])(x);\n var isY = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_DataUtils__[\"f\" /* isNumOrStr */])(y);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_12__util_LogUtils__[\"a\" /* warn */])(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n\n if (!isX || !isY) {\n return null;\n }\n\n var coordinate = this.getCoordinate();\n\n if (!coordinate) {\n return null;\n }\n\n var cx = coordinate.x,\n cy = coordinate.y;\n var _this$props3 = this.props,\n shape = _this$props3.shape,\n className = _this$props3.className;\n var clipPath = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_ChartUtils__[\"D\" /* ifOverflowMatches */])(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var dotProps = _objectSpread({\n clipPath: clipPath\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__[\"b\" /* filterEventAttributes */])(this.props), {\n cx: cx,\n cy: cy\n });\n\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__container_Layer__[\"a\" /* default */], {\n className: __WEBPACK_IMPORTED_MODULE_3_classnames___default()('recharts-reference-dot', className)\n }, this.constructor.renderDot(shape, dotProps), __WEBPACK_IMPORTED_MODULE_8__component_Label__[\"a\" /* default */].renderCallByParent(this.props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n }\n }], [{\n key: \"renderDot\",\n value: function renderDot(option, props) {\n var dot;\n\n if (__WEBPACK_IMPORTED_MODULE_1_react___default.a.isValidElement(option)) {\n dot = __WEBPACK_IMPORTED_MODULE_1_react___default.a.cloneElement(option, props);\n } else if (__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default()(option)) {\n dot = option(props);\n } else {\n dot = __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__shape_Dot__[\"a\" /* default */], _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n\n return dot;\n }\n }]);\n\n return ReferenceDot;\n}(__WEBPACK_IMPORTED_MODULE_1_react__[\"Component\"]), _class2.displayName = 'ReferenceDot', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], __WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__[\"d\" /* EVENT_ATTRIBUTES */], {\n r: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n xAxis: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.shape({\n scale: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func\n }),\n yAxis: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.shape({\n scale: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func\n }),\n isFront: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool,\n alwaysShow: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool,\n ifOverflow: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOf(['hidden', 'visible', 'discard', 'extendDomain']),\n x: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string]),\n y: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string]),\n className: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string]),\n yAxisId: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number]),\n xAxisId: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number]),\n shape: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.element]),\n clipPathId: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string\n}), _class2.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (ReferenceDot);\n\n/***/ }),\n/* 407 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_some__ = __webpack_require__(778);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_some___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_some__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__component_Label__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__util_ChartUtils__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__util_CartesianUtils__ = __webpack_require__(45);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__util_LogUtils__ = __webpack_require__(76);\n\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * @fileOverview Reference Line\n */\n\n\n\n\n\n\n\n\n\n\n\n\nvar renderLine = function renderLine(option, props) {\n var line;\n\n if (__WEBPACK_IMPORTED_MODULE_2_react___default.a.isValidElement(option)) {\n line = __WEBPACK_IMPORTED_MODULE_2_react___default.a.cloneElement(option, props);\n } else if (__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default()(option)) {\n line = option(props);\n } else {\n line = __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n\n return line;\n};\n\nvar ReferenceLine = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ReferenceLine, _Component);\n\n function ReferenceLine() {\n _classCallCheck(this, ReferenceLine);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ReferenceLine).apply(this, arguments));\n }\n\n _createClass(ReferenceLine, [{\n key: \"getEndPoints\",\n value: function getEndPoints(scales, isFixedX, isFixedY, isSegment) {\n var _this$props$viewBox = this.props.viewBox,\n x = _this$props$viewBox.x,\n y = _this$props$viewBox.y,\n width = _this$props$viewBox.width,\n height = _this$props$viewBox.height;\n\n if (isFixedY) {\n var _this$props = this.props,\n yCoord = _this$props.y,\n orientation = _this$props.yAxis.orientation;\n var coord = scales.y.apply(yCoord, {\n bandAware: true\n });\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ChartUtils__[\"D\" /* ifOverflowMatches */])(this.props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return orientation === 'left' ? points.reverse() : points;\n }\n\n if (isFixedX) {\n var _this$props2 = this.props,\n xCoord = _this$props2.x,\n _orientation = _this$props2.xAxis.orientation;\n\n var _coord = scales.x.apply(xCoord, {\n bandAware: true\n });\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ChartUtils__[\"D\" /* ifOverflowMatches */])(this.props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return _orientation === 'top' ? _points.reverse() : _points;\n }\n\n if (isSegment) {\n var segment = this.props.segment;\n\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n bandAware: true\n });\n });\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ChartUtils__[\"D\" /* ifOverflowMatches */])(this.props, 'discard') && __WEBPACK_IMPORTED_MODULE_0_lodash_some___default()(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n\n return _points2;\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props3 = this.props,\n fixedX = _this$props3.x,\n fixedY = _this$props3.y,\n segment = _this$props3.segment,\n xAxis = _this$props3.xAxis,\n yAxis = _this$props3.yAxis,\n shape = _this$props3.shape,\n className = _this$props3.className,\n alwaysShow = _this$props3.alwaysShow,\n clipPathId = _this$props3.clipPathId;\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_12__util_LogUtils__[\"a\" /* warn */])(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = __WEBPACK_IMPORTED_MODULE_11__util_CartesianUtils__[\"b\" /* LabeledScaleHelper */].create({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_DataUtils__[\"f\" /* isNumOrStr */])(fixedX);\n var isY = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_DataUtils__[\"f\" /* isNumOrStr */])(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = this.getEndPoints(scales, isX, isY, isSegment);\n\n if (!endPoints) {\n return null;\n }\n\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n\n var clipPath = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ChartUtils__[\"D\" /* ifOverflowMatches */])(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var props = _objectSpread({\n clipPath: clipPath\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__[\"b\" /* filterEventAttributes */])(this.props), {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__container_Layer__[\"a\" /* default */], {\n className: __WEBPACK_IMPORTED_MODULE_4_classnames___default()('recharts-reference-line', className)\n }, renderLine(shape, props), __WEBPACK_IMPORTED_MODULE_8__component_Label__[\"a\" /* default */].renderCallByParent(this.props, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__util_CartesianUtils__[\"d\" /* rectWithCoords */])({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n }\n }]);\n\n return ReferenceLine;\n}(__WEBPACK_IMPORTED_MODULE_2_react__[\"Component\"]), _class2.displayName = 'ReferenceLine', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_7__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], {\n viewBox: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.shape({\n x: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n width: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number\n }),\n xAxis: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n yAxis: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n isFront: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n alwaysShow: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n ifOverflow: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(['hidden', 'visible', 'discard', 'extendDomain']),\n x: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string]),\n y: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string]),\n segment: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.shape({\n x: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string]),\n y: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string])\n })),\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string]),\n yAxisId: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number]),\n xAxisId: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number]),\n shape: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func\n}), _class2.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (ReferenceLine);\n\n/***/ }),\n/* 408 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__ = __webpack_require__(22);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isPlainObject__ = __webpack_require__(133);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isPlainObject___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_isPlainObject__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_omit__ = __webpack_require__(136);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_omit___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_lodash_omit__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_isString__ = __webpack_require__(134);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_isString___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_lodash_isString__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lodash_isNumber__ = __webpack_require__(132);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lodash_isNumber___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_lodash_isNumber__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_smooth__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__shape_Trapezoid__ = __webpack_require__(413);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__component_LabelList__ = __webpack_require__(38);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__component_Cell__ = __webpack_require__(73);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__util_ChartUtils__ = __webpack_require__(16);\n\n\n\n\n\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Render sectors of a funnel\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Funnel = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Funnel, _Component);\n\n function Funnel() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Funnel);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Funnel)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: false\n };\n\n _this.cachePrevData = function (trapezoids) {\n _this.setState({\n prevTrapezoids: trapezoids\n });\n };\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (__WEBPACK_IMPORTED_MODULE_2_lodash_isFunction___default()(onAnimationEnd)) {\n onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n var onAnimationStart = _this.props.onAnimationStart;\n\n _this.setState({\n isAnimationFinished: false\n });\n\n if (__WEBPACK_IMPORTED_MODULE_2_lodash_isFunction___default()(onAnimationStart)) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Funnel, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n trapezoids = _this$props.trapezoids;\n\n if (nextProps.isAnimationActive !== this.props.isAnimationActive) {\n this.cachePrevData([]);\n } else if (nextProps.animationId !== animationId) {\n this.cachePrevData(trapezoids);\n }\n }\n }, {\n key: \"isActiveIndex\",\n value: function isActiveIndex(i) {\n var activeIndex = this.props.activeIndex;\n\n if (Array.isArray(activeIndex)) {\n return activeIndex.indexOf(i) !== -1;\n }\n\n return i === activeIndex;\n }\n }, {\n key: \"renderTrapezoidsStatically\",\n value: function renderTrapezoidsStatically(trapezoids) {\n var _this2 = this;\n\n var activeShape = this.props.activeShape;\n return trapezoids.map(function (entry, i) {\n var trapezoidOptions = _this2.isActiveIndex(i) ? activeShape : null;\n\n var trapezoidProps = _objectSpread({}, entry, {\n stroke: entry.stroke\n });\n\n return __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__container_Layer__[\"a\" /* default */], _extends({\n className: \"recharts-funnel-trapezoid\"\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"n\" /* filterEventsOfChild */])(_this2.props, entry, i), {\n key: \"trapezoid-\".concat(i)\n }), _this2.constructor.renderTrapezoidItem(trapezoidOptions, trapezoidProps));\n });\n }\n }, {\n key: \"renderTrapezoidsWithAnimation\",\n value: function renderTrapezoidsWithAnimation() {\n var _this3 = this;\n\n var _this$props2 = this.props,\n trapezoids = _this$props2.trapezoids,\n isAnimationActive = _this$props2.isAnimationActive,\n animationBegin = _this$props2.animationBegin,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n animationId = _this$props2.animationId;\n var prevTrapezoids = this.state.prevTrapezoids;\n return __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8_react_smooth__[\"a\" /* default */], {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"funnel-\".concat(animationId),\n onAnimationStart: this.handleAnimationStart,\n onAnimationEnd: this.handleAnimationEnd\n }, function (_ref) {\n var t = _ref.t;\n var stepData = trapezoids.map(function (entry, index) {\n var prev = prevTrapezoids && prevTrapezoids[index];\n\n if (prev) {\n var _interpolatorX = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.x, entry.x);\n\n var _interpolatorY = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.y, entry.y);\n\n var _interpolatorUpperWidth = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.upperWidth, entry.upperWidth);\n\n var _interpolatorLowerWidth = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.lowerWidth, entry.lowerWidth);\n\n var _interpolatorHeight = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.height, entry.height);\n\n return _objectSpread({}, entry, {\n x: _interpolatorX(t),\n y: _interpolatorY(t),\n upperWidth: _interpolatorUpperWidth(t),\n lowerWidth: _interpolatorLowerWidth(t),\n height: _interpolatorHeight(t)\n });\n }\n\n var interpolatorX = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_DataUtils__[\"i\" /* interpolateNumber */])(entry.x + entry.upperWidth / 2, entry.x);\n var interpolatorY = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_DataUtils__[\"i\" /* interpolateNumber */])(entry.y + entry.height / 2, entry.y);\n var interpolatorUpperWidth = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_DataUtils__[\"i\" /* interpolateNumber */])(0, entry.upperWidth);\n var interpolatorLowerWidth = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_DataUtils__[\"i\" /* interpolateNumber */])(0, entry.lowerWidth);\n var interpolatorHeight = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_16__util_DataUtils__[\"i\" /* interpolateNumber */])(0, entry.height);\n return _objectSpread({}, entry, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n upperWidth: interpolatorUpperWidth(t),\n lowerWidth: interpolatorLowerWidth(t),\n height: interpolatorHeight(t)\n });\n });\n return __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__container_Layer__[\"a\" /* default */], null, _this3.renderTrapezoidsStatically(stepData));\n });\n }\n }, {\n key: \"renderTrapezoids\",\n value: function renderTrapezoids() {\n var _this$props3 = this.props,\n trapezoids = _this$props3.trapezoids,\n isAnimationActive = _this$props3.isAnimationActive;\n var prevTrapezoids = this.state.prevTrapezoids;\n\n if (isAnimationActive && trapezoids && trapezoids.length && (!prevTrapezoids || !__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default()(prevTrapezoids, trapezoids))) {\n return this.renderTrapezoidsWithAnimation();\n }\n\n return this.renderTrapezoidsStatically(trapezoids);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n hide = _this$props4.hide,\n trapezoids = _this$props4.trapezoids,\n className = _this$props4.className,\n isAnimationActive = _this$props4.isAnimationActive;\n var isAnimationFinished = this.state.isAnimationFinished;\n\n if (hide || !trapezoids || !trapezoids.length) {\n return null;\n }\n\n var layerClass = __WEBPACK_IMPORTED_MODULE_9_classnames___default()('recharts-trapezoids', className);\n return __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__container_Layer__[\"a\" /* default */], {\n className: layerClass\n }, this.renderTrapezoids(), (!isAnimationActive || isAnimationFinished) && __WEBPACK_IMPORTED_MODULE_13__component_LabelList__[\"a\" /* default */].renderCallByParent(this.props, trapezoids));\n }\n }], [{\n key: \"renderTrapezoidItem\",\n value: function renderTrapezoidItem(option, props) {\n if (__WEBPACK_IMPORTED_MODULE_6_react___default.a.isValidElement(option)) {\n return __WEBPACK_IMPORTED_MODULE_6_react___default.a.cloneElement(option, props);\n }\n\n if (__WEBPACK_IMPORTED_MODULE_2_lodash_isFunction___default()(option)) {\n return option(props);\n }\n\n if (__WEBPACK_IMPORTED_MODULE_1_lodash_isPlainObject___default()(option)) {\n return __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_12__shape_Trapezoid__[\"a\" /* default */], _extends({}, props, option));\n }\n\n return __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_12__shape_Trapezoid__[\"a\" /* default */], props);\n }\n }]);\n\n return Funnel;\n}(__WEBPACK_IMPORTED_MODULE_6_react__[\"Component\"]), _class2.displayName = 'Funnel', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], __WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"d\" /* EVENT_ATTRIBUTES */], {\n className: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string,\n animationId: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.number,\n dataKey: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func]).isRequired,\n nameKey: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func]),\n data: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.object),\n trapezoids: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.object),\n hide: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool,\n activeShape: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.element]),\n legendType: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"o\" /* LEGEND_TYPES */]),\n tooltipType: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"p\" /* TOOLTIP_TYPES */]),\n activeIndex: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.number)]),\n isAnimationActive: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool,\n animationBegin: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.number,\n animationDuration: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.number,\n animationEasing: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'spring', 'linear'])\n}), _class2.defaultProps = {\n stroke: '#fff',\n fill: '#808080',\n legendType: 'rect',\n labelLine: true,\n hide: false,\n isAnimationActive: !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"m\" /* isSsr */])(),\n animationBegin: 400,\n animationDuration: 1500,\n animationEasing: 'ease',\n nameKey: 'name'\n}, _class2.getRealFunnelData = function (item) {\n var _item$props = item.props,\n data = _item$props.data,\n children = _item$props.children;\n var presentationProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(item.props);\n var cells = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util_ReactUtils__[\"h\" /* findAllByType */])(children, __WEBPACK_IMPORTED_MODULE_14__component_Cell__[\"a\" /* default */]);\n\n if (data && data.length) {\n return data.map(function (entry, index) {\n return _objectSpread({\n payload: entry\n }, presentationProps, entry, cells && cells[index] && cells[index].props);\n });\n }\n\n if (cells && cells.length) {\n return cells.map(function (cell) {\n return _objectSpread({}, presentationProps, cell.props);\n });\n }\n\n return [];\n}, _class2.getRealWidthHeight = function (item, offset) {\n var customWidth = item.props.width;\n var width = offset.width,\n height = offset.height,\n left = offset.left,\n right = offset.right,\n top = offset.top,\n bottom = offset.bottom;\n var realHeight = height;\n var realWidth = width;\n\n if (__WEBPACK_IMPORTED_MODULE_5_lodash_isNumber___default()(customWidth)) {\n realWidth = customWidth;\n } else if (__WEBPACK_IMPORTED_MODULE_4_lodash_isString___default()(customWidth)) {\n realWidth = realWidth * parseFloat(customWidth) / 100;\n }\n\n return {\n realWidth: realWidth - left - right - 50,\n realHeight: realHeight - bottom - top,\n offsetX: (width - realWidth) / 2,\n offsetY: (height - realHeight) / 2\n };\n}, _class2.getComposedData = function (_ref2) {\n var item = _ref2.item,\n offset = _ref2.offset,\n onItemMouseLeave = _ref2.onItemMouseLeave,\n onItemMouseEnter = _ref2.onItemMouseEnter;\n var funnelData = Funnel.getRealFunnelData(item);\n var _item$props2 = item.props,\n dataKey = _item$props2.dataKey,\n nameKey = _item$props2.nameKey,\n tooltipType = _item$props2.tooltipType;\n var left = offset.left,\n top = offset.top;\n\n var _Funnel$getRealWidthH = Funnel.getRealWidthHeight(item, offset),\n realHeight = _Funnel$getRealWidthH.realHeight,\n realWidth = _Funnel$getRealWidthH.realWidth,\n offsetX = _Funnel$getRealWidthH.offsetX,\n offsetY = _Funnel$getRealWidthH.offsetY;\n\n var maxValue = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_ChartUtils__[\"o\" /* getValueByDataKey */])(funnelData[0], dataKey, 0);\n var len = funnelData.length;\n var rowHeight = realHeight / len;\n var trapezoids = funnelData.map(function (entry, i) {\n var val = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_ChartUtils__[\"o\" /* getValueByDataKey */])(entry, dataKey, 0);\n var name = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_ChartUtils__[\"o\" /* getValueByDataKey */])(entry, nameKey, i);\n var nextVal = 0;\n\n if (i !== len - 1) {\n nextVal = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_ChartUtils__[\"o\" /* getValueByDataKey */])(funnelData[i + 1], dataKey, 0);\n }\n\n var x = (maxValue - val) * realWidth / (2 * maxValue) + top + 25 + offsetX;\n var y = realHeight / len * i + left + offsetY;\n var upperWidth = val / maxValue * realWidth;\n var lowerWidth = nextVal / maxValue * realWidth;\n var tooltipPayload = [{\n name: name,\n value: val,\n payload: entry,\n dataKey: dataKey,\n type: tooltipType\n }];\n var tooltipPosition = {\n x: x + upperWidth / 2,\n y: y + rowHeight / 2\n };\n return _objectSpread({\n x: x,\n y: y,\n width: Math.max(upperWidth, lowerWidth),\n upperWidth: upperWidth,\n lowerWidth: lowerWidth,\n height: rowHeight,\n name: name,\n val: val,\n tooltipPayload: tooltipPayload,\n tooltipPosition: tooltipPosition\n }, __WEBPACK_IMPORTED_MODULE_3_lodash_omit___default()(entry, 'width'), {\n payload: entry\n });\n });\n return {\n trapezoids: trapezoids,\n data: funnelData,\n onMouseLeave: onItemMouseLeave,\n onMouseEnter: onItemMouseEnter\n };\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Funnel);\n\n/***/ }),\n/* 409 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__ = __webpack_require__(22);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_get__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_get___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_get__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isPlainObject__ = __webpack_require__(133);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isPlainObject___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_isPlainObject__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_isNil__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_isNil___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_lodash_isNil__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_smooth__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__shape_Sector__ = __webpack_require__(144);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__shape_Curve__ = __webpack_require__(74);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__component_Text__ = __webpack_require__(55);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__component_Label__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__component_LabelList__ = __webpack_require__(38);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__component_Cell__ = __webpack_require__(73);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__util_PolarUtils__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__util_ChartUtils__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__util_LogUtils__ = __webpack_require__(76);\n\n\n\n\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Render sectors of a pie\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Pie = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Pie, _Component);\n\n function Pie() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Pie);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Pie)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: false\n };\n _this.id = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_DataUtils__[\"d\" /* uniqueId */])('recharts-pie-');\n\n _this.cachePrevData = function (sectors) {\n _this.setState({\n prevSectors: sectors\n });\n };\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(onAnimationEnd)) {\n onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n var onAnimationStart = _this.props.onAnimationStart;\n\n _this.setState({\n isAnimationFinished: false\n });\n\n if (__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(onAnimationStart)) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Pie, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n sectors = _this$props.sectors;\n\n if (nextProps.isAnimationActive !== this.props.isAnimationActive) {\n this.cachePrevData([]);\n } else if (nextProps.animationId !== animationId) {\n this.cachePrevData(sectors);\n }\n }\n }, {\n key: \"isActiveIndex\",\n value: function isActiveIndex(i) {\n var activeIndex = this.props.activeIndex;\n\n if (Array.isArray(activeIndex)) {\n return activeIndex.indexOf(i) !== -1;\n }\n\n return i === activeIndex;\n }\n }, {\n key: \"renderLabels\",\n value: function renderLabels(sectors) {\n var _this2 = this;\n\n var isAnimationActive = this.props.isAnimationActive;\n\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props2 = this.props,\n label = _this$props2.label,\n labelLine = _this$props2.labelLine,\n dataKey = _this$props2.dataKey,\n valueKey = _this$props2.valueKey;\n var pieProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props);\n var customLabelProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(label);\n var customLabelLineProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(labelLine);\n var offsetRadius = label && label.offsetRadius || 20;\n var labels = sectors.map(function (entry, i) {\n var midAngle = (entry.startAngle + entry.endAngle) / 2;\n var endPoint = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_18__util_PolarUtils__[\"a\" /* polarToCartesian */])(entry.cx, entry.cy, entry.outerRadius + offsetRadius, midAngle);\n\n var labelProps = _objectSpread({}, pieProps, entry, {\n stroke: 'none'\n }, customLabelProps, {\n index: i,\n textAnchor: _this2.constructor.getTextAnchor(endPoint.x, entry.cx)\n }, endPoint);\n\n var lineProps = _objectSpread({}, pieProps, entry, {\n fill: 'none',\n stroke: entry.fill\n }, customLabelLineProps, {\n index: i,\n points: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_18__util_PolarUtils__[\"a\" /* polarToCartesian */])(entry.cx, entry.cy, entry.outerRadius, midAngle), endPoint],\n key: 'line'\n });\n\n var realDataKey = dataKey; // TODO: compatible to lower versions\n\n if (__WEBPACK_IMPORTED_MODULE_4_lodash_isNil___default()(dataKey) && __WEBPACK_IMPORTED_MODULE_4_lodash_isNil___default()(valueKey)) {\n realDataKey = 'value';\n } else if (__WEBPACK_IMPORTED_MODULE_4_lodash_isNil___default()(dataKey)) {\n realDataKey = valueKey;\n }\n\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__container_Layer__[\"a\" /* default */], {\n key: \"label-\".concat(i)\n }, labelLine && _this2.constructor.renderLabelLineItem(labelLine, lineProps), _this2.constructor.renderLabelItem(label, labelProps, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_20__util_ChartUtils__[\"o\" /* getValueByDataKey */])(entry, realDataKey)));\n });\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__container_Layer__[\"a\" /* default */], {\n className: \"recharts-pie-labels\"\n }, labels);\n }\n }, {\n key: \"renderSectorsStatically\",\n value: function renderSectorsStatically(sectors) {\n var _this3 = this;\n\n var _this$props3 = this.props,\n activeShape = _this$props3.activeShape,\n blendStroke = _this$props3.blendStroke;\n return sectors.map(function (entry, i) {\n var sectorOptions = _this3.isActiveIndex(i) ? activeShape : null;\n\n var sectorProps = _objectSpread({}, entry, {\n stroke: blendStroke ? entry.fill : entry.stroke\n });\n\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__container_Layer__[\"a\" /* default */], _extends({\n className: \"recharts-pie-sector\"\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_ReactUtils__[\"n\" /* filterEventsOfChild */])(_this3.props, entry, i), {\n key: \"sector-\".concat(i)\n }), _this3.constructor.renderSectorItem(sectorOptions, sectorProps));\n });\n }\n }, {\n key: \"renderSectorsWithAnimation\",\n value: function renderSectorsWithAnimation() {\n var _this4 = this;\n\n var _this$props4 = this.props,\n sectors = _this$props4.sectors,\n isAnimationActive = _this$props4.isAnimationActive,\n animationBegin = _this$props4.animationBegin,\n animationDuration = _this$props4.animationDuration,\n animationEasing = _this$props4.animationEasing,\n animationId = _this$props4.animationId;\n var prevSectors = this.state.prevSectors;\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7_react_smooth__[\"a\" /* default */], {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"pie-\".concat(animationId),\n onAnimationStart: this.handleAnimationStart,\n onAnimationEnd: this.handleAnimationEnd\n }, function (_ref) {\n var t = _ref.t;\n var stepData = [];\n var first = sectors && sectors[0];\n var curAngle = first.startAngle;\n sectors.forEach(function (entry, index) {\n var prev = prevSectors && prevSectors[index];\n var paddingAngle = index > 0 ? __WEBPACK_IMPORTED_MODULE_1_lodash_get___default()(entry, 'paddingAngle', 0) : 0;\n\n if (prev) {\n var angleIp = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.endAngle - prev.startAngle, entry.endAngle - entry.startAngle);\n\n var latest = _objectSpread({}, entry, {\n startAngle: curAngle + paddingAngle,\n endAngle: curAngle + angleIp(t) + paddingAngle\n });\n\n stepData.push(latest);\n curAngle = latest.endAngle;\n } else {\n var endAngle = entry.endAngle,\n startAngle = entry.startAngle;\n var interpolatorAngle = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_DataUtils__[\"i\" /* interpolateNumber */])(0, endAngle - startAngle);\n var deltaAngle = interpolatorAngle(t);\n\n var _latest = _objectSpread({}, entry, {\n startAngle: curAngle + paddingAngle,\n endAngle: curAngle + deltaAngle + paddingAngle\n });\n\n stepData.push(_latest);\n curAngle = _latest.endAngle;\n }\n });\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__container_Layer__[\"a\" /* default */], null, _this4.renderSectorsStatically(stepData));\n });\n }\n }, {\n key: \"renderSectors\",\n value: function renderSectors() {\n var _this$props5 = this.props,\n sectors = _this$props5.sectors,\n isAnimationActive = _this$props5.isAnimationActive;\n var prevSectors = this.state.prevSectors;\n\n if (isAnimationActive && sectors && sectors.length && (!prevSectors || !__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default()(prevSectors, sectors))) {\n return this.renderSectorsWithAnimation();\n }\n\n return this.renderSectorsStatically(sectors);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n sectors = _this$props6.sectors,\n className = _this$props6.className,\n label = _this$props6.label,\n cx = _this$props6.cx,\n cy = _this$props6.cy,\n innerRadius = _this$props6.innerRadius,\n outerRadius = _this$props6.outerRadius,\n isAnimationActive = _this$props6.isAnimationActive,\n prevSectors = _this$props6.prevSectors;\n\n if (hide || !sectors || !sectors.length || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_DataUtils__[\"a\" /* isNumber */])(cx) || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_DataUtils__[\"a\" /* isNumber */])(cy) || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_DataUtils__[\"a\" /* isNumber */])(innerRadius) || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_DataUtils__[\"a\" /* isNumber */])(outerRadius)) {\n return null;\n }\n\n var layerClass = __WEBPACK_IMPORTED_MODULE_8_classnames___default()('recharts-pie', className);\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__container_Layer__[\"a\" /* default */], {\n className: layerClass\n }, this.renderSectors(), label && this.renderLabels(sectors), __WEBPACK_IMPORTED_MODULE_14__component_Label__[\"a\" /* default */].renderCallByParent(this.props, null, false), (!isAnimationActive || prevSectors && __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default()(prevSectors, sectors)) && __WEBPACK_IMPORTED_MODULE_15__component_LabelList__[\"a\" /* default */].renderCallByParent(this.props, sectors, false));\n }\n }], [{\n key: \"getTextAnchor\",\n value: function getTextAnchor(x, cx) {\n if (x > cx) {\n return 'start';\n }\n\n if (x < cx) {\n return 'end';\n }\n\n return 'middle';\n }\n }, {\n key: \"renderLabelLineItem\",\n value: function renderLabelLineItem(option, props) {\n if (__WEBPACK_IMPORTED_MODULE_5_react___default.a.isValidElement(option)) {\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.cloneElement(option, props);\n }\n\n if (__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(option)) {\n return option(props);\n }\n\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_12__shape_Curve__[\"a\" /* default */], _extends({}, props, {\n type: \"linear\",\n className: \"recharts-pie-label-line\"\n }));\n }\n }, {\n key: \"renderLabelItem\",\n value: function renderLabelItem(option, props, value) {\n if (__WEBPACK_IMPORTED_MODULE_5_react___default.a.isValidElement(option)) {\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.cloneElement(option, props);\n }\n\n var label = value;\n\n if (__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(option)) {\n label = option(props);\n\n if (__WEBPACK_IMPORTED_MODULE_5_react___default.a.isValidElement(label)) {\n return label;\n }\n }\n\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_13__component_Text__[\"a\" /* default */], _extends({}, props, {\n alignmentBaseline: \"middle\",\n className: \"recharts-pie-label-text\"\n }), label);\n }\n }, {\n key: \"renderSectorItem\",\n value: function renderSectorItem(option, props) {\n if (__WEBPACK_IMPORTED_MODULE_5_react___default.a.isValidElement(option)) {\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.cloneElement(option, props);\n }\n\n if (__WEBPACK_IMPORTED_MODULE_3_lodash_isFunction___default()(option)) {\n return option(props);\n }\n\n if (__WEBPACK_IMPORTED_MODULE_2_lodash_isPlainObject___default()(option)) {\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__shape_Sector__[\"a\" /* default */], _extends({}, props, option));\n }\n\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__shape_Sector__[\"a\" /* default */], props);\n }\n }]);\n\n return Pie;\n}(__WEBPACK_IMPORTED_MODULE_5_react__[\"Component\"]), _class2.displayName = 'Pie', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_17__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], __WEBPACK_IMPORTED_MODULE_17__util_ReactUtils__[\"d\" /* EVENT_ATTRIBUTES */], {\n className: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string,\n animationId: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number,\n cx: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]),\n cy: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]),\n startAngle: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number,\n endAngle: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number,\n paddingAngle: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number,\n innerRadius: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]),\n outerRadius: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]),\n cornerRadius: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]),\n dataKey: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func]).isRequired,\n nameKey: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func]),\n valueKey: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func]),\n data: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object),\n blendStroke: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool,\n minAngle: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number,\n legendType: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_17__util_ReactUtils__[\"o\" /* LEGEND_TYPES */]),\n tooltipType: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_17__util_ReactUtils__[\"p\" /* TOOLTIP_TYPES */]),\n maxRadius: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number,\n sectors: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object),\n hide: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool,\n labelLine: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool]),\n label: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.shape({\n offsetRadius: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number\n }), __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool]),\n activeShape: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.element]),\n activeIndex: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number)]),\n isAnimationActive: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool,\n animationBegin: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number,\n animationDuration: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number,\n animationEasing: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'spring', 'linear']),\n id: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string\n}), _class2.defaultProps = {\n stroke: '#fff',\n fill: '#808080',\n legendType: 'rect',\n // The abscissa of pole\n cx: '50%',\n // The ordinate of pole\n cy: '50%',\n // The start angle of first sector\n startAngle: 0,\n // The direction of drawing sectors\n endAngle: 360,\n // The inner radius of sectors\n innerRadius: 0,\n // The outer radius of sectors\n outerRadius: '80%',\n paddingAngle: 0,\n labelLine: true,\n hide: false,\n minAngle: 0,\n isAnimationActive: !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_ReactUtils__[\"m\" /* isSsr */])(),\n animationBegin: 400,\n animationDuration: 1500,\n animationEasing: 'ease',\n nameKey: 'name',\n // Match each sector's stroke color to it's fill color\n blendStroke: false\n}, _class2.parseDeltaAngle = function (_ref2) {\n var startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var sign = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_DataUtils__[\"g\" /* mathSign */])(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n}, _class2.getRealPieData = function (item) {\n var _item$props = item.props,\n data = _item$props.data,\n children = _item$props.children;\n var presentationProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(item.props);\n var cells = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_ReactUtils__[\"h\" /* findAllByType */])(children, __WEBPACK_IMPORTED_MODULE_16__component_Cell__[\"a\" /* default */]);\n\n if (data && data.length) {\n return data.map(function (entry, index) {\n return _objectSpread({\n payload: entry\n }, presentationProps, entry, cells && cells[index] && cells[index].props);\n });\n }\n\n if (cells && cells.length) {\n return cells.map(function (cell) {\n return _objectSpread({}, presentationProps, cell.props);\n });\n }\n\n return [];\n}, _class2.parseCoordinateOfPie = function (item, offset) {\n var top = offset.top,\n left = offset.left,\n width = offset.width,\n height = offset.height;\n var maxPieRadius = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_18__util_PolarUtils__[\"d\" /* getMaxRadius */])(width, height);\n var cx = left + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_DataUtils__[\"h\" /* getPercentValue */])(item.props.cx, width, width / 2);\n var cy = top + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_DataUtils__[\"h\" /* getPercentValue */])(item.props.cy, height, height / 2);\n var innerRadius = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_DataUtils__[\"h\" /* getPercentValue */])(item.props.innerRadius, maxPieRadius, 0);\n var outerRadius = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_DataUtils__[\"h\" /* getPercentValue */])(item.props.outerRadius, maxPieRadius, maxPieRadius * 0.8);\n var maxRadius = item.props.maxRadius || Math.sqrt(width * width + height * height) / 2;\n return {\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n maxRadius: maxRadius\n };\n}, _class2.getComposedData = function (_ref3) {\n var item = _ref3.item,\n offset = _ref3.offset,\n onItemMouseLeave = _ref3.onItemMouseLeave,\n onItemMouseEnter = _ref3.onItemMouseEnter;\n var pieData = Pie.getRealPieData(item);\n\n if (!pieData || !pieData.length) {\n return [];\n }\n\n var _item$props2 = item.props,\n cornerRadius = _item$props2.cornerRadius,\n startAngle = _item$props2.startAngle,\n endAngle = _item$props2.endAngle,\n paddingAngle = _item$props2.paddingAngle,\n dataKey = _item$props2.dataKey,\n nameKey = _item$props2.nameKey,\n valueKey = _item$props2.valueKey,\n tooltipType = _item$props2.tooltipType;\n var minAngle = Math.abs(item.props.minAngle);\n var coordinate = Pie.parseCoordinateOfPie(item, offset);\n var len = pieData.length;\n var deltaAngle = Pie.parseDeltaAngle({\n startAngle: startAngle,\n endAngle: endAngle\n });\n var absDeltaAngle = Math.abs(deltaAngle);\n var totalPadingAngle = (absDeltaAngle >= 360 ? len : len - 1) * paddingAngle;\n var realTotalAngle = absDeltaAngle - len * minAngle - totalPadingAngle;\n var realDataKey = dataKey;\n\n if (__WEBPACK_IMPORTED_MODULE_4_lodash_isNil___default()(dataKey) && __WEBPACK_IMPORTED_MODULE_4_lodash_isNil___default()(valueKey)) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_21__util_LogUtils__[\"a\" /* warn */])(false, \"Use \\\"dataKey\\\" to specify the value of pie,\\n the props \\\"valueKey\\\" will be deprecated in 1.1.0\");\n realDataKey = 'value';\n } else if (__WEBPACK_IMPORTED_MODULE_4_lodash_isNil___default()(dataKey)) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_21__util_LogUtils__[\"a\" /* warn */])(false, \"Use \\\"dataKey\\\" to specify the value of pie,\\n the props \\\"valueKey\\\" will be deprecated in 1.1.0\");\n realDataKey = valueKey;\n }\n\n var sum = pieData.reduce(function (result, entry) {\n var val = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_20__util_ChartUtils__[\"o\" /* getValueByDataKey */])(entry, realDataKey, 0);\n return result + (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_DataUtils__[\"a\" /* isNumber */])(val) ? val : 0);\n }, 0);\n var sectors;\n\n if (sum > 0) {\n var prev;\n sectors = pieData.map(function (entry, i) {\n var val = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_20__util_ChartUtils__[\"o\" /* getValueByDataKey */])(entry, realDataKey, 0);\n var name = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_20__util_ChartUtils__[\"o\" /* getValueByDataKey */])(entry, nameKey, i);\n var percent = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_DataUtils__[\"a\" /* isNumber */])(val) ? val : 0) / sum;\n var tempStartAngle;\n\n if (i) {\n tempStartAngle = prev.endAngle + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_DataUtils__[\"g\" /* mathSign */])(deltaAngle) * paddingAngle;\n } else {\n tempStartAngle = startAngle;\n }\n\n var tempEndAngle = tempStartAngle + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_DataUtils__[\"g\" /* mathSign */])(deltaAngle) * (minAngle + percent * realTotalAngle);\n var midAngle = (tempStartAngle + tempEndAngle) / 2;\n var middleRadius = (coordinate.innerRadius + coordinate.outerRadius) / 2;\n var tooltipPayload = [{\n name: name,\n value: val,\n payload: entry,\n dataKey: realDataKey,\n type: tooltipType\n }];\n var tooltipPosition = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_18__util_PolarUtils__[\"a\" /* polarToCartesian */])(coordinate.cx, coordinate.cy, middleRadius, midAngle);\n prev = _objectSpread({\n percent: percent,\n cornerRadius: cornerRadius,\n name: name,\n tooltipPayload: tooltipPayload,\n midAngle: midAngle,\n middleRadius: middleRadius,\n tooltipPosition: tooltipPosition\n }, entry, coordinate, {\n value: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_20__util_ChartUtils__[\"o\" /* getValueByDataKey */])(entry, realDataKey),\n startAngle: tempStartAngle,\n endAngle: tempEndAngle,\n payload: entry,\n paddingAngle: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_19__util_DataUtils__[\"g\" /* mathSign */])(deltaAngle) * paddingAngle\n });\n return prev;\n });\n }\n\n return _objectSpread({}, coordinate, {\n sectors: sectors,\n data: pieData,\n onMouseLeave: onItemMouseLeave,\n onMouseEnter: onItemMouseEnter\n });\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Pie);\n\n/***/ }),\n/* 410 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__ = __webpack_require__(22);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_smooth__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__util_PolarUtils__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__util_ChartUtils__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__shape_Polygon__ = __webpack_require__(143);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__shape_Dot__ = __webpack_require__(56);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__component_LabelList__ = __webpack_require__(38);\n\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Radar\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Radar = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Radar, _Component);\n\n function Radar() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Radar);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Radar)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: false\n };\n\n _this.cachePrevData = function (points) {\n _this.setState({\n prevPoints: points\n });\n };\n\n _this.handleAnimationEnd = function () {\n _this.setState({\n isAnimationFinished: true\n });\n };\n\n _this.handleAnimationStart = function () {\n _this.setState({\n isAnimationFinished: false\n });\n };\n\n _this.handleMouseEnter = function (e) {\n var onMouseEnter = _this.props.onMouseEnter;\n\n if (onMouseEnter) {\n onMouseEnter(_this.props, e);\n }\n };\n\n _this.handleMouseLeave = function (e) {\n var onMouseLeave = _this.props.onMouseLeave;\n\n if (onMouseLeave) {\n onMouseLeave(_this.props, e);\n }\n };\n\n return _this;\n }\n\n _createClass(Radar, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n points = _this$props.points;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(points);\n }\n }\n }, {\n key: \"renderDots\",\n value: function renderDots(points) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n dot = _this$props2.dot,\n dataKey = _this$props2.dataKey;\n var baseProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props);\n var customDotProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(dot);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, baseProps, customDotProps, {\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n payload: entry\n });\n\n return _this2.constructor.renderDotItem(dot, dotProps);\n });\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_13__container_Layer__[\"a\" /* default */], {\n className: \"recharts-radar-dots\"\n }, dots);\n }\n }, {\n key: \"renderPolygonStatically\",\n value: function renderPolygonStatically(points) {\n var _this$props3 = this.props,\n shape = _this$props3.shape,\n dot = _this$props3.dot;\n var radar;\n\n if (__WEBPACK_IMPORTED_MODULE_2_react___default.a.isValidElement(shape)) {\n radar = __WEBPACK_IMPORTED_MODULE_2_react___default.a.cloneElement(shape, _objectSpread({}, this.props, {\n points: points\n }));\n } else if (__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default()(shape)) {\n radar = shape(_objectSpread({}, this.props, {\n points: points\n }));\n } else {\n radar = __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__shape_Polygon__[\"a\" /* default */], _extends({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_ReactUtils__[\"b\" /* filterEventAttributes */])(this.props), {\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), {\n points: points\n }));\n }\n\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_13__container_Layer__[\"a\" /* default */], {\n className: \"recharts-radar-polygon\"\n }, radar, dot ? this.renderDots(points) : null);\n }\n }, {\n key: \"renderPolygonWithAnimation\",\n value: function renderPolygonWithAnimation() {\n var _this3 = this;\n\n var _this$props4 = this.props,\n points = _this$props4.points,\n isAnimationActive = _this$props4.isAnimationActive,\n animationBegin = _this$props4.animationBegin,\n animationDuration = _this$props4.animationDuration,\n animationEasing = _this$props4.animationEasing,\n animationId = _this$props4.animationId;\n var prevPoints = this.state.prevPoints;\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4_react_smooth__[\"a\" /* default */], {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"radar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var prevPointsDiffFactor = prevPoints && prevPoints.length / points.length;\n var stepData = points.map(function (entry, index) {\n var prev = prevPoints && prevPoints[Math.floor(index * prevPointsDiffFactor)];\n\n if (prev) {\n var _interpolatorX = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.x, entry.x);\n\n var _interpolatorY = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.y, entry.y);\n\n return _objectSpread({}, entry, {\n x: _interpolatorX(t),\n y: _interpolatorY(t)\n });\n }\n\n var interpolatorX = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_DataUtils__[\"i\" /* interpolateNumber */])(entry.cx, entry.x);\n var interpolatorY = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_DataUtils__[\"i\" /* interpolateNumber */])(entry.cy, entry.y);\n return _objectSpread({}, entry, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n });\n return _this3.renderPolygonStatically(stepData);\n });\n }\n }, {\n key: \"renderPolygon\",\n value: function renderPolygon() {\n var _this$props5 = this.props,\n points = _this$props5.points,\n isAnimationActive = _this$props5.isAnimationActive;\n var prevPoints = this.state.prevPoints;\n\n if (isAnimationActive && points && points.length && (!prevPoints || !__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default()(prevPoints, points))) {\n return this.renderPolygonWithAnimation();\n }\n\n return this.renderPolygonStatically(points);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n className = _this$props6.className,\n points = _this$props6.points,\n isAnimationActive = _this$props6.isAnimationActive;\n\n if (hide || !points || !points.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = __WEBPACK_IMPORTED_MODULE_5_classnames___default()('recharts-radar', className);\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_13__container_Layer__[\"a\" /* default */], {\n className: layerClass\n }, this.renderPolygon(), (!isAnimationActive || isAnimationFinished) && __WEBPACK_IMPORTED_MODULE_14__component_LabelList__[\"a\" /* default */].renderCallByParent(this.props, points));\n }\n }], [{\n key: \"renderDotItem\",\n value: function renderDotItem(option, props) {\n var dotItem;\n\n if (__WEBPACK_IMPORTED_MODULE_2_react___default.a.isValidElement(option)) {\n dotItem = __WEBPACK_IMPORTED_MODULE_2_react___default.a.cloneElement(option, props);\n } else if (__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default()(option)) {\n dotItem = option(props);\n } else {\n dotItem = __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_12__shape_Dot__[\"a\" /* default */], _extends({}, props, {\n className: \"recharts-radar-dot\"\n }));\n }\n\n return dotItem;\n }\n }]);\n\n return Radar;\n}(__WEBPACK_IMPORTED_MODULE_2_react__[\"Component\"]), _class2.displayName = 'Radar', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_8__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], {\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n dataKey: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func]).isRequired,\n angleAxisId: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number]),\n radiusAxisId: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number]),\n points: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.shape({\n x: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n cx: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n cy: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n angle: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n radius: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n value: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n payload: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n })),\n shape: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func]),\n activeDot: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool]),\n // whether have dot in poly line\n dot: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool]),\n label: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool]),\n legendType: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_8__util_ReactUtils__[\"o\" /* LEGEND_TYPES */]),\n tooltipType: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_8__util_ReactUtils__[\"p\" /* TOOLTIP_TYPES */]),\n hide: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n onMouseEnter: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n onMouseLeave: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n onClick: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n isAnimationActive: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n animationId: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n animationBegin: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n animationDuration: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n animationEasing: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear'])\n}), _class2.defaultProps = {\n angleAxisId: 0,\n radiusAxisId: 0,\n hide: false,\n activeDot: true,\n dot: false,\n legendType: 'rect',\n isAnimationActive: !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__util_ReactUtils__[\"m\" /* isSsr */])(),\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n}, _class2.getComposedData = function (_ref2) {\n var radiusAxis = _ref2.radiusAxis,\n angleAxis = _ref2.angleAxis,\n displayedData = _ref2.displayedData,\n dataKey = _ref2.dataKey,\n bandSize = _ref2.bandSize;\n var cx = angleAxis.cx,\n cy = angleAxis.cy;\n var points = displayedData.map(function (entry, i) {\n var name = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_ChartUtils__[\"o\" /* getValueByDataKey */])(entry, angleAxis.dataKey, i);\n var value = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_ChartUtils__[\"o\" /* getValueByDataKey */])(entry, dataKey, 0);\n var angle = angleAxis.scale(name) + (bandSize || 0);\n var radius = radiusAxis.scale(value);\n return _objectSpread({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, radius, angle), {\n name: name,\n value: value,\n cx: cx,\n cy: cy,\n radius: radius,\n angle: angle,\n payload: entry\n });\n });\n return {\n points: points\n };\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Radar);\n\n/***/ }),\n/* 411 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__ = __webpack_require__(22);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isArray__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_isArray__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_smooth__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__shape_Sector__ = __webpack_require__(144);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__component_LabelList__ = __webpack_require__(38);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__component_Cell__ = __webpack_require__(73);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__util_ChartUtils__ = __webpack_require__(16);\n\n\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Render a group of radial bar\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar RadialBar = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(RadialBar, _Component);\n\n function RadialBar() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, RadialBar);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(RadialBar)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: false\n };\n\n _this.cachePrevData = function (data) {\n _this.setState({\n prevData: data\n });\n };\n\n _this.handleAnimationEnd = function () {\n _this.setState({\n isAnimationFinished: true\n });\n };\n\n _this.handleAnimationStart = function () {\n _this.setState({\n isAnimationFinished: false\n });\n };\n\n return _this;\n }\n\n _createClass(RadialBar, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n data = _this$props.data;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(data);\n }\n }\n }, {\n key: \"getDeltaAngle\",\n value: function getDeltaAngle() {\n var _this$props2 = this.props,\n startAngle = _this$props2.startAngle,\n endAngle = _this$props2.endAngle;\n var sign = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__util_DataUtils__[\"g\" /* mathSign */])(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n }\n }, {\n key: \"renderSectorsStatically\",\n value: function renderSectorsStatically(sectors) {\n var _this2 = this;\n\n var _this$props3 = this.props,\n shape = _this$props3.shape,\n activeShape = _this$props3.activeShape,\n activeIndex = _this$props3.activeIndex,\n cornerRadius = _this$props3.cornerRadius,\n others = _objectWithoutProperties(_this$props3, [\"shape\", \"activeShape\", \"activeIndex\", \"cornerRadius\"]);\n\n var baseProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(others);\n return sectors.map(function (entry, i) {\n var props = _objectSpread({}, baseProps, {\n cornerRadius: cornerRadius\n }, entry, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"n\" /* filterEventsOfChild */])(_this2.props, entry, i), {\n key: \"sector-\".concat(i),\n className: 'recharts-radial-bar-sector',\n forceCornerRadius: others.forceCornerRadius,\n cornerIsExternal: others.cornerIsExternal\n });\n\n return _this2.constructor.renderSectorShape(i === activeIndex ? activeShape : shape, props);\n });\n }\n }, {\n key: \"renderSectorsWithAnimation\",\n value: function renderSectorsWithAnimation() {\n var _this3 = this;\n\n var _this$props4 = this.props,\n data = _this$props4.data,\n isAnimationActive = _this$props4.isAnimationActive,\n animationBegin = _this$props4.animationBegin,\n animationDuration = _this$props4.animationDuration,\n animationEasing = _this$props4.animationEasing,\n animationId = _this$props4.animationId;\n var prevData = this.state.prevData;\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6_react_smooth__[\"a\" /* default */], {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"radialBar-\".concat(animationId),\n onAnimationStart: this.handleAnimationStart,\n onAnimationEnd: this.handleAnimationEnd\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n\n if (prev) {\n var interpolatorStartAngle = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.startAngle, entry.startAngle);\n var interpolatorEndAngle = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__util_DataUtils__[\"i\" /* interpolateNumber */])(prev.endAngle, entry.endAngle);\n return _objectSpread({}, entry, {\n startAngle: interpolatorStartAngle(t),\n endAngle: interpolatorEndAngle(t)\n });\n }\n\n var endAngle = entry.endAngle,\n startAngle = entry.startAngle;\n var interpolator = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__util_DataUtils__[\"i\" /* interpolateNumber */])(startAngle, endAngle);\n return _objectSpread({}, entry, {\n endAngle: interpolator(t)\n });\n });\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], null, _this3.renderSectorsStatically(stepData));\n });\n }\n }, {\n key: \"renderSectors\",\n value: function renderSectors() {\n var _this$props5 = this.props,\n data = _this$props5.data,\n isAnimationActive = _this$props5.isAnimationActive;\n var prevData = this.state.prevData;\n\n if (isAnimationActive && data && data.length && (!prevData || !__WEBPACK_IMPORTED_MODULE_0_lodash_isEqual___default()(prevData, data))) {\n return this.renderSectorsWithAnimation();\n }\n\n return this.renderSectorsStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground(sectors) {\n var _this4 = this;\n\n var cornerRadius = this.props.cornerRadius;\n var backgroundProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props.background);\n return sectors.map(function (entry, i) {\n // eslint-disable-next-line no-unused-vars\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, [\"value\", \"background\"]);\n\n if (!background) {\n return null;\n }\n\n var props = _objectSpread({\n cornerRadius: cornerRadius\n }, rest, {\n fill: '#eee'\n }, background, backgroundProps, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"n\" /* filterEventsOfChild */])(_this4.props, entry, i), {\n index: i,\n key: \"sector-\".concat(i),\n className: 'recharts-radial-bar-background-sector'\n });\n\n return _this4.constructor.renderSectorShape(background, props);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n data = _this$props6.data,\n className = _this$props6.className,\n background = _this$props6.background,\n isAnimationActive = _this$props6.isAnimationActive;\n\n if (hide || !data || !data.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = __WEBPACK_IMPORTED_MODULE_5_classnames___default()('recharts-area', className);\n return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], {\n className: layerClass\n }, background && __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], {\n className: \"recharts-radial-bar-background\"\n }, this.renderBackground(data)), __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], {\n className: \"recharts-radial-bar-sectors\"\n }, this.renderSectors(data)), (!isAnimationActive || isAnimationFinished) && __WEBPACK_IMPORTED_MODULE_11__component_LabelList__[\"a\" /* default */].renderCallByParent(_objectSpread({}, this.props, {\n clockWise: this.getDeltaAngle() < 0\n }), data));\n }\n }], [{\n key: \"renderSectorShape\",\n value: function renderSectorShape(shape, props) {\n var sectorShape;\n\n if (__WEBPACK_IMPORTED_MODULE_3_react___default.a.isValidElement(shape)) {\n sectorShape = __WEBPACK_IMPORTED_MODULE_3_react___default.a.cloneElement(shape, props);\n } else if (__WEBPACK_IMPORTED_MODULE_1_lodash_isFunction___default()(shape)) {\n sectorShape = shape(props);\n } else {\n sectorShape = __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__shape_Sector__[\"a\" /* default */], props);\n }\n\n return sectorShape;\n }\n }]);\n\n return RadialBar;\n}(__WEBPACK_IMPORTED_MODULE_3_react__[\"Component\"]), _class2.displayName = 'RadialBar', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], {\n className: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string,\n angleAxisId: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number]),\n radiusAxisId: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number]),\n shape: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.element]),\n activeShape: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.element]),\n activeIndex: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n dataKey: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func]).isRequired,\n cornerRadius: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string]),\n forceCornerRadius: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n cornerIsExternal: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n minPointSize: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n maxBarSize: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n data: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.shape({\n cx: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n cy: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n innerRadius: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n outerRadius: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n value: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.value\n })),\n legendType: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"o\" /* LEGEND_TYPES */]),\n tooltipType: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"p\" /* TOOLTIP_TYPES */]),\n label: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object]),\n background: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.element]),\n hide: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n onMouseEnter: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func,\n onMouseLeave: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func,\n onClick: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func,\n isAnimationActive: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n animationBegin: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n animationDuration: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number,\n animationEasing: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear', 'spring'])\n}), _class2.defaultProps = {\n angleAxisId: 0,\n radiusAxisId: 0,\n minPointSize: 0,\n hide: false,\n legendType: 'rect',\n data: [],\n isAnimationActive: !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"m\" /* isSsr */])(),\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n forceCornerRadius: false,\n cornerIsExternal: false\n}, _class2.getComposedData = function (_ref2) {\n var item = _ref2.item,\n props = _ref2.props,\n radiusAxis = _ref2.radiusAxis,\n radiusAxisTicks = _ref2.radiusAxisTicks,\n angleAxis = _ref2.angleAxis,\n angleAxisTicks = _ref2.angleAxisTicks,\n displayedData = _ref2.displayedData,\n dataKey = _ref2.dataKey,\n stackedData = _ref2.stackedData,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n dataStartIndex = _ref2.dataStartIndex;\n var pos = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_ChartUtils__[\"z\" /* findPositionOfBar */])(barPosition, item);\n\n if (!pos) {\n return [];\n }\n\n var cx = angleAxis.cx,\n cy = angleAxis.cy;\n var layout = props.layout;\n var _item$props = item.props,\n children = _item$props.children,\n minPointSize = _item$props.minPointSize;\n var numericAxis = layout === 'radial' ? angleAxis : radiusAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_ChartUtils__[\"A\" /* getBaseValueOfBar */])({\n props: props,\n numericAxis: numericAxis\n });\n var cells = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__util_ReactUtils__[\"h\" /* findAllByType */])(children, __WEBPACK_IMPORTED_MODULE_12__component_Cell__[\"a\" /* default */]);\n var sectors = displayedData.map(function (entry, index) {\n var value, innerRadius, outerRadius, startAngle, endAngle, backgroundSector;\n\n if (stackedData) {\n value = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_ChartUtils__[\"B\" /* truncateByDomain */])(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_ChartUtils__[\"o\" /* getValueByDataKey */])(entry, dataKey);\n\n if (!__WEBPACK_IMPORTED_MODULE_2_lodash_isArray___default()(value)) {\n value = [baseValue, value];\n }\n }\n\n if (layout === 'radial') {\n innerRadius = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_ChartUtils__[\"C\" /* getCateCoordinateOfBar */])({\n axis: radiusAxis,\n ticks: radiusAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n endAngle = angleAxis.scale(value[1]);\n startAngle = angleAxis.scale(value[0]);\n outerRadius = innerRadius + pos.size;\n var deltaAngle = endAngle - startAngle;\n\n if (Math.abs(minPointSize) > 0 && Math.abs(deltaAngle) < Math.abs(minPointSize)) {\n var delta = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__util_DataUtils__[\"g\" /* mathSign */])(deltaAngle || minPointSize) * (Math.abs(minPointSize) - Math.abs(deltaAngle));\n endAngle += delta;\n }\n\n backgroundSector = {\n background: {\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: props.startAngle,\n endAngle: props.endAngle\n }\n };\n } else {\n innerRadius = radiusAxis.scale(value[0]);\n outerRadius = radiusAxis.scale(value[1]);\n startAngle = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_ChartUtils__[\"C\" /* getCateCoordinateOfBar */])({\n axis: angleAxis,\n ticks: angleAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n endAngle = startAngle + pos.size;\n var deltaRadius = outerRadius - innerRadius;\n\n if (Math.abs(minPointSize) > 0 && Math.abs(deltaRadius) < Math.abs(minPointSize)) {\n var _delta = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__util_DataUtils__[\"g\" /* mathSign */])(deltaRadius || minPointSize) * (Math.abs(minPointSize) - Math.abs(deltaRadius));\n\n outerRadius += _delta;\n }\n }\n\n return _objectSpread({}, entry, backgroundSector, {\n payload: entry,\n value: stackedData ? value : value[1],\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n }, cells && cells[index] && cells[index].props);\n });\n return {\n data: sectors,\n layout: layout\n };\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (RadialBar);\n\n/***/ }),\n/* 412 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__ = __webpack_require__(2);\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Cross\n */\n\n\n\n\n\n\n\nvar Cross = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Cross, _Component);\n\n function Cross() {\n _classCallCheck(this, Cross);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Cross).apply(this, arguments));\n }\n\n _createClass(Cross, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n top = _this$props.top,\n left = _this$props.left,\n className = _this$props.className;\n\n if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_DataUtils__[\"a\" /* isNumber */])(x) || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_DataUtils__[\"a\" /* isNumber */])(y) || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_DataUtils__[\"a\" /* isNumber */])(width) || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_DataUtils__[\"a\" /* isNumber */])(height) || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_DataUtils__[\"a\" /* isNumber */])(top) || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_DataUtils__[\"a\" /* isNumber */])(left)) {\n return null;\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"path\", _extends({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), {\n className: __WEBPACK_IMPORTED_MODULE_2_classnames___default()('recharts-cross', className),\n d: this.constructor.getPath(x, y, width, height, top, left)\n }));\n }\n }], [{\n key: \"getPath\",\n value: function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n }\n }]);\n\n return Cross;\n}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]), _class2.displayName = 'Cross', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], {\n x: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n width: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n top: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n left: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n className: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string\n}), _class2.defaultProps = {\n x: 0,\n y: 0,\n top: 0,\n left: 0,\n width: 0,\n height: 0\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Cross);\n\n/***/ }),\n/* 413 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_smooth__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__ = __webpack_require__(2);\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Rectangle\n */\n\n\n\n\n\n\n\nvar getTrapezoidPath = function getTrapezoidPath(x, y, upperWidth, lowerWidth, height) {\n var widthGap = upperWidth - lowerWidth;\n var path;\n path = \"M \".concat(x, \",\").concat(y);\n path += \"L \".concat(x + upperWidth, \",\").concat(y);\n path += \"L \".concat(x + upperWidth - widthGap / 2, \",\").concat(y + height);\n path += \"L \".concat(x + upperWidth - widthGap / 2 - lowerWidth, \",\").concat(y + height);\n path += \"L \".concat(x, \",\").concat(y, \" Z\");\n return path;\n};\n\nvar Trapezoid = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Trapezoid, _Component);\n\n function Trapezoid() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Trapezoid);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Trapezoid)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n totalLength: -1\n };\n return _this;\n }\n\n _createClass(Trapezoid, [{\n key: \"componentDidMount\",\n\n /* eslint-disable react/no-did-mount-set-state */\n value: function componentDidMount() {\n if (this.node && this.node.getTotalLength) {\n try {\n var totalLength = this.node.getTotalLength();\n\n if (totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n } catch (err) {// calculate total length error\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n upperWidth = _this$props.upperWidth,\n lowerWidth = _this$props.lowerWidth,\n height = _this$props.height,\n className = _this$props.className;\n var totalLength = this.state.totalLength;\n var _this$props2 = this.props,\n animationEasing = _this$props2.animationEasing,\n animationDuration = _this$props2.animationDuration,\n animationBegin = _this$props2.animationBegin,\n isUpdateAnimationActive = _this$props2.isUpdateAnimationActive;\n\n if (x !== +x || y !== +y || upperWidth !== +upperWidth || lowerWidth !== +lowerWidth || height !== +height || upperWidth === 0 && lowerWidth === 0 || height === 0) {\n return null;\n }\n\n var layerClass = __WEBPACK_IMPORTED_MODULE_2_classnames___default()('recharts-trapezoid', className);\n\n if (!isUpdateAnimationActive) {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"g\", null, __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"path\", _extends({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"b\" /* filterEventAttributes */])(this.props), {\n className: layerClass,\n d: getTrapezoidPath(x, y, upperWidth, lowerWidth, height)\n })));\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3_react_smooth__[\"a\" /* default */], {\n canBegin: totalLength > 0,\n from: {\n upperWidth: 0,\n lowerWidth: 0,\n height: height,\n x: x,\n y: y\n },\n to: {\n upperWidth: upperWidth,\n lowerWidth: lowerWidth,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currUpperWidth = _ref.upperWidth,\n currLowerWidth = _ref.lowerWidth,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3_react_smooth__[\"a\" /* default */], {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n easing: animationEasing\n }, __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"path\", _extends({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(_this2.props), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"b\" /* filterEventAttributes */])(_this2.props), {\n className: layerClass,\n d: getTrapezoidPath(currX, currY, currUpperWidth, currLowerWidth, currHeight),\n ref: function ref(node) {\n _this2.node = node;\n }\n })));\n });\n }\n }]);\n\n return Trapezoid;\n}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]), _class2.displayName = 'Trapezoid', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], __WEBPACK_IMPORTED_MODULE_5__util_ReactUtils__[\"d\" /* EVENT_ATTRIBUTES */], {\n className: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n x: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n upperWidth: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n lowerWidth: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n isUpdateAnimationActive: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n animationBegin: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n animationDuration: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n animationEasing: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear'])\n}), _class2.defaultProps = {\n x: 0,\n y: 0,\n upperWidth: 0,\n lowerWidth: 0,\n height: 0,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Trapezoid);\n\n/***/ }),\n/* 414 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar cof = __webpack_require__(231);\nmodule.exports = function (it, msg) {\n if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n return +it;\n};\n\n\n/***/ }),\n/* 415 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(892);\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/* 416 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(78);\nvar document = __webpack_require__(39).document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n/* 417 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(236);\nvar createDesc = __webpack_require__(423);\nmodule.exports = __webpack_require__(77) ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n/* 418 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(77) && !__webpack_require__(46)(function () {\n return Object.defineProperty(__webpack_require__(416)('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n/* 419 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.3 Number.isInteger(number)\nvar isObject = __webpack_require__(78);\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n\n\n/***/ }),\n/* 420 */\n/***/ (function(module, exports) {\n\n// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n\n\n/***/ }),\n/* 421 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pIE = __webpack_require__(904);\nvar createDesc = __webpack_require__(423);\nvar toIObject = __webpack_require__(239);\nvar toPrimitive = __webpack_require__(240);\nvar has = __webpack_require__(147);\nvar IE8_DOM_DEFINE = __webpack_require__(418);\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = __webpack_require__(77) ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n/* 422 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(147);\nvar toIObject = __webpack_require__(239);\nvar arrayIndexOf = __webpack_require__(893)(false);\nvar IE_PROTO = __webpack_require__(425)('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n/* 423 */\n/***/ (function(module, exports) {\n\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\n\n/***/ }),\n/* 424 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(39);\nvar hide = __webpack_require__(417);\nvar has = __webpack_require__(147);\nvar SRC = __webpack_require__(427)('src');\nvar $toString = __webpack_require__(894);\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(98).inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n/* 425 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(426)('keys');\nvar uid = __webpack_require__(427);\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n/* 426 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(98);\nvar global = __webpack_require__(39);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(898) ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n/* 427 */\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n/* 428 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Convenience main entrypoint if you are running with destructuring support:\n//\n// import {VelocityComponent, VelocityTransitionGroup} from 'velocity-react';\n//\n// You can also require just the component(s) you're using:\n//\n// var VelocityComponent = require('velocity-react/velocity-component');\n//\n// Note that if you want to use UI Pack you will need to require 'velocity' and\n// 'velocity.ui' at a top level in your app:\n//\n// require('velocity');\n// require('velocity-animate/velocity.ui');\n\nmodule.exports = {\n VelocityComponent: __webpack_require__(950),\n VelocityTransitionGroup: __webpack_require__(952),\n velocityHelpers: __webpack_require__(951)\n};\n\n/***/ }),\n/* 429 */\n/***/ (function(module, exports) {\n\nmodule.exports = function() {\r\n\tthrow new Error(\"define cannot be used indirect\");\r\n};\r\n\n\n/***/ }),\n/* 430 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(150)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, ControllerBase_1) {\r\n var FlightController = (function (_super) {\r\n __extends(FlightController, _super);\r\n function FlightController(app) {\r\n return _super.call(this, app) || this;\r\n }\r\n FlightController.prototype.render = function (params) {\r\n _super.prototype.render.call(this, params);\r\n this.processParams(params);\r\n this.app.navigate('/');\r\n };\r\n FlightController.prototype.processParams = function (params) {\r\n for (var feature in params) {\r\n if (params.hasOwnProperty(feature)) {\r\n var turnOn = params[feature] === 'on';\r\n this.app.setFeatureFlighting(feature, turnOn);\r\n }\r\n }\r\n };\r\n return FlightController;\r\n }(ControllerBase_1.ControllerBase));\r\n exports.FlightController = FlightController;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 431 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(150)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, ControllerBase_1) {\r\n var RedirectController = (function (_super) {\r\n __extends(RedirectController, _super);\r\n function RedirectController(app) {\r\n return _super.call(this, app) || this;\r\n }\r\n RedirectController.prototype.render = function (params) {\r\n _super.prototype.render.call(this, params);\r\n var app = params['app'];\r\n if (app) {\r\n var newUrl = \"/ConfigChannel.aspx?app=\" + app;\r\n window.location.assign(newUrl);\r\n }\r\n };\r\n return RedirectController;\r\n }(ControllerBase_1.ControllerBase));\r\n exports.RedirectController = RedirectController;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 432 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(8), __webpack_require__(7), __webpack_require__(48), __webpack_require__(446), __webpack_require__(15), __webpack_require__(105), __webpack_require__(106)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, ClientAppSettings_1, Rest, Url_1, TrackingCookieConsent_1, Intercom_Resources_DevPortal_1, Culture_1, CultureUtility_1) {\r\n var DevPortalAppBase = (function (_super) {\r\n __extends(DevPortalAppBase, _super);\r\n function DevPortalAppBase() {\r\n var _this = _super.call(this, {\r\n appBody: document.getElementById(\"app-body\"),\r\n useHistory: true\r\n }) || this;\r\n _this.trackingCookieConsent = new TrackingCookieConsent_1.TrackingCookieConsent();\r\n _this.scrollHandlers = [];\r\n var queryParams = Url_1.parseQuery(window.location.search.substring(1));\r\n if (queryParams) {\r\n CultureUtility_1.CultureUtility.setLocale(queryParams[\"l\"]);\r\n if (CultureUtility_1.CultureUtility.displayLanguage) {\r\n Culture_1.Culture.Lang = CultureUtility_1.CultureUtility.displayLanguage;\r\n }\r\n if (CultureUtility_1.CultureUtility.cultureCode) {\r\n Culture_1.Culture.CultureCode = CultureUtility_1.CultureUtility.cultureCode;\r\n }\r\n }\r\n Rest.showNetworkIcon = function (show) {\r\n var $loading = $(\".loading-animation\");\r\n if (show) {\r\n $loading.toggleClass(\"loading\", true);\r\n }\r\n else {\r\n $loading.toggleClass(\"loading\", false);\r\n }\r\n };\r\n if (ClientAppSettings_1.clientAppSettings.applicationPath !== \"/\") {\r\n Rest.urlPrefix = ClientAppSettings_1.clientAppSettings.applicationPath;\r\n }\r\n window.onbeforeunload = function () { return _this.onBeforeUnloadHandler(); };\r\n return _this;\r\n }\r\n DevPortalAppBase.prototype.scrolled = function (element) {\r\n this.scrollHandlers.slice().forEach(function (handler) { return handler(element); });\r\n };\r\n DevPortalAppBase.prototype.onscroll = function (handler) {\r\n var _this = this;\r\n var isSubscribed = true;\r\n this.scrollHandlers.push(handler);\r\n var unsubscribe = function () {\r\n if (!isSubscribed) {\r\n return;\r\n }\r\n isSubscribed = false;\r\n var index = _this.scrollHandlers.indexOf(handler);\r\n _this.scrollHandlers.splice(index, 1);\r\n };\r\n return unsubscribe;\r\n };\r\n DevPortalAppBase.prototype.onBeforeUnloadHandler = function () {\r\n var currentController = this.getRouter().getCurrentController();\r\n if ($.isFunction(currentController.hasUnsavedChanges) && currentController.hasUnsavedChanges())\r\n return Intercom_Resources_DevPortal_1.Resources.unsavedChangesWillBeLost;\r\n return undefined;\r\n };\r\n DevPortalAppBase.prototype.isFeatureFlighted = function (feature) {\r\n return ClientAppSettings_1.clientAppSettings.flightedFeatures.indexOf(feature) != -1;\r\n };\r\n DevPortalAppBase.prototype.isUserFeatureFlighted = function (feature) {\r\n return this.isFeatureFlighted(feature);\r\n };\r\n DevPortalAppBase.prototype.setFeatureFlighting = function (feature, turnOn) {\r\n var index = ClientAppSettings_1.clientAppSettings.flightedFeatures.indexOf(feature);\r\n if (turnOn) {\r\n if (index === -1) {\r\n ClientAppSettings_1.clientAppSettings.flightedFeatures.push(feature);\r\n }\r\n }\r\n else {\r\n if (index !== -1) {\r\n ClientAppSettings_1.clientAppSettings.flightedFeatures.splice(index, 1);\r\n }\r\n }\r\n };\r\n DevPortalAppBase.prototype.isSubmitForReviewFlighted = function () {\r\n return this.isFeatureFlighted('SubmitForReview');\r\n };\r\n return DevPortalAppBase;\r\n }(SimpleMvc.App));\r\n exports.DevPortalAppBase = DevPortalAppBase;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 433 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(7), __webpack_require__(0), __webpack_require__(5), __webpack_require__(31), __webpack_require__(468), __webpack_require__(27)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, Rest, React, ReactDOM, ControllerBase_1, AccountSettingsPage_1, MessageBox_1) {\r\n var AccountSettingsController = (function (_super) {\r\n __extends(AccountSettingsController, _super);\r\n function AccountSettingsController() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n AccountSettingsController.prototype.render = function (params) {\r\n _super.prototype.render.call(this, params);\r\n var element = React.createElement(AccountSettingsPage_1.AccountSettingsPage, {\r\n user: this.app.signedInUser,\r\n deleteAccount: _.bind(this.deleteAccount, this)\r\n });\r\n this.component = ReactDOM.render(element, this.pageContent);\r\n };\r\n AccountSettingsController.prototype.deleteAccount = function (user) {\r\n Rest.AccountClient.delete().then(function () {\r\n window.location.href = \"/Identity/SignOut\";\r\n }).fail(function (xhr) {\r\n var errorMessage = \"Account deletion failed. \" + xhr.status + \".\";\r\n MessageBox_1.MessageBox.show(errorMessage);\r\n });\r\n };\r\n return AccountSettingsController;\r\n }(ControllerBase_1.ControllerBase));\r\n exports.AccountSettingsController = AccountSettingsController;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 434 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(31), __webpack_require__(263), __webpack_require__(8), __webpack_require__(34), __webpack_require__(155), __webpack_require__(467), __webpack_require__(151), __webpack_require__(109), __webpack_require__(59), __webpack_require__(58)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, ControllerBase_1, Views, ClientAppSettings_1, BotUtils_1, Environment_1, AbsCodeChoicePanel_1, InputDialogBase_1, openTab_1, azurePortalLinks_1, HeaderKind_1) {\r\n var BotCreateSwitchController = (function (_super) {\r\n __extends(BotCreateSwitchController, _super);\r\n function BotCreateSwitchController(app) {\r\n var _this = _super.call(this, app, HeaderKind_1.HeaderKind.Jumbo) || this;\r\n _this.app = app;\r\n return _this;\r\n }\r\n BotCreateSwitchController.prototype.render = function (params) {\r\n var _this = this;\r\n _super.prototype.render.call(this, params);\r\n var element = React.createElement(Views.BotCreateSwitch, {\r\n showAbsGACreate: ClientAppSettings_1.clientAppSettings.flightedFeatures.indexOf(\"absGACreate\") >= 0,\r\n onCreate: function (botType) { return _this.createBot(botType); },\r\n createFirstBot: params['createFirstBot']\r\n });\r\n this.component = ReactDOM.render(element, this.pageContent);\r\n };\r\n BotCreateSwitchController.prototype.promptAbsCodeChoice = function () {\r\n var showDialog = ClientAppSettings_1.clientAppSettings.flightedFeatures.indexOf('absCode') >= 0;\r\n if (showDialog) {\r\n var dialog = new InputDialogBase_1.InputDialogBase(AbsCodeChoicePanel_1.AbsCodeChoicePanel, {}, { dialogClass: 'status-panel-dialog' });\r\n return dialog.showDialog();\r\n }\r\n else {\r\n return $.Deferred().resolve({ choice: 'register' });\r\n }\r\n };\r\n BotCreateSwitchController.prototype.createAbsCodeBot = function (choice) {\r\n switch (choice) {\r\n case 'register':\r\n this.app.navigate('/bots/new');\r\n break;\r\n case 'host-in-azure':\r\n openTab_1.default(azurePortalLinks_1.getAzurePortalBladeUrl(null, null, azurePortalLinks_1.BladeType.createAbs));\r\n break;\r\n }\r\n };\r\n BotCreateSwitchController.prototype.createBot = function (botType) {\r\n var _this = this;\r\n switch (botType) {\r\n case BotUtils_1.BotTypes.None:\r\n this.promptAbsCodeChoice().then(function (choiceState) {\r\n _this.createAbsCodeBot(choiceState.choice);\r\n });\r\n break;\r\n case BotUtils_1.BotTypes.SDK:\r\n window.open('//aka.ms/bf-createsdkbot', '_blank');\r\n break;\r\n case BotUtils_1.BotTypes.ABSGACreate:\r\n window.open(Environment_1.Environment.azureCreateBotUrl(), \"_blank\");\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n return BotCreateSwitchController;\r\n }(ControllerBase_1.ControllerBase));\r\n exports.BotCreateSwitchController = BotCreateSwitchController;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 435 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(7), __webpack_require__(31), __webpack_require__(60), __webpack_require__(58)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, Rest, ControllerBase_1, index_1, HeaderKind_1) {\r\n var BotOpenComposerController = (function (_super) {\r\n __extends(BotOpenComposerController, _super);\r\n function BotOpenComposerController(app, containerController) {\r\n var _this = _super.call(this, app) || this;\r\n _this.headerKind = HeaderKind_1.HeaderKind.None;\r\n _this.containerController = containerController;\r\n return _this;\r\n }\r\n BotOpenComposerController.prototype.load = function (params) {\r\n _super.prototype.load.call(this, params);\r\n };\r\n BotOpenComposerController.prototype.renderPage = function (botId) {\r\n var _this = this;\r\n var payloadJson = this.params['payload'] || '{}';\r\n var element = React.createElement(index_1.BotOpenComposer, {\r\n downloadUrl: 'https://docs.microsoft.com/composer/install-composer#install-composer-as-a-desktop-application',\r\n payload: JSON.parse(payloadJson)\r\n });\r\n this.component = ReactDOM.render(element, this.pageContent);\r\n Rest.BotManagerClient.getById(botId)\r\n .then(function (botSubscription) {\r\n if (!_this.isLoaded()) {\r\n return;\r\n }\r\n _this.component.setState({ bot: botSubscription.Bot });\r\n });\r\n };\r\n BotOpenComposerController.prototype.render = function (params) {\r\n _super.prototype.render.call(this, params);\r\n this.renderPage(params['id']);\r\n };\r\n return BotOpenComposerController;\r\n }(ControllerBase_1.ControllerBase));\r\n exports.BotOpenComposerController = BotOpenComposerController;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 436 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(27), __webpack_require__(31), __webpack_require__(7), __webpack_require__(267), __webpack_require__(58), __webpack_require__(14), __webpack_require__(443), __webpack_require__(165), __webpack_require__(154), __webpack_require__(34), __webpack_require__(15), __webpack_require__(40), __webpack_require__(8)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, Dialogs, ControllerBase_1, Rest, Views, HeaderKind_1, index_1, ImageUtils, index_2, index_3, BotUtils_1, Intercom_Resources_DevPortal_1, Links_1, ClientAppSettings_1) {\r\n var PAGE_SIZE = 40;\r\n var BotsController = (function (_super) {\r\n __extends(BotsController, _super);\r\n function BotsController(app) {\r\n var _this = _super.call(this, app) || this;\r\n _this.headerKind = HeaderKind_1.HeaderKind.Jumbo;\r\n var migrationBotId = localStorage.getItem(\"migrationBotId\");\r\n if (migrationBotId) {\r\n _this.app.navigate(\"/bots\", { id: migrationBotId });\r\n }\r\n return _this;\r\n }\r\n BotsController.prototype.handleSearch = function (s) {\r\n var search = s.trim();\r\n if (search) {\r\n if (!this.state.loadingMoreBots) {\r\n this.state.bots = [];\r\n this.state.searchString = search;\r\n this.state.continuationToken = null;\r\n }\r\n this.component.setState(this.state);\r\n this.fetchMore();\r\n }\r\n };\r\n Object.defineProperty(BotsController.prototype, \"filterSetting\", {\r\n get: function () {\r\n var param = (this.params['c'] || '').trim();\r\n var channel = param;\r\n if (param.indexOf('_all_') === 0) {\r\n channel = param.substr(5);\r\n }\r\n if (ClientAppSettings_1.clientAppSettings.channels.filter(function (x) { return x.Id === channel; }).length) {\r\n return param;\r\n }\r\n return null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n BotsController.prototype.render = function (params) {\r\n var _this = this;\r\n _super.prototype.render.call(this, params);\r\n this.updateTitle('My bots | ' + index_1.resourceStrings.botFrameworkExtended);\r\n this.state = {\r\n bots: [],\r\n searchString: params['s'],\r\n continuationToken: null\r\n };\r\n this.setSearchState(this.state.searchString, !!this.state.searchString);\r\n var props = {\r\n channelFilter: this.filterSetting,\r\n controller: this,\r\n onNextPage: function () {\r\n if (!_this.state.loadingMoreBots && _this.state.hasMoreBots) {\r\n _this.fetchMore();\r\n }\r\n },\r\n createBot: function () {\r\n _this.app.navigate('/bots/provision');\r\n },\r\n navigateToBot: function (bot) {\r\n if (bot.Kind) {\r\n var link = Links_1.getAzureIbizaBotUrl(bot.SubscriptionId, bot.ResourceGroupName, bot.Id);\r\n var $anchor = $(\"\").appendTo(\"body\");\r\n $anchor[0].click();\r\n $anchor.remove();\r\n }\r\n else {\r\n _this.app.navigate(\"/bots\", { id: bot.Id });\r\n }\r\n },\r\n deleteBot: function (botId) {\r\n var options = {\r\n okButtonLabel: Intercom_Resources_DevPortal_1.Resources.deleteBotDialogDeleteButtonText,\r\n cancelButtonLabel: Intercom_Resources_DevPortal_1.Resources.cancelButtonText,\r\n className: \"danger\"\r\n };\r\n var mb = new Dialogs.MessageBox(options);\r\n mb.header = Intercom_Resources_DevPortal_1.Resources.deleteBotDialogTitleText;\r\n mb.message = Intercom_Resources_DevPortal_1.Resources.deleteBotDialogBodyText;\r\n mb.showDialog().done(function () {\r\n _this.performDelete(botId);\r\n });\r\n }\r\n };\r\n var element = React.createElement(Views.BotsPage, props);\r\n this.component = ReactDOM.render(element, this.pageContent);\r\n this.setActiveJumboActiveLink(index_1.NavLinks.mybots);\r\n this.initArmClient();\r\n this.fetchMore();\r\n };\r\n BotsController.prototype.refreshPage = function () {\r\n window.location.href = \"/bots\";\r\n };\r\n BotsController.prototype.initArmClient = function () {\r\n if (this.azureAccessToken) {\r\n this.armClient = new index_3.ArmClient(this.azureAccessToken);\r\n }\r\n };\r\n BotsController.prototype.performRollback = function (bot) {\r\n var _this = this;\r\n this.statusBar = React.createElement(index_2.BotProgress, { progress: Intercom_Resources_DevPortal_1.Resources.rollbackBotDialogStatusPreparing });\r\n var upgradeAppName = null;\r\n var oldEndpoint = _.find(bot.Endpoints || [], function (x) { return x.Version === BotUtils_1.RollbackEndpointVersionName; }) || { Url: bot.Endpoint };\r\n var oldEndpointUrl = oldEndpoint.Url;\r\n if (!BotUtils_1.BotUtils.isSDKBot(bot)) {\r\n if (!this.armClient) {\r\n this.statusBar = null;\r\n var options = {\r\n hideCancelButton: true,\r\n okButtonLabel: Intercom_Resources_DevPortal_1.Resources.okButtonText,\r\n okButtonClass: \"primary\"\r\n };\r\n var mb = new Dialogs.MessageBox(options);\r\n mb.header = Intercom_Resources_DevPortal_1.Resources.errorMessageErrorOccurred;\r\n mb.message = Intercom_Resources_DevPortal_1.Resources.rollbackBotDialogErrorNoAzureToken;\r\n mb.showDialog();\r\n return;\r\n }\r\n upgradeAppName = bot.ProvisionInfo.SiteName;\r\n var siteNameRegex = /^https:\\/\\/(.*)\\.azurewebsites.net/;\r\n var oldSiteName = void 0;\r\n try {\r\n var matches = siteNameRegex.exec(oldEndpointUrl);\r\n oldSiteName = matches[1];\r\n }\r\n catch (e) {\r\n this.statusBar = null;\r\n var options = {\r\n hideCancelButton: true,\r\n okButtonLabel: Intercom_Resources_DevPortal_1.Resources.okButtonText,\r\n okButtonClass: \"primary\"\r\n };\r\n var mb = new Dialogs.MessageBox(options);\r\n mb.header = Intercom_Resources_DevPortal_1.Resources.errorMessageErrorOccurred;\r\n mb.message = Intercom_Resources_DevPortal_1.Resources.rollbackBotDialogErrorNoEndpoint;\r\n mb.showDialog();\r\n return;\r\n }\r\n bot.ProvisionInfo.SiteName = oldSiteName;\r\n }\r\n bot.Endpoint = oldEndpointUrl;\r\n if (bot.Endpoints) {\r\n bot.Endpoints = bot.Endpoints.filter(function (x) { return x.Version !== BotUtils_1.RollbackEndpointVersionName; });\r\n }\r\n bot.Kind = \"\";\r\n bot.ServicePlan = null;\r\n bot.ProvisioningState = null;\r\n bot.MigratedDate = null;\r\n this.statusBar = React.createElement(index_2.BotProgress, { progress: Intercom_Resources_DevPortal_1.Resources.rollbackBotDialogStatusReverting });\r\n Rest.BotManagerClient.update(bot, false)\r\n .done(function (updatedBot) {\r\n if (upgradeAppName) {\r\n _this.wipeUpgradeEvidence(updatedBot, upgradeAppName);\r\n }\r\n else {\r\n _this.statusBar = null;\r\n _this.showPostRollbackDialog(bot.Id);\r\n }\r\n })\r\n .fail(function (err) {\r\n _this.statusBar = null;\r\n _this.handleHttpResponseError(err);\r\n });\r\n };\r\n BotsController.prototype.wipeUpgradeEvidence = function (bot, appName) {\r\n var _this = this;\r\n var subId = bot.ProvisionInfo.SubscriptionId;\r\n var rgName = bot.ProvisionInfo.ResourceGroupName;\r\n var deploymentId = bot.ProvisionInfo.Deployment.id;\r\n this.statusBar = React.createElement(index_2.BotProgress, { progress: Intercom_Resources_DevPortal_1.Resources.rollbackBotDialogStatusDeletingApp });\r\n this.armClient.deleteWebApp(subId, rgName, appName)\r\n .then(function () {\r\n _this.statusBar = React.createElement(index_2.BotProgress, { progress: Intercom_Resources_DevPortal_1.Resources.rollbackBotDialogStatusDeletingDeployment });\r\n return _this.armClient.deleteDeployment(deploymentId);\r\n })\r\n .done(function () {\r\n _this.statusBar = null;\r\n _this.showPostRollbackDialog(bot.Id);\r\n })\r\n .fail(function (err) {\r\n _this.statusBar = null;\r\n _this.handleHttpResponseError(err);\r\n });\r\n };\r\n BotsController.prototype.showPostRollbackDialog = function (botId) {\r\n var _this = this;\r\n var options = {\r\n okButtonLabel: Intercom_Resources_DevPortal_1.Resources.okButtonText,\r\n className: \"primary\",\r\n hideCancelButton: true\r\n };\r\n var mb = new Dialogs.MessageBox(options);\r\n mb.header = Intercom_Resources_DevPortal_1.Resources.rollbackBotDialogConfirmationTitleText;\r\n mb.message = botId + \" \" + Intercom_Resources_DevPortal_1.Resources.rollbackBotDialogConfirmationBodyText;\r\n mb.showDialog().done(function () { return _this.refreshPage(); });\r\n };\r\n BotsController.prototype.performDelete = function (botId) {\r\n var _this = this;\r\n this.statusBar = React.createElement(index_2.BotProgress, { progress: Intercom_Resources_DevPortal_1.Resources.deleteBotDialogStatusDeleting });\r\n Rest.BotManagerClient.delete(botId).done(function () {\r\n if (_this.isLoaded()) {\r\n _this.statusBar = null;\r\n Dialogs.MessageBox.show(Intercom_Resources_DevPortal_1.Resources.deleteBotDialogStatusDeleted).done(function () {\r\n _this.refreshPage();\r\n });\r\n }\r\n }).fail(function (xhr) {\r\n _this.statusBar = null;\r\n _this.handleHttpResponseError(xhr);\r\n });\r\n };\r\n BotsController.prototype.fetchMore = function () {\r\n if (this.state.searchString) {\r\n this.searchMore();\r\n }\r\n else {\r\n this.listMore();\r\n }\r\n };\r\n BotsController.prototype.searchMore = function () {\r\n var _this = this;\r\n this.state.loadingMoreBots = true;\r\n Rest.BotManagerClient.searchBotsPage(this.state.searchString, PAGE_SIZE, this.state.continuationToken).done(function (botSearchResult) {\r\n _this.state.bots = _this.state.bots.concat(botSearchResult.Items);\r\n _this.state.loadingMoreBots = false;\r\n _this.state.hasMoreBots = botSearchResult.HasMore;\r\n _this.state.continuationToken = botSearchResult.ContinuationToken;\r\n _this.component.setState(_this.state);\r\n _this.initAgentIcons();\r\n if (_this.state.bots.length == 0) {\r\n $('.no-bots-prompt').show();\r\n }\r\n }).fail(function (xhr) { return _this.handleHttpResponseError(xhr); });\r\n };\r\n BotsController.prototype.listMore = function () {\r\n var _this = this;\r\n this.state.loadingMoreBots = true;\r\n Rest.BotManagerClient.getPage(PAGE_SIZE, this.state.continuationToken).done(function (botSearchResult) {\r\n _this.state.bots = _this.state.bots.concat(botSearchResult.Items);\r\n _this.state.loadingMoreBots = false;\r\n _this.state.hasMoreBots = botSearchResult.HasMore;\r\n _this.state.continuationToken = botSearchResult.ContinuationToken;\r\n _this.component.setState(_this.state);\r\n _this.initAgentIcons();\r\n if (_this.state.bots.length === 0) {\r\n _this.app.navigate('/bots/provision', { createFirstBot: 'true' });\r\n }\r\n }).fail(function (xhr) { return _this.handleHttpResponseError(xhr); });\r\n };\r\n BotsController.prototype.initAgentIcons = function () {\r\n var $icons = $(this.pageContent).find(\".agent-icon\");\r\n for (var i = 0; i < $icons.length; i++) {\r\n var $icon = $icons.eq(i);\r\n var iconUrl = $icon.data('icon');\r\n if (iconUrl) {\r\n $icon.empty();\r\n $icon.removeData('icon');\r\n ImageUtils.addImageToContainer($icon, iconUrl, ImageUtils.ImageDisplayMode.Fill);\r\n }\r\n }\r\n };\r\n return BotsController;\r\n }(ControllerBase_1.ControllerBase));\r\n exports.BotsController = BotsController;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 437 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(252), __webpack_require__(453)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, Views, LogoutPage_1) {\r\n var component;\r\n var state = { items: [] };\r\n var siteSignOutSuccess = false;\r\n function redirectOnAllSuccess() {\r\n if (siteSignOutSuccess) {\r\n if (window.location.protocol.indexOf('https:') == 0) {\r\n window.location.href = '/Identity/SignOut';\r\n }\r\n else {\r\n window.location.assign('/');\r\n }\r\n }\r\n }\r\n function getChannels() {\r\n return [];\r\n }\r\n function singleSignOut() {\r\n var status = {\r\n failureCount: 0,\r\n successCount: 0\r\n };\r\n var channels = getChannels();\r\n function onSiteSignOutSuccess() {\r\n siteSignOutSuccess = true;\r\n redirectOnAllSuccess();\r\n }\r\n function markPanelStatus(key, logoutPanelStatus) {\r\n for (var _i = 0, _a = state.items; _i < _a.length; _i++) {\r\n var item = _a[_i];\r\n if (item.key === key) {\r\n item.status = logoutPanelStatus;\r\n component.setState(state);\r\n return;\r\n }\r\n }\r\n }\r\n function onImageLoadSuccess(e) {\r\n var $src = $(e.target);\r\n var tag = $src.attr('data-tag');\r\n markPanelStatus(tag, Views.LogoutPanelStatus.Success);\r\n if (++status.successCount === state.items.length) {\r\n onSiteSignOutSuccess();\r\n }\r\n }\r\n function onImageLoadFailure(e) {\r\n var $src = $(e.target);\r\n var tag = $src.attr('data-tag');\r\n markPanelStatus(tag, Views.LogoutPanelStatus.Failure);\r\n ++status.failureCount;\r\n }\r\n if (channels.length === 0) {\r\n onSiteSignOutSuccess();\r\n }\r\n else {\r\n for (var _i = 0, channels_1 = channels; _i < channels_1.length; _i++) {\r\n var channel = channels_1[_i];\r\n var $img = $(\"\");\r\n $img.bind(\"load\", function (e) { return onImageLoadSuccess(e); });\r\n $img.bind(\"error\", function (e) { return onImageLoadFailure(e); });\r\n $img.attr(\"src\", channel.DeveloperConfigLogoutUrl);\r\n }\r\n }\r\n }\r\n function addChannelsToState() {\r\n var channels = getChannels();\r\n for (var _i = 0, channels_2 = channels; _i < channels_2.length; _i++) {\r\n var channel = channels_2[_i];\r\n state.items.push({\r\n key: 'channel:' + channel.Id,\r\n title: channel.Name + ' Channel',\r\n status: Views.LogoutPanelStatus.InProgress\r\n });\r\n }\r\n }\r\n function signOut($el) {\r\n var element = React.createElement(LogoutPage_1.LogoutPage, {});\r\n component = ReactDOM.render(element, $el[0], function () {\r\n singleSignOut();\r\n });\r\n addChannelsToState();\r\n component.setState(state);\r\n }\r\n exports.signOut = signOut;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 438 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n function lazy() {\r\n return function (target, propertyKey, descriptor) {\r\n var configurable = descriptor.configurable, enumerable = descriptor.enumerable, writable = descriptor.writable;\r\n var innerGet = descriptor.get;\r\n if (typeof innerGet === 'function') {\r\n var getter = function () {\r\n var val = innerGet.apply(this);\r\n Object.defineProperty(this, propertyKey, {\r\n configurable: configurable, enumerable: enumerable, writable: writable, value: val\r\n });\r\n return val;\r\n };\r\n descriptor.get = getter;\r\n }\r\n return descriptor;\r\n };\r\n }\r\n exports.lazy = lazy;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 439 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(101), __webpack_require__(479)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, DialogBase_1, View) {\r\n var TermsOfServiceDialog = (function (_super) {\r\n __extends(TermsOfServiceDialog, _super);\r\n function TermsOfServiceDialog(options) {\r\n var _this = _super.call(this) || this;\r\n _this.options = options;\r\n return _this;\r\n }\r\n TermsOfServiceDialog.prototype.render = function () {\r\n var _this = this;\r\n var element = React.createElement(View.TermsOfServiceDialog, this.options);\r\n ReactDOM.render(element, this.$el[0], function () {\r\n _this.init();\r\n });\r\n };\r\n TermsOfServiceDialog.prototype.init = function () {\r\n _super.prototype.init.call(this);\r\n };\r\n TermsOfServiceDialog.prototype.onEnterKeyPressed = function () {\r\n return false;\r\n };\r\n return TermsOfServiceDialog;\r\n }(DialogBase_1.DialogBase));\r\n exports.TermsOfServiceDialog = TermsOfServiceDialog;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 440 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(107)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, HttpMethods_1) {\r\n var apiHost = 'https://api.github.com';\r\n var GithubApi = (function () {\r\n function GithubApi(token) {\r\n this.token = token;\r\n }\r\n Object.defineProperty(GithubApi.prototype, \"user\", {\r\n get: function () {\r\n return this.request(apiHost + \"/user\", HttpMethods_1.Method.GET);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(GithubApi.prototype, \"authHeader\", {\r\n get: function () {\r\n return \"token \" + this.token;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n GithubApi.prototype.request = function (url, method, data) {\r\n return $.ajax({\r\n url: url,\r\n type: HttpMethods_1.Method[method],\r\n contentType: 'application/json',\r\n data: data ? JSON.stringify(data) : data,\r\n headers: {\r\n 'Authorization': this.authHeader,\r\n 'Accept': 'application/vnd.github.v3+json'\r\n }\r\n });\r\n };\r\n return GithubApi;\r\n }());\r\n exports.GithubApi = GithubApi;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 441 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n var graphApiVersion = '1.6';\r\n var graphApiRoot = 'https://graph.windows.net';\r\n var GraphApi = (function () {\r\n function GraphApi(token) {\r\n this.token = token;\r\n }\r\n GraphApi.prototype.getTenantDetails = function (tenantId) {\r\n return this.get(graphApiRoot + \"/\" + tenantId + \"/tenantDetails?api-version=\" + graphApiVersion)\r\n .then(function (details) {\r\n var td = details.value[0];\r\n var defaultDomains = td.verifiedDomains.filter(function (x) { return x.default; });\r\n if (defaultDomains.length) {\r\n var ti = {\r\n Current: true,\r\n DisplayName: td.displayName,\r\n DomainName: defaultDomains[0].name,\r\n TenantId: tenantId\r\n };\r\n return $.Deferred().resolve(ti);\r\n }\r\n return $.Deferred().reject(\"no default domain found\");\r\n });\r\n };\r\n Object.defineProperty(GraphApi.prototype, \"authHeader\", {\r\n get: function () {\r\n return \"Bearer \" + this.token;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n GraphApi.prototype.get = function (url) {\r\n return $.ajax({\r\n url: url,\r\n type: 'GET',\r\n dataType: 'json',\r\n headers: {\r\n 'Authorization': this.authHeader,\r\n 'Accept': 'application/json,*/*'\r\n }\r\n });\r\n };\r\n return GraphApi;\r\n }());\r\n exports.GraphApi = GraphApi;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 442 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(107)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, HttpMethods_1) {\r\n var vsoApiRoot = 'https://app.vssps.visualstudio.com/_apis';\r\n var VsoApi = (function () {\r\n function VsoApi(token) {\r\n this.token = token;\r\n }\r\n Object.defineProperty(VsoApi.prototype, \"accounts\", {\r\n get: function () {\r\n return this.request(vsoApiRoot + \"/Accounts\", HttpMethods_1.Method.GET);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n VsoApi.prototype.request = function (url, method, data) {\r\n return $.ajax({\r\n url: url,\r\n type: HttpMethods_1.Method[method],\r\n contentType: \"application/json\",\r\n dataType: \"json\",\r\n headers: {\r\n Authorization: \"token \" + this.token\r\n },\r\n data: data ? JSON.stringify(data) : data\r\n });\r\n };\r\n return VsoApi;\r\n }());\r\n exports.VsoApi = VsoApi;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 443 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n var MaxScaleUp = 2;\r\n function findWidestImage(images) {\r\n if (!images || !images.length)\r\n return null;\r\n var widest = images[0];\r\n for (var i = 1; i < images.length; i++) {\r\n if (images[i].width > widest.width)\r\n widest = images[i];\r\n }\r\n return widest;\r\n }\r\n exports.findWidestImage = findWidestImage;\r\n var ImageDisplayMode;\r\n (function (ImageDisplayMode) {\r\n ImageDisplayMode[ImageDisplayMode[\"Fit\"] = 0] = \"Fit\";\r\n ImageDisplayMode[ImageDisplayMode[\"Fill\"] = 1] = \"Fill\";\r\n })(ImageDisplayMode = exports.ImageDisplayMode || (exports.ImageDisplayMode = {}));\r\n function setImageSource($img, imageUrl, mode) {\r\n $img.bind('load', function () {\r\n scaleAndCenterImage($img, mode);\r\n });\r\n $img.attr('src', imageUrl);\r\n }\r\n exports.setImageSource = setImageSource;\r\n function addImageToContainer($container, imageUrl, mode) {\r\n var img = new Image();\r\n var $img = $(img);\r\n $img.attr('draggable', 'false');\r\n $img.bind('load', function () {\r\n $container.append($img);\r\n scaleAndCenterImage($img, mode);\r\n });\r\n img.src = imageUrl;\r\n }\r\n exports.addImageToContainer = addImageToContainer;\r\n function scaleAndCenterImage($img, mode) {\r\n var $container = $img.parent();\r\n var containerWidth = $container.width();\r\n var containerHeight = $container.height();\r\n var img = $img[0];\r\n var scaleX = img.naturalWidth / containerWidth;\r\n var scaleY = img.naturalHeight / containerHeight;\r\n var scale;\r\n switch (mode) {\r\n case ImageDisplayMode.Fit:\r\n scale = Math.max(scaleX, scaleY);\r\n break;\r\n case ImageDisplayMode.Fill:\r\n scale = Math.min(scaleX, scaleY);\r\n break;\r\n }\r\n if (scale < 1 / MaxScaleUp)\r\n scale = 1 / MaxScaleUp;\r\n var w = Math.round(img.naturalWidth / scale);\r\n var h = Math.round(img.naturalHeight / scale);\r\n var x = (containerWidth - w) / 2;\r\n var y = (containerHeight - h) / 2;\r\n $img.css({ width: w, height: h, marginLeft: Math.round(x) + 'px', marginTop: Math.round(y) + 'px' });\r\n }\r\n exports.scaleAndCenterImage = scaleAndCenterImage;\r\n function loadImageFromFile(file, maxImageWidth, callback) {\r\n var reader = new FileReader();\r\n reader.onload = function (ev) {\r\n var imageUrl = ev.target.result;\r\n if (maxImageWidth)\r\n reduceImageSize(imageUrl, maxImageWidth, function (image) { return callback(image); });\r\n else\r\n preloadImages([{ href: imageUrl }], function (images) { return callback(images[0]); });\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n exports.loadImageFromFile = loadImageFromFile;\r\n function reduceImageSize(imageUrl, maxImageWidth, callback) {\r\n var $img = $('');\r\n $img.load(function () {\r\n var img = $img[0];\r\n var canvas = document.createElement(\"canvas\");\r\n canvas.width = Math.min(img.naturalWidth, maxImageWidth);\r\n canvas.height = Math.round(img.naturalHeight * canvas.width / img.naturalWidth);\r\n var ctx = canvas.getContext(\"2d\");\r\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\r\n callback({ href: canvas.toDataURL(\"image/jpeg\", 0.8), width: canvas.width, height: canvas.height });\r\n });\r\n $img.error(function () {\r\n callback(null);\r\n });\r\n $img.attr('src', imageUrl);\r\n }\r\n exports.reduceImageSize = reduceImageSize;\r\n function preloadImages(items, callback) {\r\n var status = {\r\n loadedCount: 0,\r\n completed: false\r\n };\r\n var elements = [];\r\n var timeoutId = null;\r\n function complete() {\r\n if (!status.completed) {\r\n status.completed = true;\r\n if (timeoutId !== null) {\r\n clearTimeout(timeoutId);\r\n timeoutId = null;\r\n }\r\n $.each(elements, function (elementIndex, $element) {\r\n $element.unbind();\r\n });\r\n var filtered_1 = [];\r\n $.each(items, function (itemIndex, item) {\r\n var minImageSize = 32;\r\n if (item.width >= minImageSize && item.height >= minImageSize) {\r\n filtered_1.push(item);\r\n }\r\n });\r\n callback(filtered_1);\r\n }\r\n }\r\n var imageCount = items.length;\r\n if (imageCount === 0) {\r\n complete();\r\n }\r\n else {\r\n timeoutId = setTimeout(function () {\r\n timeoutId = null;\r\n complete();\r\n }, 8000);\r\n for (var i = 0; i < items.length; i++) {\r\n var $img = $(\"\");\r\n elements.push($img);\r\n $img.bind(\"load\", function (e) {\r\n var $src = $(e.target);\r\n var index = $src.attr('data-index') * 1;\r\n items[index].width = (typeof $src[0].naturalWidth === 'number') ? $src[0].naturalWidth : $src[0].width;\r\n items[index].height = (typeof $src[0].naturalHeight === 'number') ? $src[0].naturalHeight : $src[0].height;\r\n if (++status.loadedCount === imageCount) {\r\n complete();\r\n }\r\n });\r\n $img.bind(\"error\", function (e) {\r\n if (++status.loadedCount === imageCount) {\r\n complete();\r\n }\r\n });\r\n $img.attr(\"src\", items[i].href);\r\n }\r\n }\r\n }\r\n exports.preloadImages = preloadImages;\r\n function preloadImage(href, callback) {\r\n var images = [{ href: href }];\r\n preloadImages(images, function (items) {\r\n callback(items.length === 1 ? items[0] : null);\r\n });\r\n }\r\n exports.preloadImage = preloadImage;\r\n function IsImageFile(file) {\r\n return (file.type === \"image/png\" || file.type === \"image/jpeg\" || file.type === \"image/gif\");\r\n }\r\n exports.IsImageFile = IsImageFile;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 444 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(15)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, Intercom_Resources_DevPortal_1) {\r\n function localizeAndList(input) {\r\n if (input.length === 1) {\r\n return input[0];\r\n }\r\n else {\r\n var result = \"\";\r\n for (var i = 0; i < input.length - 2; i++) {\r\n result += Intercom_Resources_DevPortal_1.Resources.listElem.replace(\"{0}\", input[i]);\r\n }\r\n result += Intercom_Resources_DevPortal_1.Resources.andListEnd\r\n .replace(\"{0}\", input[input.length - 2])\r\n .replace(\"{1}\", input[input.length - 1]);\r\n return result;\r\n }\r\n }\r\n exports.localizeAndList = localizeAndList;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 445 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(7)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, RestClient_1) {\r\n exports.OptingOptions = RestClient_1.EmailOptingOptions;\r\n exports.CountryCodeOptInOut = {\r\n \"AF\": exports.OptingOptions.OptOut,\r\n \"AX\": exports.OptingOptions.OptOut,\r\n \"AL\": exports.OptingOptions.OptOut,\r\n \"DZ\": exports.OptingOptions.OptOut,\r\n \"AS\": exports.OptingOptions.OptOut,\r\n \"AD\": exports.OptingOptions.OptOut,\r\n \"AO\": exports.OptingOptions.OptIn,\r\n \"AI\": exports.OptingOptions.OptOut,\r\n \"AQ\": exports.OptingOptions.OptOut,\r\n \"AG\": exports.OptingOptions.OptOut,\r\n \"AR\": exports.OptingOptions.OptIn,\r\n \"AM\": exports.OptingOptions.OptIn,\r\n \"AW\": exports.OptingOptions.OptOut,\r\n \"AC\": exports.OptingOptions.OptOut,\r\n \"AU\": exports.OptingOptions.OptIn,\r\n \"AT\": exports.OptingOptions.DoubleOptIn,\r\n \"AZ\": exports.OptingOptions.OptIn,\r\n \"BS\": exports.OptingOptions.OptOut,\r\n \"BH\": exports.OptingOptions.Notice,\r\n \"BD\": exports.OptingOptions.OptOut,\r\n \"BB\": exports.OptingOptions.OptOut,\r\n \"BY\": exports.OptingOptions.OptOut,\r\n \"BE\": exports.OptingOptions.OptIn,\r\n \"BZ\": exports.OptingOptions.OptOut,\r\n \"BJ\": exports.OptingOptions.OptIn,\r\n \"BM\": exports.OptingOptions.OptOut,\r\n \"BT\": exports.OptingOptions.OptOut,\r\n \"BO\": exports.OptingOptions.Notice,\r\n \"BA\": exports.OptingOptions.OptOut,\r\n \"BW\": exports.OptingOptions.Notice,\r\n \"BV\": exports.OptingOptions.OptOut,\r\n \"BR\": exports.OptingOptions.Notice,\r\n \"IO\": exports.OptingOptions.OptOut,\r\n \"VG\": exports.OptingOptions.OptOut,\r\n \"BN\": exports.OptingOptions.OptOut,\r\n \"BG\": exports.OptingOptions.OptIn,\r\n \"BF\": exports.OptingOptions.OptIn,\r\n \"BI\": exports.OptingOptions.Notice,\r\n \"KH\": exports.OptingOptions.OptOut,\r\n \"CM\": exports.OptingOptions.Notice,\r\n \"CA\": exports.OptingOptions.OptIn,\r\n \"CV\": exports.OptingOptions.OptIn,\r\n \"KY\": exports.OptingOptions.OptOut,\r\n \"CF\": exports.OptingOptions.Notice,\r\n \"TD\": exports.OptingOptions.Notice,\r\n \"CL\": exports.OptingOptions.OptOut,\r\n \"CN\": exports.OptingOptions.OptOut,\r\n \"CX\": exports.OptingOptions.OptOut,\r\n \"CC\": exports.OptingOptions.OptOut,\r\n \"CO\": exports.OptingOptions.OptIn,\r\n \"KM\": exports.OptingOptions.OptOut,\r\n \"CG\": exports.OptingOptions.OptOut,\r\n \"CD\": exports.OptingOptions.OptOut,\r\n \"CK\": exports.OptingOptions.OptOut,\r\n \"CR\": exports.OptingOptions.OptIn,\r\n \"CI\": exports.OptingOptions.OptOut,\r\n \"HR\": exports.OptingOptions.OptOut,\r\n \"CU\": exports.OptingOptions.OptOut,\r\n \"CY\": exports.OptingOptions.OptOut,\r\n \"CZ\": exports.OptingOptions.OptOut,\r\n \"CS\": exports.OptingOptions.OptOut,\r\n \"DK\": exports.OptingOptions.OptIn,\r\n \"DJ\": exports.OptingOptions.OptOut,\r\n \"DM\": exports.OptingOptions.OptOut,\r\n \"DO\": exports.OptingOptions.Notice,\r\n \"TP\": exports.OptingOptions.OptOut,\r\n \"EC\": exports.OptingOptions.Notice,\r\n \"EG\": exports.OptingOptions.OptOut,\r\n \"SV\": exports.OptingOptions.Notice,\r\n \"GQ\": exports.OptingOptions.Notice,\r\n \"ER\": exports.OptingOptions.Notice,\r\n \"EE\": exports.OptingOptions.OptIn,\r\n \"ET\": exports.OptingOptions.OptOut,\r\n \"FK\": exports.OptingOptions.OptOut,\r\n \"FO\": exports.OptingOptions.OptOut,\r\n \"FJ\": exports.OptingOptions.OptOut,\r\n \"FI\": exports.OptingOptions.OptOut,\r\n \"FR\": exports.OptingOptions.OptOut,\r\n \"FX\": exports.OptingOptions.OptOut,\r\n \"GF\": exports.OptingOptions.OptOut,\r\n \"PF\": exports.OptingOptions.OptOut,\r\n \"TF\": exports.OptingOptions.OptOut,\r\n \"GA\": exports.OptingOptions.Notice,\r\n \"GM\": exports.OptingOptions.Notice,\r\n \"GE\": exports.OptingOptions.OptIn,\r\n \"DE\": exports.OptingOptions.DoubleOptIn,\r\n \"GH\": exports.OptingOptions.OptIn,\r\n \"GI\": exports.OptingOptions.OptOut,\r\n \"GB\": exports.OptingOptions.OptOut,\r\n \"GR\": exports.OptingOptions.DoubleOptIn,\r\n \"GL\": exports.OptingOptions.OptOut,\r\n \"GD\": exports.OptingOptions.OptOut,\r\n \"GP\": exports.OptingOptions.OptOut,\r\n \"GU\": exports.OptingOptions.OptOut,\r\n \"GT\": exports.OptingOptions.OptOut,\r\n \"GW\": exports.OptingOptions.Notice,\r\n \"GN\": exports.OptingOptions.OptOut,\r\n \"GY\": exports.OptingOptions.OptOut,\r\n \"HT\": exports.OptingOptions.OptOut,\r\n \"HM\": exports.OptingOptions.OptOut,\r\n \"HN\": exports.OptingOptions.Notice,\r\n \"HK\": exports.OptingOptions.OptIn,\r\n \"HU\": exports.OptingOptions.OptIn,\r\n \"IS\": exports.OptingOptions.OptOut,\r\n \"IN\": exports.OptingOptions.Notice,\r\n \"ID\": exports.OptingOptions.OptOut,\r\n \"IR\": exports.OptingOptions.OptOut,\r\n \"IQ\": exports.OptingOptions.OptOut,\r\n \"IE\": exports.OptingOptions.OptOut,\r\n \"IM\": exports.OptingOptions.OptOut,\r\n \"IL\": exports.OptingOptions.OptIn,\r\n \"IT\": exports.OptingOptions.OptIn,\r\n \"JM\": exports.OptingOptions.Notice,\r\n \"JP\": exports.OptingOptions.DoubleOptIn,\r\n \"JE\": exports.OptingOptions.OptOut,\r\n \"JO\": exports.OptingOptions.OptOut,\r\n \"KZ\": exports.OptingOptions.OptOut,\r\n \"KE\": exports.OptingOptions.Notice,\r\n \"KI\": exports.OptingOptions.OptOut,\r\n \"KR\": exports.OptingOptions.OptIn,\r\n \"KP\": exports.OptingOptions.OptOut,\r\n \"KW\": exports.OptingOptions.OptIn,\r\n \"KG\": exports.OptingOptions.OptOut,\r\n \"LA\": exports.OptingOptions.OptOut,\r\n \"LV\": exports.OptingOptions.OptOut,\r\n \"LB\": exports.OptingOptions.OptOut,\r\n \"LS\": exports.OptingOptions.Notice,\r\n \"LR\": exports.OptingOptions.OptOut,\r\n \"LY\": exports.OptingOptions.Notice,\r\n \"LI\": exports.OptingOptions.OptOut,\r\n \"LT\": exports.OptingOptions.OptOut,\r\n \"LU\": exports.OptingOptions.OptIn,\r\n \"MO\": exports.OptingOptions.Notice,\r\n \"MK\": exports.OptingOptions.OptOut,\r\n \"MG\": exports.OptingOptions.OptIn,\r\n \"MW\": exports.OptingOptions.Notice,\r\n \"MY\": exports.OptingOptions.OptIn,\r\n \"MV\": exports.OptingOptions.OptOut,\r\n \"ML\": exports.OptingOptions.Notice,\r\n \"MT\": exports.OptingOptions.OptOut,\r\n \"MH\": exports.OptingOptions.OptOut,\r\n \"MQ\": exports.OptingOptions.OptOut,\r\n \"MR\": exports.OptingOptions.Notice,\r\n \"MU\": exports.OptingOptions.OptIn,\r\n \"YT\": exports.OptingOptions.OptOut,\r\n \"MX\": exports.OptingOptions.OptOut,\r\n \"FM\": exports.OptingOptions.OptOut,\r\n \"MD\": exports.OptingOptions.OptOut,\r\n \"MC\": exports.OptingOptions.OptOut,\r\n \"ME\": exports.OptingOptions.OptOut,\r\n \"MS\": exports.OptingOptions.OptOut,\r\n \"MA\": exports.OptingOptions.OptIn,\r\n \"MZ\": exports.OptingOptions.OptIn,\r\n \"MM\": exports.OptingOptions.OptOut,\r\n \"NA\": exports.OptingOptions.OptOut,\r\n \"NR\": exports.OptingOptions.OptOut,\r\n \"NP\": exports.OptingOptions.OptOut,\r\n \"NL\": exports.OptingOptions.OptOut,\r\n \"AN\": exports.OptingOptions.OptOut,\r\n \"NT\": exports.OptingOptions.OptOut,\r\n \"NC\": exports.OptingOptions.OptOut,\r\n \"NZ\": exports.OptingOptions.OptIn,\r\n \"NI\": exports.OptingOptions.OptOut,\r\n \"NE\": exports.OptingOptions.Notice,\r\n \"NG\": exports.OptingOptions.OptOut,\r\n \"NU\": exports.OptingOptions.OptOut,\r\n \"NF\": exports.OptingOptions.OptOut,\r\n \"MP\": exports.OptingOptions.OptOut,\r\n \"NO\": exports.OptingOptions.OptIn,\r\n \"OM\": exports.OptingOptions.Notice,\r\n \"PK\": exports.OptingOptions.OptIn,\r\n \"PW\": exports.OptingOptions.OptOut,\r\n \"PS\": exports.OptingOptions.OptOut,\r\n \"PA\": exports.OptingOptions.OptOut,\r\n \"PG\": exports.OptingOptions.OptOut,\r\n \"PY\": exports.OptingOptions.Notice,\r\n \"PE\": exports.OptingOptions.OptIn,\r\n \"PH\": exports.OptingOptions.OptIn,\r\n \"PN\": exports.OptingOptions.OptOut,\r\n \"PL\": exports.OptingOptions.OptIn,\r\n \"PT\": exports.OptingOptions.OptOut,\r\n \"PR\": exports.OptingOptions.OptOut,\r\n \"QA\": exports.OptingOptions.Notice,\r\n \"RE\": exports.OptingOptions.OptOut,\r\n \"RO\": exports.OptingOptions.OptOut,\r\n \"RU\": exports.OptingOptions.DoubleOptIn,\r\n \"RW\": exports.OptingOptions.Notice,\r\n \"GS\": exports.OptingOptions.OptOut,\r\n \"KN\": exports.OptingOptions.OptOut,\r\n \"LC\": exports.OptingOptions.OptOut,\r\n \"VC\": exports.OptingOptions.OptOut,\r\n \"WS\": exports.OptingOptions.OptOut,\r\n \"SM\": exports.OptingOptions.OptOut,\r\n \"ST\": exports.OptingOptions.OptIn,\r\n \"SA\": exports.OptingOptions.Notice,\r\n \"SN\": exports.OptingOptions.OptOut,\r\n \"RS\": exports.OptingOptions.OptIn,\r\n \"SC\": exports.OptingOptions.Notice,\r\n \"SL\": exports.OptingOptions.OptOut,\r\n \"SG\": exports.OptingOptions.OptIn,\r\n \"SK\": exports.OptingOptions.OptIn,\r\n \"SI\": exports.OptingOptions.OptIn,\r\n \"SB\": exports.OptingOptions.OptOut,\r\n \"SO\": exports.OptingOptions.OptOut,\r\n \"ZA\": exports.OptingOptions.OptOut,\r\n \"ES\": exports.OptingOptions.OptOut,\r\n \"LK\": exports.OptingOptions.OptOut,\r\n \"SH\": exports.OptingOptions.OptOut,\r\n \"PM\": exports.OptingOptions.OptOut,\r\n \"SD\": exports.OptingOptions.Notice,\r\n \"SR\": exports.OptingOptions.OptOut,\r\n \"SJ\": exports.OptingOptions.OptOut,\r\n \"SZ\": exports.OptingOptions.OptOut,\r\n \"SE\": exports.OptingOptions.OptOut,\r\n \"CH\": exports.OptingOptions.OptOut,\r\n \"SY\": exports.OptingOptions.Notice,\r\n \"TW\": exports.OptingOptions.OptIn,\r\n \"TJ\": exports.OptingOptions.OptOut,\r\n \"TZ\": exports.OptingOptions.Notice,\r\n \"TH\": exports.OptingOptions.OptOut,\r\n \"TG\": exports.OptingOptions.Notice,\r\n \"TK\": exports.OptingOptions.OptOut,\r\n \"TO\": exports.OptingOptions.OptOut,\r\n \"TT\": exports.OptingOptions.Notice,\r\n \"TN\": exports.OptingOptions.OptIn,\r\n \"TR\": exports.OptingOptions.OptIn,\r\n \"TM\": exports.OptingOptions.Notice,\r\n \"TC\": exports.OptingOptions.OptOut,\r\n \"TV\": exports.OptingOptions.OptOut,\r\n \"UM\": exports.OptingOptions.OptOut,\r\n \"SU\": exports.OptingOptions.OptOut,\r\n \"UG\": exports.OptingOptions.Notice,\r\n \"UA\": exports.OptingOptions.OptIn,\r\n \"AE\": exports.OptingOptions.OptIn,\r\n \"UK\": exports.OptingOptions.OptIn,\r\n \"US\": exports.OptingOptions.Notice,\r\n \"UY\": exports.OptingOptions.OptIn,\r\n \"UZ\": exports.OptingOptions.OptOut,\r\n \"VU\": exports.OptingOptions.OptOut,\r\n \"VA\": exports.OptingOptions.OptOut,\r\n \"VE\": exports.OptingOptions.OptIn,\r\n \"VN\": exports.OptingOptions.OptIn,\r\n \"VI\": exports.OptingOptions.OptOut,\r\n \"WF\": exports.OptingOptions.OptOut,\r\n \"EH\": exports.OptingOptions.OptOut,\r\n \"YE\": exports.OptingOptions.Notice,\r\n \"YU\": exports.OptingOptions.OptOut,\r\n \"ZR\": exports.OptingOptions.OptOut,\r\n \"ZM\": exports.OptingOptions.Notice,\r\n \"ZW\": exports.OptingOptions.Notice\r\n };\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 446 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(166)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, Cookies_1) {\r\n var cookieInformed = 'cookie-inform';\r\n var TrackingCookieConsent = (function () {\r\n function TrackingCookieConsent() {\r\n }\r\n TrackingCookieConsent.prototype.informed = function () {\r\n return !!Cookies_1.readCookie(cookieInformed);\r\n };\r\n TrackingCookieConsent.prototype.markAsInformed = function () {\r\n var nextYear = new Date();\r\n nextYear.setFullYear(nextYear.getFullYear() + 1);\r\n Cookies_1.setCookie({ name: cookieInformed, value: 'true', path: '/', expires: nextYear, secure: true, sameSite: 'none' });\r\n };\r\n TrackingCookieConsent.prototype.loadPageTrackingIfInformed = function () {\r\n if (!this.informed() || this._pageTrackingLoaded) {\r\n return;\r\n }\r\n this._pageTrackingLoaded = true;\r\n this.trackClientJSBundle();\r\n this.trackPageViewViaAppInsights();\r\n };\r\n TrackingCookieConsent.prototype.trackClientJSBundle = function () {\r\n var clientJSBundleElement = document.getElementById('clientJsBundle');\r\n var appInsights = getAppInsights();\r\n if (clientJSBundleElement && appInsights) {\r\n appInsights.trackEvent('ClientJsBundle', { src: clientJSBundleElement.getAttribute('src') });\r\n }\r\n };\r\n TrackingCookieConsent.prototype.trackPageViewViaAppInsights = function () {\r\n var appInsights = getAppInsights();\r\n if (appInsights) {\r\n appInsights.trackPageView();\r\n }\r\n };\r\n return TrackingCookieConsent;\r\n }());\r\n exports.TrackingCookieConsent = TrackingCookieConsent;\r\n function getAppInsights() {\r\n return window['appInsights'];\r\n }\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 447 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(7), __webpack_require__(8), __webpack_require__(17), __webpack_require__(275), __webpack_require__(279), __webpack_require__(80)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, Rest, ClientAppSettings_1, Strings_1, NameReflector_1, clacky_1, BlockRowInputLabel_1) {\r\n var BotMsaEditor = (function (_super) {\r\n __extends(BotMsaEditor, _super);\r\n function BotMsaEditor(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {\r\n uniqueId: 'MsaEditor' + new Date().valueOf()\r\n };\r\n return _this;\r\n }\r\n BotMsaEditor.prototype.checkForAppID = function (requestingId) {\r\n var _this = this;\r\n var msaAppId = this.props.bot.MsaAppId;\r\n if (document.getElementById(requestingId) && !msaAppId) {\r\n localStorage.setItem('temp', '0');\r\n localStorage.removeItem('temp');\r\n var createId = localStorage.getItem('createId');\r\n if (createId) {\r\n localStorage.removeItem('createId');\r\n window.refreshBotMsaApp(createId);\r\n }\r\n else {\r\n setTimeout(function () { _this.checkForAppID(requestingId); }, 500);\r\n }\r\n }\r\n };\r\n BotMsaEditor.prototype.openMSAPage = function () {\r\n var _this = this;\r\n if (this.props.inCreateMode) {\r\n clacky_1.log('/bots/create#openMSAPage', 'openMSAPage');\r\n }\r\n localStorage.removeItem('createId');\r\n setTimeout(function () { _this.checkForAppID(_this.state.uniqueId); }, 3000);\r\n window.open(this.msaUrl());\r\n };\r\n BotMsaEditor.prototype.msaLink = function () {\r\n var _this = this;\r\n var msaAppId = this.props.bot.MsaAppId;\r\n var classNames = ['m-button-primary-outline-md', 'button-focus'];\r\n if (!msaAppId) {\r\n classNames.push('get-agent-appId');\r\n }\r\n return (React.createElement(\"button\", { className: classNames.join(' '), onClick: function () { return _this.openMSAPage(); } },\r\n msaAppId ? 'Manage' : 'Create',\r\n \" \",\r\n Strings_1.resourceStrings.appId,\r\n \" and password\"));\r\n };\r\n BotMsaEditor.prototype.msaUrl = function () {\r\n var bot = this.props.bot;\r\n var msaAppId = bot.MsaAppId;\r\n if (msaAppId) {\r\n return ClientAppSettings_1.clientAppSettings.msaPortalEndpoint + 'ApplicationMenuBlade/Overview/appId/' + msaAppId + '/isMSAApp/';\r\n }\r\n else {\r\n return ClientAppSettings_1.clientAppSettings.msaPortalEndpoint + 'ApplicationsListBlade';\r\n }\r\n };\r\n BotMsaEditor.prototype.render = function () {\r\n var _this = this;\r\n var appIdElement;\r\n var x = {};\r\n var errorClass = \" input-in-error\";\r\n var msaAppId = this.props.bot.MsaAppId;\r\n if (this.props.inCreateMode) {\r\n var lowercaseAppId = (msaAppId || '').toLowerCase();\r\n var appIdError = this.props.errors[NameReflector_1.default(function () { return (x.MsaAppId = null, x); })];\r\n appIdElement = [\r\n React.createElement(\"input\", { disabled: false, key: \"input_3\", type: \"text\", maxLength: 64, id: \"input-MsaAppId\", className: appIdError ? errorClass : '', placeholder: Strings_1.resourceStrings.appId + \" from the Microsoft App registration portal\", value: lowercaseAppId, onChange: function (ev) { return _this.props.handleChange('MsaAppId', ev); } })\r\n ];\r\n if (appIdError) {\r\n appIdElement.push(React.createElement(\"div\", { key: \"error_3\", className: \"error-info\" }, appIdError));\r\n }\r\n }\r\n else {\r\n appIdElement = [\r\n React.createElement(\"input\", { key: \"hidden_3\", type: \"hidden\", id: \"input-MsaAppId\", value: msaAppId }),\r\n React.createElement(\"div\", { key: \"readonly_3\", className: \"readonly-value\" }, msaAppId)\r\n ];\r\n }\r\n var msaDocsLink = !this.props.bot.MsaAppId ? (React.createElement(\"p\", null,\r\n React.createElement(\"a\", { href: \"https://aka.ms/azure/bots/createappid\", target: \"_blank\" }, Strings_1.resourceStrings.msaLearnMore))) : null;\r\n var readonlyClass = !this.props.inCreateMode ? \"readonly-value\" : \"\";\r\n var showMsiResourceId = this.props.isAppTypeFlighted && this.props.bot.MsaAppType == Rest.BotAppType.UserAssignedMSI;\r\n var msiResourceIdSection = showMsiResourceId ? (React.createElement(\"div\", { className: \"detail-row\" },\r\n React.createElement(BlockRowInputLabel_1.BlockRowInputLabel, { text: \"MSI Resource ID\", for: \"input-MsaAppMSIResourceId\", required: true }),\r\n React.createElement(\"input\", { disabled: !this.props.inCreateMode, value: this.props.bot.MsaAppMSIResourceId, type: \"text\", id: \"input-MsaAppMSIResourceId\", className: readonlyClass, onChange: function (ev) { return _this.props.handleChange('MsaAppMSIResourceId', ev); } }))) : null;\r\n var showTenantId = this.props.isAppTypeFlighted && (this.props.bot.MsaAppType == Rest.BotAppType.SingleTenant || this.props.bot.MsaAppType == Rest.BotAppType.UserAssignedMSI);\r\n var tenantIdSection = showTenantId ? (React.createElement(\"div\", { className: \"detail-row\" },\r\n React.createElement(BlockRowInputLabel_1.BlockRowInputLabel, { text: \"App Tenant ID\", for: \"input-MsaAppTenantId\", required: true }),\r\n React.createElement(\"input\", { disabled: !this.props.inCreateMode, value: this.props.bot.MsaAppTenantId, type: \"text\", id: \"input-MsaAppTenantId\", className: readonlyClass, onChange: function (ev) { return _this.props.handleChange('MsaAppTenantId', ev); } }))) : null;\r\n return (React.createElement(\"div\", null,\r\n this.props.isAppTypeFlighted ?\r\n React.createElement(\"div\", { className: \"detail-row\" },\r\n React.createElement(BlockRowInputLabel_1.BlockRowInputLabel, { text: 'App type:', for: \"input-MsaAppType\" }),\r\n React.createElement(\"div\", null,\r\n React.createElement(\"select\", { disabled: !this.props.inCreateMode, id: \"input-MsaAppType\", onChange: function (ev) { return _this.props.handleChange(\"MsaAppType\", ev); }, value: this.props.bot.MsaAppType || Rest.BotAppType.MultiTenant },\r\n React.createElement(\"option\", { value: Rest.BotAppType.MultiTenant }, \"Multi Tenant\"),\r\n React.createElement(\"option\", { value: Rest.BotAppType.UserAssignedMSI }, \"User-Assigned Managed Identity\"),\r\n React.createElement(\"option\", { value: Rest.BotAppType.SingleTenant }, \"Single Tenant\"))))\r\n : null,\r\n React.createElement(\"div\", { id: this.state.uniqueId, className: \"bot-msa-editor detail-row\" },\r\n React.createElement(\"div\", { key: \"detail_3\", className: \"detail-row\" },\r\n React.createElement(\"label\", null, Strings_1.resourceStrings.msaLabelRegister),\r\n this.msaLink(),\r\n msaDocsLink),\r\n React.createElement(\"div\", { key: \"detail_4\", className: \"detail-row\" },\r\n React.createElement(BlockRowInputLabel_1.BlockRowInputLabel, { text: Strings_1.resourceStrings.msaLabelPasteAppId, required: true, for: \"input-MsaAppId\" }),\r\n appIdElement)),\r\n tenantIdSection,\r\n msiResourceIdSection));\r\n };\r\n return BotMsaEditor;\r\n }(React.Component));\r\n exports.BotMsaEditor = BotMsaEditor;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 448 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(17)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, Strings_1) {\r\n var ChannelEnabledPanel = (function (_super) {\r\n __extends(ChannelEnabledPanel, _super);\r\n function ChannelEnabledPanel(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {};\r\n return _this;\r\n }\r\n ChannelEnabledPanel.prototype.render = function () {\r\n var icon = this.props.showErrorIcon ? React.createElement(\"span\", { className: (\"icon-font status-icon\") }, '\\uE7BA') : null;\r\n return (React.createElement(\"div\", { className: \"bot-status-panel\" },\r\n React.createElement(\"div\", { className: \"dialog-close-button\" }),\r\n React.createElement(\"h2\", null, this.props.channelName),\r\n React.createElement(\"p\", null,\r\n icon,\r\n React.createElement(\"div\", { className: 'status-text ' + (this.props.showErrorIcon ? 'has-icon' : '') }, this.props.message)),\r\n React.createElement(\"div\", { className: \"button-panel\" },\r\n React.createElement(\"button\", { type: \"submit\", className: \"ok-button default-button\" }, Strings_1.resourceStrings.buttonOk))));\r\n };\r\n return ChannelEnabledPanel;\r\n }(React.Component));\r\n exports.ChannelEnabledPanel = ChannelEnabledPanel;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 449 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(7), __webpack_require__(15), __webpack_require__(105)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, Rest, Intercom_Resources_DevPortal_1, Culture_1) {\r\n var ChannelLogPanel = (function (_super) {\r\n __extends(ChannelLogPanel, _super);\r\n function ChannelLogPanel(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n ChannelLogPanel.prototype.onClearAllClick = function () {\r\n var _this = this;\r\n Rest.BotManagerClient.deleteBotLogs(this.props.botId, this.props.channelId).done(function (obj) {\r\n _this.props.channelLogChangeHandler();\r\n _this.props.dialog.closeDialog();\r\n });\r\n };\r\n ChannelLogPanel.prototype.render = function () {\r\n var _this = this;\r\n var entries = this.props.channelLog.map(function (entry) {\r\n return React.createElement(\"tr\", null,\r\n React.createElement(\"td\", { className: \"channellog-td-time\" }, new Date(entry.When.toString()).toLocaleString(Culture_1.Culture.CultureCode)),\r\n React.createElement(\"td\", { className: \"channellog-td-message\" }, entry.Message),\r\n React.createElement(\"td\", { className: \"channellog-td-correlationid\" }, entry.CorrelationId));\r\n });\r\n var title = this.props.channelName;\r\n var message = Intercom_Resources_DevPortal_1.Resources.channelIssuesPanelSubtitle;\r\n return (React.createElement(\"div\", { className: \"channellog-panel\" },\r\n React.createElement(\"div\", { className: \"dialog-close-button\" }),\r\n React.createElement(\"div\", { className: \"channellog-title\" }, title),\r\n React.createElement(\"div\", { className: \"channellog-message\" }, message),\r\n React.createElement(\"div\", { className: \"channellog-clearall-button\" },\r\n React.createElement(\"button\", { className: \"default-button\", onClick: function () { return _this.onClearAllClick(); } }, Intercom_Resources_DevPortal_1.Resources.channelIssuesPanelClearall)),\r\n React.createElement(\"table\", { className: \"channellog-header-table\" },\r\n React.createElement(\"thead\", null,\r\n React.createElement(\"tr\", null,\r\n React.createElement(\"th\", { className: \"channellog-td-time\" }, Intercom_Resources_DevPortal_1.Resources.channelIssuesPanelTimeColumnLabel),\r\n React.createElement(\"th\", { className: \"channellog-td-message\" }, Intercom_Resources_DevPortal_1.Resources.channelIssuesPanelMessageColumnLabel),\r\n React.createElement(\"th\", { className: \"channellog-td-correlationid\" }, Intercom_Resources_DevPortal_1.Resources.channelIssuesPanelCorrelationIdColumnLabel)))),\r\n React.createElement(\"table\", { className: \"channellog-table\" },\r\n React.createElement(\"tbody\", null, entries))));\r\n };\r\n return ChannelLogPanel;\r\n }(React.Component));\r\n exports.ChannelLogPanel = ChannelLogPanel;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 450 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(17), __webpack_require__(62), __webpack_require__(451), __webpack_require__(254)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, Strings_1, ProgressRingControl_1, EmailSubscriptionConsentFormFields_1, UserAgreementConsentFormFields_1) {\r\n var EmailSubscriptionConsentForm = (function (_super) {\r\n __extends(EmailSubscriptionConsentForm, _super);\r\n function EmailSubscriptionConsentForm(props, context) {\r\n var _this = _super.call(this, props, context) || this;\r\n _this.onAgreementChanged = function (enabled) {\r\n var mutatedState = _.extend({}, _this.state);\r\n if (mutatedState) {\r\n mutatedState.saveButtonEnabled = enabled;\r\n }\r\n _this.setState(mutatedState);\r\n };\r\n _this.onCancelClicked = function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (_this.props.onCancel) {\r\n _this.props.onCancel(_.extend({}, _this.props.subscriptionInfo));\r\n }\r\n };\r\n _this.onSubmitClicked = function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (!_this.state.saveButtonEnabled) {\r\n return;\r\n }\r\n if (_this.props.subscriptionInfo && !_this.props.subscriptionInfo.CountryCode) {\r\n $('#country-select').addClass('must-check');\r\n return;\r\n }\r\n if (_this.props.onSave) {\r\n _this.props.onSave(_.extend({}, _this.props.subscriptionInfo));\r\n }\r\n };\r\n if (_this.props.askUserAgreement) {\r\n _this.state = {\r\n saveButtonEnabled: false,\r\n enabled: false\r\n };\r\n }\r\n else {\r\n _this.state = {\r\n saveButtonEnabled: true,\r\n enabled: false\r\n };\r\n }\r\n return _this;\r\n }\r\n EmailSubscriptionConsentForm.prototype.renderBusy = function () {\r\n return React.createElement(\"div\", { className: \"email-consent-form\" },\r\n React.createElement(ProgressRingControl_1.ProgressRingControl, null));\r\n };\r\n EmailSubscriptionConsentForm.prototype.renderHeaderPrefixes = function () {\r\n if (this.props.subscriptionInfo) {\r\n return [\r\n React.createElement(\"h1\", { className: \"form-heading\", key: \"form-header\" }, Strings_1.resourceStrings.subscriptionConsentDialog.title),\r\n React.createElement(\"p\", { className: \"form-description\", key: \"form-description\" }, Strings_1.resourceStrings.subscriptionConsentDialog.description)\r\n ];\r\n }\r\n return [\r\n React.createElement(\"h1\", { className: \"form-heading\", key: \"form-header\" }, Strings_1.resourceStrings.subscriptionConsentDialog.agreementHeading),\r\n React.createElement(\"p\", { className: \"form-description\", key: \"form-description\" }, Strings_1.resourceStrings.subscriptionConsentDialog.agreementDescription)\r\n ];\r\n };\r\n EmailSubscriptionConsentForm.prototype.renderEmailSubscriptionFields = function () {\r\n if (this.props.subscriptionInfo) {\r\n return React.createElement(EmailSubscriptionConsentFormFields_1.EmailSubscriptionConsentFormFields, { subscriptionInfo: this.props.subscriptionInfo });\r\n }\r\n return null;\r\n };\r\n EmailSubscriptionConsentForm.prototype.renderUserAgreementFields = function () {\r\n if (this.props.askUserAgreement) {\r\n return React.createElement(UserAgreementConsentFormFields_1.UserAgreementConsentFormFields, { onAgreeToTermsChanged: this.onAgreementChanged });\r\n }\r\n return null;\r\n };\r\n EmailSubscriptionConsentForm.prototype.render = function () {\r\n if (this.state.enabled) {\r\n return this.renderBusy();\r\n }\r\n return React.createElement(\"form\", { key: \"email-consent-form\", className: this.props.subscriptionInfo ? \"email-consent-form\" : \"user-agreement-consent-form\", onSubmit: this.onSubmitClicked },\r\n this.renderHeaderPrefixes(),\r\n this.renderEmailSubscriptionFields(),\r\n this.renderUserAgreementFields(),\r\n React.createElement(\"div\", { className: \"form-buttons\" },\r\n React.createElement(\"button\", { onClick: this.onCancelClicked }, Strings_1.resourceStrings.subscriptionConsentDialog.cancelButtonLabel),\r\n React.createElement(\"span\", { className: \"spacer\" }, \"\\u00A0\"),\r\n React.createElement(\"button\", { className: \"save-button\", disabled: !this.state.saveButtonEnabled, onClick: this.onSubmitClicked }, Strings_1.resourceStrings.subscriptionConsentDialog.saveButtonLabel)));\r\n };\r\n return EmailSubscriptionConsentForm;\r\n }(React.Component));\r\n exports.EmailSubscriptionConsentForm = EmailSubscriptionConsentForm;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 451 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(17), __webpack_require__(445)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, Strings_1, PromotionEmailUtils_1) {\r\n var DISABLED_COUNTRY_CODES = { 'RU': true };\r\n var EmailSubscriptionConsentFormFields = (function (_super) {\r\n __extends(EmailSubscriptionConsentFormFields, _super);\r\n function EmailSubscriptionConsentFormFields(props, context) {\r\n var _this = _super.call(this, props, context) || this;\r\n _this.triggerSubscriptionStateChanged = function () {\r\n if (_this.props.onSubscriptionChanged) {\r\n _this.props.onSubscriptionChanged(_this.props.subscriptionInfo);\r\n }\r\n };\r\n _this.onCountryChanged = function (e) {\r\n var countryCode = $(e.target).val();\r\n var subscription = _this.props.subscriptionInfo;\r\n subscription.CountryCode = countryCode;\r\n if (PromotionEmailUtils_1.CountryCodeOptInOut[countryCode]) {\r\n var enabled = PromotionEmailUtils_1.CountryCodeOptInOut[countryCode] == PromotionEmailUtils_1.OptingOptions.OptOut ||\r\n PromotionEmailUtils_1.CountryCodeOptInOut[countryCode] == PromotionEmailUtils_1.OptingOptions.Notice;\r\n subscription.IsEnabled = enabled;\r\n subscription.SubscriptionType = PromotionEmailUtils_1.CountryCodeOptInOut[countryCode];\r\n }\r\n else {\r\n subscription.IsEnabled = false;\r\n subscription.SubscriptionType = null;\r\n }\r\n _this.forceUpdate(_this.triggerSubscriptionStateChanged);\r\n };\r\n _this.onAllowPromotionalEmail = function (e) {\r\n var t = e.target;\r\n var subscription = _this.props.subscriptionInfo;\r\n subscription.IsEnabled = t.checked;\r\n _this.forceUpdate(_this.triggerSubscriptionStateChanged);\r\n };\r\n _this.state = _this.prepareState(props);\r\n return _this;\r\n }\r\n EmailSubscriptionConsentFormFields.prototype.prepareState = function (props) {\r\n var state = {\r\n showCountryDropdown: true,\r\n termsAgreed: false\r\n };\r\n if (props && props.subscriptionInfo && props.subscriptionInfo.CountryCode) {\r\n state.showCountryDropdown = false;\r\n }\r\n return state;\r\n };\r\n EmailSubscriptionConsentFormFields.prototype.renderCountryOptions = function () {\r\n return _.chain(MsMarkets.markets)\r\n .pairs()\r\n .filter(function (tuple) {\r\n var countryCode = tuple[0];\r\n return DISABLED_COUNTRY_CODES[countryCode] !== true;\r\n })\r\n .map(function (p) {\r\n var label = p[1];\r\n var value = p[0];\r\n return React.createElement(\"option\", { key: value, value: value }, label);\r\n })\r\n .value();\r\n };\r\n EmailSubscriptionConsentFormFields.prototype.renderCountryDropdown = function (selectedCountry) {\r\n if (!this.state.showCountryDropdown) {\r\n return null;\r\n }\r\n var defaultOption = React.createElement(\"option\", { value: \"\" });\r\n if (selectedCountry) {\r\n defaultOption = null;\r\n }\r\n return React.createElement(\"div\", { className: \"country-selection\" },\r\n React.createElement(\"div\", { className: \"country-label\" }, Strings_1.resourceStrings.subscriptionConsentDialog.selectCountryLabel),\r\n React.createElement(\"select\", { id: \"country-select\", key: \"country-select\", className: \"country-select\", defaultValue: selectedCountry, onChange: this.onCountryChanged },\r\n defaultOption,\r\n this.renderCountryOptions()));\r\n };\r\n EmailSubscriptionConsentFormFields.prototype.getPromotionLabelContent = function (countryCode) {\r\n var html = Strings_1.resourceStrings.subscriptionConsentDialog.allowPromotionalEmailLabelHtml;\r\n var countrySpecificMap = Strings_1.resourceStrings.subscriptionConsentDialog.countrySpecificPromotionalEmailLablesHtml;\r\n if (countrySpecificMap[countryCode]) {\r\n html = countrySpecificMap[countryCode];\r\n }\r\n return {\r\n __html: html\r\n };\r\n };\r\n EmailSubscriptionConsentFormFields.prototype.render = function () {\r\n var subInfo = this.props.subscriptionInfo;\r\n var countryCode = subInfo.CountryCode && subInfo.CountryCode.toUpperCase();\r\n return React.createElement(\"div\", { className: \"email-consent-fields\" },\r\n this.renderCountryDropdown(countryCode),\r\n React.createElement(\"div\", { className: \"checkbox-row\" },\r\n React.createElement(\"div\", { className: \"checkbox-container\" },\r\n React.createElement(\"input\", { type: \"checkbox\", key: \"allowPromotionalEmail\", id: \"allowPromotionalEmail\", ref: \"allowPromotionalEmail\", value: \"allow\", checked: this.props.subscriptionInfo.IsEnabled, onChange: this.onAllowPromotionalEmail })),\r\n React.createElement(\"div\", { className: \"label-container\" },\r\n React.createElement(\"label\", { htmlFor: \"allowPromotionalEmail\", dangerouslySetInnerHTML: this.getPromotionLabelContent(countryCode) }))));\r\n };\r\n return EmailSubscriptionConsentFormFields;\r\n }(React.Component));\r\n exports.EmailSubscriptionConsentFormFields = EmailSubscriptionConsentFormFields;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 452 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React) {\r\n var LogStream = (function (_super) {\r\n __extends(LogStream, _super);\r\n function LogStream(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {\r\n logs: ''\r\n };\r\n return _this;\r\n }\r\n LogStream.prototype.componentDidUpdate = function (prevProps, prevState) {\r\n var $logstream = $(this.pre);\r\n var scrollHeight = $logstream[0].scrollHeight;\r\n if (_.isNumber(scrollHeight) && scrollHeight > $logstream.height() + $logstream.scrollTop()) {\r\n $('.log-stream').scrollTop($logstream[0].scrollHeight - $logstream.height());\r\n }\r\n };\r\n LogStream.prototype.render = function () {\r\n var _this = this;\r\n return (React.createElement(\"pre\", { className: \"log-stream\", ref: function (x) { return _this.pre = x; } }, this.props.logs));\r\n };\r\n return LogStream;\r\n }(React.Component));\r\n exports.LogStream = LogStream;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 453 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(252)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, LogoutPanel_1) {\r\n var LogoutPage = (function (_super) {\r\n __extends(LogoutPage, _super);\r\n function LogoutPage(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {\r\n items: []\r\n };\r\n return _this;\r\n }\r\n LogoutPage.prototype.render = function () {\r\n var haveFailures = false;\r\n var panels = [];\r\n for (var _i = 0, _a = this.state.items; _i < _a.length; _i++) {\r\n var item = _a[_i];\r\n if (item.status === LogoutPanel_1.LogoutPanelStatus.Failure) {\r\n haveFailures = true;\r\n }\r\n panels.push(React.createElement(LogoutPanel_1.LogoutPanel, { key: item.key, title: item.title, status: item.status }));\r\n }\r\n return (React.createElement(\"div\", { className: \"\" },\r\n React.createElement(\"h1\", null, \"Sign-out in progress...\"),\r\n React.createElement(\"p\", null, \"Please wait while we sign you out of the following applications: \"),\r\n panels,\r\n haveFailures ? React.createElement(\"p\", { className: \"sign-out-failed\" }, \"Could not sign you out of one or more applications.\") : null));\r\n };\r\n return LogoutPage;\r\n }(React.Component));\r\n exports.LogoutPage = LogoutPage;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 454 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(167), __webpack_require__(281), __webpack_require__(167), __webpack_require__(251), __webpack_require__(496), __webpack_require__(494), __webpack_require__(168), __webpack_require__(17), __webpack_require__(8), __webpack_require__(40), __webpack_require__(19), __webpack_require__(247), __webpack_require__(150)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, JumboHeadControl_1, SearchControl_1, JumboHeadControl_2, DropdownMenu_1, HeaderControl_1, FooterControl_1, ProgressBarControl_1, Strings_1, ClientAppSettings_1, Links_1, InFrame_1, EmailSubscriptionConsent_1, ControllerBase_1) {\r\n var MasterPage = (function (_super) {\r\n __extends(MasterPage, _super);\r\n function MasterPage(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {\r\n signInState: null,\r\n signedInUser: null,\r\n signInInProgress: false,\r\n signInError: null,\r\n activeLink: JumboHeadControl_1.NavLinks.root\r\n };\r\n _this.emailSubscriptionConsent = new EmailSubscriptionConsent_1.EmailSubscriptionConsentConductor();\r\n return _this;\r\n }\r\n MasterPage.prototype.render = function () {\r\n if (this.state.unsupportedBrowser) {\r\n return this.renderUnsupportedBrowser();\r\n }\r\n else if (this.state.signInState) {\r\n return this.renderWaitListScreen();\r\n }\r\n else if (this.props.signInRequired && !this.state.signedInUser) {\r\n return this.renderSignInScreen();\r\n }\r\n else {\r\n return this.renderRegularScreen();\r\n }\r\n };\r\n MasterPage.prototype.componentWillUpdate = function (nextProps, state) {\r\n var jumbo = this.refs['jumbo'];\r\n if (jumbo) {\r\n jumbo.setState({ activeLink: state.activeLink });\r\n }\r\n var search = this.refs['searchBox'];\r\n if (search) {\r\n search.setState({ searchString: state.searchString });\r\n }\r\n };\r\n MasterPage.prototype.componentDidUpdate = function (prevProps, prevState) {\r\n if (this.state.signedInUser) {\r\n this.emailSubscriptionConsent.showIfRequired();\r\n }\r\n };\r\n MasterPage.prototype.toggleSearch = function () {\r\n var opened = _.isUndefined(this.state.expandSearch) ? true : !this.state.expandSearch;\r\n this.setState(_.extend(this.state, { expandSearch: opened }));\r\n };\r\n MasterPage.prototype.userFlightedDocuemntationLink = function () {\r\n var features = ClientAppSettings_1.clientAppSettings.flightedFeatures;\r\n if (_.indexOf(features, \"v3\") >= 0) {\r\n return '//aka.ms/bf-docs-nav';\r\n }\r\n else {\r\n return ClientAppSettings_1.clientAppSettings.documentationUrl;\r\n }\r\n };\r\n MasterPage.prototype.getSignInUrl = function () {\r\n var paramValue = encodeURIComponent(Links_1.relativeUrl(window.location));\r\n return \"/identity/signin?requestUrl=\" + paramValue;\r\n };\r\n MasterPage.prototype.checkAzureSingleSignOn = function () {\r\n var host = null;\r\n try {\r\n host = this.singleSignOnChecker.contentWindow.location.hostname;\r\n }\r\n catch (error) {\r\n host = null;\r\n }\r\n if (host) {\r\n var curHost = window.location.hostname;\r\n if (host === curHost) {\r\n this.props.refreshSignedInUser();\r\n }\r\n }\r\n };\r\n MasterPage.prototype.renderHiddenFrameToCheckAzureSingleSignOn = function () {\r\n return null;\r\n };\r\n MasterPage.prototype.renderHeader = function (showLinks) {\r\n var _this = this;\r\n if (showLinks === void 0) { showLinks = true; }\r\n if (InFrame_1.default()) {\r\n return null;\r\n }\r\n var navLinks = [];\r\n var userInfo = null;\r\n var searchControl = null;\r\n if (showLinks) {\r\n navLinks = [\r\n '/bots',\r\n '/bots/new',\r\n this.userFlightedDocuemntationLink(),\r\n ClientAppSettings_1.clientAppSettings.homeUrl,\r\n 'http://blog.botframework.com'\r\n ];\r\n if (this.state.signedInUser) {\r\n userInfo = (React.createElement(\"span\", null,\r\n React.createElement(\"div\", { className: \"signed-in-user\" }, this.state.signedInUser.FirstName || this.state.signedInUser.EmailAddress)));\r\n }\r\n else {\r\n userInfo = (React.createElement(\"div\", { className: \"header-login\" },\r\n React.createElement(\"a\", { \"data-test-id\": \"sign-in\", className: \"header-sign-in-button\", onClick: function (evt) {\r\n if (!ControllerBase_1.isBrowserSupported()) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n _this.setState({ unsupportedBrowser: true });\r\n }\r\n }, href: this.getSignInUrl() }, \"Sign in\"),\r\n this.renderHiddenFrameToCheckAzureSingleSignOn()));\r\n }\r\n searchControl = this.props.isAdmin() || this.props.isReviewer() ? (React.createElement(SearchControl_1.SearchControl, { ref: \"searchBox\", onSearch: this.props.onSearch, value: null, expandSearch: this.state.expandSearch, promptText: ClientAppSettings_1.clientAppSettings.searchPrompt, toggleSearchOpen: _.debounce(_.bind(this.toggleSearch, this), 100, true) })) : null;\r\n }\r\n var userMenu = null;\r\n if (this.state.signedInUser) {\r\n userMenu = (React.createElement(DropdownMenu_1.DropdownMenu, { ref: \"userMenu\", classNames: \"user-menu\" },\r\n React.createElement(DropdownMenu_1.DropdownMenuItem, { notSelectable: true },\r\n React.createElement(\"div\", { className: \"user-menu-user\" },\r\n React.createElement(\"div\", { className: \"user-menu-user-name\" },\r\n this.state.signedInUser.FirstName,\r\n \" \",\r\n this.state.signedInUser.LastName),\r\n React.createElement(\"div\", { className: \"user-menu-user-email\" }, this.state.signedInUser.EmailAddress))),\r\n React.createElement(DropdownMenu_1.DropdownMenuItem, { onSelected: function () { return _this.props.onSignOutClicked(); } }, \"Sign out\")));\r\n }\r\n return (React.createElement(\"div\", null,\r\n userMenu,\r\n React.createElement(HeaderControl_1.HeaderControl, { environment: ClientAppSettings_1.clientAppSettings.environment },\r\n React.createElement(\"div\", { className: \"rhs\" }, userInfo)),\r\n React.createElement(JumboHeadControl_2.JumboHeadControl, { ref: \"jumbo\", rootUrl: ClientAppSettings_1.clientAppSettings.homeUrl || '/', defaultLink: JumboHeadControl_1.NavLinks.root, navLinks: navLinks, isRoutable: this.props.isRoutableUrl }, searchControl)));\r\n };\r\n MasterPage.prototype.renderRegularScreen = function () {\r\n var footer = InFrame_1.default() ? null : (React.createElement(FooterControl_1.FooterControl, null,\r\n React.createElement(\"li\", null,\r\n React.createElement(\"a\", { href: \"//aka.ms/bf-terms\" }, \"Terms of use\")),\r\n React.createElement(\"li\", null,\r\n React.createElement(\"a\", { href: \"//aka.ms/bf-conduct\" }, \"Code of conduct\"))));\r\n return (React.createElement(\"div\", { className: \"fullWidth\" },\r\n this.renderHeader(),\r\n React.createElement(\"section\", { className: \"action-sheet\" }),\r\n React.createElement(\"main\", { className: \"outline\" },\r\n React.createElement(\"div\", { className: \"page-content\" }),\r\n React.createElement(ProgressBarControl_1.ProgressBarControl, null)),\r\n footer));\r\n };\r\n MasterPage.prototype.renderUnsupportedBrowser = function () {\r\n return (React.createElement(\"div\", { className: \"sign-in-screen\" },\r\n this.renderHeader(),\r\n React.createElement(\"div\", { className: \"sign-in-contents\" },\r\n React.createElement(\"div\", { className: \"sign-in-title\" }, InFrame_1.default() ?\r\n \"The Azure Bot Service doesn't support your browser yet.\" :\r\n \"Bot Framework doesn't support your browser yet.\"))));\r\n };\r\n MasterPage.prototype.renderWaitListScreen = function () {\r\n return null;\r\n };\r\n MasterPage.prototype.renderSignInScreen = function () {\r\n var bottomPanel;\r\n var errorMessagePanel;\r\n if (InFrame_1.default()) {\r\n return null;\r\n }\r\n if (this.state.signInInProgress) {\r\n bottomPanel = (React.createElement(\"div\", null,\r\n React.createElement(\"div\", { className: \"sign-in-progress-text\" }, \"Signing in...\"),\r\n React.createElement(\"div\", { className: \"sign-in-progress-animation\" })));\r\n }\r\n else {\r\n bottomPanel = (React.createElement(\"div\", { className: \"button-panel\" },\r\n React.createElement(\"a\", { href: this.getSignInUrl() },\r\n React.createElement(\"button\", { type: \"button\", className: \"sign-in default-button\" }, \"Sign in\")),\r\n this.renderHiddenFrameToCheckAzureSingleSignOn()));\r\n }\r\n if (this.state.signInError) {\r\n errorMessagePanel = React.createElement(\"div\", { className: \"sign-in-error\" }, this.state.signInError);\r\n }\r\n return (React.createElement(\"div\", { className: \"sign-in-screen\" },\r\n this.renderHeader(false),\r\n React.createElement(\"div\", { className: \"sign-in-contents\" },\r\n React.createElement(\"div\", { className: \"sign-in-title\" }, \"Sign in\"),\r\n React.createElement(\"div\", { className: \"sign-in-details\" },\r\n React.createElement(\"div\", null,\r\n \"Welcome to \",\r\n Strings_1.resourceStrings.botFramework,\r\n \" developer portal.\"),\r\n React.createElement(\"div\", null, \"To continue sign in with your work or school, or personal Microsoft account.\")),\r\n bottomPanel,\r\n errorMessagePanel)));\r\n };\r\n return MasterPage;\r\n }(React.Component));\r\n exports.MasterPage = MasterPage;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 455 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(79)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, ReactUtils_1) {\r\n var MessageBoxPanel = (function (_super) {\r\n __extends(MessageBoxPanel, _super);\r\n function MessageBoxPanel(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.focusToggle = _this.focusToggle.bind(_this);\r\n return _this;\r\n }\r\n MessageBoxPanel.prototype.focusToggle = function () {\r\n if (this._currentFocusedElement == null) {\r\n this._currentFocusedElement = this._okBtn;\r\n }\r\n if (!this.props.hideCancelButton && this._currentFocusedElement == this._okBtn) {\r\n this._currentFocusedElement = this._cancelBtn;\r\n }\r\n else {\r\n this._currentFocusedElement = this._okBtn;\r\n }\r\n var _focusElt = ReactDOM.findDOMNode(this._currentFocusedElement);\r\n _focusElt && _focusElt.focus();\r\n };\r\n MessageBoxPanel.prototype.render = function () {\r\n var _this = this;\r\n var okClass = this.props.okButtonClass || \"default-button\";\r\n var cancelButton = this.props.hideCancelButton ?\r\n null : React.createElement(\"button\", { type: \"button\", ref: function (btn) { return _this._cancelBtn = btn; }, className: ReactUtils_1.combineClassNames(\"cancel-button\", \"m-button-secondary-md\") }, this.props.cancelButtonLabel);\r\n return (React.createElement(\"div\", { className: \"message-box \" + (this.props.className || '') },\r\n React.createElement(\"div\", { className: \"focus-trap\", \"aria-hidden\": \"true\", onFocus: this.focusToggle, tabIndex: 0 }),\r\n this.props.header ? React.createElement(\"h2\", null, this.props.header) : null,\r\n React.createElement(\"div\", { className: \"message-box-message\" }, this.props.message),\r\n React.createElement(\"div\", { className: \"button-panel\" },\r\n cancelButton,\r\n React.createElement(\"button\", { type: \"submit\", onFocus: function () { return _this._currentFocusedElement = _this._okBtn; }, className: ReactUtils_1.combineClassNames(\"ok-button\", okClass), ref: function (btn) { return _this._okBtn = btn; } }, this.props.okButtonLabel)),\r\n React.createElement(\"div\", { className: \"focus-trap\", \"aria-hidden\": \"true\", onFocus: this.focusToggle, tabIndex: 0 })));\r\n };\r\n return MessageBoxPanel;\r\n }(React.Component));\r\n exports.MessageBoxPanel = MessageBoxPanel;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 456 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(62)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ProgressRingControl_1) {\r\n var ProgressPanel = (function (_super) {\r\n __extends(ProgressPanel, _super);\r\n function ProgressPanel(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n ProgressPanel.prototype.render = function () {\r\n return (React.createElement(\"div\", { className: \"progress-panel\" },\r\n React.createElement(ProgressRingControl_1.ProgressRingControl, null),\r\n React.createElement(\"div\", { className: \"progress-message\", \"aria-live\": \"polite\" }, this.props.message)));\r\n };\r\n return ProgressPanel;\r\n }(React.Component));\r\n exports.ProgressPanel = ProgressPanel;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 457 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React) {\r\n var SecretControl = (function (_super) {\r\n __extends(SecretControl, _super);\r\n function SecretControl(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {\r\n shown: false\r\n };\r\n return _this;\r\n }\r\n SecretControl.prototype.onToggleClick = function (event) {\r\n this.setState({ shown: !this.state.shown });\r\n };\r\n SecretControl.prototype.render = function () {\r\n var _this = this;\r\n var regenStyle = {\r\n display: this.state.shown ? 'inline' : 'none'\r\n };\r\n var showStyle = {\r\n display: this.state.shown ? 'none' : 'inline'\r\n };\r\n return (React.createElement(\"div\", { className: \"secret-control\" },\r\n React.createElement(\"input\", { type: this.state.shown ? 'text' : 'password', value: this.props.secret, spellCheck: false }),\r\n React.createElement(\"a\", { onClick: function (event) { return _this.onToggleClick(event); }, style: showStyle }, \"Show\"),\r\n React.createElement(\"ul\", { className: \"ul-vert-bar\", style: regenStyle },\r\n React.createElement(\"li\", null,\r\n React.createElement(\"a\", { onClick: function (event) { return _this.onToggleClick(event); } }, this.state.shown ? 'Hide' : 'Show')),\r\n React.createElement(\"li\", null,\r\n React.createElement(\"a\", { href: \"javascript:void(0)\", className: 'regenerate-link ' + this.props.keyType }, \"Regenerate\")))));\r\n };\r\n return SecretControl;\r\n }(React.Component));\r\n exports.SecretControl = SecretControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 458 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(80)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, BlockRowInputLabel_1) {\r\n var BlockRowInputField = (function (_super) {\r\n __extends(BlockRowInputField, _super);\r\n function BlockRowInputField() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n BlockRowInputField.ElementId = function (elementId) {\r\n return \"input-\" + elementId;\r\n };\r\n BlockRowInputField.prototype.renderReadonlyTextInput = function () {\r\n return (React.createElement(\"div\", { className: \"readonly-input\" },\r\n React.createElement(\"input\", { key: \"textinput_hidden\", type: \"hidden\", readOnly: true, id: BlockRowInputField.ElementId(this.props.id), value: this.props.value }),\r\n React.createElement(\"div\", { key: \"textinput_value\", className: \"readonly-value\" },\r\n this.props.value || '(empty)',\r\n \" \\u00A0 \")));\r\n };\r\n BlockRowInputField.prototype.renderTextInput = function () {\r\n var _this = this;\r\n if (this.props.skipInputs) {\r\n return null;\r\n }\r\n if (this.props.readonly) {\r\n return this.renderReadonlyTextInput();\r\n }\r\n return (React.createElement(\"input\", { id: BlockRowInputField.ElementId(this.props.id), onChange: function (ev) { return _this.props.onValueChanged(ev, _this.props.eventMetaData); }, className: this.props.error ? this.props.errorContainerClassName : '', placeholder: this.props.placeholder, value: this.props.value, type: this.props.password ? \"password\" : \"text\" }));\r\n };\r\n BlockRowInputField.prototype.renderError = function () {\r\n if (!this.props.error) {\r\n return null;\r\n }\r\n return (React.createElement(\"div\", { key: \"textinput_error\", className: \"error-info\" }, this.props.error));\r\n };\r\n BlockRowInputField.prototype.render = function () {\r\n return (React.createElement(\"div\", { className: (this.props.containerClassName || '') + ' block-row-input' },\r\n React.createElement(BlockRowInputLabel_1.BlockRowInputLabel, { for: BlockRowInputField.ElementId(this.props.id), text: this.props.label, tip: this.props.tip, tipAsHtml: this.props.tipAsHtml, required: this.props.required, onTooltipVisibilityChanged: this.props.onTooltipVisibilityChanged }),\r\n this.renderTextInput(),\r\n this.renderError(),\r\n this.props.children));\r\n };\r\n return BlockRowInputField;\r\n }(React.Component));\r\n exports.BlockRowInputField = BlockRowInputField;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 459 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(388)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, react_treebeard_1) {\r\n var codeTreeTyle = $.extend(true, react_treebeard_1.theme, {\r\n base: {\r\n backgroundColor: '#F2F2F2',\r\n color: '#222'\r\n },\r\n tree: {\r\n base: {\r\n backgroundColor: '#F2F2F2',\r\n color: '#222'\r\n },\r\n node: {\r\n toggle: {},\r\n activeLink: {\r\n background: '#D6D6D6'\r\n }\r\n }\r\n }\r\n });\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = codeTreeTyle;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 460 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(57), __webpack_require__(7), __webpack_require__(60), __webpack_require__(31), __webpack_require__(153), __webpack_require__(152), __webpack_require__(48), __webpack_require__(276), __webpack_require__(61)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, $, Rest, index_1, ControllerBase_1, KuduApi_1, ArmApi_1, Url_1, Path_1, logger_1) {\r\n var relativePathRegex = /^https:\\/\\/[^\\/]+\\/api\\/vfs\\/site\\/wwwroot\\/(.*)$/g;\r\n var BotCodeEditorController = (function (_super) {\r\n __extends(BotCodeEditorController, _super);\r\n function BotCodeEditorController(app, container) {\r\n var _this = _super.call(this, app) || this;\r\n _this.containerController = container;\r\n return _this;\r\n }\r\n BotCodeEditorController.prototype.setComponent = function (editor) {\r\n this.component = editor;\r\n if (this.component && this.botId && this.botId != this.botCodeFetched) {\r\n this.fetchCode();\r\n }\r\n else if (this.component && this.state) {\r\n this.component.setState(this.state);\r\n }\r\n };\r\n BotCodeEditorController.prototype.render = function (params) {\r\n _super.prototype.render.call(this, params);\r\n this.botId = params[\"id\"];\r\n this.renderPage();\r\n };\r\n BotCodeEditorController.prototype.unload = function () {\r\n _super.prototype.unload.call(this);\r\n if (this.poller) {\r\n this.poller.stop();\r\n this.poller = null;\r\n }\r\n };\r\n BotCodeEditorController.prototype.relativeCodePath = function (url) {\r\n var matches = relativePathRegex.exec(url);\r\n if (matches) {\r\n var result = matches[1];\r\n relativePathRegex.lastIndex = 0;\r\n return result;\r\n }\r\n else {\r\n return \"\";\r\n }\r\n };\r\n Object.defineProperty(BotCodeEditorController.prototype, \"armClient\", {\r\n get: function () {\r\n if (!this._armClient) {\r\n this._armClient = new ArmApi_1.ArmClient(this.azureAccessToken);\r\n }\r\n return this._armClient;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n BotCodeEditorController.prototype.checkSubscription = function () {\r\n var deferred = $.Deferred();\r\n this.armClient.getSubscription(this.subscriptionId).then(function (sub) {\r\n deferred.resolve(sub && sub.state == \"Enabled\");\r\n }).fail(function (xhr) {\r\n if (xhr && xhr.status == 404) {\r\n deferred.resolve(false);\r\n }\r\n else {\r\n deferred.reject(xhr);\r\n }\r\n });\r\n return deferred;\r\n };\r\n BotCodeEditorController.prototype.toggleTreeNode = function (node, toggle) {\r\n var _this = this;\r\n var deferred = $.Deferred();\r\n if (!node) {\r\n deferred.reject();\r\n return deferred;\r\n }\r\n node.toggled = toggle;\r\n var isFolder = node.id.slice(-1) === '/';\r\n if (this.state.activeNode) {\r\n var prevCursorPos = this.component.getCursorPosition();\r\n this.state.activeNode['cursorPos'] = prevCursorPos;\r\n }\r\n if (isFolder) {\r\n if (node.toggled) {\r\n node.loading = true;\r\n this.KuduClient.get(node.id === '/' ? this.KuduClient.scmUri.format() + \"/api/vfs/site/wwwroot/\" : node.id)\r\n .done(function (files) {\r\n node.loading = false;\r\n node.children = index_1.mapFilesToTreeNodes(files);\r\n _this.component.setState(_this.state);\r\n deferred.resolve(node);\r\n });\r\n }\r\n else {\r\n node.children = [];\r\n deferred.resolve(node);\r\n }\r\n }\r\n else {\r\n var okToSwitch_1 = $.Deferred();\r\n if (this.state.activeFile && this.state.activeCodeDirty) {\r\n var curNode_1 = this.state.activeFile;\r\n this.updateFile(curNode_1.id, this.state.activeCode).then(function () {\r\n _this.state.activeCodeDirty = false;\r\n if (curNode_1 && curNode_1.newFile) {\r\n curNode_1.newFile = undefined;\r\n }\r\n okToSwitch_1.resolve(true);\r\n }).fail(function () {\r\n okToSwitch_1.resolve(false);\r\n });\r\n }\r\n else {\r\n okToSwitch_1.resolve(true);\r\n }\r\n okToSwitch_1.then(function (f) {\r\n if (f) {\r\n _this.state.activeFile = node;\r\n if (!node.newFile) {\r\n node.loading = true;\r\n _this.KuduClient.get(node.id)\r\n .done(function (txt) {\r\n node.loading = false;\r\n _this.state.activeCode = txt;\r\n _this.component.setState(_this.state, function () {\r\n _this.component.resetUndoStack();\r\n });\r\n });\r\n }\r\n else {\r\n _this.state.activeCode = \"\";\r\n _this.component.setState(_this.state);\r\n }\r\n deferred.resolve(node);\r\n }\r\n else {\r\n deferred.reject();\r\n }\r\n });\r\n }\r\n if (this.state.activeNode) {\r\n this.state.activeNode.active = false;\r\n }\r\n node.active = true;\r\n this.state.activeNode = node;\r\n this.component.setState(this.state);\r\n return deferred;\r\n };\r\n BotCodeEditorController.prototype.updateFile = function (url, content) {\r\n var _this = this;\r\n var deferred = $.Deferred();\r\n this.KuduClient.put(url, content)\r\n .then(function () {\r\n deferred.resolve(true);\r\n })\r\n .fail(function (xhr) {\r\n deferred.reject(false);\r\n _this.handleHttpResponseError(xhr);\r\n });\r\n return deferred;\r\n };\r\n BotCodeEditorController.prototype.saveFile = function (url, content) {\r\n var _this = this;\r\n this.updateFile(url, content).done(function () {\r\n _this.state.activeCode = content;\r\n _this.state.activeCodeDirty = false;\r\n var node = _this.findNodeById(url);\r\n if (node && node.newFile) {\r\n node.newFile = undefined;\r\n }\r\n _this.component.setState(_this.state);\r\n }).fail(function (xhr) { return _this.handleHttpResponseError(xhr); });\r\n };\r\n BotCodeEditorController.prototype.appendLogStream = function (t) {\r\n if (t) {\r\n var oldLength = this.state.logStream.length;\r\n var newLength = oldLength + t.length;\r\n var MaxLength = 500000;\r\n var startIndex = 0;\r\n if (newLength > MaxLength) {\r\n startIndex = newLength - MaxLength;\r\n }\r\n this.state.logStream = this.state.logStream.substr(startIndex) + t;\r\n if (this.component) {\r\n this.component.setState(this.state);\r\n }\r\n }\r\n };\r\n BotCodeEditorController.prototype.onLogStreamStopped = function () {\r\n var _this = this;\r\n logger_1.default.debug('log stream stopped, reconnect');\r\n this.poller = this.KuduClient.logStream(this.functionName, _.bind(this.appendLogStream, this));\r\n this.poller.start();\r\n this.poller.onStop(function () { return _this.onLogStreamStopped(); });\r\n };\r\n BotCodeEditorController.prototype.fetchCode = function () {\r\n var _this = this;\r\n if (!this.botId) {\r\n return;\r\n }\r\n var newState = {\r\n root: {\r\n id: \"/\",\r\n name: this.botId,\r\n toggled: true,\r\n loading: false\r\n },\r\n activeNode: null,\r\n activeFile: null,\r\n activeCode: \"\",\r\n activeCodeDirty: false,\r\n logStream: \"\",\r\n };\r\n var checkAllInfo = function () {\r\n if (newState.root.children) {\r\n _this.state = newState;\r\n if (_this.component) {\r\n _this.component.setState(_this.state);\r\n }\r\n }\r\n };\r\n this.botCodeFetched = this.botId;\r\n var fetchRoot = Rest.CodeClient.getScmAuthz(this.botId)\r\n .then(function (authz) {\r\n _this.KuduClient = KuduApi_1.KuduClient.createFromScmAuthorization(authz);\r\n return _this.KuduClient.get(_this.KuduClient.scmUri.format() + \"/api/vfs/site/wwwroot/\");\r\n })\r\n .then(function (items) {\r\n if (_this.component) {\r\n _this.component.setState({ lastFetchTime: new Date() });\r\n }\r\n var deferred = $.Deferred();\r\n var functionName = _.find(items, function (item) { return item.mime === 'inode/directory'; }).name;\r\n if (_this.component && _this.component.props && _this.component.props.botEndpoint) {\r\n var uri = Url_1.parseUrl(_this.component.props.botEndpoint);\r\n functionName = _.last(uri.path.split('/'));\r\n }\r\n _this.functionName = functionName;\r\n _this.poller = _this.KuduClient.logStream(functionName, _.bind(_this.appendLogStream, _this));\r\n _this.poller.onStop(function () { return _this.onLogStreamStopped(); });\r\n _this.poller.start();\r\n newState.root.children = index_1.mapFilesToTreeNodes(items);\r\n checkAllInfo();\r\n var functionRoot = _.find(newState.root.children, function (node) { return node.name == functionName && node.children; });\r\n if (functionRoot) {\r\n deferred.resolve(functionRoot);\r\n }\r\n else {\r\n deferred.resolve(newState.root);\r\n }\r\n return deferred;\r\n });\r\n $.when(fetchRoot)\r\n .then(function (node) {\r\n var deferred = _this.toggleTreeNode(node, true);\r\n checkAllInfo();\r\n return deferred;\r\n })\r\n .then(function (node) {\r\n var file = _.find(node.children, function (child) { return child.name == 'run.csx' || child.name == 'index.js'; });\r\n file = file || _.find(node.children, function (child) { return !child.children; });\r\n checkAllInfo();\r\n return _this.toggleTreeNode(file, true);\r\n })\r\n .fail(function (xhr) {\r\n _this.botCodeFetched = null;\r\n _this.checkSubscription().then(function (valid) {\r\n if (valid) {\r\n _this.handleHttpResponseError(xhr);\r\n }\r\n else {\r\n _this.statusBar = React.createElement(index_1.ExpiredSubscrition, {});\r\n }\r\n }).fail(function () {\r\n _this.handleHttpResponseError(xhr);\r\n });\r\n });\r\n };\r\n BotCodeEditorController.prototype.findNodeById = function (id) {\r\n var level = this.state.root.children;\r\n for (;;) {\r\n var match = _.find(level, function (node) { return id.indexOf(node.id) === 0; });\r\n if (!match || match.id === id) {\r\n return match;\r\n }\r\n level = match.children;\r\n if (!level) {\r\n return null;\r\n }\r\n }\r\n };\r\n BotCodeEditorController.prototype.findParent = function (root, cur) {\r\n var curUrl = Url_1.parseUrl(cur.id);\r\n curUrl.path = Path_1.resolve(curUrl.path, '..');\r\n var parentId = curUrl.format() + \"/\";\r\n return this.findNodeById(parentId);\r\n };\r\n BotCodeEditorController.prototype.addNewFile = function () {\r\n var _this = this;\r\n var cur = this.state.activeNode;\r\n if (cur) {\r\n if (!cur.children) {\r\n cur = this.findParent(this.state.root, cur);\r\n }\r\n }\r\n if (cur) {\r\n var newFile_1 = {\r\n name: '_new',\r\n id: cur.id + \"_new\",\r\n newFile: true,\r\n };\r\n cur.toggled = true;\r\n cur.children.splice(0, 0, newFile_1);\r\n this.state.newFileNodeId = newFile_1.id;\r\n var setNewFilew_1 = function () {\r\n _this.state.activeFile = newFile_1;\r\n _this.state.activeCode = '';\r\n _this.component.setState(_this.state);\r\n };\r\n if (this.state.activeFile && this.state.activeCodeDirty) {\r\n this.updateFile(this.state.activeFile.id, this.state.activeCode)\r\n .then(function (ok) {\r\n if (ok) {\r\n setNewFilew_1();\r\n }\r\n });\r\n }\r\n else {\r\n setNewFilew_1();\r\n }\r\n }\r\n };\r\n BotCodeEditorController.prototype.onRenameFile = function (newName) {\r\n logger_1.default.debug('newName', newName);\r\n if (newName.indexOf('/') >= 0 || newName.indexOf('..') >= 0) {\r\n return;\r\n }\r\n var treeNode = this.findNodeById(this.state.newFileNodeId);\r\n if (treeNode) {\r\n var parentId = treeNode.id.substr(0, this.state.newFileNodeId.lastIndexOf('/') + 1);\r\n treeNode.name = newName.trim();\r\n if (treeNode.name.length) {\r\n treeNode.id = parentId + treeNode.name;\r\n this.state.newFileNodeId = undefined;\r\n }\r\n else {\r\n treeNode.id = parentId + '_new';\r\n }\r\n }\r\n this.component.setState(this.state);\r\n };\r\n BotCodeEditorController.prototype.onChangeCode = function (txt, dirty) {\r\n this.state.activeCode = txt;\r\n this.state.activeCodeDirty = dirty;\r\n this.component.setState(this.state);\r\n };\r\n BotCodeEditorController.prototype.clearLogStream = function () {\r\n this.state.logStream = '';\r\n this.component.setState(this.state);\r\n };\r\n BotCodeEditorController.prototype.getBotCodeEditorProps = function (props) {\r\n return _.extend({\r\n botId: this.botId,\r\n onToggle: _.bind(this.toggleTreeNode, this),\r\n onSave: _.bind(this.saveFile, this),\r\n onSetBotId: _.bind(this.setBotId, this),\r\n onAddFile: _.bind(this.addNewFile, this),\r\n onRenameFile: _.bind(this.onRenameFile, this),\r\n onChangeCode: _.bind(this.onChangeCode, this),\r\n clearLogStream: _.bind(this.clearLogStream, this)\r\n }, props || {});\r\n };\r\n BotCodeEditorController.prototype.renderPage = function (container, props) {\r\n container = container || this.pageContent;\r\n var element = React.createElement(index_1.BotCodeEditor, this.getBotCodeEditorProps(props));\r\n this.component = ReactDOM.render(element, container);\r\n if (this.botId) {\r\n this.fetchCode();\r\n }\r\n };\r\n BotCodeEditorController.prototype.setBotId = function (botId, subscriptionId) {\r\n this.botId = botId;\r\n if (subscriptionId) {\r\n this.subscriptionId = subscriptionId;\r\n }\r\n if (this.component && this.botId != this.botCodeFetched) {\r\n this.fetchCode();\r\n }\r\n };\r\n Object.defineProperty(BotCodeEditorController.prototype, \"codeEditor\", {\r\n get: function () {\r\n return this.component;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return BotCodeEditorController;\r\n }(ControllerBase_1.ControllerBase));\r\n exports.BotCodeEditorController = BotCodeEditorController;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 461 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(31), __webpack_require__(60)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, ControllerBase_1, index_1) {\r\n var BotCodeSetupController = (function (_super) {\r\n __extends(BotCodeSetupController, _super);\r\n function BotCodeSetupController(app, containerController) {\r\n var _this = _super.call(this, app) || this;\r\n _this.containerController = containerController;\r\n return _this;\r\n }\r\n BotCodeSetupController.prototype.load = function (params) {\r\n _super.prototype.load.call(this, params);\r\n };\r\n BotCodeSetupController.prototype.renderPage = function () {\r\n var element = React.createElement(index_1.BotCodeSetup, {\r\n scmType: null,\r\n ciProps: null,\r\n setCodeSetup: null,\r\n setLoading: null,\r\n onScmTypeChange: null\r\n });\r\n this.component = ReactDOM.render(element, this.pageContent);\r\n };\r\n BotCodeSetupController.prototype.render = function (params) {\r\n _super.prototype.render.call(this, params);\r\n this.renderPage();\r\n };\r\n return BotCodeSetupController;\r\n }(ControllerBase_1.ControllerBase));\r\n exports.BotCodeSetupController = BotCodeSetupController;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 462 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(437), __webpack_require__(432), __webpack_require__(433), __webpack_require__(436), __webpack_require__(245), __webpack_require__(431), __webpack_require__(244), __webpack_require__(430), __webpack_require__(434), __webpack_require__(243), __webpack_require__(246), __webpack_require__(435), __webpack_require__(58), __webpack_require__(99), __webpack_require__(7), __webpack_require__(26)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, SignOut_1, DevPortalAppBase_1, AccountSettingsController_1, BotsController_1, BotEditController_1, RedirectController_1, BotController_1, FlightController_1, BotCreateSwitchController_1, AzurePortalPageController_1, WebChatController_1, BotOpenComposerController_1, HeaderKind_1, SupportedFeatureUtility_1, Rest, Environment_1) {\r\n exports.signOut = SignOut_1.signOut;\r\n var BotCreateNewController = (function (_super) {\r\n __extends(BotCreateNewController, _super);\r\n function BotCreateNewController(app) {\r\n var _this = _super.call(this, app) || this;\r\n _this.headerKind = HeaderKind_1.HeaderKind.Jumbo;\r\n return _this;\r\n }\r\n return BotCreateNewController;\r\n }(BotEditController_1.BotEditController));\r\n var DevPortalApp = (function (_super) {\r\n __extends(DevPortalApp, _super);\r\n function DevPortalApp() {\r\n var _this = _super.call(this) || this;\r\n var router = _this.getRouter();\r\n router.addRoute(\"/bots/provision\", BotCreateSwitchController_1.BotCreateSwitchController);\r\n if (SupportedFeatureUtility_1.SupportedFeatureUtility.isSupported(Rest.DevPortalFeatureFlags.SupportNonAbsCreate)) {\r\n router.addRoute(\"/bots/new\", BotCreateNewController);\r\n router.addRoute(\"/bots/newbot\", BotCreateNewController);\r\n }\r\n router.addRoute(\"/redirect\", RedirectController_1.RedirectController);\r\n router.addRoute(\"/flight\", FlightController_1.FlightController);\r\n router.addRoute(\"/bots/code\", BotController_1.BotController);\r\n router.addRoute(\"/bots/codesetup\", BotController_1.BotController);\r\n router.addRoute(\"/bots/openComposer\", BotOpenComposerController_1.BotOpenComposerController);\r\n router.addRoute(\"/code\", AzurePortalPageController_1.AzurePortalPageController);\r\n router.addRoute(\"/codev2\", AzurePortalPageController_1.AzurePortalPageController);\r\n router.addRoute(\"/bots/build\", BotController_1.BotController);\r\n router.addRoute(\"/bots/channels\", BotController_1.BotController);\r\n router.addRoute(\"/bots/analytics\", BotController_1.BotController);\r\n router.addRoute(\"/bots/settings\", BotController_1.BotController);\r\n if (SupportedFeatureUtility_1.SupportedFeatureUtility.isSupported(Rest.DevPortalFeatureFlags.SupportNonAzureUsers)) {\r\n router.addRoute(\"/account\", AccountSettingsController_1.AccountSettingsController);\r\n }\r\n router.addRoute(\"/bots/webchat\", BotController_1.BotController);\r\n router.addRoute(\"/az/webchat\", WebChatController_1.WebChatController);\r\n router.setCustomResolver(function (path, params) {\r\n var lowerPath = path ? path.toLowerCase().trim() : null;\r\n if (lowerPath === '/bots') {\r\n if (params['id']) {\r\n return { controllerClass: BotController_1.BotController };\r\n }\r\n else {\r\n return { controllerClass: BotsController_1.BotsController };\r\n }\r\n }\r\n return null;\r\n });\r\n router.setPageNotFoundController(PageNotFoundController);\r\n _this.announcements = {\r\n isFeatureFlighted: _this.isFeatureFlighted('Announcements'),\r\n all: [],\r\n shownIdCount: {},\r\n addShown: function () {\r\n _this.announcements.all.forEach(function (a) { return _this.announcements.shownIdCount[a.Id]++; });\r\n _this.updateAnnouncements();\r\n }\r\n };\r\n _this.load();\r\n if (_this.announcements.isFeatureFlighted && !Environment_1.Environment.isInBotFrameworkAzureExtension) {\r\n _this.fetchAnnouncements();\r\n _this.checkAnnouncementsInterval = setInterval(function () { return _this.fetchAnnouncements(); }, 120000);\r\n }\r\n return _this;\r\n }\r\n DevPortalApp.prototype.fetchAnnouncements = function () {\r\n var _this = this;\r\n Rest.AnnouncementsClient.announcements().done(function (all) {\r\n _this.announcements.all = all;\r\n all.forEach(function (a) { return _this.announcements.shownIdCount[a.Id] = _this.announcements.shownIdCount[a.Id] || 0; });\r\n _this.updateAnnouncements();\r\n });\r\n };\r\n DevPortalApp.prototype.updateAnnouncements = function () {\r\n var router = this.getRouter();\r\n var currentController = router.getCurrentController();\r\n if (currentController && currentController.setAnnouncementState) {\r\n currentController.setAnnouncementState(this.announcements);\r\n }\r\n };\r\n return DevPortalApp;\r\n }(DevPortalAppBase_1.DevPortalAppBase));\r\n exports.DevPortalApp = DevPortalApp;\r\n var PageNotFoundController = (function (_super) {\r\n __extends(PageNotFoundController, _super);\r\n function PageNotFoundController() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PageNotFoundController.prototype.load = function (params) {\r\n $.get(\"/404.html\", function (data) {\r\n SimpleMvc.App.getInstance().getAppBody().innerHTML = data;\r\n });\r\n };\r\n return PageNotFoundController;\r\n }(SimpleMvc.Controller));\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 463 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(157), __webpack_require__(258)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, IPageStatus_1, FlagUtility_1) {\r\n var Reducers = (function () {\r\n function Reducers() {\r\n }\r\n Reducers.loginComplete = function (state) {\r\n return __assign({}, state, { pageStatus: FlagUtility_1.FlagUtility.clearFlag(state.pageStatus, IPageStatus_1.PageStatusFlags.LoggingIn) });\r\n };\r\n Reducers.loginFailed = function (state, message) {\r\n return __assign({}, state, { pageMessage: message, pageStatus: FlagUtility_1.FlagUtility.clearFlag(state.pageStatus, IPageStatus_1.PageStatusFlags.LoggingIn) });\r\n };\r\n Reducers.getWebChatTokenCompleted = function (state, webChatToken) {\r\n return __assign({}, state, { webChatToken: webChatToken, pageStatus: FlagUtility_1.FlagUtility.clearFlag(state.pageStatus, IPageStatus_1.PageStatusFlags.WaitingForWebChatToken) });\r\n };\r\n Reducers.getWebChatTokenFailed = function (state, message) {\r\n return __assign({}, state, { pageMessage: message, pageStatus: FlagUtility_1.FlagUtility.clearFlag(state.pageStatus, IPageStatus_1.PageStatusFlags.WaitingForWebChatToken) });\r\n };\r\n Reducers.clearWebChatTokenAndUpdateState = function (state) {\r\n return __assign({}, state, { webChatToken: undefined, pageStatus: FlagUtility_1.FlagUtility.setFlag(state.pageStatus, IPageStatus_1.PageStatusFlags.WaitingForWebChatToken) });\r\n };\r\n Reducers.onBotEndpointReady = function (state) {\r\n return __assign({}, state, { pageStatus: FlagUtility_1.FlagUtility.clearFlag(state.pageStatus, IPageStatus_1.PageStatusFlags.WaitingForBotReady) });\r\n };\r\n Reducers.onBotEndpointNotReady = function (state) {\r\n return __assign({}, state, { pageStatus: FlagUtility_1.FlagUtility.setFlag(state.pageStatus, IPageStatus_1.PageStatusFlags.WaitingForBotReady) });\r\n };\r\n return Reducers;\r\n }());\r\n exports.Reducers = Reducers;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 464 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(48)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, Url_1) {\r\n function setupRemoteRepo(client, armClient, rsrcId, scmInfo) {\r\n var args = [];\r\n var scmHost = Url_1.parseUrl(scmInfo.hostUrl);\r\n var hostUrl = \"https://\" + (scmHost ? scmHost.hostname : '');\r\n if (scmInfo.repoProvider == 'vso') {\r\n args.push(\"PostDeployScripts\\\\setupVsoRemoteRepo.cmd\");\r\n args.push(hostUrl);\r\n args.push(scmInfo.repoUserName);\r\n args.push(scmInfo.repoToken);\r\n }\r\n else {\r\n args.push(\"PostDeployScripts\\\\setupGithubRemoteRepo.cmd\");\r\n args.push(scmInfo.repoUserName);\r\n args.push(scmInfo.repoToken);\r\n }\r\n var projName = null;\r\n var repoUrl = null;\r\n var result = null;\r\n return client.settings.then(function (settings) {\r\n projName = settings['WEBSITE_SITE_NAME'];\r\n switch (scmInfo.repoProvider) {\r\n case 'vso':\r\n repoUrl = hostUrl + \"/_git/\" + projName;\r\n break;\r\n case 'github':\r\n repoUrl = \"https://github.com/\" + scmInfo.repoUserName + \"/\" + projName + \".git\";\r\n break;\r\n }\r\n args.push(projName);\r\n return $.Deferred().resolve(projName);\r\n })\r\n .then(function (proj) {\r\n return client.command(args.join(' '), 'site\\\\wwwroot');\r\n })\r\n .then(function (f) {\r\n if (!f) {\r\n return $.Deferred().reject(args[0] + \" failed\");\r\n }\r\n return $.Deferred().resolve(_.extend({}, scmInfo, {\r\n repoUrl: repoUrl\r\n }));\r\n })\r\n .then(function (state) {\r\n result = state;\r\n return armClient.setupContinuousIntegration(rsrcId, {\r\n repoUrl: repoUrl,\r\n branch: 'master',\r\n token: scmInfo.repoToken,\r\n isManualIntegration: false,\r\n deploymentRollbackEnabled: false,\r\n isMercurial: false\r\n });\r\n })\r\n .then(function () {\r\n return $.Deferred().resolve(result);\r\n });\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = setupRemoteRepo;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 465 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(246)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, WebChatController_1) {\r\n var StateStoreUtility = (function () {\r\n function StateStoreUtility() {\r\n }\r\n StateStoreUtility.mapStateAndDispatchToProps = function (state, actions) {\r\n return {\r\n pageStatus: new WebChatController_1.PageStatus(state.pageStatus),\r\n pageMessage: state.pageMessage,\r\n botId: state.botId,\r\n location: state.location,\r\n webChatToken: state.webChatToken,\r\n onStartNewConversation: actions.onWebChatNewConversation\r\n };\r\n };\r\n return StateStoreUtility;\r\n }());\r\n exports.StateStoreUtility = StateStoreUtility;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 466 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React) {\r\n var AbsCodeCIEnablePanel = (function (_super) {\r\n __extends(AbsCodeCIEnablePanel, _super);\r\n function AbsCodeCIEnablePanel(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {};\r\n return _this;\r\n }\r\n AbsCodeCIEnablePanel.prototype.render = function () {\r\n return (React.createElement(\"div\", { className: \"dialog-panel\" },\r\n React.createElement(\"h2\", null, \"Enable continuous deployment\"),\r\n React.createElement(\"p\", null, \"After enabling, be sure to modify your code through continuous deployment and not through other mechanisms to avoid conflicts.\"),\r\n React.createElement(\"div\", { className: \"button-panel\" },\r\n React.createElement(\"button\", { type: \"button\", className: \"cancel-button\" }, \"Cancel\"),\r\n React.createElement(\"button\", { type: \"button\", className: \"ok-button light-button\" }, \"Got it\"))));\r\n };\r\n return AbsCodeCIEnablePanel;\r\n }(React.Component));\r\n exports.AbsCodeCIEnablePanel = AbsCodeCIEnablePanel;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 467 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React) {\r\n var AbsCodeChoicePanel = (function (_super) {\r\n __extends(AbsCodeChoicePanel, _super);\r\n function AbsCodeChoicePanel(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = { choice: 'host-in-azure' };\r\n return _this;\r\n }\r\n AbsCodeChoicePanel.prototype.chooseOption = function (x) {\r\n this.setState({ choice: x.target['value'] });\r\n };\r\n AbsCodeChoicePanel.prototype.render = function () {\r\n var _this = this;\r\n return (React.createElement(\"div\", { className: \"dialog-panel abs-code-choice-panel\" },\r\n React.createElement(\"h2\", null, \"Create an SDK bot\"),\r\n React.createElement(\"div\", { className: \"choice\" },\r\n React.createElement(\"input\", { type: 'radio', name: \"choice\", value: \"host-in-azure\", id: 'abs-code-choice-host-in-azure', checked: this.state.choice === 'host-in-azure', onChange: function (x) { return _this.chooseOption(x); } }),\r\n React.createElement(\"label\", { htmlFor: 'abs-code-choice-host-in-azure' }, \"Create a new SDK bot hosted in Microsoft Azure\")),\r\n React.createElement(\"div\", { className: \"choice\" },\r\n React.createElement(\"input\", { type: 'radio', name: \"choice\", value: 'register', id: 'abs-code-choice-register', checked: this.state.choice === 'register', onChange: function (x) { return _this.chooseOption(x); } }),\r\n React.createElement(\"label\", { htmlFor: 'abs-code-choice-register' },\r\n \"Register an existing bot built using \",\r\n React.createElement(\"a\", { href: \"//aka.ms/bf-createsdkbot\", target: \"_blank\" }, \"Bot Builder SDK\"),\r\n \".\")),\r\n React.createElement(\"div\", { className: \"button-panel\" },\r\n React.createElement(\"button\", { type: \"button\", className: \"cancel-button\" }, \"Cancel\"),\r\n React.createElement(\"button\", { type: \"button\", className: \"ok-button default-button\" }, \"Ok\"))));\r\n };\r\n return AbsCodeChoicePanel;\r\n }(React.Component));\r\n exports.AbsCodeChoicePanel = AbsCodeChoicePanel;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 468 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(7), __webpack_require__(99)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, Rest, SupportedFeatureUtility_1) {\r\n var AccountSettingsPage = (function (_super) {\r\n __extends(AccountSettingsPage, _super);\r\n function AccountSettingsPage(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {\r\n allowDelete: false\r\n };\r\n return _this;\r\n }\r\n AccountSettingsPage.prototype.render = function () {\r\n var _this = this;\r\n if (!this.props.user) {\r\n return React.createElement(\"div\", { style: { margin: '20px auto', width: 64 } },\r\n React.createElement(\"div\", { className: \"m-spinner-six\" },\r\n React.createElement(\"span\", null),\r\n React.createElement(\"span\", null),\r\n React.createElement(\"span\", null),\r\n React.createElement(\"span\", null),\r\n React.createElement(\"span\", null),\r\n React.createElement(\"span\", null)));\r\n }\r\n var deleteAccountAllowed = SupportedFeatureUtility_1.SupportedFeatureUtility.isSupported(Rest.DevPortalFeatureFlags.SupportNonAzureUsers);\r\n if (!deleteAccountAllowed) {\r\n return React.createElement(\"div\", { style: { margin: '20px auto', width: '80%' } },\r\n React.createElement(\"div\", null,\r\n React.createElement(\"h1\", { className: \"m-header-1\" }, \"Account settings\")),\r\n React.createElement(\"div\", null,\r\n React.createElement(\"h2\", { className: \"m-header-2\", style: { marginTop: 30 } }, \"You cannot manage your account in this environment.\")));\r\n }\r\n return React.createElement(\"div\", { style: { margin: '20px auto', width: '80%' } },\r\n React.createElement(\"div\", null,\r\n React.createElement(\"h1\", { className: \"m-header-1\" }, \"Account settings\")),\r\n React.createElement(\"div\", null,\r\n React.createElement(\"h2\", { className: \"m-header-2\", style: { marginTop: 30 } }, \"Danger Zone\"),\r\n React.createElement(\"p\", { style: { color: \"#750b1c\" } }, \"Warning: Following operation may result in data loss and is not recoverable. Please be certain.\"),\r\n React.createElement(\"label\", { className: \"m-label\" },\r\n \"If you are sure you want to delete your account, please enter \",\r\n this.props.user.EmailAddress,\r\n \" in following field:\"),\r\n React.createElement(\"input\", { onChange: function (e) { return _this.onEmailChange(e); }, type: \"text\", placeholder: \"Confirm email\", style: { marginBottom: 30 }, className: \"m-input\" }),\r\n React.createElement(\"button\", { onClick: function () { return _this.props.deleteAccount(_this.props.user); }, className: \"m-button-destructive-md\", disabled: !this.state.allowDelete }, \"Delete your account\")));\r\n };\r\n AccountSettingsPage.prototype.onEmailChange = function (e) {\r\n var allowDelete = this.props.user && e.currentTarget.value === this.props.user.EmailAddress;\r\n var newState = _.extend({}, this.state, { allowDelete: allowDelete });\r\n this.setState(newState);\r\n };\r\n return AccountSettingsPage;\r\n }(React.Component));\r\n exports.AccountSettingsPage = AccountSettingsPage;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 469 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(81)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, BotPage_1) {\r\n var AzurePortalPage = (function (_super) {\r\n __extends(AzurePortalPage, _super);\r\n function AzurePortalPage(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {\r\n botId: null,\r\n scmType: 'None',\r\n bot: null\r\n };\r\n return _this;\r\n }\r\n AzurePortalPage.prototype.componentWillUnmount = function () {\r\n this.props.onSetComponent(null);\r\n };\r\n AzurePortalPage.prototype.componentDidMount = function () {\r\n this.props.onSetComponent(this);\r\n };\r\n AzurePortalPage.prototype.render = function () {\r\n var _this = this;\r\n if (this.props.botPageProps && this.state.botId) {\r\n return (React.createElement(BotPage_1.BotPage, __assign({ onSetBotAppSettings: this.props.onSetBotAppSettings }, this.props.botPageProps, { scmType: function () { return _this.state.scmType; } })));\r\n }\r\n return null;\r\n };\r\n return AzurePortalPage;\r\n }(React.Component));\r\n exports.AzurePortalPage = AzurePortalPage;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 470 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(82), __webpack_require__(8), __webpack_require__(794)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, BotImageControl_1, ClientAppSettings_1, Dropzone) {\r\n var BotIconControl = (function (_super) {\r\n __extends(BotIconControl, _super);\r\n function BotIconControl() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n BotIconControl.prototype.onUploadLinkClick = function () {\r\n if (this.iconTile) {\r\n $(this.iconTile).find('input[type=\"file\"]').trigger('click');\r\n }\r\n };\r\n BotIconControl.prototype.render = function () {\r\n var _this = this;\r\n return (React.createElement(\"div\", { className: \"icon-tile\", ref: function (x) { return _this.iconTile = x; } },\r\n React.createElement(\"div\", { className: \"icon-tile-lhs\" },\r\n React.createElement(Dropzone, { ref: \"iconDrop\", className: \"icon-upload\", multiple: false, accept: \"image/png\", onDrop: function (files) { return _this.props.onDropIcon(files); } },\r\n React.createElement(BotImageControl_1.BotImageControl, { bot: this.props.bot, defaultIconUrl: ClientAppSettings_1.clientAppSettings.defaultIconUrl })),\r\n React.createElement(\"input\", { ref: \"agent-icon-url\", type: \"hidden\", id: \"agent-icon-url\", value: this.props.bot.IconUrl }),\r\n React.createElement(\"input\", { ref: \"agent-icon-default-hash\", type: \"hidden\", id: \"agent-icon-default-hash\", value: this.props.bot.DefaultIconColorHash })),\r\n React.createElement(\"div\", { className: \"icon-tile-rhs\" },\r\n React.createElement(\"div\", { className: \"icon-tile-title\" }, \"Icon\"),\r\n React.createElement(\"a\", { href: \"javascript:void(0)\", className: \"icon-upload-link\", onClick: function (x) { return _this.onUploadLinkClick(); } }, \"Upload custom icon\"),\r\n React.createElement(\"span\", null, \"30K max, png only\"))));\r\n };\r\n return BotIconControl;\r\n }(React.Component));\r\n exports.BotIconControl = BotIconControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 471 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(80)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, BlockRowInputLabel_1) {\r\n var BotMigrationDialogState = (function () {\r\n function BotMigrationDialogState() {\r\n }\r\n return BotMigrationDialogState;\r\n }());\r\n exports.BotMigrationDialogState = BotMigrationDialogState;\r\n var BotMigrationDialogProps = (function () {\r\n function BotMigrationDialogProps() {\r\n }\r\n return BotMigrationDialogProps;\r\n }());\r\n exports.BotMigrationDialogProps = BotMigrationDialogProps;\r\n var BotMigrationDialog = (function (_super) {\r\n __extends(BotMigrationDialog, _super);\r\n function BotMigrationDialog(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {};\r\n _this.handleFirstFocusTrapFocusx = _this.handleFirstFocusTrapFocusx.bind(_this);\r\n _this.handleLastFocusTrapFocus = _this.handleLastFocusTrapFocus.bind(_this);\r\n _this.handleBotMigrationDialogFocus = _this.handleBotMigrationDialogFocus.bind(_this);\r\n return _this;\r\n }\r\n BotMigrationDialog.prototype.focusMigrationDialog = function () {\r\n var dialogFocusElement = ReactDOM.findDOMNode(this._focusControl);\r\n dialogFocusElement && dialogFocusElement.focus();\r\n };\r\n BotMigrationDialog.prototype.handleFirstFocusTrapFocusx = function () {\r\n this.focusMigrationDialog();\r\n };\r\n BotMigrationDialog.prototype.handleLastFocusTrapFocus = function () {\r\n var dialogFocusElement = ReactDOM.findDOMNode(this._closeBtn);\r\n dialogFocusElement && dialogFocusElement.focus();\r\n };\r\n BotMigrationDialog.prototype.handleBotMigrationDialogFocus = function () {\r\n var dialogFocusElement = ReactDOM.findDOMNode(this._focusControl);\r\n dialogFocusElement && dialogFocusElement.select();\r\n };\r\n BotMigrationDialog.prototype.componentDidMount = function () {\r\n this.focusMigrationDialog();\r\n };\r\n BotMigrationDialog.prototype.componentDidUpdate = function () {\r\n this.focusMigrationDialog();\r\n };\r\n BotMigrationDialog.prototype.renderTenantPicker = function () {\r\n var _this = this;\r\n return this.state.tenants.length > 1 ? [\r\n React.createElement(\"div\", { className: \"migration-label-wrapper\", key: 'tenant-label' },\r\n React.createElement(BlockRowInputLabel_1.BlockRowInputLabel, { text: \"Directory\", tip: \"Select Azure Active Directory\", tipAsHtml: true, required: true })),\r\n React.createElement(\"div\", { className: \"migration-tenant-select-wrapper\", key: 'tenant-select' },\r\n React.createElement(\"select\", { className: \"migration-tenant-select\", value: this.state.selectedTenantId, onChange: function (ev) { return _this.props.onChangeTenant(ev.target.value); }, ref: function (ctl) { return _this._focusControl = ctl; }, onFocus: this.handleBotMigrationDialogFocus }, this.state.tenants.map(function (t) { return React.createElement(\"option\", { key: t.id, value: t.tenantId }, t.displayName); })))\r\n ] : null;\r\n };\r\n BotMigrationDialog.prototype.renderInputs = function () {\r\n var _this = this;\r\n var tenantElt = this.renderTenantPicker();\r\n return this.state.isRegistrationBot ?\r\n React.createElement(\"div\", { className: \"migration-input-container\" },\r\n React.createElement(\"span\", { className: \"migration-tenant-header\" }, \"Please select the Azure Directory and the Azure Subscription where you want to migrate your bot to.\"),\r\n tenantElt,\r\n React.createElement(\"div\", { className: \"migration-label-wrapper\" },\r\n React.createElement(BlockRowInputLabel_1.BlockRowInputLabel, { text: \"Azure Subscription\", tip: \"The Azure Subscription that will contain your bot.\", tipAsHtml: true, required: true })),\r\n React.createElement(\"div\", { className: \"migration-subs-select-wrapper\" },\r\n React.createElement(\"select\", { \"aria-label\": \"Azure Subscription\", className: \"migration-subs-select\", ref: function (x) { _this._subscriptionDropdown = x; if (tenantElt == null) {\r\n _this._focusControl = x;\r\n } }, onFocus: this.handleBotMigrationDialogFocus, value: this.state.selectedSubscription, onChange: function (ev) { return _this.props.onChangeSubscription(ev.target.value); } }, this.state.subscriptions.map(function (sub) { return React.createElement(\"option\", { key: sub.id, value: sub.subscriptionId }, sub.displayName); })),\r\n this.state.subscriptionErrMsg ? React.createElement(\"span\", { className: \"migration-error\" }, this.state.subscriptionErrMsg) : null),\r\n React.createElement(\"div\", { className: \"migration-label-wrapper\" },\r\n React.createElement(BlockRowInputLabel_1.BlockRowInputLabel, { text: \"Azure resource group\", tip: \"A resource group is a collection of resources that share the same lifecycle, permissions, and policies.\", required: true })),\r\n React.createElement(\"input\", { className: \"migration-input\", ref: function (x) { return _this._resourceGroupInput = x; }, value: this.state.bot.Id, readOnly: true, disabled: true }),\r\n React.createElement(\"select\", { \"aria-label\": \"Azure resource group\", className: \"migration-input\", ref: function (x) { return _this._locationDropdown = x; }, onChange: function (ev) { return _this.props.onChangeLocation(ev.target.value); }, value: this.state.selectedLocation }, this.state.locations.map(function (loc) { return React.createElement(\"option\", { key: loc.name, value: loc.name }, loc.displayName); })),\r\n React.createElement(\"div\", { className: \"migration-label-wrapper\" },\r\n React.createElement(BlockRowInputLabel_1.BlockRowInputLabel, { text: \"Bot service pricing tier.\", tip: \"Determines the pricing plan/limits for your bot service. This can be changed later. Learn more.\", tipAsHtml: true, required: true })),\r\n React.createElement(\"input\", { \"aria-label\": \"Bot service pricing tier\", className: \"migration-input\", ref: function (x) { return _this._pricingTierInput = x; }, value: \"S1 Pricing Plan (see tooltip for info)\", readOnly: true, disabled: true })) :\r\n React.createElement(\"div\", { className: \"migration-input-container\" },\r\n React.createElement(\"span\", { className: \"migration-sub-header\" }, \"Destination:\"),\r\n React.createElement(\"div\", { className: \"migration-label-wrapper\" },\r\n React.createElement(BlockRowInputLabel_1.BlockRowInputLabel, { text: \"Azure app name\", tip: \"The name of the new web or function app that will be deployed to Azure. Your bot name will remain the same.\", tipAsHtml: true, required: true })),\r\n React.createElement(\"div\", { className: \"migration-app-name-input-wrapper\" },\r\n React.createElement(\"input\", { \"aria-label\": \"Azure app name\", className: \"migration-app-name-input\", ref: function (x) { return _this._appNameInput = x; }, value: this.state.selectedAppName, onChange: function (ev) { return _this.props.onChangeAppName(ev.target.value); } }),\r\n this.state.appNameErrMsg ? React.createElement(\"span\", { className: \"migration-error\" }, this.state.appNameErrMsg) : null),\r\n React.createElement(\"div\", { className: \"migration-label-wrapper\" },\r\n React.createElement(BlockRowInputLabel_1.BlockRowInputLabel, { text: \"Azure Subscription\", tip: \"The Azure Subscription that will contain your bot.\", tipAsHtml: true, required: true })),\r\n React.createElement(\"div\", { className: \"migration-sub-input-wrapper\" },\r\n React.createElement(\"input\", { \"aria-label\": \"Azure Subscription\", className: \"migration-sub-input\", ref: function (x) { return _this._subscriptionInput = x; }, value: this.state.selectedSubscription, readOnly: true, disabled: true }),\r\n this.state.subscriptionErrMsg ? React.createElement(\"span\", { className: \"migration-error\" }, this.state.subscriptionErrMsg) : null),\r\n React.createElement(\"div\", { className: \"migration-label-wrapper\" },\r\n React.createElement(BlockRowInputLabel_1.BlockRowInputLabel, { text: \"Azure resource group\", tip: \"A resource group is a collection of resources that share the same lifecycle, permissions, and policies.\", required: true })),\r\n React.createElement(\"input\", { \"aria-label\": \"Azure resource group\", className: \"migration-input\", ref: function (x) { return _this._resourceGroupInput = x; }, value: this.state.selectedResourceGroup, readOnly: true, disabled: true }),\r\n React.createElement(\"div\", { className: \"migration-label-wrapper\" },\r\n React.createElement(BlockRowInputLabel_1.BlockRowInputLabel, { text: \"Bot service pricing tier.\", tip: \"Determines the pricing plan/limits for your bot service. This can be changed later. Learn more.\", tipAsHtml: true, required: true })),\r\n React.createElement(\"input\", { \"aria-label\": \"Bot service pricing tier\", className: \"migration-input\", ref: function (x) { return _this._pricingTierInput = x; }, value: \"S1 Pricing Plan (see tooltip for info)\", readOnly: true, disabled: true }));\r\n };\r\n BotMigrationDialog.prototype.renderButtons = function (focusOnButton) {\r\n var _this = this;\r\n var cancelButton = focusOnButton ?\r\n React.createElement(\"button\", { className: \"migration-cancel m-button-secondary-md\", onClick: function () { return _this.props.onCancelClick(); }, ref: function (ctl) { return _this._focusControl = ctl; }, onFocus: this.handleBotMigrationDialogFocus }, \"Cancel\")\r\n : React.createElement(\"button\", { className: \"migration-cancel m-button-secondary-md\", onClick: function () { return _this.props.onCancelClick(); } }, \"Cancel\");\r\n if (this.state.azureAccessToken) {\r\n var registrationBotCriteria = this.state.selectedSubscription\r\n && this.state.selectedResourceGroup\r\n && this.state.selectedLocation\r\n && this.state.selectedPricingTier\r\n && !this.state.subscriptionErrMsg\r\n && !this.state.isCheckingSubscriptionState;\r\n var nonRegistrationBotCriteria = this.state.appNameIsValid\r\n && this.state.selectedAppName\r\n && !this.state.appNameErrMsg\r\n && !this.state.subscriptionErrMsg\r\n && !this.state.isCheckingSubscriptionState\r\n && this.state.selectedSubscription\r\n && this.state.selectedResourceGroup\r\n && this.state.selectedPricingTier\r\n && this.state.botSettings;\r\n var migrateEnabled = this.state.isRegistrationBot ? registrationBotCriteria : nonRegistrationBotCriteria;\r\n return (React.createElement(\"div\", { className: \"migration-button-row\" },\r\n cancelButton,\r\n React.createElement(\"button\", { className: \"migration-migrate m-button-primary-md\", onClick: function () { return _this.props.onMigrateClick(); }, disabled: !migrateEnabled }, \"Migrate\")));\r\n }\r\n else {\r\n var signInEnabled = this.state.firstCheckboxChecked && this.state.secondCheckboxChecked;\r\n return (React.createElement(\"div\", { className: \"migration-button-row\" },\r\n cancelButton,\r\n React.createElement(\"button\", { className: \"migration-migrate m-button-primary-md\", onClick: function () { return _this.props.onSignInClick(); }, disabled: !signInEnabled }, \"Sign in with Azure\")));\r\n }\r\n };\r\n BotMigrationDialog.prototype.renderNonAzureAccountView = function () {\r\n var _this = this;\r\n return (React.createElement(\"div\", { className: \"migration-dialog-container\" },\r\n this.renderFirstFocusTrap(),\r\n this.renderCloseButton(),\r\n React.createElement(\"h1\", { id: \"dialog-title\", className: \"migration-title\" }, \"You need to be signed in with an Azure account\"),\r\n React.createElement(\"div\", { className: \"migration-text\" }, \"We noticed that you are not signed in with an Azure account. Before migrating your bot, you need to take the following steps:\"),\r\n React.createElement(\"div\", { className: \"migration-checkbox first-checkbox\" },\r\n React.createElement(\"label\", { className: \"m-checkbox-container\" },\r\n React.createElement(\"div\", { className: \"migration-checkbox-alignment\" },\r\n React.createElement(\"input\", { className: \"m-checkbox\", type: \"checkbox\", ref: function (ctl) { return _this._focusControl = ctl; }, onFocus: this.handleBotMigrationDialogFocus, onChange: function () { return _this.props.onCheckFirstCheckbox(); } }),\r\n React.createElement(\"span\", { className: \"m-icon-Checkbox unchecked\" }),\r\n React.createElement(\"span\", { className: \"m-icon-CheckboxComposite checked\" }),\r\n React.createElement(\"span\", { className: \"migration-checkbox-blurb\" }, \"Create an Azure account. If you already have an Azure account that you want to use, check this box and go to the next step.\")))),\r\n React.createElement(\"div\", { className: \"migration-checkbox second-checkbox\" },\r\n React.createElement(\"label\", { className: \"m-checkbox-container\" },\r\n React.createElement(\"div\", { className: \"migration-checkbox-alignment\" },\r\n React.createElement(\"input\", { className: \"m-checkbox\", type: \"checkbox\", onChange: function () { return _this.props.onCheckSecondCheckbox(); } }),\r\n React.createElement(\"span\", { className: \"m-icon-Checkbox unchecked\" }),\r\n React.createElement(\"span\", { className: \"m-icon-CheckboxComposite checked\" }),\r\n React.createElement(\"span\", { className: \"migration-checkbox-blurb\" }, \"Go to the bot\\u2019s Settings and add your Azure account as a co-owner to the bot you want to migrate. Then sign in with the Azure account.\")))),\r\n this.renderButtons(false),\r\n this.renderlastFocusTrap()));\r\n };\r\n BotMigrationDialog.prototype.renderABSv2View = function () {\r\n var _this = this;\r\n return (React.createElement(\"div\", { className: \"migration-dialog-container\" },\r\n this.renderFirstFocusTrap(),\r\n this.renderCloseButton(),\r\n React.createElement(\"h1\", { id: \"dialog-title\", className: \"migration-title\" }, \"Migration unavailable\"),\r\n React.createElement(\"div\", { className: \"migration-text\" }, \"Migration is currently disabled for Conversation Designer (ABSv2) bots.\"),\r\n React.createElement(\"div\", { className: \"migration-button-row\" },\r\n React.createElement(\"button\", { className: \"m-button-primary-md\", ref: function (ctl) { return _this._focusControl = ctl; }, onFocus: this.handleBotMigrationDialogFocus, onClick: function () { return _this.props.onCancelClick(); } }, \"Ok\")),\r\n this.renderlastFocusTrap()));\r\n };\r\n BotMigrationDialog.prototype.renderConfirmationView = function () {\r\n var _this = this;\r\n return (React.createElement(\"div\", { className: \"migration-dialog-container\" },\r\n this.renderFirstFocusTrap(),\r\n this.renderCloseButton(),\r\n React.createElement(\"h1\", { id: \"dialog-title\", className: \"migration-title\" }, \"Migration completed\"),\r\n React.createElement(\"div\", { className: \"migration-text\" },\r\n \"Go to your newly migrated bot to test it. Make sure to also reconfigure continuous deployment if you were previously using it. \",\r\n React.createElement(\"a\", { href: \"https://aka.ms/azure/bots/migration\", target: \"_blank\" }, \"Learn more\")),\r\n React.createElement(\"div\", { className: \"migration-button-row\" },\r\n React.createElement(\"button\", { className: \"m-button-primary-md\", ref: function (ctl) { return _this._focusControl = ctl; }, onFocus: this.handleBotMigrationDialogFocus, onClick: function () { return _this.props.onOpenNewBotClick(); } }, \"Open the new bot\")),\r\n this.renderlastFocusTrap()));\r\n };\r\n BotMigrationDialog.prototype.renderErrorMessageView = function () {\r\n var _this = this;\r\n var link = this.state.error.link\r\n ? React.createElement(\"a\", { href: this.state.error.link.url, target: \"_blank\" }, this.state.error.link.text)\r\n : null;\r\n return (React.createElement(\"div\", { className: \"migration-dialog-container\" },\r\n this.renderFirstFocusTrap(),\r\n this.renderCloseButton(),\r\n React.createElement(\"h1\", { id: \"dialog-title\", className: \"migration-title\" }, this.state.error.title),\r\n React.createElement(\"div\", { className: \"migration-text\" },\r\n this.state.error.message,\r\n \" \",\r\n link),\r\n React.createElement(\"div\", { className: \"migration-button-row\" },\r\n React.createElement(\"button\", { className: \"m-button-primary-md\", onClick: function () { return _this.props.onCancelClick(); }, ref: function (ctl) { return _this._focusControl = ctl; }, onFocus: this.handleBotMigrationDialogFocus }, \"Ok\")),\r\n this.renderlastFocusTrap()));\r\n };\r\n BotMigrationDialog.prototype.renderLoadingView = function () {\r\n return (React.createElement(\"div\", { className: \"migration-dialog-container\" },\r\n this.renderlastFocusTrap(),\r\n this.renderCloseButton(),\r\n React.createElement(\"div\", { className: \"migration-loading-status\", id: \"dialog-title\" }, \"Loading bot...\"),\r\n React.createElement(\"div\", { className: \"migration-loading-spinner m-spinner-five\" },\r\n React.createElement(\"span\", null),\r\n React.createElement(\"span\", null),\r\n React.createElement(\"span\", null),\r\n React.createElement(\"span\", null),\r\n React.createElement(\"span\", null)),\r\n this.renderButtons(true),\r\n this.renderlastFocusTrap()));\r\n };\r\n BotMigrationDialog.prototype.render = function () {\r\n if (!this.state.azureAccessToken) {\r\n return this.renderNonAzureAccountView();\r\n }\r\n if (this.state.error) {\r\n return this.renderErrorMessageView();\r\n }\r\n var isLoading = this.state.isRegistrationBot ?\r\n !this.state.tenants || (this.state.tenants.length <= 1 && (!this.state.subscriptions.length || !this.state.locations.length))\r\n : (!this.state.botSettings || !this.state.bot);\r\n if (isLoading) {\r\n return this.renderLoadingView();\r\n }\r\n if (this.state.isDesignerBot) {\r\n return this.renderABSv2View();\r\n }\r\n if (this.state.migrationIsComplete) {\r\n return this.renderConfirmationView();\r\n }\r\n return (React.createElement(\"div\", { className: \"migration-dialog-container\" },\r\n this.renderFirstFocusTrap(),\r\n this.renderCloseButton(),\r\n React.createElement(\"h1\", { id: \"dialog-title\", className: \"migration-title\" },\r\n \"Migrate \",\r\n this.props.botId),\r\n this.renderInputs(),\r\n this.renderButtons(false),\r\n this.renderlastFocusTrap()));\r\n };\r\n BotMigrationDialog.prototype.renderFirstFocusTrap = function () {\r\n return (React.createElement(\"div\", { className: \"focus-trap\", \"aria-hidden\": \"true\", onFocus: this.handleFirstFocusTrapFocusx, tabIndex: 0 }));\r\n };\r\n BotMigrationDialog.prototype.renderCloseButton = function () {\r\n var _this = this;\r\n return (React.createElement(\"button\", { className: \"dialog-close-btn m-icon-Cancel\", role: \"button\", \"aria-label\": \"Close Dialog\", ref: function (closeBtn) { return _this._closeBtn = closeBtn; }, onFocus: this.handleBotMigrationDialogFocus, onClick: function () { return _this.props.onCloseBtnClick(); } }));\r\n };\r\n BotMigrationDialog.prototype.renderlastFocusTrap = function () {\r\n return (React.createElement(\"div\", { className: \"focus-trap\", \"aria-hidden\": \"true\", onFocus: this.handleLastFocusTrapFocus, tabIndex: 0 }));\r\n };\r\n return BotMigrationDialog;\r\n }(React.Component));\r\n exports.BotMigrationDialog = BotMigrationDialog;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 472 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(15)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, Intercom_Resources_DevPortal_1) {\r\n var BotOpenComposer = (function (_super) {\r\n __extends(BotOpenComposer, _super);\r\n function BotOpenComposer(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n Object.defineProperty(BotOpenComposer.prototype, \"bot\", {\r\n get: function () {\r\n return this.state && this.state.bot;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n BotOpenComposer.prototype.getBotId = function (s) {\r\n return s && s.bot ? s.bot.Id : null;\r\n };\r\n BotOpenComposer.prototype.openInComposer = function () {\r\n var allTags = JSON.parse(this.bot.AzureTags || \"{}\");\r\n var tags = Object.keys(allTags)\r\n .filter(function (x) { return x === 'webapp' || x === 'function'; })\r\n .reduce(function (cur, tagName) {\r\n return (__assign({}, cur, (_a = {}, _a[tagName] = allTags[tagName], _a)));\r\n var _a;\r\n }, {});\r\n var tagCount = Object.keys(tags).length;\r\n var payload = __assign({}, this.props.payload, { botId: this.bot.Id, botName: this.bot.Name, appId: this.bot.MsaAppId, appPasswordHint: this.bot.AppPasswordHint, resourceId: \"/subscriptions/\" + this.bot.SubscriptionId + \"/resourceGroups/\" + this.bot.ResourceGroupName + \"/providers/Microsoft.BotService/botServices/\" + this.bot.Id, tags: tagCount > 0 ? tags : undefined });\r\n var t = window.open(\"bfcomposer://import?source=abs&payload=\" + encodeURIComponent(JSON.stringify(payload)));\r\n return t;\r\n };\r\n BotOpenComposer.prototype.componentDidUpdate = function (prevProps, prevState) {\r\n var prevBotId = this.getBotId(prevState);\r\n var curBotId = this.getBotId(this.state);\r\n if (curBotId && curBotId !== prevBotId && this.bot.OpenWithHint === 'bfcomposer://') {\r\n var t = this.openInComposer();\r\n if (!t || t.closed || typeof t.closed === 'undefined') {\r\n this.setState({ blocked: true });\r\n }\r\n }\r\n };\r\n BotOpenComposer.prototype.renderOpenButton = function () {\r\n var _this = this;\r\n if (this.state && this.state.blocked) {\r\n return (React.createElement(\"button\", { style: {\r\n marginRight: '2ch'\r\n }, onClick: function () { return _this.openInComposer(); } }, Intercom_Resources_DevPortal_1.Resources.openInComposer));\r\n }\r\n return null;\r\n };\r\n BotOpenComposer.prototype.render = function () {\r\n return (React.createElement(\"div\", { style: {\r\n display: 'flex',\r\n alignItems: 'baseline',\r\n padding: '4ch',\r\n justifyContent: 'center',\r\n flexWarp: 'wrap'\r\n } },\r\n this.renderOpenButton(),\r\n React.createElement(\"p\", null,\r\n React.createElement(\"a\", { href: this.props.downloadUrl }, Intercom_Resources_DevPortal_1.Resources.downloadComposer))));\r\n };\r\n return BotOpenComposer;\r\n }(React.Component));\r\n exports.BotOpenComposer = BotOpenComposer;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 473 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n var MenuCommands;\r\n (function (MenuCommands) {\r\n MenuCommands[MenuCommands[\"Unsubmit\"] = 0] = \"Unsubmit\";\r\n MenuCommands[MenuCommands[\"ViewInBotDirectory\"] = 1] = \"ViewInBotDirectory\";\r\n MenuCommands[MenuCommands[\"Unpublish\"] = 2] = \"Unpublish\";\r\n MenuCommands[MenuCommands[\"RejectionDetails\"] = 3] = \"RejectionDetails\";\r\n MenuCommands[MenuCommands[\"Resubmit\"] = 4] = \"Resubmit\";\r\n })(MenuCommands = exports.MenuCommands || (exports.MenuCommands = {}));\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 474 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(8), __webpack_require__(14), __webpack_require__(34), __webpack_require__(156), __webpack_require__(15)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ClientAppSettings_1, index_1, BotUtils_1, FlightUtils_1, Intercom_Resources_DevPortal_1) {\r\n var BotsPageRowState = (function () {\r\n function BotsPageRowState() {\r\n }\r\n return BotsPageRowState;\r\n }());\r\n exports.BotsPageRowState = BotsPageRowState;\r\n var BotsPageRowProps = (function () {\r\n function BotsPageRowProps() {\r\n }\r\n return BotsPageRowProps;\r\n }());\r\n exports.BotsPageRowProps = BotsPageRowProps;\r\n var BotsPageRow = (function (_super) {\r\n __extends(BotsPageRow, _super);\r\n function BotsPageRow(props) {\r\n var _this = _super.call(this, props) || this;\r\n var isAzureIbizaBot = BotUtils_1.BotUtilsV2.isAzureIbizaBot(_this.props.bot);\r\n var isMigratedBot = BotUtils_1.BotUtilsV2.isMigratedBotDocument(_this.props.bot);\r\n var isMigrationOptional = BotUtils_1.BotUtilsV2.isMigrationOptional(_this.props.bot);\r\n _this.state = {\r\n isAzureIbizaBot: isAzureIbizaBot,\r\n isMigratedBot: isMigratedBot,\r\n isMigrationOptional: isMigrationOptional\r\n };\r\n return _this;\r\n }\r\n BotsPageRow.prototype.getMigrationAction = function () {\r\n var _this = this;\r\n if (this.state.isAzureIbizaBot) {\r\n if (this.state.isMigratedBot) {\r\n var oneWeekAgo = new Date();\r\n oneWeekAgo.setDate(oneWeekAgo.getDate() - 7);\r\n var md = new Date(String(this.props.bot.MigratedDate));\r\n var rollbackBtn = this.props.bot.MigratedDate && md >= oneWeekAgo\r\n ? React.createElement(\"button\", { className: \"m-button-primary-md bots-page-migration-button\", onClick: function () { return _this.props.onClickRollback(_this.props.bot.Id); } }, Intercom_Resources_DevPortal_1.Resources.myBotsMigrationButtonRollback)\r\n : null;\r\n return (React.createElement(\"div\", null,\r\n React.createElement(\"span\", { className: \"m-icon-Info migration-icon\" }),\r\n ' ',\r\n React.createElement(\"span\", { className: \"bots-page-row-status-text\" }, Intercom_Resources_DevPortal_1.Resources.myBotsMigrationStatusMigrated),\r\n rollbackBtn));\r\n }\r\n return (React.createElement(\"div\", null));\r\n }\r\n else {\r\n if (this.state.isMigrationOptional) {\r\n return (React.createElement(\"div\", null,\r\n React.createElement(\"a\", { href: \"https://docs.microsoft.com/en-us/azure/bot-service/bot-service-migrate-bot\", target: \"_blank\" },\r\n React.createElement(\"span\", { className: \"m-icon-Info migration-icon\" })),\r\n ' ',\r\n React.createElement(\"span\", { className: \"bots-page-row-status-text\" }, Intercom_Resources_DevPortal_1.Resources.myBotsMigrationStatusOptionalMigration),\r\n React.createElement(\"button\", { className: \"m-button-primary-md bots-page-migration-button\", onClick: function () { return _this.props.onClickMigrate(_this.props.bot.Id); } }, Intercom_Resources_DevPortal_1.Resources.myBotsMigrationButtonMigrate)));\r\n }\r\n var disabledUntilMigrated = !this.state.isMigratedBot && FlightUtils_1.FlightUtils.areMigrationRequiredBotsDisabled;\r\n var disabledIcon = disabledUntilMigrated ? React.createElement(\"span\", { className: \"m-icon-AlertTriangle migration-icon\" }) : null;\r\n return (React.createElement(\"div\", null,\r\n disabledIcon,\r\n ' ',\r\n React.createElement(\"span\", { className: \"bots-page-row-status-text\" }, Intercom_Resources_DevPortal_1.Resources.myBotsMigrationStatusNotMigrated),\r\n React.createElement(\"button\", { className: \"m-button-primary-md bots-page-migration-button\", onClick: function () { return _this.props.onClickMigrate(_this.props.bot.Id); } }, Intercom_Resources_DevPortal_1.Resources.myBotsMigrationButtonMigrate)));\r\n }\r\n };\r\n BotsPageRow.prototype.getContextAction = function () {\r\n var _this = this;\r\n if (this.state.isAzureIbizaBot || this.state.isMigratedBot) {\r\n return (React.createElement(\"div\", { className: \"bots-page-row-delete\" }));\r\n }\r\n return (React.createElement(\"div\", { className: \"bots-page-row-delete\" },\r\n React.createElement(\"button\", { className: \"bots-page-row-delete-button\", onClick: function () { return _this.props.onClickDelete(_this.props.bot.Id); } },\r\n React.createElement(\"span\", { className: \"m-icon-delete\" }))));\r\n };\r\n BotsPageRow.prototype.render = function () {\r\n var _this = this;\r\n return (React.createElement(\"div\", { className: \"bots-page-row\" },\r\n React.createElement(\"div\", { className: \"bots-page-row-name\" },\r\n React.createElement(index_1.BotImageControl, { bot: this.props.bot, className: \"bots-page-icon\", transparentBackground: false, defaultIconUrl: ClientAppSettings_1.clientAppSettings.defaultIconUrl }),\r\n React.createElement(\"button\", { className: \"bots-page-row-name-button\", onClick: function () { return _this.props.onClickBotName(_this.props.bot); } },\r\n React.createElement(\"span\", { className: \"bots-page-row-botname\" }, this.props.bot.Name || '(unnamed)'))),\r\n React.createElement(\"div\", { className: \"bots-page-row-status\" },\r\n this.getMigrationAction(),\r\n this.getContextAction())));\r\n };\r\n return BotsPageRow;\r\n }(React.Component));\r\n exports.BotsPageRow = BotsPageRow;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 475 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React) {\r\n exports.EmptyBotPage = function (_a) { return (React.createElement(\"div\", { className: \"bot-page pending\" })); };\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 476 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React) {\r\n var FullPageErrorComponent = (function (_super) {\r\n __extends(FullPageErrorComponent, _super);\r\n function FullPageErrorComponent() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n FullPageErrorComponent.prototype.render = function () {\r\n return (React.createElement(\"div\", { className: \"full-page-center\" }, this.props.message));\r\n };\r\n return FullPageErrorComponent;\r\n }(React.Component));\r\n exports.FullPageErrorComponent = FullPageErrorComponent;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 477 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(14)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, index_1) {\r\n var FullPageStatusComponent = (function (_super) {\r\n __extends(FullPageStatusComponent, _super);\r\n function FullPageStatusComponent() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n FullPageStatusComponent.prototype.render = function () {\r\n return (React.createElement(\"div\", { className: \"full-page-center full-page-status\" },\r\n React.createElement(index_1.ProgressRingControl, { className: \"progress-large\" }),\r\n React.createElement(\"div\", { className: \"page-status-message\" }, this.props.message)));\r\n };\r\n return FullPageStatusComponent;\r\n }(React.Component));\r\n exports.FullPageStatusComponent = FullPageStatusComponent;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 478 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(477), __webpack_require__(476), __webpack_require__(157), __webpack_require__(8), __webpack_require__(106), __webpack_require__(15)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, FullPageStatusComponent_1, FullPageErrorComponent_1, IPageStatus_1, ClientAppSettings_1, CultureUtility_1, Intercom_Resources_DevPortal_1) {\r\n var IbizaWebChatPage = (function (_super) {\r\n __extends(IbizaWebChatPage, _super);\r\n function IbizaWebChatPage() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n IbizaWebChatPage.prototype.render = function () {\r\n var _this = this;\r\n var _a = this.props, location = _a.location, pageMessage = _a.pageMessage, webChatToken = _a.webChatToken, botId = _a.botId;\r\n var hasPageError = !!pageMessage;\r\n var fullPageMessage = this._getFullPageMessage();\r\n if (!fullPageMessage && !webChatToken) {\r\n throw new Error(\"No WebChat token.\");\r\n }\r\n var webChatUrl = ClientAppSettings_1.clientAppSettings.webChatUrl;\r\n if (location && location !== 'global') {\r\n var items = ClientAppSettings_1.clientAppSettings.webChatUrl.split('//');\r\n var hostName = ClientAppSettings_1.clientAppSettings.webChatUrl;\r\n var protocol = '';\r\n if (items.length === 2) {\r\n protocol = items[0] + \"//\";\r\n hostName = items[1];\r\n }\r\n if (hostName.indexOf(location) === -1) {\r\n webChatUrl = \"\" + protocol + location + \".\" + hostName;\r\n }\r\n }\r\n var frameSrc = webChatUrl + \"embed/\" + botId + \"?t=\" + webChatToken;\r\n if (CultureUtility_1.CultureUtility.rawLocale)\r\n frameSrc += \"&l=\" + CultureUtility_1.CultureUtility.rawLocale;\r\n return (React.createElement(\"div\", { className: \"ibiza-webchat-page\" },\r\n React.createElement(\"div\", { \"aria-live\": \"polite\" },\r\n React.createElement(\"span\", { className: \"offscreen\" }, fullPageMessage || Intercom_Resources_DevPortal_1.Resources.loadingBot)),\r\n fullPageMessage ? (hasPageError ?\r\n React.createElement(FullPageErrorComponent_1.FullPageErrorComponent, { message: fullPageMessage })\r\n :\r\n React.createElement(FullPageStatusComponent_1.FullPageStatusComponent, { message: fullPageMessage })) : [\r\n React.createElement(\"div\", { className: \"test-header\", key: \"1\" },\r\n React.createElement(\"div\", { className: \"test-header-text\" }, Intercom_Resources_DevPortal_1.Resources.test),\r\n React.createElement(\"button\", { className: \"test-header-reload-button\", onClick: function () { return _this.props.onStartNewConversation(); } },\r\n React.createElement(\"span\", { className: \"m-icon-Refresh test-header-reload-button-icon\" }),\r\n React.createElement(\"span\", { className: \"test-header-reload-button-text\" }, Intercom_Resources_DevPortal_1.Resources.startOver))),\r\n React.createElement(\"iframe\", { className: \"chat-frame\", title: \"Web chat\", key: \"2\", ref: function (element) { return element && element.setAttribute('allow', 'microphone *'); }, src: frameSrc })\r\n ]));\r\n };\r\n IbizaWebChatPage.prototype._getFullPageMessage = function () {\r\n if (this.props.pageMessage) {\r\n return this.props.pageMessage;\r\n }\r\n else if (this.props.pageStatus.hasPageStatusFlag(IPageStatus_1.PageStatusFlags.WaitingForWebChatToken)) {\r\n return Intercom_Resources_DevPortal_1.Resources.authorizingWebChat;\r\n }\r\n else if (this.props.pageStatus.hasPageStatusFlag(IPageStatus_1.PageStatusFlags.LoggingIn)) {\r\n return Intercom_Resources_DevPortal_1.Resources.loggingIn;\r\n }\r\n else if (this.props.pageStatus.hasPageStatusFlag(IPageStatus_1.PageStatusFlags.WaitingForBotReady)) {\r\n return Intercom_Resources_DevPortal_1.Resources.botIsNotReady;\r\n }\r\n else if (!this.props.pageStatus.isReady()) {\r\n return Intercom_Resources_DevPortal_1.Resources.loading;\r\n }\r\n };\r\n return IbizaWebChatPage;\r\n }(React.Component));\r\n exports.IbizaWebChatPage = IbizaWebChatPage;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 479 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(15), __webpack_require__(444), __webpack_require__(495)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, Intercom_Resources_DevPortal_1, LocalizationUtils_1, FormattedMessage_1) {\r\n exports.TermsOfServiceLinks = {\r\n \"azure\": \"https://go.microsoft.com/fwLink/?LinkID=522330\",\r\n \"privacy\": \"https://privacy.microsoft.com/en-us/privacystatement\",\r\n \"cortana\": \"https://aka.ms/bots/terms/knowledge\",\r\n \"combined\": \"https://aka.ms/bots/terms/channels\",\r\n };\r\n exports.CurrentTermsOfServiceStrings = {\r\n \"cortana\": \"cortana-december2017\",\r\n \"msteams\": \"msteams-december2017\",\r\n \"skype\": \"skype-december2017\",\r\n \"skypeforbusiness\": \"skypeforbusiness-december2017\",\r\n };\r\n var TermsOfServiceDialog = (function (_super) {\r\n __extends(TermsOfServiceDialog, _super);\r\n function TermsOfServiceDialog(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.checkboxTexts = {\r\n \"azure\": Intercom_Resources_DevPortal_1.Resources.tosDialog_AzureTermsCheckbox,\r\n \"cortana\": Intercom_Resources_DevPortal_1.Resources.tosDialog_CortanaTermsCheckbox,\r\n \"combined\": \"\",\r\n };\r\n _this.termsLinkTexts = {\r\n \"azure\": Intercom_Resources_DevPortal_1.Resources.tosDialog_ABSTerms,\r\n \"cortana\": Intercom_Resources_DevPortal_1.Resources.tosDialog_MSKnowledgeGraphTerms,\r\n \"combined\": Intercom_Resources_DevPortal_1.Resources.tosDialog_MSPublicationTerms,\r\n };\r\n _this.channelNames = {\r\n \"msteams\": Intercom_Resources_DevPortal_1.Resources.MicrosoftTeams,\r\n \"skype\": Intercom_Resources_DevPortal_1.Resources.Skype,\r\n \"skypeforbusiness\": Intercom_Resources_DevPortal_1.Resources.SkypeforBusiness,\r\n };\r\n var relevantCheckboxes = props.checkboxes;\r\n var channelsToCombine = props.checkboxes.filter(function (val) { return [\"skype\", \"skypeforbusiness\", \"msteams\"].indexOf(val) >= 0; });\r\n if (channelsToCombine.length > 0) {\r\n relevantCheckboxes = props.checkboxes.filter(function (val) { return [\"skype\", \"skypeforbusiness\", \"msteams\"].indexOf(val) < 0; });\r\n relevantCheckboxes.push(\"combined\");\r\n }\r\n var checkboxStates = relevantCheckboxes.map(function () { return false; });\r\n _this.state = {\r\n agreeButtonEnabled: false,\r\n checkboxStates: checkboxStates\r\n };\r\n return _this;\r\n }\r\n TermsOfServiceDialog.prototype.checkboxesUpdate = function (value, i) {\r\n var checkboxes = this.state.checkboxStates;\r\n checkboxes[i] = value;\r\n this.setState({\r\n agreeButtonEnabled: checkboxes.indexOf(false) < 0,\r\n checkboxStates: checkboxes\r\n });\r\n };\r\n TermsOfServiceDialog.prototype.renderCheckboxes = function () {\r\n var _this = this;\r\n var checkboxes = this.props.checkboxes;\r\n var channelsToCombine = checkboxes.filter(function (val) { return [\"skype\", \"skypeforbusiness\", \"msteams\"].indexOf(val) >= 0; });\r\n if (channelsToCombine.length > 0) {\r\n checkboxes = checkboxes.filter(function (val) { return [\"skype\", \"skypeforbusiness\", \"msteams\"].indexOf(val) < 0; });\r\n var baseResource = channelsToCombine.length === 1 ? Intercom_Resources_DevPortal_1.Resources.tosDialog_CombinedTermsCheckboxOneChannel : Intercom_Resources_DevPortal_1.Resources.tosDialog_CombinedTermsCheckboxMultiChannels;\r\n var channelNamesList = channelsToCombine.map(function (channel) { return _this.channelNames[channel]; });\r\n this.checkboxTexts.combined = _.template(baseResource)({ \"channelslist\": LocalizationUtils_1.localizeAndList(channelNamesList) });\r\n checkboxes.push(\"combined\");\r\n }\r\n return checkboxes.map(function (checkbox, i) {\r\n if (_this.checkboxTexts[checkbox]) {\r\n var links = [\r\n {\r\n text: _this.termsLinkTexts[checkbox],\r\n href: exports.TermsOfServiceLinks[checkbox],\r\n target: \"_blank\"\r\n }, {\r\n text: Intercom_Resources_DevPortal_1.Resources.tosDialog_MSPrivacyStatement,\r\n href: exports.TermsOfServiceLinks.privacy,\r\n target: \"_blank\"\r\n }\r\n ];\r\n return (React.createElement(\"div\", { className: \"tos-checkbox\", key: checkbox + \"TOS\" },\r\n React.createElement(\"label\", { className: \"m-checkbox-container\" },\r\n React.createElement(\"div\", { className: \"tos-checkbox-alignment\" },\r\n React.createElement(\"input\", { className: \"m-checkbox\", type: \"checkbox\", onChange: function (ev) { return _this.checkboxesUpdate(ev.target.checked, i); } }),\r\n React.createElement(\"span\", { className: \"m-icon-Checkbox unchecked\" }),\r\n React.createElement(\"span\", { className: \"m-icon-CheckboxComposite checked\" }),\r\n React.createElement(FormattedMessage_1.FormattedMessage, { message: _this.checkboxTexts[checkbox], links: links, className: \"migration-checkbox-blurb\" })))));\r\n }\r\n });\r\n };\r\n TermsOfServiceDialog.prototype.renderMessageText = function () {\r\n var elements = [React.createElement(\"span\", { key: \"message\" }, this.props.message)];\r\n if (this.props.noticeMessage) {\r\n elements.push(React.createElement(\"b\", { key: \"notice\" }, Intercom_Resources_DevPortal_1.Resources.notice));\r\n elements.push(React.createElement(\"span\", { key: \"notice-text\" }, this.props.noticeMessage));\r\n }\r\n return React.createElement(\"p\", { className: \"message-box-message\" }, elements);\r\n };\r\n TermsOfServiceDialog.prototype.render = function () {\r\n return (React.createElement(\"div\", { className: \"terms-of-service-dialog \" + (this.props.className || '') },\r\n React.createElement(\"h2\", null, this.props.header),\r\n this.props.message ? this.renderMessageText() : null,\r\n this.renderCheckboxes(),\r\n React.createElement(\"div\", { className: \"button-panel\" },\r\n React.createElement(\"button\", { type: \"button\", className: \"cancel-button m-button-secondary-md\" }, Intercom_Resources_DevPortal_1.Resources.cancelButtonText),\r\n React.createElement(\"button\", { type: \"submit\", className: \"ok-button m-button-primary-md\", disabled: !this.state.agreeButtonEnabled }, \"Agree\"))));\r\n };\r\n return TermsOfServiceDialog;\r\n }(React.Component));\r\n exports.TermsOfServiceDialog = TermsOfServiceDialog;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 480 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(164)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, WebChat_1) {\r\n var WebChatPage = (function (_super) {\r\n __extends(WebChatPage, _super);\r\n function WebChatPage() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n WebChatPage.prototype.render = function () {\r\n return (React.createElement(\"div\", { className: \"webchat-page\" },\r\n React.createElement(WebChat_1.WebChat, { className: \"bot-page-webchat\", bot: this.props.bot, authoringDirty: false, authoringError: false })));\r\n };\r\n return WebChatPage;\r\n }(React.Component));\r\n exports.WebChatPage = WebChatPage;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 481 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React) {\r\n var CookieInform = (function (_super) {\r\n __extends(CookieInform, _super);\r\n function CookieInform(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n CookieInform.prototype.render = function () {\r\n return (React.createElement(\"div\", { className: \"status-bar info cookie-inform\" },\r\n \"This site uses cookies for analytics, personalized content and ads. By continuing to browse this site, you agree to this use.\\u00A0\",\r\n React.createElement(\"a\", { href: \"//go.microsoft.com/fwlink/?linkid=845480\", target: \"_blank\" }, \"Learn more\"),\r\n \".\"));\r\n };\r\n return CookieInform;\r\n }(React.Component));\r\n exports.CookieInform = CookieInform;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 482 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(62)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ProgressRingControl_1) {\r\n var DialogStatusProps = (function () {\r\n function DialogStatusProps() {\r\n }\r\n return DialogStatusProps;\r\n }());\r\n exports.DialogStatusProps = DialogStatusProps;\r\n var DialogStatusState = (function () {\r\n function DialogStatusState() {\r\n }\r\n return DialogStatusState;\r\n }());\r\n exports.DialogStatusState = DialogStatusState;\r\n var DialogStatus = (function (_super) {\r\n __extends(DialogStatus, _super);\r\n function DialogStatus(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {};\r\n return _this;\r\n }\r\n DialogStatus.prototype.render = function () {\r\n return (this.state.showing ?\r\n React.createElement(\"div\", { className: \"dialog-status-container\" },\r\n React.createElement(ProgressRingControl_1.ProgressRingControl, { className: \"progress-large\" }),\r\n this.props.statusMessage && React.createElement(\"span\", { className: \"dialog-status-message\" }, this.props.statusMessage)) : null);\r\n };\r\n return DialogStatus;\r\n }(React.Component));\r\n exports.DialogStatus = DialogStatus;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 483 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(14)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, index_1) {\r\n exports.ExpiredSubscrition = function (_a) { return (React.createElement(\"div\", { className: \"status-bar warn\" }, index_1.resourceStrings.expiredAzureSubscription)); };\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 484 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(14)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, index_1) {\r\n var V3Update = (function (_super) {\r\n __extends(V3Update, _super);\r\n function V3Update(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n V3Update.prototype.render = function () {\r\n if (this.props.bot.Version === '1.0') {\r\n return (React.createElement(\"div\", { className: \"status-bar warn\" },\r\n index_1.resourceStrings.v3Update,\r\n \" \",\r\n React.createElement(\"a\", { href: \"https://aka.ms/bf-migrate\", target: \"_blank\" }, \"Learn\\u00A0how\")));\r\n }\r\n return null;\r\n };\r\n return V3Update;\r\n }(React.Component));\r\n exports.V3Update = V3Update;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 485 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n exports.showNetworkIcon = function (show) { };\r\n exports.ajax = _ajax;\r\n exports.urlPrefix = '';\r\n exports.ajaxHeaders = null;\r\n function _ajax(settings_) {\r\n var settings = $.extend({}, settings_, { url: exports.urlPrefix + settings_.url });\r\n if (settings.data)\r\n settings.contentType = 'application/json';\r\n if (exports.ajaxHeaders)\r\n settings.headers = exports.ajaxHeaders;\r\n exports.showNetworkIcon(true);\r\n return $.ajax(settings).always(function () { return exports.showNetworkIcon(false); });\r\n }\r\n var BotsClient = (function () {\r\n function BotsClient() {\r\n }\r\n BotsClient.getBotContactCard = function (botId, t) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: \"/api/bots/\" + botId + '?' + $.param({ t: t }),\r\n type: 'GET',\r\n });\r\n };\r\n return BotsClient;\r\n }());\r\n exports.BotsClient = BotsClient;\r\n var BotDirectoryClient = (function () {\r\n function BotDirectoryClient() {\r\n }\r\n BotDirectoryClient.getBots = function (searchString, pageSize, page, sort) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotDirectory' + '?' + $.param({ searchString: searchString, pageSize: pageSize, page: page, sort: sort }),\r\n type: 'GET',\r\n });\r\n };\r\n BotDirectoryClient.featuredBots = function (pageSize, page, sort) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotDirectory/Featured' + '?' + $.param({ pageSize: pageSize, page: page, sort: sort }),\r\n type: 'GET',\r\n });\r\n };\r\n BotDirectoryClient.getBot = function (id, token) {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotDirectory/GetBot' + '?' + $.param({ id: id, token: token }),\r\n type: 'GET',\r\n });\r\n };\r\n BotDirectoryClient.iBot = function () {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotDirectory',\r\n type: 'GET',\r\n });\r\n };\r\n BotDirectoryClient.getChannels = function () {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/BotDirectory/GetChannels',\r\n type: 'GET',\r\n });\r\n };\r\n BotDirectoryClient.getBotVCard = function (botId) {\r\n return exports.ajax({\r\n url: \"/api/BotDirectory/\" + botId,\r\n type: 'GET',\r\n });\r\n };\r\n return BotDirectoryClient;\r\n }());\r\n exports.BotDirectoryClient = BotDirectoryClient;\r\n var RssClient = (function () {\r\n function RssClient() {\r\n }\r\n RssClient.getAll = function () {\r\n return exports.ajax({\r\n dataType: 'json',\r\n url: '/api/Rss',\r\n type: 'GET',\r\n });\r\n };\r\n return RssClient;\r\n }());\r\n exports.RssClient = RssClient;\r\n var SortOrder;\r\n (function (SortOrder) {\r\n SortOrder[SortOrder[\"ByName\"] = 0] = \"ByName\";\r\n SortOrder[SortOrder[\"ByDate\"] = 1] = \"ByDate\";\r\n SortOrder[SortOrder[\"ByRelevance\"] = 2] = \"ByRelevance\";\r\n SortOrder[SortOrder[\"ByDisplayOrder\"] = 3] = \"ByDisplayOrder\";\r\n SortOrder[SortOrder[\"ByActivityRank\"] = 4] = \"ByActivityRank\";\r\n SortOrder[SortOrder[\"ByDateAsc\"] = 5] = \"ByDateAsc\";\r\n })(SortOrder = exports.SortOrder || (exports.SortOrder = {}));\r\n var BotOptions;\r\n (function (BotOptions) {\r\n BotOptions[BotOptions[\"None\"] = 0] = \"None\";\r\n BotOptions[BotOptions[\"AllMessages\"] = 2] = \"AllMessages\";\r\n BotOptions[BotOptions[\"AutoTranslate\"] = 4] = \"AutoTranslate\";\r\n BotOptions[BotOptions[\"DisableLogging\"] = 8] = \"DisableLogging\";\r\n BotOptions[BotOptions[\"DisableMentionStripping\"] = 16] = \"DisableMentionStripping\";\r\n })(BotOptions = exports.BotOptions || (exports.BotOptions = {}));\r\n var ChannelOptions;\r\n (function (ChannelOptions) {\r\n ChannelOptions[ChannelOptions[\"None\"] = 0] = \"None\";\r\n ChannelOptions[ChannelOptions[\"DisableLogging\"] = 1] = \"DisableLogging\";\r\n ChannelOptions[ChannelOptions[\"Hidden\"] = 2] = \"Hidden\";\r\n ChannelOptions[ChannelOptions[\"NotListable\"] = 4] = \"NotListable\";\r\n })(ChannelOptions = exports.ChannelOptions || (exports.ChannelOptions = {}));\r\n var DayOfWeek;\r\n (function (DayOfWeek) {\r\n DayOfWeek[DayOfWeek[\"Sunday\"] = 0] = \"Sunday\";\r\n DayOfWeek[DayOfWeek[\"Monday\"] = 1] = \"Monday\";\r\n DayOfWeek[DayOfWeek[\"Tuesday\"] = 2] = \"Tuesday\";\r\n DayOfWeek[DayOfWeek[\"Wednesday\"] = 3] = \"Wednesday\";\r\n DayOfWeek[DayOfWeek[\"Thursday\"] = 4] = \"Thursday\";\r\n DayOfWeek[DayOfWeek[\"Friday\"] = 5] = \"Friday\";\r\n DayOfWeek[DayOfWeek[\"Saturday\"] = 6] = \"Saturday\";\r\n })(DayOfWeek = exports.DayOfWeek || (exports.DayOfWeek = {}));\r\n var ContactType;\r\n (function (ContactType) {\r\n ContactType[ContactType[\"Unknown\"] = 0] = \"Unknown\";\r\n ContactType[ContactType[\"Email\"] = 1] = \"Email\";\r\n ContactType[ContactType[\"GroupMe\"] = 2] = \"GroupMe\";\r\n ContactType[ContactType[\"Kik\"] = 3] = \"Kik\";\r\n ContactType[ContactType[\"PhoneNumber\"] = 4] = \"PhoneNumber\";\r\n ContactType[ContactType[\"Skype\"] = 5] = \"Skype\";\r\n ContactType[ContactType[\"Slack\"] = 6] = \"Slack\";\r\n ContactType[ContactType[\"Telegram\"] = 7] = \"Telegram\";\r\n ContactType[ContactType[\"Twitter\"] = 8] = \"Twitter\";\r\n ContactType[ContactType[\"Web\"] = 9] = \"Web\";\r\n ContactType[ContactType[\"API\"] = 10] = \"API\";\r\n ContactType[ContactType[\"Facebook\"] = 11] = \"Facebook\";\r\n })(ContactType = exports.ContactType || (exports.ContactType = {}));\r\n var ChannelStatusType;\r\n (function (ChannelStatusType) {\r\n ChannelStatusType[ChannelStatusType[\"OK\"] = 0] = \"OK\";\r\n ChannelStatusType[ChannelStatusType[\"Warning\"] = 1] = \"Warning\";\r\n ChannelStatusType[ChannelStatusType[\"Error\"] = 2] = \"Error\";\r\n })(ChannelStatusType = exports.ChannelStatusType || (exports.ChannelStatusType = {}));\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 486 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(57)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, $) {\r\n function downloadBlob(settings) {\r\n var deferred = $.Deferred();\r\n var req = new XMLHttpRequest();\r\n req.open(settings.type, settings.url, true);\r\n if (settings.dataType) {\r\n req.overrideMimeType(settings.dataType);\r\n }\r\n if (settings.headers) {\r\n _.each(settings.headers, function (val, key) {\r\n req.setRequestHeader(key, val);\r\n });\r\n }\r\n req.responseType = \"blob\";\r\n if (settings.beforeSend) {\r\n settings.beforeSend(null, settings);\r\n }\r\n req.onreadystatechange = function () {\r\n if (req.readyState == XMLHttpRequest.DONE) {\r\n if (req.status >= 200 && req.status < 300 && req.response) {\r\n deferred.resolve(req.response);\r\n }\r\n else {\r\n deferred.reject(req);\r\n }\r\n }\r\n };\r\n req.send();\r\n return deferred;\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = downloadBlob;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 487 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n function default_1(time) {\r\n var timestamp = time.getTime();\r\n var milliseconds = Date.now() - timestamp;\r\n var minutes = Math.floor(milliseconds / (1000 * 60));\r\n var hours = Math.floor(minutes / 60);\r\n if (minutes < 1)\r\n return [\"Just now\", 60 * 1000];\r\n if (minutes === 1)\r\n return [\"1 minute ago\", 60 * 1000];\r\n if (hours < 1)\r\n return [minutes + \" minutes ago\", 60 * 1000];\r\n if (hours === 1)\r\n return [\"1 hour ago\", 60 * 60 * 1000];\r\n if (hours < 5)\r\n return [hours + \" hours ago\", 60 * 60 * 1000 * (5 - hours)];\r\n if (hours <= 24)\r\n return [\"today\", 60 * 60 * 1000 * (24 - hours)];\r\n if (hours <= 48)\r\n return [\"yesterday\", 60 * 60 * 1000 * (48 - hours)];\r\n return [new Date(milliseconds).toLocaleDateString(), null];\r\n }\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = default_1;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 488 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n var KnownBrowsers;\r\n (function (KnownBrowsers) {\r\n KnownBrowsers[KnownBrowsers[\"Safari\"] = 0] = \"Safari\";\r\n KnownBrowsers[KnownBrowsers[\"Edge\"] = 1] = \"Edge\";\r\n KnownBrowsers[KnownBrowsers[\"Chrome\"] = 2] = \"Chrome\";\r\n KnownBrowsers[KnownBrowsers[\"Firefox\"] = 3] = \"Firefox\";\r\n KnownBrowsers[KnownBrowsers[\"Opera\"] = 4] = \"Opera\";\r\n KnownBrowsers[KnownBrowsers[\"CriOS\"] = 5] = \"CriOS\";\r\n })(KnownBrowsers = exports.KnownBrowsers || (exports.KnownBrowsers = {}));\r\n var uaRegex = /([^\\s\\(]\\S*[^\\s\\)])(\\s*\\([^\\)]+\\)\\s*){0,1}\\s*/g;\r\n function parseUserAgent() {\r\n var agentString = navigator.userAgent;\r\n uaRegex.lastIndex = 0;\r\n var matches = uaRegex.exec(agentString);\r\n var result = {};\r\n while (matches != null) {\r\n if (matches.length > 1) {\r\n var match = matches[1];\r\n if (match && match[0] != '(') {\r\n var parts = match.split('/');\r\n result[parts[0]] = true;\r\n }\r\n }\r\n matches = uaRegex.exec(agentString);\r\n }\r\n return result;\r\n }\r\n exports.parseUserAgent = parseUserAgent;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 489 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React) {\r\n var AutoResizeTextArea = (function (_super) {\r\n __extends(AutoResizeTextArea, _super);\r\n function AutoResizeTextArea(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {};\r\n return _this;\r\n }\r\n AutoResizeTextArea.prototype.autoSize = function () {\r\n if (this.ta) {\r\n if (this.ta.scrollHeight > this.ta.clientHeight) {\r\n $(this.ta).css('height', this.ta.scrollHeight + 10 + \"px\");\r\n }\r\n }\r\n };\r\n AutoResizeTextArea.prototype.componentDidMount = function () {\r\n this.autoSize();\r\n };\r\n AutoResizeTextArea.prototype.render = function () {\r\n var _this = this;\r\n return (React.createElement(\"textarea\", { value: this.props.value, className: this.props.className, ref: function (x) { return _this.ta = x; }, id: this.props.id, placeholder: this.props.placeHolder, maxLength: this.props.maxLength, onChange: this.props.onChange, onKeyUp: _.debounce(function () { return _this.autoSize(); }, 100, true) }));\r\n };\r\n return AutoResizeTextArea;\r\n }(React.Component));\r\n exports.AutoResizeTextArea = AutoResizeTextArea;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 490 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(82), __webpack_require__(485)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, BotImageControl_1, Rest) {\r\n var PAGING_THRESHOLD = 400;\r\n exports.DEFAULT_SORT_SPEC = {\r\n defaultSortField: Rest.SortOrder.ByActivityRank,\r\n supportedSortFields: [Rest.SortOrder.ByActivityRank, Rest.SortOrder.ByName, Rest.SortOrder.ByDate]\r\n };\r\n exports.FEATURED_SORT_SPEC = {\r\n defaultSortField: Rest.SortOrder.ByDisplayOrder,\r\n supportedSortFields: [Rest.SortOrder.ByDisplayOrder, Rest.SortOrder.ByName, Rest.SortOrder.ByDate]\r\n };\r\n var SORT_LABELS = ['Name', 'Date', 'Relevance', 'Feature', 'Activity'];\r\n var BotGalleryControl = (function (_super) {\r\n __extends(BotGalleryControl, _super);\r\n function BotGalleryControl(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {\r\n bots: [],\r\n loadingMore: true,\r\n hasMoreBots: true,\r\n sortOrder: (props.sortSpec || exports.DEFAULT_SORT_SPEC).defaultSortField\r\n };\r\n if (_this.props.onNextPage) {\r\n _this.scrollHandler = _.debounce(_.bind(_this.handleScroll, _this), 100, false);\r\n }\r\n return _this;\r\n }\r\n BotGalleryControl.prototype.componentDidMount = function () {\r\n if (this.props.onNextPage && this.props.infiniteScroll) {\r\n $(window).bind('scroll', this.scrollHandler);\r\n }\r\n };\r\n BotGalleryControl.prototype.componentWillUnmount = function () {\r\n if (this.scrollHandler && this.props.infiniteScroll) {\r\n $(window).unbind('scroll', this.scrollHandler);\r\n }\r\n };\r\n BotGalleryControl.prototype.renderLoadingMessage = function () {\r\n var pagingMessage = \"Loading...\";\r\n if (this.state.bots && this.state.bots.length) {\r\n var from = this.state.bots.length;\r\n var to = from + this.props.pageSize;\r\n if (_.isNumber(this.state.totalCount)) {\r\n to = Math.min(this.state.totalCount, to);\r\n pagingMessage = \"Loading \" + from + \" to \" + to + \" of \" + this.state.totalCount + \"...\";\r\n }\r\n else {\r\n pagingMessage = \"Loading \" + from + \" to \" + to;\r\n }\r\n }\r\n return (React.createElement(\"div\", { className: \"paging-progress\" }, pagingMessage));\r\n };\r\n BotGalleryControl.prototype.renderLoadMoreLink = function () {\r\n var _this = this;\r\n if (_.isNumber(this.state.totalCount)) {\r\n var curCount = this.state.bots ? this.state.bots.length : 0;\r\n var nextPageSize = this.props.pageSize;\r\n nextPageSize = Math.min(nextPageSize, this.state.totalCount - curCount);\r\n var linkText = 'Load More';\r\n if (nextPageSize) {\r\n return (React.createElement(\"div\", { className: \"paging-progress\" },\r\n React.createElement(\"a\", { href: '', onClick: function (e) { e.preventDefault(); _this.props.onNextPage(); return false; } }, linkText)));\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n return this.renderLoadingMessage();\r\n };\r\n BotGalleryControl.prototype.render = function () {\r\n var paging = null;\r\n if (this.props.onNextPage) {\r\n if (this.state.loadingMore) {\r\n paging = this.renderLoadingMessage();\r\n }\r\n else {\r\n paging = this.renderLoadMoreLink();\r\n }\r\n }\r\n return (React.createElement(\"div\", { className: \"page-grid\", id: this.props.id },\r\n React.createElement(\"div\", { className: \"gallery-header\" },\r\n React.createElement(\"h2\", null, this.props.title),\r\n this.renderSortField()),\r\n React.createElement(\"div\", null,\r\n this.renderSortField(),\r\n this.renderBots(this.state.bots),\r\n paging)));\r\n };\r\n BotGalleryControl.prototype.renderSortOption = function (field) {\r\n if (field == this.state.sortOrder) {\r\n return React.createElement(\"option\", { value: '' + field, selected: true }, SORT_LABELS[field]);\r\n }\r\n return React.createElement(\"option\", { value: '' + field }, SORT_LABELS[field]);\r\n };\r\n BotGalleryControl.prototype.renderSortField = function () {\r\n var _this = this;\r\n var spec = this.props.sortSpec;\r\n if (!spec) {\r\n return null;\r\n }\r\n return (React.createElement(\"div\", { className: \"sort-toggle\" },\r\n React.createElement(\"label\", null, \"Sort: \"),\r\n React.createElement(\"select\", { ref: \"sort-select\", name: \"sort_select\", onChange: function (evt) { return _this.handleSortChange(evt); } }, spec.supportedSortFields.map(function (f) { return _this.renderSortOption(f); }))));\r\n };\r\n BotGalleryControl.prototype.handleSortChange = function (evt) {\r\n var target = evt.target;\r\n this.props.onSort(target['value']);\r\n };\r\n BotGalleryControl.prototype.handleScroll = function () {\r\n var $gallery = $(ReactDOM.findDOMNode(this.refs['gallery']));\r\n var $win = $(window);\r\n var galleryBottom = $gallery.scrollTop() + $gallery.height();\r\n var windowBottom = $win.scrollTop() + $win.height();\r\n if (galleryBottom - windowBottom < PAGING_THRESHOLD && !this.state.loadingMore) {\r\n this.props.onNextPage();\r\n }\r\n };\r\n BotGalleryControl.prototype.renderBots = function (bots) {\r\n var _this = this;\r\n var items = bots.map(function (bot) { return _this.renderBot(bot); });\r\n return (React.createElement(\"div\", { className: \"inner-grid\" }, items));\r\n };\r\n BotGalleryControl.prototype.renderBot = function (bot) {\r\n var botDetailsUrl = (this.props.baseUrl || '/') + \"bot?id=\" + bot.Id;\r\n return (React.createElement(\"div\", { className: \"agent-card grid-card hoverable\", key: bot.Id },\r\n React.createElement(\"a\", { href: botDetailsUrl },\r\n React.createElement(BotImageControl_1.BotImageControl, { className: \"image-cell\", bot: bot, defaultIconUrl: this.props.defaultBotIconUrl }),\r\n React.createElement(\"div\", null,\r\n React.createElement(\"div\", { className: \"info-cell\" },\r\n React.createElement(\"div\", { className: \"title\" }, bot.Name),\r\n React.createElement(\"div\", { className: \"publisher\" }, bot.Publisher)),\r\n React.createElement(\"div\", { className: \"desc-cell\" },\r\n React.createElement(\"div\", { className: \"description\" }, bot.Description))))));\r\n };\r\n return BotGalleryControl;\r\n }(React.Component));\r\n exports.BotGalleryControl = BotGalleryControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 491 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(82)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, BotImageControl_1) {\r\n var leadingHash = new RegExp(\"^#*\");\r\n var BotHeaderCard = (function (_super) {\r\n __extends(BotHeaderCard, _super);\r\n function BotHeaderCard(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {\r\n bot: _this.props.initialBot,\r\n cardLinks: props.initialCardLinks\r\n };\r\n return _this;\r\n }\r\n BotHeaderCard.prototype.renderHashtags = function () {\r\n var hashText = this.state.bot.Hashtags.map(function (tag) { return tag.replace(leadingHash, \"#\"); }).join(', ');\r\n return hashText ? React.createElement(\"li\", null, hashText) : null;\r\n };\r\n BotHeaderCard.prototype.render = function () {\r\n var className = \"grid-card-base bot-card-hero \" + (this.props.className || '');\r\n return (React.createElement(\"div\", { className: className },\r\n React.createElement(BotImageControl_1.BotImageControl, { bot: this.state.bot, className: \"image-cell\", transparentBackground: this.props.transparentBackground, defaultIconUrl: this.props.defaultIconUrl }),\r\n React.createElement(\"div\", { className: \"bot-content\" },\r\n React.createElement(\"h3\", null, this.state.bot.Name),\r\n React.createElement(\"ul\", { className: \"ul-vert-bar\" },\r\n React.createElement(\"li\", { className: \"publisher\" }, this.state.bot.Publisher),\r\n this.renderHashtags())),\r\n React.createElement(\"div\", { className: \"card-links\" }, this.state.cardLinks),\r\n this.props.children));\r\n };\r\n return BotHeaderCard;\r\n }(React.Component));\r\n exports.BotHeaderCard = BotHeaderCard;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 492 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(168), __webpack_require__(61), __webpack_require__(278), __webpack_require__(62)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ProgressBarControl_1, logger_1, browserCaps_1, ProgressRingControl_1) {\r\n var DownloadLinkControl = (function (_super) {\r\n __extends(DownloadLinkControl, _super);\r\n function DownloadLinkControl(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.pendingDownload = false;\r\n return _this;\r\n }\r\n DownloadLinkControl.prototype.onDownload = function () {\r\n var _this = this;\r\n var fileName = this.props.fileName;\r\n if (this.props.downloadBlob) {\r\n this.pendingDownload = true;\r\n this.props.downloadBlob().then(function (blob) {\r\n if (navigator.msSaveBlob) {\r\n navigator.msSaveBlob(blob, _this.props.fileName);\r\n }\r\n else {\r\n if (browserCaps_1.default('a', 'download')) {\r\n var $link = $('').text(fileName);\r\n $link.appendTo($('body'));\r\n var blobUrl = URL.createObjectURL(blob);\r\n $link.attr('download', fileName).attr('href', blobUrl);\r\n $link[0].click();\r\n window.URL.revokeObjectURL(blobUrl);\r\n $link.remove();\r\n }\r\n else {\r\n logger_1.default.debug('no download support, expect blobUrl property to be set');\r\n }\r\n }\r\n }).always(function () {\r\n _this.pendingDownload = false;\r\n _this.forceUpdate();\r\n });\r\n this.forceUpdate();\r\n }\r\n else {\r\n logger_1.default.debug('now downloadBlob found');\r\n }\r\n };\r\n DownloadLinkControl.prototype.renderDownloadButton = function () {\r\n var _this = this;\r\n var pending = this.pendingDownload || !!this.props.pendingDownload;\r\n var label = pending ? 'Downloading' : 'Download zip file';\r\n if (this.props.blobUrl) {\r\n return (React.createElement(\"a\", { className: \"light-buttton\", href: this.props.blobUrl, download: this.props.fileName }, label));\r\n }\r\n return (React.createElement(\"button\", { className: \"light-button\", disabled: pending, onClick: function (x) { return _this.onDownload(); } },\r\n pending ? React.createElement(ProgressRingControl_1.ProgressRingControl, { className: \"downloading-zip-progress\" }) : null,\r\n label));\r\n };\r\n DownloadLinkControl.prototype.render = function () {\r\n var _this = this;\r\n var fileName = this.props.fileName;\r\n if (this.props.asButton) {\r\n return this.renderDownloadButton();\r\n }\r\n if (this.pendingDownload || this.props.pendingDownload) {\r\n return (React.createElement(\"div\", { className: \"pending-download\" },\r\n React.createElement(\"label\", null, this.props.pendingDownload || 'downloading'),\r\n React.createElement(ProgressBarControl_1.ProgressBarControl, { loading: true })));\r\n }\r\n var link = this.props.blobUrl ?\r\n React.createElement(\"a\", { href: this.props.blobUrl, download: fileName }, fileName)\r\n :\r\n React.createElement(\"a\", { href: '#', onClick: function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n _this.onDownload();\r\n } }, fileName);\r\n return link;\r\n };\r\n return DownloadLinkControl;\r\n }(React.Component));\r\n exports.DownloadLinkControl = DownloadLinkControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 493 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(57)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, $) {\r\n var ExpandableTextControl = (function (_super) {\r\n __extends(ExpandableTextControl, _super);\r\n function ExpandableTextControl(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = { expanded: false, expandable: false, singleLine: false };\r\n return _this;\r\n }\r\n ExpandableTextControl.prototype.componentDidMount = function () {\r\n var text = $(ReactDOM.findDOMNode(this.refs['root'])).find('>span')[0];\r\n if (text) {\r\n var textHeight = text.scrollHeight;\r\n if (textHeight > $(text).innerHeight()) {\r\n this.setState({ expandable: true, expanded: false });\r\n }\r\n else {\r\n if (textHeight < parseFloat($(text).css('line-height')) * parseInt($(text).css('font-size')) * 2) {\r\n this.setState({ singleLine: true });\r\n }\r\n }\r\n }\r\n };\r\n ExpandableTextControl.prototype.componentWillUnmount = function () {\r\n };\r\n ExpandableTextControl.prototype.toggle = function () {\r\n this.setState({ expanded: !this.state.expanded });\r\n };\r\n ExpandableTextControl.prototype.render = function () {\r\n var _this = this;\r\n var more = React.createElement(\"div\", { ref: \"exapndo\", className: this.state.expandable ? \"expando\" : \"expando hidden\", onClick: function () { return _this.toggle(); } }, this.state.expanded ? this.props.collapseTitle : this.props.expandTitle);\r\n var classes = (this.props.className || '') + \" expandable-text \" + (this.state.expanded ? 'expanded' : 'collapsed') + \" \" + (this.state.singleLine ? 'single-line' : '');\r\n return (React.createElement(\"div\", { ref: \"root\", className: classes },\r\n this.props.content,\r\n more));\r\n };\r\n return ExpandableTextControl;\r\n }(React.Component));\r\n exports.ExpandableTextControl = ExpandableTextControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 494 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React) {\r\n var FooterControl = (function (_super) {\r\n __extends(FooterControl, _super);\r\n function FooterControl(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n FooterControl.prototype.render = function () {\r\n return (React.createElement(\"div\", { className: \"outline footer\" },\r\n React.createElement(\"ul\", null,\r\n React.createElement(\"li\", null,\r\n React.createElement(\"a\", { href: \"//aka.ms/bf-contactus\" }, \"Contact us\")),\r\n React.createElement(\"li\", null,\r\n React.createElement(\"a\", { href: \"//aka.ms/bf-privacy\" }, \"Privacy & cookies\")),\r\n this.props.children,\r\n React.createElement(\"li\", null, \"\\u00a9 2016 Microsoft\"))));\r\n };\r\n return FooterControl;\r\n }(React.Component));\r\n exports.FooterControl = FooterControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 495 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React) {\r\n var splitRegex = /({\\d+})/g;\r\n var matchRegex = /{(\\d+)}/;\r\n exports.FormattedMessage = function (props) {\r\n if (!props.message) {\r\n return null;\r\n }\r\n if (!props.links || props.links.length === 0) {\r\n return React.createElement(\"span\", null, props.message);\r\n }\r\n var segments = props.message.split(splitRegex);\r\n var children = segments.map(function (segment, idx) {\r\n var matches = segment.match(matchRegex);\r\n if (matches) {\r\n var index = parseInt(matches[1], 10);\r\n if (index >= 0 && index < props.links.length) {\r\n var link = props.links[index];\r\n var role = link.role || (link.action ? \"button\" : \"link\");\r\n return React.createElement(\"span\", { key: idx },\r\n React.createElement(\"a\", { href: link.href || null, role: role, onClick: link.action, target: link.target }, link.text));\r\n }\r\n }\r\n return React.createElement(\"span\", { key: idx }, segment);\r\n });\r\n return React.createElement(\"span\", { className: props.className || \"\" }, children);\r\n };\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 496 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(19)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, InFrame_1) {\r\n var HeaderControl = (function (_super) {\r\n __extends(HeaderControl, _super);\r\n function HeaderControl(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n HeaderControl.prototype.render = function () {\r\n if (!this.props.showInFrame && InFrame_1.default()) {\r\n return null;\r\n }\r\n var environmentDisplay = null;\r\n if (this.props.environment != 'prod') {\r\n environmentDisplay = React.createElement(\"span\", { className: \"environment\" }, '[ ' + this.props.environment + ' environment ]');\r\n }\r\n return (React.createElement(\"header\", null,\r\n React.createElement(\"div\", { className: \"outline\" },\r\n React.createElement(\"div\", { className: \"header\" },\r\n React.createElement(\"a\", { className: \"logo\", href: \"//www.microsoft.com\" },\r\n React.createElement(\"svg\", { className: \"svgicon svgicon-microsoft-color-logo\", \"aria-label\": \"Microsoft\" },\r\n React.createElement(\"use\", { xlinkHref: \"Client/Images/symbol-defs.svg#svgicon-microsoft-color-logo\" }))),\r\n environmentDisplay,\r\n this.props.children))));\r\n };\r\n return HeaderControl;\r\n }(React.Component));\r\n exports.HeaderControl = HeaderControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 497 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React) {\r\n var SiteStatusControl = (function (_super) {\r\n __extends(SiteStatusControl, _super);\r\n function SiteStatusControl(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n SiteStatusControl.prototype.render = function () {\r\n return (React.createElement(\"div\", { className: \"outline site-status \" + (this.props.className || \"\") },\r\n React.createElement(\"img\", { className: \"error-icon\", src: \"//\" + this.props.cdnEndpoint + \"/bot-icons-v1/bot-framework-default-7.png\" }),\r\n this.props.children));\r\n };\r\n return SiteStatusControl;\r\n }(React.Component));\r\n exports.SiteStatusControl = SiteStatusControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 498 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React) {\r\n var SortableListControl = (function (_super) {\r\n __extends(SortableListControl, _super);\r\n function SortableListControl(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n SortableListControl.prototype.dragOver = function (x, item) {\r\n x.dataTransfer.dropEffect = 'move';\r\n x.preventDefault();\r\n };\r\n SortableListControl.prototype.dropAt = function (x, target) {\r\n var _this = this;\r\n x.preventDefault();\r\n x.dataTransfer.dropEffect = \"move\";\r\n var srcId = x.dataTransfer.getData('source');\r\n var src = _.find(this.props.data, function (item) { return srcId === _this.props.getItemId(item); });\r\n var targetId = this.props.getItemId(target);\r\n this.props.prepend(src, target);\r\n };\r\n SortableListControl.prototype.startDrag = function (x, item) {\r\n x.dataTransfer.setData('source', this.props.getItemId(item));\r\n x.dataTransfer.effectAllowed = \"move\";\r\n };\r\n SortableListControl.prototype.render = function () {\r\n var _this = this;\r\n return (React.createElement(\"ul\", { className: \"sortable-list\" }, _.map(this.props.data, function (item) {\r\n return (React.createElement(\"li\", { className: \"draggable\", draggable: true, key: _this.props.getItemId(item), onDragStart: function (x) { return _this.startDrag(x, item); }, onDrop: function (x) { return _this.dropAt(x, item); }, onDragOver: function (x) { return _this.dragOver(x, item); } }, _this.props.itemTemplate(item)));\r\n })));\r\n };\r\n return SortableListControl;\r\n }(React.Component));\r\n exports.SortableListControl = SortableListControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 499 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(487)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, timestamp_1) {\r\n var timestamps = [];\r\n var interval = undefined;\r\n function watchTimestamp(control) {\r\n timestamps.push(control);\r\n if (_.isUndefined(interval)) {\r\n interval = setInterval(function () {\r\n timestamps.forEach(function (x) { return x.forceUpdate(); });\r\n }, 30000);\r\n }\r\n }\r\n function unwatchTimestamp(control) {\r\n timestamps = timestamps.filter(function (x) { return x != control; });\r\n if (!timestamps.length) {\r\n if (!_.isUndefined(interval)) {\r\n clearInterval(interval);\r\n interval = undefined;\r\n }\r\n }\r\n }\r\n var TimestampControl = (function (_super) {\r\n __extends(TimestampControl, _super);\r\n function TimestampControl(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n TimestampControl.prototype.componentDidMount = function () {\r\n watchTimestamp(this);\r\n };\r\n TimestampControl.prototype.componentWillUnmount = function () {\r\n unwatchTimestamp(this);\r\n };\r\n TimestampControl.prototype.render = function () {\r\n var _this = this;\r\n return (React.createElement(\"span\", { ref: function (x) { return _this.span = x; } }, timestamp_1.default(this.props.time)[0]));\r\n };\r\n return TimestampControl;\r\n }(React.Component));\r\n exports.TimestampControl = TimestampControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 500 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(26)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, Environment_1) {\r\n var FooterControlProps = (function () {\r\n function FooterControlProps() {\r\n }\r\n return FooterControlProps;\r\n }());\r\n exports.FooterControlProps = FooterControlProps;\r\n var FooterControl = (function (_super) {\r\n __extends(FooterControl, _super);\r\n function FooterControl(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.state = {\r\n fixed: _this.props.fixed,\r\n wantUpdates: !_this.props.hasOwnProperty(\"fixed\")\r\n };\r\n return _this;\r\n }\r\n FooterControl.prototype.initFixed = function (element) {\r\n this.fixed = element;\r\n this.initCommon();\r\n };\r\n FooterControl.prototype.initFloating = function (element) {\r\n this.floating = element;\r\n this.initCommon();\r\n };\r\n FooterControl.prototype.initBase = function (element) {\r\n this.base = element;\r\n this.initCommon();\r\n };\r\n FooterControl.prototype.initCommon = function () {\r\n var _this = this;\r\n if (this.state.wantUpdates && this.base && this.fixed && this.floating) {\r\n if (this.props.scrollingClass) {\r\n this.scrollingElement = $(this.props.scrollingClass);\r\n }\r\n else {\r\n this.scrollingElement = $(this.base).parent();\r\n }\r\n if (this.scrollingElement) {\r\n this.scrollHandler = _.debounce(function () { return _this.update(); }, 50, false);\r\n this.scrollingElement.on(\"scroll\", this.scrollHandler);\r\n window.addEventListener(\"resize\", this.scrollHandler);\r\n this.update();\r\n }\r\n }\r\n };\r\n FooterControl.prototype.update = function () {\r\n if (!this.state.wantUpdates || !this.floating || !this.fixed || !this.base)\r\n return;\r\n var prev = $(this.base).prev();\r\n var footer = $(this.floating);\r\n if (footer && prev && prev.offset()) {\r\n var prevTop = prev.offset().top;\r\n var prevHeight = prev.outerHeight();\r\n var footerHeight = footer.outerHeight();\r\n var padding = 20;\r\n if (window.innerHeight - (prevTop + prevHeight + footerHeight + padding) > 0) {\r\n this.showFixed();\r\n }\r\n else {\r\n this.showFloating();\r\n }\r\n }\r\n else {\r\n this.showFixed();\r\n }\r\n };\r\n FooterControl.prototype.showFloating = function () {\r\n if (this.state.fixed)\r\n this.setState({ fixed: false });\r\n };\r\n FooterControl.prototype.showFixed = function () {\r\n if (!this.state.fixed)\r\n this.setState({ fixed: true });\r\n };\r\n FooterControl.prototype.componentWillUnmount = function () {\r\n window.removeEventListener(\"resize\", this.scrollHandler);\r\n if (this.scrollingElement) {\r\n this.scrollingElement.off(\"scroll\", this.scrollHandler);\r\n }\r\n };\r\n FooterControl.prototype.render = function () {\r\n var _this = this;\r\n if (Environment_1.Environment.isInBotFrameworkAzureExtension) {\r\n return null;\r\n }\r\n var additional = [\r\n Environment_1.Environment.isInAzurePortal ? null : React.createElement(\"li\", { key: \"terms\" },\r\n React.createElement(\"a\", { href: this.props.tosUrl, target: \"_blank\" }, \"Terms of use\"))\r\n ];\r\n var content = [\r\n React.createElement(\"ul\", { key: \"footer-items\" },\r\n React.createElement(\"li\", { key: \"contact\" },\r\n React.createElement(\"a\", { href: \"//aka.ms/bf-contactus\", target: \"_blank\" }, \"Contact us\")),\r\n React.createElement(\"li\", { key: \"private\" },\r\n React.createElement(\"a\", { href: \"//aka.ms/bf-privacy\", target: \"_blank\" }, \"Privacy & cookies\")),\r\n this.props.children,\r\n additional,\r\n React.createElement(\"li\", { key: \"copyright\" }, \"\\u00a9 2019 Microsoft\"))\r\n ];\r\n var fixedDisplay = (this.state.fixed ? \"block\" : \"none\");\r\n var floatingDisplay = (this.state.fixed ? \"none\" : \"block\");\r\n return (React.createElement(\"div\", { className: \"site-footer\", ref: function (x) { return _this.initBase(x); } },\r\n React.createElement(\"div\", { className: \"outline footer fixed\", style: { display: fixedDisplay }, ref: function (x) { return _this.initFixed(x); } }, content),\r\n React.createElement(\"div\", { className: \"outline footer floating\", style: { display: floatingDisplay }, ref: function (x) { return _this.initFloating(x); } }, content)));\r\n };\r\n return FooterControl;\r\n }(React.Component));\r\n FooterControl.defaultProps = {\r\n tosUrl: '//aka.ms/bf-terms'\r\n };\r\n exports.FooterControl = FooterControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 501 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(19), __webpack_require__(26), __webpack_require__(169)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, InFrame_1, Environment_1, RuntimeConnectedShade_1) {\r\n var SmallHeaderNavLinks;\r\n (function (SmallHeaderNavLinks) {\r\n SmallHeaderNavLinks[SmallHeaderNavLinks[\"root\"] = 0] = \"root\";\r\n SmallHeaderNavLinks[SmallHeaderNavLinks[\"mybots\"] = 1] = \"mybots\";\r\n SmallHeaderNavLinks[SmallHeaderNavLinks[\"documentation\"] = 2] = \"documentation\";\r\n SmallHeaderNavLinks[SmallHeaderNavLinks[\"blog\"] = 3] = \"blog\";\r\n SmallHeaderNavLinks[SmallHeaderNavLinks[\"register\"] = 4] = \"register\";\r\n SmallHeaderNavLinks[SmallHeaderNavLinks[\"create\"] = 5] = \"create\";\r\n })(SmallHeaderNavLinks = exports.SmallHeaderNavLinks || (exports.SmallHeaderNavLinks = {}));\r\n var HeaderControl = (function (_super) {\r\n __extends(HeaderControl, _super);\r\n function HeaderControl(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.onShadeVisibilityChanged = function (b) {\r\n console.log(\"Shader changed!!\", b);\r\n };\r\n return _this;\r\n }\r\n HeaderControl.prototype.render = function () {\r\n var _this = this;\r\n if (Environment_1.Environment.isInBotFrameworkAzureExtension) {\r\n return null;\r\n }\r\n if (!this.props.showInFrame && InFrame_1.default()) {\r\n return null;\r\n }\r\n var environmentDisplay = null;\r\n if (this.props.environment && this.props.environment != 'prod') {\r\n environmentDisplay = React.createElement(\"span\", { className: \"environment\" }, '[ ' + this.props.environment + ' environment ]');\r\n }\r\n var mainNavLink = (this.props.showMainNavLink)\r\n ? React.createElement(\"a\", { className: \"main-nav-link\", disabled: true, onClick: function (e) { e.preventDefault(); } }, \"Bot Framework\")\r\n : null;\r\n if (this.props.smallHeader) {\r\n var botsClick = function (ev) {\r\n ev.preventDefault();\r\n _this.props.smallHeaderNavHandler(SmallHeaderNavLinks.mybots);\r\n };\r\n var documentationClick = function (ev) {\r\n ev.preventDefault();\r\n _this.props.smallHeaderNavHandler(SmallHeaderNavLinks.documentation);\r\n };\r\n var blogClick = function (ev) {\r\n ev.preventDefault();\r\n _this.props.smallHeaderNavHandler(SmallHeaderNavLinks.blog);\r\n };\r\n return (React.createElement(\"div\", { className: \"small-header cover-container\" },\r\n mainNavLink,\r\n React.createElement(\"a\", { className: \"nav-link\", href: '/bots', onClick: botsClick }, \"My bots\"),\r\n React.createElement(\"a\", { className: \"nav-link\", href: '//docs.microsoft.com/en-us/bot-framework/', onClick: documentationClick }, \"Documentation\"),\r\n React.createElement(\"a\", { className: \"nav-link\", href: 'https://blog.botframework.com', onClick: blogClick }, \"Blog\"),\r\n environmentDisplay,\r\n this.props.children,\r\n React.createElement(RuntimeConnectedShade_1.RuntimeConnectedShade, null)));\r\n }\r\n else {\r\n return (React.createElement(\"header\", { className: \"cover-container\" },\r\n React.createElement(\"div\", { className: \"outline\" },\r\n React.createElement(\"div\", { className: \"header outline\" },\r\n React.createElement(\"a\", { className: \"logo\", href: \"//www.microsoft.com\" },\r\n React.createElement(\"svg\", { className: \"svgicon svgicon-microsoft-color-logo\", \"aria-label\": \"Microsoft\" },\r\n React.createElement(\"use\", { xlinkHref: \"Client/Images/symbol-defs.svg#svgicon-microsoft-color-logo\" }))),\r\n environmentDisplay,\r\n this.props.children)),\r\n React.createElement(RuntimeConnectedShade_1.RuntimeConnectedShade, null)));\r\n }\r\n };\r\n return HeaderControl;\r\n }(React.Component));\r\n exports.HeaderControl = HeaderControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 502 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = (this && this.__extends) || function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0), __webpack_require__(5), __webpack_require__(17), __webpack_require__(19), __webpack_require__(169)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React, ReactDOM, Strings_1, InFrame_1, RuntimeConnectedShade_1) {\r\n var NavLinks;\r\n (function (NavLinks) {\r\n NavLinks[NavLinks[\"root\"] = 0] = \"root\";\r\n NavLinks[NavLinks[\"mybots\"] = 1] = \"mybots\";\r\n NavLinks[NavLinks[\"docs\"] = 2] = \"docs\";\r\n NavLinks[NavLinks[\"directory\"] = 3] = \"directory\";\r\n NavLinks[NavLinks[\"blog\"] = 4] = \"blog\";\r\n NavLinks[NavLinks[\"admin\"] = 5] = \"admin\";\r\n NavLinks[NavLinks[\"reviewbots\"] = 6] = \"reviewbots\";\r\n })(NavLinks = exports.NavLinks || (exports.NavLinks = {}));\r\n var navLinkNames = ['', 'My bots', 'Documentation', 'Bot Directory', 'Blog'];\r\n var navLinkAriaLabel = ['', 'My bots', 'Bot Service documentation', 'Bot Directory', 'Blog'];\r\n function getLinkDisplayText(navLink) {\r\n return navLinkNames[navLink];\r\n }\r\n exports.getLinkDisplayText = getLinkDisplayText;\r\n function normalizeExternalRouteUrl(root, route) {\r\n if (root && root.length) {\r\n if (root.charAt(root.length - 1) !== '/') {\r\n return root + \"/\" + route;\r\n }\r\n else {\r\n return \"\" + root + route;\r\n }\r\n }\r\n return route;\r\n }\r\n exports.normalizeExternalRouteUrl = normalizeExternalRouteUrl;\r\n var JumboHeadControl = (function (_super) {\r\n __extends(JumboHeadControl, _super);\r\n function JumboHeadControl() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n JumboHeadControl.prototype.toggleNavList = function () {\r\n $(ReactDOM.findDOMNode(this.refs['navList'])).toggleClass('expand');\r\n };\r\n JumboHeadControl.prototype.render = function () {\r\n var _this = this;\r\n if (!this.props.showFrame && InFrame_1.default()) {\r\n return null;\r\n }\r\n var rootUrlClassName = this.props.isRoutable(this.props.rootUrl) ? \"appnav\" : null;\r\n return (React.createElement(\"nav\", { className: \"dark-theme cover-container \" + (this.props.className || ''), role: \"navigation\" },\r\n React.createElement(\"div\", { className: \"jumbo outline\" },\r\n React.createElement(\"h1\", { className: \"jumbo-header\" },\r\n React.createElement(\"a\", { href: this.props.rootUrl, className: rootUrlClassName }, Strings_1.resourceStrings.botFramework)),\r\n React.createElement(\"div\", { className: \"header-nav\", role: \"menu\" }, this.props.navLinks.map(function (href, link) {\r\n var linkEnum = link + 1;\r\n if (_this.props.hideDirectory && linkEnum === NavLinks.directory) {\r\n return null;\r\n }\r\n return (React.createElement(\"a\", { href: href, \"aria-label\": navLinkAriaLabel[linkEnum], role: \"menuitem\", key: linkEnum }, navLinkNames[linkEnum]));\r\n })),\r\n this.props.children),\r\n React.createElement(RuntimeConnectedShade_1.RuntimeConnectedShade, null)));\r\n };\r\n return JumboHeadControl;\r\n }(React.Component));\r\n exports.JumboHeadControl = JumboHeadControl;\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 503 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\nvar __rest = (this && this.__rest) || function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n};\r\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, React) {\r\n exports.TooltipParagrah = function (props) {\r\n var tip = props.tip, className = props.className, children = props.children, pProps = __rest(props, [\"tip\", \"className\", \"children\"]);\r\n var tipParagraph = (React.createElement(\"p\", __assign({ className: (className || '') + \" tool-tip-paragraph\" }, pProps),\r\n children,\r\n props.toggleTip\r\n ? React.createElement(\"label\", { className: \"tool-tip-label\", onClick: function (x) {\r\n x.preventDefault();\r\n x.stopPropagation();\r\n props.toggleTip(tip, x.currentTarget);\r\n } }, \"?\")\r\n : null));\r\n return tipParagraph;\r\n };\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 504 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(500), __webpack_require__(501), __webpack_require__(502), __webpack_require__(169), __webpack_require__(503)], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, FooterControl_1, HeaderControl_1, JumboHeadControl_1, RuntimeConnectedShade_1, TooltipParagraph_1) {\r\n function __export(m) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n }\r\n __export(FooterControl_1);\r\n __export(HeaderControl_1);\r\n __export(JumboHeadControl_1);\r\n __export(RuntimeConnectedShade_1);\r\n __export(TooltipParagraph_1);\r\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\n\n/***/ }),\n/* 505 */\n/***/ (function(module, exports) {\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\n\n/***/ }),\n/* 506 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(513), __esModule: true };\n\n/***/ }),\n/* 507 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(514), __esModule: true };\n\n/***/ }),\n/* 508 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(515), __esModule: true };\n\n/***/ }),\n/* 509 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(516), __esModule: true };\n\n/***/ }),\n/* 510 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(517), __esModule: true };\n\n/***/ }),\n/* 511 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _Object$assign = __webpack_require__(170)[\"default\"];\n\nexports[\"default\"] = _Object$assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nexports.__esModule = true;\n\n/***/ }),\n/* 512 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(525);\nmodule.exports = __webpack_require__(83).Object.assign;\n\n/***/ }),\n/* 513 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(84);\nmodule.exports = function create(P, D){\n return $.create(P, D);\n};\n\n/***/ }),\n/* 514 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(84);\nmodule.exports = function defineProperty(it, key, desc){\n return $.setDesc(it, key, desc);\n};\n\n/***/ }),\n/* 515 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(84);\n__webpack_require__(526);\nmodule.exports = function getOwnPropertyDescriptor(it, key){\n return $.getDesc(it, key);\n};\n\n/***/ }),\n/* 516 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(527);\nmodule.exports = __webpack_require__(83).Object.keys;\n\n/***/ }),\n/* 517 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(528);\nmodule.exports = __webpack_require__(83).Object.setPrototypeOf;\n\n/***/ }),\n/* 518 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n/***/ }),\n/* 519 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(287);\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n/***/ }),\n/* 520 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n/***/ }),\n/* 521 */\n/***/ (function(module, exports) {\n\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/* 522 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar $ = __webpack_require__(84)\n , toObject = __webpack_require__(289)\n , IObject = __webpack_require__(286);\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = __webpack_require__(285)(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/* 523 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar getDesc = __webpack_require__(84).getDesc\n , isObject = __webpack_require__(287)\n , anObject = __webpack_require__(519);\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 = __webpack_require__(283)(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/* 524 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(286)\n , defined = __webpack_require__(284);\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n/***/ }),\n/* 525 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(171);\n\n$export($export.S + $export.F, 'Object', {assign: __webpack_require__(522)});\n\n/***/ }),\n/* 526 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = __webpack_require__(524);\n\n__webpack_require__(288)('getOwnPropertyDescriptor', function($getOwnPropertyDescriptor){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n\n/***/ }),\n/* 527 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(289);\n\n__webpack_require__(288)('keys', function($keys){\n return function keys(it){\n return $keys(toObject(it));\n };\n});\n\n/***/ }),\n/* 528 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = __webpack_require__(171);\n$export($export.S, 'Object', {setPrototypeOf: __webpack_require__(523).set});\n\n/***/ }),\n/* 529 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*!\n * Bowser - a browser detector\n * https://github.com/ded/bowser\n * MIT License | (c) Dustin Diaz 2015\n */\n\n!function (root, name, definition) {\n if (typeof module != 'undefined' && module.exports) module.exports = definition()\n else if (true) __webpack_require__(429)(name, definition)\n else root[name] = definition()\n}(this, 'bowser', function () {\n /**\n * See useragents.js for examples of navigator.userAgent\n */\n\n var t = true\n\n function detect(ua) {\n\n function getFirstMatch(regex) {\n var match = ua.match(regex);\n return (match && match.length > 1 && match[1]) || '';\n }\n\n function getSecondMatch(regex) {\n var match = ua.match(regex);\n return (match && match.length > 1 && match[2]) || '';\n }\n\n var iosdevice = getFirstMatch(/(ipod|iphone|ipad)/i).toLowerCase()\n , likeAndroid = /like android/i.test(ua)\n , android = !likeAndroid && /android/i.test(ua)\n , nexusMobile = /nexus\\s*[0-6]\\s*/i.test(ua)\n , nexusTablet = !nexusMobile && /nexus\\s*[0-9]+/i.test(ua)\n , chromeos = /CrOS/.test(ua)\n , silk = /silk/i.test(ua)\n , sailfish = /sailfish/i.test(ua)\n , tizen = /tizen/i.test(ua)\n , webos = /(web|hpw)os/i.test(ua)\n , windowsphone = /windows phone/i.test(ua)\n , samsungBrowser = /SamsungBrowser/i.test(ua)\n , windows = !windowsphone && /windows/i.test(ua)\n , mac = !iosdevice && !silk && /macintosh/i.test(ua)\n , linux = !android && !sailfish && !tizen && !webos && /linux/i.test(ua)\n , edgeVersion = getFirstMatch(/edge\\/(\\d+(\\.\\d+)?)/i)\n , versionIdentifier = getFirstMatch(/version\\/(\\d+(\\.\\d+)?)/i)\n , tablet = /tablet/i.test(ua) && !/tablet pc/i.test(ua)\n , mobile = !tablet && /[^-]mobi/i.test(ua)\n , xbox = /xbox/i.test(ua)\n , result\n\n if (/opera/i.test(ua)) {\n // an old Opera\n result = {\n name: 'Opera'\n , opera: t\n , version: versionIdentifier || getFirstMatch(/(?:opera|opr|opios)[\\s\\/](\\d+(\\.\\d+)?)/i)\n }\n } else if (/opr|opios/i.test(ua)) {\n // a new Opera\n result = {\n name: 'Opera'\n , opera: t\n , version: getFirstMatch(/(?:opr|opios)[\\s\\/](\\d+(\\.\\d+)?)/i) || versionIdentifier\n }\n }\n else if (/SamsungBrowser/i.test(ua)) {\n result = {\n name: 'Samsung Internet for Android'\n , samsungBrowser: t\n , version: versionIdentifier || getFirstMatch(/(?:SamsungBrowser)[\\s\\/](\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/coast/i.test(ua)) {\n result = {\n name: 'Opera Coast'\n , coast: t\n , version: versionIdentifier || getFirstMatch(/(?:coast)[\\s\\/](\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/yabrowser/i.test(ua)) {\n result = {\n name: 'Yandex Browser'\n , yandexbrowser: t\n , version: versionIdentifier || getFirstMatch(/(?:yabrowser)[\\s\\/](\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/ucbrowser/i.test(ua)) {\n result = {\n name: 'UC Browser'\n , ucbrowser: t\n , version: getFirstMatch(/(?:ucbrowser)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/mxios/i.test(ua)) {\n result = {\n name: 'Maxthon'\n , maxthon: t\n , version: getFirstMatch(/(?:mxios)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/epiphany/i.test(ua)) {\n result = {\n name: 'Epiphany'\n , epiphany: t\n , version: getFirstMatch(/(?:epiphany)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/puffin/i.test(ua)) {\n result = {\n name: 'Puffin'\n , puffin: t\n , version: getFirstMatch(/(?:puffin)[\\s\\/](\\d+(?:\\.\\d+)?)/i)\n }\n }\n else if (/sleipnir/i.test(ua)) {\n result = {\n name: 'Sleipnir'\n , sleipnir: t\n , version: getFirstMatch(/(?:sleipnir)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/k-meleon/i.test(ua)) {\n result = {\n name: 'K-Meleon'\n , kMeleon: t\n , version: getFirstMatch(/(?:k-meleon)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (windowsphone) {\n result = {\n name: 'Windows Phone'\n , windowsphone: t\n }\n if (edgeVersion) {\n result.msedge = t\n result.version = edgeVersion\n }\n else {\n result.msie = t\n result.version = getFirstMatch(/iemobile\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/msie|trident/i.test(ua)) {\n result = {\n name: 'Internet Explorer'\n , msie: t\n , version: getFirstMatch(/(?:msie |rv:)(\\d+(\\.\\d+)?)/i)\n }\n } else if (chromeos) {\n result = {\n name: 'Chrome'\n , chromeos: t\n , chromeBook: t\n , chrome: t\n , version: getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.\\d+)?)/i)\n }\n } else if (/chrome.+? edge/i.test(ua)) {\n result = {\n name: 'Microsoft Edge'\n , msedge: t\n , version: edgeVersion\n }\n }\n else if (/vivaldi/i.test(ua)) {\n result = {\n name: 'Vivaldi'\n , vivaldi: t\n , version: getFirstMatch(/vivaldi\\/(\\d+(\\.\\d+)?)/i) || versionIdentifier\n }\n }\n else if (sailfish) {\n result = {\n name: 'Sailfish'\n , sailfish: t\n , version: getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/seamonkey\\//i.test(ua)) {\n result = {\n name: 'SeaMonkey'\n , seamonkey: t\n , version: getFirstMatch(/seamonkey\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/firefox|iceweasel|fxios/i.test(ua)) {\n result = {\n name: 'Firefox'\n , firefox: t\n , version: getFirstMatch(/(?:firefox|iceweasel|fxios)[ \\/](\\d+(\\.\\d+)?)/i)\n }\n if (/\\((mobile|tablet);[^\\)]*rv:[\\d\\.]+\\)/i.test(ua)) {\n result.firefoxos = t\n }\n }\n else if (silk) {\n result = {\n name: 'Amazon Silk'\n , silk: t\n , version : getFirstMatch(/silk\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/phantom/i.test(ua)) {\n result = {\n name: 'PhantomJS'\n , phantom: t\n , version: getFirstMatch(/phantomjs\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/slimerjs/i.test(ua)) {\n result = {\n name: 'SlimerJS'\n , slimer: t\n , version: getFirstMatch(/slimerjs\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/blackberry|\\bbb\\d+/i.test(ua) || /rim\\stablet/i.test(ua)) {\n result = {\n name: 'BlackBerry'\n , blackberry: t\n , version: versionIdentifier || getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (webos) {\n result = {\n name: 'WebOS'\n , webos: t\n , version: versionIdentifier || getFirstMatch(/w(?:eb)?osbrowser\\/(\\d+(\\.\\d+)?)/i)\n };\n /touchpad\\//i.test(ua) && (result.touchpad = t)\n }\n else if (/bada/i.test(ua)) {\n result = {\n name: 'Bada'\n , bada: t\n , version: getFirstMatch(/dolfin\\/(\\d+(\\.\\d+)?)/i)\n };\n }\n else if (tizen) {\n result = {\n name: 'Tizen'\n , tizen: t\n , version: getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.\\d+)?)/i) || versionIdentifier\n };\n }\n else if (/qupzilla/i.test(ua)) {\n result = {\n name: 'QupZilla'\n , qupzilla: t\n , version: getFirstMatch(/(?:qupzilla)[\\s\\/](\\d+(?:\\.\\d+)+)/i) || versionIdentifier\n }\n }\n else if (/chromium/i.test(ua)) {\n result = {\n name: 'Chromium'\n , chromium: t\n , version: getFirstMatch(/(?:chromium)[\\s\\/](\\d+(?:\\.\\d+)?)/i) || versionIdentifier\n }\n }\n else if (/chrome|crios|crmo/i.test(ua)) {\n result = {\n name: 'Chrome'\n , chrome: t\n , version: getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (android) {\n result = {\n name: 'Android'\n , version: versionIdentifier\n }\n }\n else if (/safari|applewebkit/i.test(ua)) {\n result = {\n name: 'Safari'\n , safari: t\n }\n if (versionIdentifier) {\n result.version = versionIdentifier\n }\n }\n else if (iosdevice) {\n result = {\n name : iosdevice == 'iphone' ? 'iPhone' : iosdevice == 'ipad' ? 'iPad' : 'iPod'\n }\n // WTF: version is not part of user agent in web apps\n if (versionIdentifier) {\n result.version = versionIdentifier\n }\n }\n else if(/googlebot/i.test(ua)) {\n result = {\n name: 'Googlebot'\n , googlebot: t\n , version: getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i) || versionIdentifier\n }\n }\n else {\n result = {\n name: getFirstMatch(/^(.*)\\/(.*) /),\n version: getSecondMatch(/^(.*)\\/(.*) /)\n };\n }\n\n // set webkit or gecko flag for browsers based on these engines\n if (!result.msedge && /(apple)?webkit/i.test(ua)) {\n if (/(apple)?webkit\\/537\\.36/i.test(ua)) {\n result.name = result.name || \"Blink\"\n result.blink = t\n } else {\n result.name = result.name || \"Webkit\"\n result.webkit = t\n }\n if (!result.version && versionIdentifier) {\n result.version = versionIdentifier\n }\n } else if (!result.opera && /gecko\\//i.test(ua)) {\n result.name = result.name || \"Gecko\"\n result.gecko = t\n result.version = result.version || getFirstMatch(/gecko\\/(\\d+(\\.\\d+)?)/i)\n }\n\n // set OS flags for platforms that have multiple browsers\n if (!result.windowsphone && !result.msedge && (android || result.silk)) {\n result.android = t\n } else if (!result.windowsphone && !result.msedge && iosdevice) {\n result[iosdevice] = t\n result.ios = t\n } else if (mac) {\n result.mac = t\n } else if (xbox) {\n result.xbox = t\n } else if (windows) {\n result.windows = t\n } else if (linux) {\n result.linux = t\n }\n\n function getWindowsVersion (s) {\n switch (s) {\n case 'NT': return 'NT'\n case 'XP': return 'XP'\n case 'NT 5.0': return '2000'\n case 'NT 5.1': return 'XP'\n case 'NT 5.2': return '2003'\n case 'NT 6.0': return 'Vista'\n case 'NT 6.1': return '7'\n case 'NT 6.2': return '8'\n case 'NT 6.3': return '8.1'\n case 'NT 10.0': return '10'\n default: return undefined\n }\n }\n \n // OS version extraction\n var osVersion = '';\n if (result.windows) {\n osVersion = getWindowsVersion(getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i))\n } else if (result.windowsphone) {\n osVersion = getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i);\n } else if (result.mac) {\n osVersion = getFirstMatch(/Mac OS X (\\d+([_\\.\\s]\\d+)*)/i);\n osVersion = osVersion.replace(/[_\\s]/g, '.');\n } else if (iosdevice) {\n osVersion = getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i);\n osVersion = osVersion.replace(/[_\\s]/g, '.');\n } else if (android) {\n osVersion = getFirstMatch(/android[ \\/-](\\d+(\\.\\d+)*)/i);\n } else if (result.webos) {\n osVersion = getFirstMatch(/(?:web|hpw)os\\/(\\d+(\\.\\d+)*)/i);\n } else if (result.blackberry) {\n osVersion = getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i);\n } else if (result.bada) {\n osVersion = getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i);\n } else if (result.tizen) {\n osVersion = getFirstMatch(/tizen[\\/\\s](\\d+(\\.\\d+)*)/i);\n }\n if (osVersion) {\n result.osversion = osVersion;\n }\n\n // device type extraction\n var osMajorVersion = !result.windows && osVersion.split('.')[0];\n if (\n tablet\n || nexusTablet\n || iosdevice == 'ipad'\n || (android && (osMajorVersion == 3 || (osMajorVersion >= 4 && !mobile)))\n || result.silk\n ) {\n result.tablet = t\n } else if (\n mobile\n || iosdevice == 'iphone'\n || iosdevice == 'ipod'\n || android\n || nexusMobile\n || result.blackberry\n || result.webos\n || result.bada\n ) {\n result.mobile = t\n }\n\n // Graded Browser Support\n // http://developer.yahoo.com/yui/articles/gbs\n if (result.msedge ||\n (result.msie && result.version >= 10) ||\n (result.yandexbrowser && result.version >= 15) ||\n\t\t (result.vivaldi && result.version >= 1.0) ||\n (result.chrome && result.version >= 20) ||\n (result.samsungBrowser && result.version >= 4) ||\n (result.firefox && result.version >= 20.0) ||\n (result.safari && result.version >= 6) ||\n (result.opera && result.version >= 10.0) ||\n (result.ios && result.osversion && result.osversion.split(\".\")[0] >= 6) ||\n (result.blackberry && result.version >= 10.1)\n || (result.chromium && result.version >= 20)\n ) {\n result.a = t;\n }\n else if ((result.msie && result.version < 10) ||\n (result.chrome && result.version < 20) ||\n (result.firefox && result.version < 20.0) ||\n (result.safari && result.version < 6) ||\n (result.opera && result.version < 10.0) ||\n (result.ios && result.osversion && result.osversion.split(\".\")[0] < 6)\n || (result.chromium && result.version < 20)\n ) {\n result.c = t\n } else result.x = t\n\n return result\n }\n\n var bowser = detect(typeof navigator !== 'undefined' ? navigator.userAgent || '' : '')\n\n bowser.test = function (browserList) {\n for (var i = 0; i < browserList.length; ++i) {\n var browserItem = browserList[i];\n if (typeof browserItem=== 'string') {\n if (browserItem in bowser) {\n return true;\n }\n }\n }\n return false;\n }\n\n /**\n * Get version precisions count\n *\n * @example\n * getVersionPrecision(\"1.10.3\") // 3\n *\n * @param {string} version\n * @return {number}\n */\n function getVersionPrecision(version) {\n return version.split(\".\").length;\n }\n\n /**\n * Array::map polyfill\n *\n * @param {Array} arr\n * @param {Function} iterator\n * @return {Array}\n */\n function map(arr, iterator) {\n var result = [], i;\n if (Array.prototype.map) {\n return Array.prototype.map.call(arr, iterator);\n }\n for (i = 0; i < arr.length; i++) {\n result.push(iterator(arr[i]));\n }\n return result;\n }\n\n /**\n * Calculate browser version weight\n *\n * @example\n * compareVersions(['1.10.2.1', '1.8.2.1.90']) // 1\n * compareVersions(['1.010.2.1', '1.09.2.1.90']); // 1\n * compareVersions(['1.10.2.1', '1.10.2.1']); // 0\n * compareVersions(['1.10.2.1', '1.0800.2']); // -1\n *\n * @param {Array} versions versions to compare\n * @return {Number} comparison result\n */\n function compareVersions(versions) {\n // 1) get common precision for both versions, for example for \"10.0\" and \"9\" it should be 2\n var precision = Math.max(getVersionPrecision(versions[0]), getVersionPrecision(versions[1]));\n var chunks = map(versions, function (version) {\n var delta = precision - getVersionPrecision(version);\n\n // 2) \"9\" -> \"9.0\" (for precision = 2)\n version = version + new Array(delta + 1).join(\".0\");\n\n // 3) \"9.0\" -> [\"000000000\"\", \"000000009\"]\n return map(version.split(\".\"), function (chunk) {\n return new Array(20 - chunk.length).join(\"0\") + chunk;\n }).reverse();\n });\n\n // iterate in reverse order by reversed chunks array\n while (--precision >= 0) {\n // 4) compare: \"000000009\" > \"000000010\" = false (but \"9\" > \"10\" = true)\n if (chunks[0][precision] > chunks[1][precision]) {\n return 1;\n }\n else if (chunks[0][precision] === chunks[1][precision]) {\n if (precision === 0) {\n // all version chunks are same\n return 0;\n }\n }\n else {\n return -1;\n }\n }\n }\n\n /**\n * Check if browser is unsupported\n *\n * @example\n * bowser.isUnsupportedBrowser({\n * msie: \"10\",\n * firefox: \"23\",\n * chrome: \"29\",\n * safari: \"5.1\",\n * opera: \"16\",\n * phantom: \"534\"\n * });\n *\n * @param {Object} minVersions map of minimal version to browser\n * @param {Boolean} [strictMode = false] flag to return false if browser wasn't found in map\n * @param {String} [ua] user agent string\n * @return {Boolean}\n */\n function isUnsupportedBrowser(minVersions, strictMode, ua) {\n var _bowser = bowser;\n\n // make strictMode param optional with ua param usage\n if (typeof strictMode === 'string') {\n ua = strictMode;\n strictMode = void(0);\n }\n\n if (strictMode === void(0)) {\n strictMode = false;\n }\n if (ua) {\n _bowser = detect(ua);\n }\n\n var version = \"\" + _bowser.version;\n for (var browser in minVersions) {\n if (minVersions.hasOwnProperty(browser)) {\n if (_bowser[browser]) {\n if (typeof minVersions[browser] !== 'string') {\n throw new Error('Browser version in the minVersion map should be a string: ' + browser + ': ' + String(minVersions));\n }\n\n // browser version and min supported version.\n return compareVersions([version, minVersions[browser]]) < 0;\n }\n }\n }\n\n return strictMode; // not found\n }\n\n /**\n * Check if browser is supported\n *\n * @param {Object} minVersions map of minimal version to browser\n * @param {Boolean} [strictMode = false] flag to return false if browser wasn't found in map\n * @param {String} [ua] user agent string\n * @return {Boolean}\n */\n function check(minVersions, strictMode, ua) {\n return !isUnsupportedBrowser(minVersions, strictMode, ua);\n }\n\n bowser.isUnsupportedBrowser = isUnsupportedBrowser;\n bowser.compareVersions = compareVersions;\n bowser.check = check;\n\n /*\n * Set our detect method to the main bowser object so we can\n * reuse it to test other user agents.\n * This is needed to implement future tests.\n */\n bowser._detect = detect;\n\n return bowser\n});\n\n\n/***/ }),\n/* 530 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\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 * * 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 * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. 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 THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (acequire, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof acequirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _acequire = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && acequire.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar acequire = function(module, callback) {\n var packagedModule = _acequire(\"\", module, callback);\n if (packagedModule == undefined && acequire.original)\n return acequire.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin acequires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative acequires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _acequire(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.acequire || !root.acequire.packaged) {\n acequire.original = root.acequire;\n root.acequire = acequire;\n root.acequire.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\n var real = {\n exec: RegExp.prototype.exec,\n test: RegExp.prototype.test,\n match: String.prototype.match,\n replace: String.prototype.replace,\n split: String.prototype.split\n },\n compliantExecNpcg = real.exec.call(/()??/, \"\")[1] === undefined, // check `exec` handling of nonparticipating capturing groups\n compliantLastIndexIncrement = function () {\n var x = /^/g;\n real.test.call(x, \"\");\n return !x.lastIndex;\n }();\n\n if (compliantLastIndexIncrement && compliantExecNpcg)\n return;\n RegExp.prototype.exec = function (str) {\n var match = real.exec.apply(this, arguments),\n name, r2;\n if ( typeof(str) == 'string' && match) {\n if (!compliantExecNpcg && match.length > 1 && indexOf(match, \"\") > -1) {\n r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), \"g\", \"\"));\n real.replace.call(str.slice(match.index), r2, function () {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined)\n match[i] = undefined;\n }\n });\n }\n if (this._xregexp && this._xregexp.captureNames) {\n for (var i = 1; i < match.length; i++) {\n name = this._xregexp.captureNames[i - 1];\n if (name)\n match[name] = match[i];\n }\n }\n if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n }\n return match;\n };\n if (!compliantLastIndexIncrement) {\n RegExp.prototype.test = function (str) {\n var match = real.exec.call(this, str);\n if (match && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n return !!match;\n };\n }\n\n function getNativeFlags (regex) {\n return (regex.global ? \"g\" : \"\") +\n (regex.ignoreCase ? \"i\" : \"\") +\n (regex.multiline ? \"m\" : \"\") +\n (regex.extended ? \"x\" : \"\") + // Proposed for ES4; included in AS3\n (regex.sticky ? \"y\" : \"\");\n }\n\n function indexOf (array, item, from) {\n if (Array.prototype.indexOf) // Use the native array method if available\n return array.indexOf(item, from);\n for (var i = from || 0; i < array.length; i++) {\n if (array[i] === item)\n return i;\n }\n return -1;\n }\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n Function.prototype.bind = function bind(that) { // .length is 1\n var target = this;\n if (typeof target != \"function\") {\n throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n }\n var args = slice.call(arguments, 1); // for normal call\n var bound = function () {\n\n if (this instanceof bound) {\n\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n\n }\n\n };\n if(target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n return bound;\n };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n if(function() { // test IE < 9 to splice bug - see issue #138\n function makeArray(l) {\n var a = new Array(l+2);\n a[0] = a[1] = 0;\n return a;\n }\n var array = [], lengthBefore;\n \n array.splice.apply(array, makeArray(20));\n array.splice.apply(array, makeArray(26));\n\n lengthBefore = array.length; //46\n array.splice(5, 0, \"XXX\"); // add one element\n\n lengthBefore + 1 == array.length\n\n if (lengthBefore + 1 == array.length) {\n return true;// has right splice implementation without bugs\n }\n }()) {//IE 6/7\n var array_splice = Array.prototype.splice;\n Array.prototype.splice = function(start, deleteCount) {\n if (!arguments.length) {\n return [];\n } else {\n return array_splice.apply(this, [\n start === void 0 ? 0 : start,\n deleteCount === void 0 ? (this.length - start) : deleteCount\n ].concat(slice.call(arguments, 2)))\n }\n };\n } else {//IE8\n Array.prototype.splice = function(pos, removeCount){\n var length = this.length;\n if (pos > 0) {\n if (pos > length)\n pos = length;\n } else if (pos == void 0) {\n pos = 0;\n } else if (pos < 0) {\n pos = Math.max(length + pos, 0);\n }\n\n if (!(pos+removeCount < length))\n removeCount = length - pos;\n\n var removed = this.slice(pos, pos+removeCount);\n var insert = slice.call(arguments, 2);\n var add = insert.length; \n if (pos === length) {\n if (add) {\n this.push.apply(this, insert);\n }\n } else {\n var remove = Math.min(removeCount, length - pos);\n var tailOldPos = pos + remove;\n var tailNewPos = tailOldPos + add - remove;\n var tailCount = length - tailOldPos;\n var lengthAfterRemove = length - remove;\n\n if (tailNewPos < tailOldPos) { // case A\n for (var i = 0; i < tailCount; ++i) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } else if (tailNewPos > tailOldPos) { // case B\n for (i = tailCount; i--; ) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } // else, add == remove (nothing to do)\n\n if (add && pos === lengthAfterRemove) {\n this.length = lengthAfterRemove; // truncate array\n this.push.apply(this, insert);\n } else {\n this.length = lengthAfterRemove + add; // reserves space\n for (i = 0; i < add; ++i) {\n this[pos+i] = insert[i];\n }\n }\n }\n return removed;\n };\n }\n}\nif (!Array.isArray) {\n Array.isArray = function isArray(obj) {\n return _toString(obj) == \"[object Array]\";\n };\n}\nvar boxedString = Object(\"a\"),\n splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n thisp = arguments[1],\n i = -1,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(); // TODO message\n }\n\n while (++i < length) {\n if (i in self) {\n fun.call(thisp, self[i], i, object);\n }\n }\n };\n}\nif (!Array.prototype.map) {\n Array.prototype.map = function map(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = Array(length),\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self)\n result[i] = fun.call(thisp, self[i], i, object);\n }\n return result;\n };\n}\nif (!Array.prototype.filter) {\n Array.prototype.filter = function filter(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = [],\n value,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self) {\n value = self[i];\n if (fun.call(thisp, value, i, object)) {\n result.push(value);\n }\n }\n }\n return result;\n };\n}\nif (!Array.prototype.every) {\n Array.prototype.every = function every(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && !fun.call(thisp, self[i], i, object)) {\n return false;\n }\n }\n return true;\n };\n}\nif (!Array.prototype.some) {\n Array.prototype.some = function some(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && fun.call(thisp, self[i], i, object)) {\n return true;\n }\n }\n return false;\n };\n}\nif (!Array.prototype.reduce) {\n Array.prototype.reduce = function reduce(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n\n var i = 0;\n var result;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i++];\n break;\n }\n if (++i >= length) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n } while (true);\n }\n\n for (; i < length; i++) {\n if (i in self) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n }\n\n return result;\n };\n}\nif (!Array.prototype.reduceRight) {\n Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n\n var result, i = length - 1;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i--];\n break;\n }\n if (--i < 0) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n } while (true);\n }\n\n do {\n if (i in this) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n } while (i--);\n\n return result;\n };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n\n var i = 0;\n if (arguments.length > 1) {\n i = toInteger(arguments[1]);\n }\n i = i >= 0 ? i : Math.max(0, length + i);\n for (; i < length; i++) {\n if (i in self && self[i] === sought) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n var i = length - 1;\n if (arguments.length > 1) {\n i = Math.min(i, toInteger(arguments[1]));\n }\n i = i >= 0 ? i : length - Math.abs(i);\n for (; i >= 0; i--) {\n if (i in self && sought === self[i]) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Object.getPrototypeOf) {\n Object.getPrototypeOf = function getPrototypeOf(object) {\n return object.__proto__ || (\n object.constructor ?\n object.constructor.prototype :\n prototypeOfObject\n );\n };\n}\nif (!Object.getOwnPropertyDescriptor) {\n var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n \"non-object: \";\n Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT + object);\n if (!owns(object, property))\n return;\n\n var descriptor, getter, setter;\n descriptor = { enumerable: true, configurable: true };\n if (supportsAccessors) {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n\n var getter = lookupGetter(object, property);\n var setter = lookupSetter(object, property);\n object.__proto__ = prototype;\n\n if (getter || setter) {\n if (getter) descriptor.get = getter;\n if (setter) descriptor.set = setter;\n return descriptor;\n }\n }\n descriptor.value = object[property];\n return descriptor;\n };\n}\nif (!Object.getOwnPropertyNames) {\n Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n return Object.keys(object);\n };\n}\nif (!Object.create) {\n var createEmpty;\n if (Object.prototype.__proto__ === null) {\n createEmpty = function () {\n return { \"__proto__\": null };\n };\n } else {\n createEmpty = function () {\n var empty = {};\n for (var i in empty)\n empty[i] = null;\n empty.constructor =\n empty.hasOwnProperty =\n empty.propertyIsEnumerable =\n empty.isPrototypeOf =\n empty.toLocaleString =\n empty.toString =\n empty.valueOf =\n empty.__proto__ = null;\n return empty;\n }\n }\n\n Object.create = function create(prototype, properties) {\n var object;\n if (prototype === null) {\n object = createEmpty();\n } else {\n if (typeof prototype != \"object\")\n throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n var Type = function () {};\n Type.prototype = prototype;\n object = new Type();\n object.__proto__ = prototype;\n }\n if (properties !== void 0)\n Object.defineProperties(object, properties);\n return object;\n };\n}\n\nfunction doesDefinePropertyWork(object) {\n try {\n Object.defineProperty(object, \"sentinel\", {});\n return \"sentinel\" in object;\n } catch (exception) {\n }\n}\nif (Object.defineProperty) {\n var definePropertyWorksOnObject = doesDefinePropertyWork({});\n var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n doesDefinePropertyWork(document.createElement(\"div\"));\n if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n var definePropertyFallback = Object.defineProperty;\n }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n \"on this javascript engine\";\n\n Object.defineProperty = function defineProperty(object, property, descriptor) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n if (definePropertyFallback) {\n try {\n return definePropertyFallback.call(Object, object, property, descriptor);\n } catch (exception) {\n }\n }\n if (owns(descriptor, \"value\")) {\n\n if (supportsAccessors && (lookupGetter(object, property) ||\n lookupSetter(object, property)))\n {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n delete object[property];\n object[property] = descriptor.value;\n object.__proto__ = prototype;\n } else {\n object[property] = descriptor.value;\n }\n } else {\n if (!supportsAccessors)\n throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n if (owns(descriptor, \"get\"))\n defineGetter(object, property, descriptor.get);\n if (owns(descriptor, \"set\"))\n defineSetter(object, property, descriptor.set);\n }\n\n return object;\n };\n}\nif (!Object.defineProperties) {\n Object.defineProperties = function defineProperties(object, properties) {\n for (var property in properties) {\n if (owns(properties, property))\n Object.defineProperty(object, property, properties[property]);\n }\n return object;\n };\n}\nif (!Object.seal) {\n Object.seal = function seal(object) {\n return object;\n };\n}\nif (!Object.freeze) {\n Object.freeze = function freeze(object) {\n return object;\n };\n}\ntry {\n Object.freeze(function () {});\n} catch (exception) {\n Object.freeze = (function freeze(freezeObject) {\n return function freeze(object) {\n if (typeof object == \"function\") {\n return object;\n } else {\n return freezeObject(object);\n }\n };\n })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n Object.preventExtensions = function preventExtensions(object) {\n return object;\n };\n}\nif (!Object.isSealed) {\n Object.isSealed = function isSealed(object) {\n return false;\n };\n}\nif (!Object.isFrozen) {\n Object.isFrozen = function isFrozen(object) {\n return false;\n };\n}\nif (!Object.isExtensible) {\n Object.isExtensible = function isExtensible(object) {\n if (Object(object) === object) {\n throw new TypeError(); // TODO message\n }\n var name = '';\n while (owns(object, name)) {\n name += '?';\n }\n object[name] = true;\n var returnValue = owns(object, name);\n delete object[name];\n return returnValue;\n };\n}\nif (!Object.keys) {\n var hasDontEnumBug = true,\n dontEnums = [\n \"toString\",\n \"toLocaleString\",\n \"valueOf\",\n \"hasOwnProperty\",\n \"isPrototypeOf\",\n \"propertyIsEnumerable\",\n \"constructor\"\n ],\n dontEnumsLength = dontEnums.length;\n\n for (var key in {\"toString\": null}) {\n hasDontEnumBug = false;\n }\n\n Object.keys = function keys(object) {\n\n if (\n (typeof object != \"object\" && typeof object != \"function\") ||\n object === null\n ) {\n throw new TypeError(\"Object.keys called on a non-object\");\n }\n\n var keys = [];\n for (var name in object) {\n if (owns(object, name)) {\n keys.push(name);\n }\n }\n\n if (hasDontEnumBug) {\n for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n var dontEnum = dontEnums[i];\n if (owns(object, dontEnum)) {\n keys.push(dontEnum);\n }\n }\n }\n return keys;\n };\n\n}\nif (!Date.now) {\n Date.now = function now() {\n return new Date().getTime();\n };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n ws = \"[\" + ws + \"]\";\n var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n trimEndRegexp = new RegExp(ws + ws + \"*$\");\n String.prototype.trim = function trim() {\n return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n };\n}\n\nfunction toInteger(n) {\n n = +n;\n if (n !== n) { // isNaN\n n = 0;\n } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n n = (n > 0 || -1) * Math.floor(Math.abs(n));\n }\n return n;\n}\n\nfunction isPrimitive(input) {\n var type = typeof input;\n return (\n input === null ||\n type === \"undefined\" ||\n type === \"boolean\" ||\n type === \"number\" ||\n type === \"string\"\n );\n}\n\nfunction toPrimitive(input) {\n var val, valueOf, toString;\n if (isPrimitive(input)) {\n return input;\n }\n valueOf = input.valueOf;\n if (typeof valueOf === \"function\") {\n val = valueOf.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n toString = input.toString;\n if (typeof toString === \"function\") {\n val = toString.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n throw new TypeError();\n}\nvar toObject = function (o) {\n if (o == null) { // this matches both null and undefined\n throw new TypeError(\"can't convert \"+o+\" to object\");\n }\n return Object(o);\n};\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./regexp\");\nacequire(\"./es5-shim\");\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\n\nexports.getDocumentHead = function(doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\n\nexports.createElement = function(tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\n\nexports.hasCssClass = function(el, name) {\n var classes = (el.className || \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function(el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\n\nexports.toggleCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function(node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n } else {\n exports.removeCssClass(node, className);\n }\n};\n\nexports.hasCssString = function(id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n\n if (doc.createStyleSheet && (sheets = doc.styleSheets)) {\n while (index < sheets.length)\n if (sheets[index++].owningElement.id === id) return true;\n } else if ((sheets = doc.getElementsByTagName(\"style\"))) {\n while (index < sheets.length)\n if (sheets[index++].id === id) return true;\n }\n\n return false;\n};\n\nexports.importCssString = function importCssString(cssText, id, doc) {\n doc = doc || document;\n if (id && exports.hasCssString(id, doc))\n return null;\n \n var style;\n \n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n \n if (doc.createStyleSheet) {\n style = doc.createStyleSheet();\n style.cssText = cssText;\n if (id)\n style.owningElement.id = id;\n } else {\n style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n\n exports.getDocumentHead(doc).appendChild(style);\n }\n};\n\nexports.importCssStylsheet = function(uri, doc) {\n if (doc.createStyleSheet) {\n doc.createStyleSheet(uri);\n } else {\n var link = exports.createElement('link');\n link.rel = 'stylesheet';\n link.href = uri;\n\n exports.getDocumentHead(doc).appendChild(link);\n }\n};\n\nexports.getInnerWidth = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingLeft\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingRight\"), 10) + \n element.clientWidth\n );\n};\n\nexports.getInnerHeight = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingTop\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingBottom\"), 10) +\n element.clientHeight\n );\n};\n\nexports.scrollbarWidth = function(document) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n\n outer.appendChild(inner);\n\n var body = document.documentElement;\n body.appendChild(outer);\n\n var noScrollbar = inner.offsetWidth;\n\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n\n if (noScrollbar == withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n\n body.removeChild(outer);\n\n return noScrollbar-withScrollbar;\n};\n\nif (typeof document == \"undefined\") {\n exports.importCssString = function() {};\n return;\n}\n\nif (window.pageYOffset !== undefined) {\n exports.getPageScrollTop = function() {\n return window.pageYOffset;\n };\n\n exports.getPageScrollLeft = function() {\n return window.pageXOffset;\n };\n}\nelse {\n exports.getPageScrollTop = function() {\n return document.body.scrollTop;\n };\n\n exports.getPageScrollLeft = function() {\n return document.body.scrollLeft;\n };\n}\n\nif (window.getComputedStyle)\n exports.computedStyle = function(element, style) {\n if (style)\n return (window.getComputedStyle(element, \"\") || {})[style] || \"\";\n return window.getComputedStyle(element, \"\") || {};\n };\nelse\n exports.computedStyle = function(element, style) {\n if (style)\n return element.currentStyle[style];\n return element.currentStyle;\n };\nexports.setInnerHtml = function(el, innerHtml) {\n var element = el.cloneNode(false);//document.createElement(\"div\");\n element.innerHTML = innerHtml;\n el.parentNode.replaceChild(element, el);\n return element;\n};\n\nif (\"textContent\" in document.documentElement) {\n exports.setInnerText = function(el, innerText) {\n el.textContent = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.textContent;\n };\n}\nelse {\n exports.setInnerText = function(el, innerText) {\n el.innerText = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.innerText;\n };\n}\n\nexports.getParentWindow = function(document) {\n return document.defaultView || document.parentWindow;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.inherits = function(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\nexports.mixin = function(obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\n\nexports.implement = function(proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./fixoldbrowsers\");\n\nvar oop = acequire(\"./oop\");\nvar Keys = (function() {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta'\n },\n\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\" : 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8\n },\n\n FUNCTION_KEYS : {\n 8 : \"Backspace\",\n 9 : \"Tab\",\n 13 : \"Return\",\n 19 : \"Pause\",\n 27 : \"Esc\",\n 32 : \"Space\",\n 33 : \"PageUp\",\n 34 : \"PageDown\",\n 35 : \"End\",\n 36 : \"Home\",\n 37 : \"Left\",\n 38 : \"Up\",\n 39 : \"Right\",\n 40 : \"Down\",\n 44 : \"Print\",\n 45 : \"Insert\",\n 46 : \"Delete\",\n 96 : \"Numpad0\",\n 97 : \"Numpad1\",\n 98 : \"Numpad2\",\n 99 : \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\',221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n ret[173] = '-';\n \n (function() {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) { \n ret.KEY_MODS[i] = mods.filter(function(x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n\n return ret;\n})();\noop.mixin(exports, Keys);\n\nexports.keyCodeToString = function(keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function() {\n if (exports.isMac) {\n return exports.OS.MAC;\n } else if (exports.isLinux) {\n return exports.OS.LINUX;\n } else {\n return exports.OS.WINDOWS;\n }\n};\nif (typeof navigator != \"object\")\n return;\n\nvar os = (navigator.platform.match(/mac|win|linux/i) || [\"other\"])[0].toLowerCase();\nvar ua = navigator.userAgent;\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE = \n (navigator.appName == \"Microsoft Internet Explorer\" || navigator.appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1]); // for ie\n \nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = (window.Controllers || window.controllers) && window.navigator.product === \"Gecko\";\nexports.isOldGecko = exports.isGecko && parseInt((ua.match(/rv\\:(\\d+)/)||[])[1], 10) < 4;\nexports.isOpera = window.opera && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\n\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\n\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\n\nexports.isIPad = ua.indexOf(\"iPad\") >= 0;\n\nexports.isTouchPad = ua.indexOf(\"TouchPad\") >= 0;\n\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keys = acequire(\"./keys\");\nvar useragent = acequire(\"./useragent\");\n\nvar pressedKeys = null;\nvar ts = 0;\n\nexports.addListener = function(elem, type, callback) {\n if (elem.addEventListener) {\n return elem.addEventListener(type, callback, false);\n }\n if (elem.attachEvent) {\n var wrapper = function() {\n callback.call(elem, window.event);\n };\n callback._wrapper = wrapper;\n elem.attachEvent(\"on\" + type, wrapper);\n }\n};\n\nexports.removeListener = function(elem, type, callback) {\n if (elem.removeEventListener) {\n return elem.removeEventListener(type, callback, false);\n }\n if (elem.detachEvent) {\n elem.detachEvent(\"on\" + type, callback._wrapper || callback);\n }\n};\nexports.stopEvent = function(e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\n\nexports.stopPropagation = function(e) {\n if (e.stopPropagation)\n e.stopPropagation();\n else\n e.cancelBubble = true;\n};\n\nexports.preventDefault = function(e) {\n if (e.preventDefault)\n e.preventDefault();\n else\n e.returnValue = false;\n};\nexports.getButton = function(e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n if (e.preventDefault) {\n return e.button;\n }\n else {\n return {1:0, 2:2, 4:1}[e.button];\n }\n};\n\nexports.capture = function(el, eventHandler, releaseCaptureHandler) {\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n\n exports.removeListener(document, \"mousemove\", eventHandler, true);\n exports.removeListener(document, \"mouseup\", onMouseUp, true);\n exports.removeListener(document, \"dragstart\", onMouseUp, true);\n }\n\n exports.addListener(document, \"mousemove\", eventHandler, true);\n exports.addListener(document, \"mouseup\", onMouseUp, true);\n exports.addListener(document, \"dragstart\", onMouseUp, true);\n \n return onMouseUp;\n};\n\nexports.addTouchMoveListener = function (el, callback) {\n if (\"ontouchmove\" in el) {\n var startx, starty;\n exports.addListener(el, \"touchstart\", function (e) {\n var touchObj = e.changedTouches[0];\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n });\n exports.addListener(el, \"touchmove\", function (e) {\n var factor = 1,\n touchObj = e.changedTouches[0];\n\n e.wheelX = -(touchObj.clientX - startx) / factor;\n e.wheelY = -(touchObj.clientY - starty) / factor;\n\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n\n callback(e);\n });\n } \n};\n\nexports.addMouseWheelListener = function(el, callback) {\n if (\"onmousewheel\" in el) {\n exports.addListener(el, \"mousewheel\", function(e) {\n var factor = 8;\n if (e.wheelDeltaX !== undefined) {\n e.wheelX = -e.wheelDeltaX / factor;\n e.wheelY = -e.wheelDeltaY / factor;\n } else {\n e.wheelX = 0;\n e.wheelY = -e.wheelDelta / factor;\n }\n callback(e);\n });\n } else if (\"onwheel\" in el) {\n exports.addListener(el, \"wheel\", function(e) {\n var factor = 0.35;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = e.deltaX * factor || 0;\n e.wheelY = e.deltaY * factor || 0;\n break;\n case e.DOM_DELTA_LINE:\n case e.DOM_DELTA_PAGE:\n e.wheelX = (e.deltaX || 0) * 5;\n e.wheelY = (e.deltaY || 0) * 5;\n break;\n }\n \n callback(e);\n });\n } else {\n exports.addListener(el, \"DOMMouseScroll\", function(e) {\n if (e.axis && e.axis == e.HORIZONTAL_AXIS) {\n e.wheelX = (e.detail || 0) * 5;\n e.wheelY = 0;\n } else {\n e.wheelX = 0;\n e.wheelY = (e.detail || 0) * 5;\n }\n callback(e);\n });\n }\n};\n\nexports.addMultiMouseDownListener = function(elements, timeouts, eventHandler, callbackName) {\n var clicks = 0;\n var startX, startY, timer; \n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n } else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n } else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null}, timeouts[clicks - 1] || 600);\n\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n \n e._clicks = clicks;\n\n eventHandler[callbackName](\"mousedown\", e);\n\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n function onDblclick(e) {\n clicks = 2;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null}, timeouts[clicks - 1] || 600);\n eventHandler[callbackName](\"mousedown\", e);\n eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function(el) {\n exports.addListener(el, \"mousedown\", onMousedown);\n if (useragent.isOldIE)\n exports.addListener(el, \"dblclick\", onDblclick);\n });\n};\n\nvar getModifierHash = useragent.isMac && useragent.isOpera && !(\"KeyboardEvent\" in window)\n ? function(e) {\n return 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0);\n }\n : function(e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n };\n\nexports.getModifierString = function(e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\n\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n\n if (!useragent.isMac && pressedKeys) {\n if (pressedKeys.OSKey)\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n } else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n \n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (hashId & 8 && (keyCode >= 91 && keyCode <= 93)) {\n keyCode = -1;\n }\n \n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n \n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n \n return callback(e, hashId, keyCode);\n}\n\n\nexports.addCommandKeyListener = function(el, callback) {\n var addListener = exports.addListener;\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function(e) {\n lastKeyDownKeyCode = e.keyCode;\n });\n addListener(el, \"keypress\", function(e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n });\n } else {\n var lastDefaultPrevented = null;\n\n addListener(el, \"keydown\", function(e) {\n var keyCode = e.keyCode;\n pressedKeys[keyCode] = (pressedKeys[keyCode] || 0) + 1;\n if (keyCode == 91 || keyCode == 92) {\n pressedKeys.OSKey = true;\n } else if (pressedKeys.OSKey) {\n if (e.timeStamp - pressedKeys.lastT > 200 && pressedKeys.count == 1)\n resetPressedKeys();\n }\n if (pressedKeys[keyCode] == 1)\n pressedKeys.count++;\n pressedKeys.lastT = e.timeStamp;\n var result = normalizeCommandKeys(callback, e, keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n });\n\n addListener(el, \"keypress\", function(e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n });\n\n addListener(el, \"keyup\", function(e) {\n var keyCode = e.keyCode;\n if (!pressedKeys[keyCode]) {\n resetPressedKeys();\n } else {\n pressedKeys.count = Math.max(pressedKeys.count - 1, 0);\n }\n if (keyCode == 91 || keyCode == 92) {\n pressedKeys.OSKey = false;\n }\n pressedKeys[keyCode] = null;\n });\n\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n pressedKeys.count = 0;\n pressedKeys.lastT = 0;\n}\n\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function(callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + postMessageId;\n exports.addListener(win, \"message\", function listener(e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n exports.removeListener(win, \"message\", listener);\n callback();\n }\n });\n win.postMessage(messageName, \"*\");\n };\n}\n\n\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\n\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function(callback) {\n setTimeout(callback, 17);\n };\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n\n if (count >>= 1)\n string += string;\n }\n return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\n\nexports.copyArray = function(array){\n var copy = [];\n for (var i=0, l=array.length; i 1);\n return ev.preventDefault();\n };\n\n this.startSelect = function(pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n editor.$blockScrolling++;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n if (editor.renderer.scroller.setCapture) {\n editor.renderer.scroller.setCapture();\n }\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n editor.$blockScrolling--;\n };\n\n this.select = function() {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n } else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.extendSelectionBy = function(unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n } else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n } else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.selectEnd =\n this.selectAllEnd =\n this.selectByWordsEnd =\n this.selectByLinesEnd = function() {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n if (this.editor.renderer.scroller.releaseCapture) {\n this.editor.renderer.scroller.releaseCapture();\n }\n };\n\n this.focusWait = function() {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n\n this.onDoubleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n } else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n\n this.onTripleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n } else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n\n this.onQuadClick = function(ev) {\n var editor = this.editor;\n\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n\n this.onMouseWheel = function(ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n\n var t = ev.domEvent.timeStamp;\n var dt = t - (this.$lastScrollTime||0);\n \n var editor = this.editor;\n var isScrolable = editor.renderer.isScrollableBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n if (isScrolable || dt < 200) {\n this.$lastScrollTime = t;\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n \n this.onTouchMove = function (ev) {\n var t = ev.domEvent.timeStamp;\n var dt = t - (this.$lastScrollTime || 0);\n\n var editor = this.editor;\n var isScrolable = editor.renderer.isScrollableBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n if (isScrolable || dt < 200) {\n this.$lastScrollTime = t;\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n\n}).call(DefaultHandlers.prototype);\n\nexports.DefaultHandlers = DefaultHandlers;\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n\n if (cmp < 0)\n return {cursor: range.start, anchor: range.end};\n else\n return {cursor: range.end, anchor: range.start};\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nfunction Tooltip (parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n}\n\n(function() {\n this.$init = function() {\n this.$element = dom.createElement(\"div\");\n this.$element.className = \"ace_tooltip\";\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n this.getElement = function() {\n return this.$element || this.$init();\n };\n this.setText = function(text) {\n dom.setInnerText(this.getElement(), text);\n };\n this.setHtml = function(html) {\n this.getElement().innerHTML = html;\n };\n this.setPosition = function(x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n this.setClassName = function(className) {\n dom.addCssClass(this.getElement(), className);\n };\n this.show = function(text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n\n this.hide = function() {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n }\n };\n this.getHeight = function() {\n return this.getElement().offsetHeight;\n };\n this.getWidth = function() {\n return this.getElement().offsetWidth;\n };\n\n}).call(Tooltip.prototype);\n\nexports.Tooltip = Tooltip;\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event\",\"ace/tooltip\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar event = acequire(\"../lib/event\");\nvar Tooltip = acequire(\"../tooltip\").Tooltip;\n\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor.container);\n\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function(e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n\n if (gutterRegion == \"foldWidgets\")\n return;\n\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n\n\n var tooltipTimeout, mouseEvent, tooltipAnnotation;\n\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var annotation = gutter.$annotations[row];\n if (!annotation)\n return hideTooltip();\n\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n\n if (tooltipAnnotation == annotation)\n return;\n tooltipAnnotation = annotation.text.join(\"
\");\n\n tooltip.setHtml(tooltipAnnotation);\n tooltip.show();\n editor.on(\"mousewheel\", hideTooltip);\n\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n } else {\n var gutterElement = mouseEvent.domEvent.target;\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n }\n\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltipAnnotation) {\n tooltip.hide();\n tooltipAnnotation = null;\n editor.removeEventListener(\"mousewheel\", hideTooltip);\n }\n }\n\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function(e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n\n if (tooltipAnnotation && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n\n event.addListener(editor.renderer.$gutter, \"mouseout\", function(e) {\n mouseEvent = null;\n if (!tooltipAnnotation || tooltipTimeout)\n return;\n\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n });\n \n editor.on(\"changeSession\", hideTooltip);\n}\n\nfunction GutterTooltip(parentNode) {\n Tooltip.call(this, parentNode);\n}\n\noop.inherits(GutterTooltip, Tooltip);\n\n(function(){\n this.setPosition = function(x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n\n}).call(GutterTooltip.prototype);\n\n\n\nexports.GutterHandler = GutterHandler;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar MouseEvent = exports.MouseEvent = function(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n \n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n\n this.$pos = null;\n this.$inSelection = null;\n \n this.propagationStopped = false;\n this.defaultPrevented = false;\n};\n\n(function() { \n \n this.stopPropagation = function() {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n \n this.preventDefault = function() {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n \n this.stop = function() {\n this.stopPropagation();\n this.preventDefault();\n };\n this.getDocumentPosition = function() {\n if (this.$pos)\n return this.$pos;\n \n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n this.inSelection = function() {\n if (this.$inSelection !== null)\n return this.$inSelection;\n \n var editor = this.editor;\n \n\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n\n return this.$inSelection;\n };\n this.getButton = function() {\n return event.getButton(this.domEvent);\n };\n this.getShiftKey = function() {\n return this.domEvent.shiftKey;\n };\n \n this.getAccelKey = useragent.isMac\n ? function() { return this.domEvent.metaKey; }\n : function() { return this.domEvent.ctrlKey; };\n \n}).call(MouseEvent.prototype);\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\n\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\n\nfunction DragdropHandler(mouseHandler) {\n\n var editor = mouseHandler.editor;\n\n var blankImage = dom.createElement(\"img\");\n blankImage.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (useragent.isOpera)\n blankImage.style.cssText = \"width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;\";\n\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n\n exports.forEach(function(x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.addEventListener(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n\n\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n\n this.onDragStart = function(e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function(){\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n if (useragent.isOpera) {\n editor.container.appendChild(blankImage);\n blankImage.scrollTop = 0;\n }\n dataTransfer.setDragImage && dataTransfer.setDragImage(blankImage, 0, 0);\n if (useragent.isOpera) {\n editor.container.removeChild(blankImage);\n }\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n\n isInternal = true;\n this.setState(\"drag\");\n };\n\n this.onDragEnd = function(e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.renderer.$cursorLayer.setBlinking(true);\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n\n this.onDragEnter = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragOver = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragLeave = function(e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n\n this.onDrop = function(e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n } else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n } else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler));\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler));\n\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.$blockScrolling += 1;\n editor.moveCursorToPosition(cursor);\n editor.$blockScrolling -= 1;\n cursorMovedTime = now;\n cursorPointOnCaretMoved = {x: x, y: y};\n } else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n } else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = {row: cursor.row, column: cursor.column};\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n } else {\n autoScrollStartTime = null;\n }\n }\n\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.$blockScrolling += 1;\n editor.selection.fromOrientedRange(range);\n editor.$blockScrolling -= 1;\n if (editor.isFocused() && !isInternal)\n editor.renderer.$cursorLayer.setBlinking(!editor.getReadOnly());\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function() {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function(type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n } catch (e) {}\n var dropEffect = \"none\";\n\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n\n return dropEffect;\n }\n}\n\n(function() {\n\n this.dragWait = function() {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n\n this.dragWaitEnd = function() {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n\n this.dragReadyEnd = function(e) {\n this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly());\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n\n this.startDrag = function(){\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n\n this.onMouseDrag = function(e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n\n this.onMouseDown = function(e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n } else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n\n}).call(DragdropHandler.prototype);\n\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"./dom\");\n\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\n\nexports.loadScript = function(path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n\n s.src = path;\n head.appendChild(s);\n\n s.onload = s.onreadystatechange = function(_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function(url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n}\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n\n if (typeof e != \"object\" || !e)\n e = {};\n\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n\n listeners = listeners.slice();\n for (var i=0; i 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n } else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\n\nexports.setModuleUrl = function(name, subst) {\n return options.$moduleUrls[name] = subst;\n};\n\nexports.$loading = {};\nexports.loadModule = function(moduleName, onLoad) {\n var module, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n\n try {\n module = acequire(moduleName);\n } catch (e) {}\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n\n exports.$loading[moduleName].push(onLoad);\n\n if (exports.$loading[moduleName].length > 1)\n return;\n\n var afterLoad = function() {\n acequire([moduleName], function(module) {\n exports._emit(\"load.module\", {name: moduleName, module: module});\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function(onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n options.packaged = packaged || acequire.packaged || module.packaged || (global.define && __webpack_require__(429).packaged);\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n\n this.contains = function(row, column) {\n return this.compare(row, column) == 0;\n };\n this.compareRange = function(range) {\n var cmp,\n end = range.end,\n start = range.start;\n\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n } else if (cmp == 0) {\n return 1;\n } else {\n return 0;\n }\n } else if (cmp == -1) {\n return -2;\n } else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n } else if (cmp == 1) {\n return 42;\n } else {\n return 0;\n }\n }\n };\n this.comparePoint = function(p) {\n return this.compare(p.row, p.column);\n };\n this.containsRange = function(range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n this.intersects = function(range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n this.isEnd = function(row, column) {\n return this.end.row == row && this.end.column == column;\n };\n this.isStart = function(row, column) {\n return this.start.row == row && this.start.column == column;\n };\n this.setStart = function(row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n } else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n this.setEnd = function(row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n } else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n this.inside = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideStart = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideEnd = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.compare = function(row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n\n if (row < this.start.row)\n return -1;\n\n if (row > this.end.row)\n return 1;\n\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n\n return 0;\n };\n this.compareStart = function(row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareEnd = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareInside = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.clipRows = function(firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = {row: lastRow + 1, column: 0};\n else if (this.end.row < firstRow)\n var end = {row: firstRow, column: 0};\n\n if (this.start.row > lastRow)\n var start = {row: lastRow + 1, column: 0};\n else if (this.start.row < firstRow)\n var start = {row: firstRow, column: 0};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n this.extend = function(row, column) {\n var cmp = this.compare(row, column);\n\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = {row: row, column: column};\n else\n var end = {row: row, column: column};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n\n this.isEmpty = function() {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n this.isMultiLine = function() {\n return (this.start.row !== this.end.row);\n };\n this.clone = function() {\n return Range.fromPoints(this.start, this.end);\n };\n this.collapseRows = function() {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)\n else\n return new Range(this.start.row, 0, this.end.row, 0)\n };\n this.toScreenRange = function(session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n\n return new Range(\n screenPosStart.row, screenPosStart.column,\n screenPosEnd.row, screenPosEnd.column\n );\n };\n this.moveBy = function(row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Selection = function(session) {\n this.session = session;\n this.doc = session.getDocument();\n\n this.clearSelection();\n this.lead = this.selectionLead = this.doc.createAnchor(0, 0);\n this.anchor = this.selectionAnchor = this.doc.createAnchor(0, 0);\n\n var self = this;\n this.lead.on(\"change\", function(e) {\n self._emit(\"changeCursor\");\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n\n this.selectionAnchor.on(\"change\", function() {\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n });\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.isEmpty = function() {\n return (this.$isEmpty || (\n this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column\n ));\n };\n this.isMultiLine = function() {\n if (this.isEmpty()) {\n return false;\n }\n\n return this.getRange().isMultiLine();\n };\n this.getCursor = function() {\n return this.lead.getPosition();\n };\n this.setSelectionAnchor = function(row, column) {\n this.anchor.setPosition(row, column);\n\n if (this.$isEmpty) {\n this.$isEmpty = false;\n this._emit(\"changeSelection\");\n }\n };\n this.getSelectionAnchor = function() {\n if (this.$isEmpty)\n return this.getSelectionLead();\n else\n return this.anchor.getPosition();\n };\n this.getSelectionLead = function() {\n return this.lead.getPosition();\n };\n this.shiftSelection = function(columns) {\n if (this.$isEmpty) {\n this.moveCursorTo(this.lead.row, this.lead.column + columns);\n return;\n }\n\n var anchor = this.getSelectionAnchor();\n var lead = this.getSelectionLead();\n\n var isBackwards = this.isBackwards();\n\n if (!isBackwards || anchor.column !== 0)\n this.setSelectionAnchor(anchor.row, anchor.column + columns);\n\n if (isBackwards || lead.column !== 0) {\n this.$moveSelection(function() {\n this.moveCursorTo(lead.row, lead.column + columns);\n });\n }\n };\n this.isBackwards = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n this.getRange = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n\n if (this.isEmpty())\n return Range.fromPoints(lead, lead);\n\n if (this.isBackwards()) {\n return Range.fromPoints(lead, anchor);\n }\n else {\n return Range.fromPoints(anchor, lead);\n }\n };\n this.clearSelection = function() {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n this.selectAll = function() {\n var lastRow = this.doc.getLength() - 1;\n this.setSelectionAnchor(0, 0);\n this.moveCursorTo(lastRow, this.doc.getLine(lastRow).length);\n };\n this.setRange =\n this.setSelectionRange = function(range, reverse) {\n if (reverse) {\n this.setSelectionAnchor(range.end.row, range.end.column);\n this.selectTo(range.start.row, range.start.column);\n } else {\n this.setSelectionAnchor(range.start.row, range.start.column);\n this.selectTo(range.end.row, range.end.column);\n }\n if (this.getRange().isEmpty())\n this.$isEmpty = true;\n this.$desiredColumn = null;\n };\n\n this.$moveSelection = function(mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n\n mover.call(this);\n };\n this.selectTo = function(row, column) {\n this.$moveSelection(function() {\n this.moveCursorTo(row, column);\n });\n };\n this.selectToPosition = function(pos) {\n this.$moveSelection(function() {\n this.moveCursorToPosition(pos);\n });\n };\n this.moveTo = function(row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n this.moveToPosition = function(pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n this.selectUp = function() {\n this.$moveSelection(this.moveCursorUp);\n };\n this.selectDown = function() {\n this.$moveSelection(this.moveCursorDown);\n };\n this.selectRight = function() {\n this.$moveSelection(this.moveCursorRight);\n };\n this.selectLeft = function() {\n this.$moveSelection(this.moveCursorLeft);\n };\n this.selectLineStart = function() {\n this.$moveSelection(this.moveCursorLineStart);\n };\n this.selectLineEnd = function() {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n this.selectFileEnd = function() {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n this.selectFileStart = function() {\n this.$moveSelection(this.moveCursorFileStart);\n };\n this.selectWordRight = function() {\n this.$moveSelection(this.moveCursorWordRight);\n };\n this.selectWordLeft = function() {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n this.getWordRange = function(row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n this.selectWord = function() {\n this.setSelectionRange(this.getWordRange());\n };\n this.selectAWord = function() {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n\n this.getLineRange = function(row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n } else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n this.selectLine = function() {\n this.setSelectionRange(this.getLineRange());\n };\n this.moveCursorUp = function() {\n this.moveCursorBy(-1, 0);\n };\n this.moveCursorDown = function() {\n this.moveCursorBy(1, 0);\n };\n this.moveCursorLeft = function() {\n var cursor = this.lead.getPosition(),\n fold;\n\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n } else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(cursor.column-tabSize, cursor.column).split(\" \").length-1 == tabSize)\n this.moveCursorBy(0, -tabSize);\n else\n this.moveCursorBy(0, -1);\n }\n };\n this.moveCursorRight = function() {\n var cursor = this.lead.getPosition(),\n fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(cursor.column, cursor.column+tabSize).split(\" \").length-1 == tabSize)\n this.moveCursorBy(0, tabSize);\n else\n this.moveCursorBy(0, 1);\n }\n };\n this.moveCursorLineStart = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(\n row, null, firstColumnPosition.row,\n firstColumnPosition.column\n );\n\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n this.moveCursorLineEnd = function() {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n this.moveCursorFileEnd = function() {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n this.moveCursorFileStart = function() {\n this.moveCursorTo(0, 0);\n };\n this.moveCursorLongWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (match = this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n this.moveCursorLongWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n\n var leftOfCursor = lang.stringReverse(str);\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (match = this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (match = this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n\n this.$shortWordEndIndex = function(rightOfCursor) {\n var match, index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n\n tokenRe.lastIndex = 0;\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index ++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n\n return index;\n };\n\n this.moveCursorShortWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n\n var index = this.$shortWordEndIndex(rightOfCursor);\n\n this.moveCursorTo(row, column + index);\n };\n\n this.moveCursorShortWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n\n return this.moveCursorTo(row, column - index);\n };\n\n this.moveCursorWordRight = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n\n this.moveCursorWordLeft = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n this.moveCursorBy = function(rows, chars) {\n var screenPos = this.session.documentToScreenPosition(\n this.lead.row,\n this.lead.column\n );\n\n if (chars === 0) {\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column);\n \n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n if (this.session.lineWidgets && this.session.lineWidgets[docPos.row]) {\n if (docPos.row > 0 || rows > 0)\n docPos.row++;\n }\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n this.moveCursorToPosition = function(position) {\n this.moveCursorTo(position.row, position.column);\n };\n this.moveCursorTo = function(row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n\n this.$keepDesiredColumnOnChange = true;\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n this.moveCursorToScreen = function(row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n this.detach = function() {\n this.lead.detach();\n this.anchor.detach();\n this.session = this.doc = null;\n };\n\n this.fromOrientedRange = function(range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n\n this.toOrientedRange = function(range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n } else {\n range = r;\n }\n\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n this.getRangeOfMovements = function(func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start,end);\n } catch(e) {\n return Range.fromPoints(start,start);\n } finally {\n this.moveCursorToPosition(start);\n }\n };\n\n this.toJSON = function() {\n if (this.rangeCount) {\n var data = this.ranges.map(function(r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n } else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n\n this.fromJSON = function(data) {\n if (data.start == undefined) {\n if (this.rangeList) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--; ) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n } else\n data = data[0];\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n\n this.isEqual = function(data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n\n for (var i = this.ranges.length; i--; ) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n\n}).call(Selection.prototype);\n\nexports.Selection = Selection;\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar config = acequire(\"./config\");\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = function(rules) {\n this.states = rules;\n\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = {defaultToken: \"text\"};\n var flag = \"g\";\n\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive)\n flag = \"gi\";\n if (rule.regex == null)\n continue;\n\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n } else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", { \n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n } else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n } else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function(match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n } else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n \n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n \n splitterRurles.forEach(function(rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n};\n\n(function() {\n this.$setMaxTokenCount = function(m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n \n this.$applyToken = function(str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{type: types, value: str}];\n\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n\n this.$arrayTokens = function(str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n\n this.removeCapturingGroups = function(src) {\n var r = src.replace(\n /\\[(?:\\\\.|[^\\]])*?\\]|\\\\.|\\(\\?[:=!]|(\\()/g,\n function(x, y) {return y ? \"(?:\" : x;}\n );\n return r;\n };\n\n this.createSplitterRegexp = function(src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function(\n m, esc, parenOpen, parenClose, square, index\n ) {\n if (inChClass) {\n inChClass = square != \"]\";\n } else if (square) {\n inChClass = true;\n } else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index+1;\n lastCapture.stack = -1;\n }\n stack--;\n } else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack\n lastCapture.start = index;\n }\n }\n return m;\n });\n\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\") src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\") src += \"$\";\n \n return new RegExp(src, (flag||\"\").replace(\"g\", \"\"));\n };\n this.getLineTokens = function(line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift()\n startState = stack.shift()\n }\n } else\n var stack = [];\n\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n\n var token = {type: null, value: \"\"};\n\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: skipped};\n }\n }\n\n for (var i = 0; i < match.length-2; i++) {\n if (match[i + 1] === undefined)\n continue;\n\n rule = state[mapping[i]];\n\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack);\n else\n type = rule.token;\n\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n } else {\n currentState = rule.next(currentState, stack);\n }\n \n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n break;\n }\n\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: value};\n }\n } else if (type) {\n if (token.type)\n tokens.push(token);\n token = {type: null, value: \"\"};\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n\n if (lastIndex == line.length)\n break;\n\n lastIndex = index;\n\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 2000),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n\n if (token.type)\n tokens.push(token);\n \n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens : tokens,\n state : stack.length ? stack : currentState\n };\n };\n \n this.reportError = config.reportError;\n \n}).call(Tokenizer.prototype);\n\nexports.Tokenizer = Tokenizer;\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\n\nvar TextHighlightRules = function() {\n\n this.$rules = {\n \"start\" : [{\n token : \"empty_line\",\n regex : '^$'\n }, {\n defaultToken : \"text\"\n }]\n };\n};\n\n(function() {\n\n this.addRules = function(rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n\n this.getRules = function() {\n return this.$rules;\n };\n\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n } else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n\n this.addRules(embedRules, prefix);\n\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], lang.deepCopy(escapeRules));\n }\n\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n\n this.getEmbeds = function() {\n return this.$embeds;\n };\n\n var pushState = function(currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function(currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n\n this.normalizeRules = function() {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n } else if (next == \"pop\") {\n rule.next = popState;\n }\n\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n } else {\n rules[r] = rule.rules[r];\n }\n }\n }\n if (rule.include || typeof rule == \"string\") {\n var includeName = rule.include || rule;\n var toInsert = rules[includeName];\n } else if (Array.isArray(rule))\n toInsert = rule;\n\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function(x) {return !x.next;});\n state.splice.apply(state, args);\n i--;\n toInsert = null;\n }\n \n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(\n rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive\n );\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n\n this.createKeywordMapper = function(map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n Object.keys(map).forEach(function(className) {\n var a = map[className];\n if (ignoreCase)\n a = a.toLowerCase();\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--; )\n keywords[list[i]] = className;\n });\n if (Object.getPrototypeOf(keywords)) {\n keywords.__proto__ = null;\n }\n this.$keywordList = Object.keys(keywords);\n map = null;\n return ignoreCase\n ? function(value) {return keywords[value.toLowerCase()] || defaultToken }\n : function(value) {return keywords[value] || defaultToken };\n };\n\n this.getKeywords = function() {\n return this.$keywords;\n };\n\n}).call(TextHighlightRules.prototype);\n\nexports.TextHighlightRules = TextHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Behaviour = function() {\n this.$behaviours = {};\n};\n\n(function () {\n\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n }\n \n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n }\n \n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n }\n \n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n } else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n }\n \n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n } else {\n var ret = {}\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n }\n\n}).call(Behaviour.prototype);\n\nexports.Behaviour = Behaviour;\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.packages = {};\n\naddUnicodePackage({\n L: \"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n Ll: \"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A\",\n Lu: \"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A\",\n Lt: \"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC\",\n Lm: \"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F\",\n Lo: \"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n M: \"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26\",\n Mn: \"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26\",\n Mc: \"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC\",\n Me: \"0488048906DE20DD-20E020E2-20E4A670-A672\",\n N: \"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nd: \"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nl: \"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF\",\n No: \"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835\",\n P: \"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65\",\n Pd: \"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D\",\n Ps: \"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62\",\n Pe: \"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63\",\n Pi: \"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20\",\n Pf: \"00BB2019201D203A2E032E052E0A2E0D2E1D2E21\",\n Pc: \"005F203F20402054FE33FE34FE4D-FE4FFF3F\",\n Po: \"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65\",\n S: \"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD\",\n Sm: \"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC\",\n Sc: \"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6\",\n Sk: \"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3\",\n So: \"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD\",\n Z: \"002000A01680180E2000-200A20282029202F205F3000\",\n Zs: \"002000A01680180E2000-200A202F205F3000\",\n Zl: \"2028\",\n Zp: \"2029\",\n C: \"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF\",\n Cc: \"0000-001F007F-009F\",\n Cf: \"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB\",\n Co: \"E000-F8FF\",\n Cs: \"D800-DFFF\",\n Cn: \"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF\"\n});\n\nfunction addUnicodePackage (pack) {\n var codePoint = /\\w{4}/g;\n for (var name in pack)\n exports.packages[name] = pack[name].replace(codePoint, \"\\\\u$&\");\n}\n\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar TokenIterator = function(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n};\n\n(function() { \n this.stepBackward = function() {\n this.$tokenIndex -= 1;\n \n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n \n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.stepForward = function() {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentTokenRow = function () {\n return this.$row;\n }; \n this.getCurrentTokenColumn = function() {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n \n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n \n return column; \n };\n this.getCurrentTokenPosition = function() {\n return {row: this.$row, column: this.getCurrentTokenColumn()};\n };\n \n}).call(TokenIterator.prototype);\n\nexports.TokenIterator = TokenIterator;\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Tokenizer = acequire(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar Behaviour = acequire(\"./behaviour\").Behaviour;\nvar unicode = acequire(\"../unicode\");\nvar lang = acequire(\"../lib/lang\");\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\nvar Mode = function() {\n this.HighlightRules = TextHighlightRules;\n this.$behaviour = new Behaviour();\n};\n\n(function() {\n\n this.tokenRe = new RegExp(\"^[\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]+\", \"g\"\n );\n\n this.nonTokenRe = new RegExp(\"^(?:[^\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]|\\\\s])+\", \"g\"\n );\n\n this.getTokenizer = function() {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules();\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n\n this.toggleCommentLines = function(state, session, startRow, endRow) {\n var doc = session.doc;\n\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n\n var comment = function(line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({row: i, column: line.length}, lineCommentEnd);\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n\n var uncomment = function(line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n\n var testRemove = function(line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n } else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n } else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n \n insertAtTabStop = session.getUseSoftTabs();\n\n var uncomment = function(line, i) {\n var m = line.match(regexpStart);\n if (!m) return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function(line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({row: i, column: minIndent}, commentWithSpace);\n else\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n var testRemove = function(line, i) {\n return regexpStart.test(line);\n };\n \n var shouldInsertSpace = function(line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n return true;\n };\n }\n\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n\n\n var minEmptyLength = Infinity;\n iter(function(line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n } else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n\n iter(shouldRemove ? uncomment : comment);\n };\n\n this.toggleBlockComment = function(state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n } else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n\n this.getNextLineIndent = function(state, line, tab) {\n return this.$getIndent(line);\n };\n\n this.checkOutdent = function(state, line, input) {\n return false;\n };\n\n this.autoOutdent = function(state, doc, row) {\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n this.createWorker = function(session) {\n return null;\n };\n\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n this.$embeds.push(i);\n this.$modes[i] = new mapping[i]();\n }\n }\n\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\", \n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n\n for (var i = 0; i < delegations.length; i++) {\n (function(scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function() {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n\n this.$delegator = function(method, args, defaultHandler) {\n var state = args[0];\n if (typeof state != \"string\")\n state = state[0];\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]]) continue;\n\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n\n this.transformAction = function(state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n \n this.getKeywords = function(append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) { \n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n \n this.$createKeywordList = function() {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n\n this.getCompletions = function(state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function(word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n \n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n } else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n } else {\n docLines.splice(\n row, endRow - row + 1,\n line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n );\n }\n break;\n }\n}\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n \n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.getPosition = function() {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n this.getDocument = function() {\n return this.document;\n };\n this.$insertRight = false;\n this.onChange = function(delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n\n if (delta.start.row > this.row)\n return;\n \n var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n \n function $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n }\n \n function $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n \n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n }\n this.setPosition = function(row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n } else {\n pos = this.$clipPositionToDocument(row, column);\n }\n\n if (this.row == pos.row && this.column == pos.column)\n return;\n\n var old = {\n row: this.row,\n column: this.column\n };\n\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n this.detach = function() {\n this.document.removeEventListener(\"change\", this.$onChange);\n };\n this.attach = function(doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n this.$clipPositionToDocument = function(row, column) {\n var pos = {};\n\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n\n if (column < 0)\n pos.column = 0;\n\n return pos;\n };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar applyDelta = acequire(\"./apply_delta\").applyDelta;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Anchor = acequire(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n } else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({row: 0, column: 0}, textOrLines);\n } else {\n this.insert({row: 0, column:0}, textOrLines);\n }\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setValue = function(text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({row: 0, column: 0}, text);\n };\n this.getValue = function() {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n this.createAnchor = function(row, column) {\n return new Anchor(this, row, column);\n };\n if (\"aaa\".split(/a/).length === 0) {\n this.$split = function(text) {\n return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n };\n } else {\n this.$split = function(text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n }\n\n\n this.$detectNewLine = function(text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineCharacter = function() {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n\n this.$autoNewLine = \"\";\n this.$newLineMode = \"auto\";\n this.setNewLineMode = function(newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineMode = function() {\n return this.$newLineMode;\n };\n this.isNewLine = function(text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n this.getLine = function(row) {\n return this.$lines[row] || \"\";\n };\n this.getLines = function(firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n this.getAllLines = function() {\n return this.getLines(0, this.getLength());\n };\n this.getLength = function() {\n return this.$lines.length;\n };\n this.getTextRange = function(range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n this.getLinesForRange = function(range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n } else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n this.insertLines = function(row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n this.removeLines = function(firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n this.insertNewLine = function(position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\\'\\', \\'\\']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n this.insert = function(position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n \n return this.insertMergedLines(position, this.$split(text));\n };\n this.insertInLine = function(position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n \n return this.clonePos(end);\n };\n \n this.clippedPos = function(row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n } else if (row < 0) {\n row = 0;\n } else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return {row: row, column: column};\n };\n \n this.clonePos = function(pos) {\n return {row: pos.row, column: pos.column};\n };\n \n this.pos = function(row, column) {\n return {row: row, column: column};\n };\n \n this.$clipPosition = function(position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n } else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n this.insertFullLines = function(row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n } else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({row: row, column: column}, lines);\n }; \n this.insertMergedLines = function(position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n \n return this.clonePos(end);\n };\n this.remove = function(range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n });\n return this.clonePos(start);\n };\n this.removeInLine = function(row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n }, true);\n \n return this.clonePos(start);\n };\n this.removeFullLines = function(firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow );\n var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 );\n var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow );\n var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length ); \n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n \n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n this.removeNewLine = function(row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n this.replace = function(range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n \n return end;\n };\n this.applyDeltas = function(deltas) {\n for (var i=0; i=0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n this.applyDelta = function(delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n \n if (isInsert && delta.lines.length > 20000)\n this.$splitAndapplyLargeDelta(delta, 20000);\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n };\n \n this.$splitAndapplyLargeDelta = function(delta, MAX) {\n var lines = delta.lines;\n var l = lines.length;\n var row = delta.start.row; \n var column = delta.start.column;\n var from = 0, to = 0;\n do {\n from = to;\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n if (to > l) {\n delta.lines = chunk;\n delta.start.row = row + from;\n delta.start.column = column;\n break;\n }\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n } while(true);\n };\n this.revertDelta = function(delta) {\n this.applyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n this.indexToPosition = function(index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return {row: i, column: index + lines[i].length + newlineLength};\n }\n return {row: l-1, column: lines[l-1].length};\n };\n this.positionToIndex = function(pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n\n return index + pos.column;\n };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar BackgroundTokenizer = function(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n\n var self = this;\n\n this.$worker = function() {\n if (!self.running) { return; }\n\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n \n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines ++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) { \n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n \n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n this.setTokenizer = function(tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n\n this.start(0);\n };\n this.setDocument = function(doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n\n this.stop();\n };\n this.fireUpdateEvent = function(firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", {data: data});\n };\n this.start = function(startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n \n this.scheduleStart = function() {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n }\n\n this.$updateOnChange = function(delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n this.lines[startRow] = null;\n } else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n\n this.stop();\n };\n this.stop = function() {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n this.getTokens = function(row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n this.getState = function(row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n\n this.$tokenizeRow = function(row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n\n var data = this.tokenizer.getLineTokens(line, state, row);\n\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n } else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n\n return this.lines[row] = data.tokens;\n };\n\n}).call(BackgroundTokenizer.prototype);\n\nexports.BackgroundTokenizer = BackgroundTokenizer;\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar SearchHighlight = function(regExp, clazz, type) {\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type || \"text\";\n};\n\n(function() {\n this.MAX_RANGES = 500;\n \n this.setRegexp = function(regExp) {\n if (this.regExp+\"\" == regExp+\"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n\n this.update = function(html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function(match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n\n for (var j = ranges.length; j --; ) {\n markerLayer.drawSingleLineMarker(\n html, ranges[j].toScreenRange(session), this.clazz, config);\n }\n }\n };\n\n}).call(SearchHighlight.prototype);\n\nexports.SearchHighlight = SearchHighlight;\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nfunction FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n } else {\n folds = this.folds = [ folds ];\n }\n\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column,\n last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n\n this.folds.forEach(function(fold) {\n fold.setFoldLine(this);\n }, this);\n}\n\n(function() {\n this.shiftRow = function(shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function(fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n\n this.addFold = function(fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function(a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n } else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n } else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n\n this.containsRow = function(row) {\n return row >= this.start.row && row <= this.end.row;\n };\n\n this.walk = function(callback, endRow, endColumn) {\n var lastEnd = 0,\n folds = this.folds,\n fold,\n cmp, stop, isNewRow = true;\n\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n\n this.getNextFoldTo = function(row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n } else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n\n this.addRemoveChars = function(row, column, len) {\n var ret = this.getNextFoldTo(row, column),\n fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row)\n {\n window.console && window.console.log(row, column, fold);\n } else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n\n this.split = function(row, column) {\n var pos = this.getNextFoldTo(row, column);\n \n if (!pos || pos.kind == \"inside\")\n return null;\n \n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n \n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n\n this.merge = function(foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n\n this.toString = function() {\n var ret = [this.range.toString() + \": [\" ];\n\n this.folds.forEach(function(fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n\n this.idxToPosition = function(idx) {\n var lastFoldEndColumn = 0;\n\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n\n lastFoldEndColumn = fold.end.column;\n }\n\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n}).call(FoldLine.prototype);\n\nexports.FoldLine = FoldLine;\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar Range = acequire(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\n\nvar RangeList = function() {\n this.ranges = [];\n};\n\n(function() {\n this.comparePoints = comparePoints;\n\n this.pointIndex = function(pos, excludeEdges, startIndex) {\n var list = this.ranges;\n\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i-2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n\n return -i-1;\n }\n return -i - 1;\n };\n\n this.add = function(range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n\n this.addList = function(list) {\n var removed = [];\n for (var i = list.length; i--; ) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n\n this.substractPoint = function(pos) {\n var i = this.pointIndex(pos);\n\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n this.merge = function() {\n var removed = [];\n var list = this.ranges;\n \n list = list.sort(function(a, b) {\n return comparePoints(a.start, b.start);\n });\n \n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n \n this.ranges = list;\n\n return removed;\n };\n\n this.contains = function(row, column) {\n return this.pointIndex({row: row, column: column}) >= 0;\n };\n\n this.containsPoint = function(pos) {\n return this.pointIndex(pos) >= 0;\n };\n\n this.rangeAtPoint = function(pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n\n\n this.clipRows = function(startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n\n var startIndex = this.pointIndex({row: startRow, column: 0});\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({row: endRow, column: 0}, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n\n this.removeAll = function() {\n return this.ranges.splice(0, this.ranges.length);\n };\n\n this.attach = function(session) {\n if (this.session)\n this.detach();\n\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n\n this.session.on('change', this.onChange);\n };\n\n this.detach = function() {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n\n this.$onChange = function(delta) {\n if (delta.action == \"insert\"){\n var start = delta.start;\n var end = delta.end;\n } else {\n var end = delta.start;\n var start = delta.end;\n }\n var startRow = start.row;\n var endRow = end.row;\n var lineDif = endRow - startRow;\n\n var colDiff = -start.column + end.column;\n var ranges = this.ranges;\n\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row < startRow)\n continue;\n if (r.start.row > startRow)\n break;\n\n if (r.start.row == startRow && r.start.column >= start.column ) {\n if (r.start.column == start.column && this.$insertRight) {\n } else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$insertRight) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) { \n if (r.end.column > r.start.column && r.end.column == ranges[i+1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n\n}).call(RangeList.prototype);\n\nexports.RangeList = RangeList;\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/range_list\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar RangeList = acequire(\"../range_list\").RangeList;\nvar oop = acequire(\"../lib/oop\")\nvar Fold = exports.Fold = function(range, placeholder) {\n this.foldLine = null;\n this.placeholder = placeholder;\n this.range = range;\n this.start = range.start;\n this.end = range.end;\n\n this.sameRow = range.start.row == range.end.row;\n this.subFolds = this.ranges = [];\n};\n\noop.inherits(Fold, RangeList);\n\n(function() {\n\n this.toString = function() {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n\n this.setFoldLine = function(foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function(fold) {\n fold.setFoldLine(foldLine);\n });\n };\n\n this.clone = function() {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function(subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n\n this.addSubFold = function(fold) {\n if (this.range.isEqual(fold))\n return;\n\n if (!this.range.containsRange(fold))\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n consumeRange(fold, this.start);\n\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n\n if (cmp == 0)\n return afterStart.addSubFold(fold);\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterEnd = this.subFolds[j];\n\n if (cmp == 0)\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n fold.setFoldLine(this.foldLine);\n\n return fold;\n };\n \n this.restoreRange = function(range) {\n return restoreRange(range, this.start);\n };\n\n}).call(Fold.prototype);\n\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar FoldLine = acequire(\"./fold_line\").FoldLine;\nvar Fold = acequire(\"./fold\").Fold;\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\n\nfunction Folding() {\n this.getFoldAt = function(row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var fold = folds[i];\n if (fold.range.contains(row, column)) {\n if (side == 1 && fold.range.isEnd(row, column)) {\n continue;\n } else if (side == -1 && fold.range.isStart(row, column)) {\n continue;\n }\n return fold;\n }\n }\n };\n this.getFoldsInRange = function(range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n\n start.column += 1;\n end.column -= 1;\n\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n } else if (cmp == 2) {\n continue;\n } else\n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n\n return foundFolds;\n };\n\n this.getFoldsInRangeList = function(ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function(range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n } else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function() {\n var folds = [];\n var foldLines = this.$foldData;\n \n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n\n return folds;\n };\n this.getFoldStringAt = function(row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n\n this.getFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n } else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n\n this.getFoldedRowCount = function(first, last) {\n var foldData = this.$foldData, rowCount = last-first+1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i],\n end = foldLine.end.row,\n start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last-start;\n else\n rowCount = 0; // in one fold\n }\n break;\n } else if (end >= first){\n if (start >= first) // fold inside range\n rowCount -= end-start;\n else\n rowCount -= end-first+1;\n }\n }\n return rowCount;\n };\n\n this.$addFoldLine = function(foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function(a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function(placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n \n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n if (!(startRow < endRow || \n startRow == endRow && startColumn <= endColumn - 2))\n throw new Error(\"The range has to be at least 2 characters width\");\n\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n \n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n folds.forEach(function(subFold) {\n fold.addSubFold(subFold);\n });\n }\n\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n } else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n } else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n\n return fold;\n };\n\n this.addFolds = function(folds) {\n folds.forEach(function(fold) {\n this.addFold(fold);\n }, this);\n };\n\n this.removeFold = function(fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n } else\n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n } else\n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n } else\n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n } else\n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n\n this.removeFolds = function(folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n\n cloneFolds.forEach(function(fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n\n this.expandFold = function(fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function(subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row+1, fold.end.row, fold.collapseChildren-1);\n }\n fold.subFolds = [];\n };\n\n this.expandFolds = function(folds) {\n folds.forEach(function(fold) {\n this.expandFold(fold);\n }, this);\n };\n\n this.unfold = function(location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n expandInner = true;\n } else if (typeof location == \"number\")\n range = new Range(location, 0, location, this.getLine(location).length);\n else if (\"row\" in location)\n range = Range.fromPoints(location, location);\n else\n range = location;\n \n folds = this.getFoldsInRangeList(range);\n if (expandInner) {\n this.removeFolds(folds);\n } else {\n var subFolds = folds;\n while (subFolds.length) {\n this.expandFolds(subFolds);\n subFolds = this.getFoldsInRangeList(range);\n }\n }\n if (folds.length)\n return folds;\n };\n this.isRowFolded = function(docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n\n this.getRowFoldEnd = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n\n this.getRowFoldStart = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n\n this.getFoldDisplayLine = function(foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n\n if (placeholder != null) {\n textLine += placeholder;\n } else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n\n this.getDisplayLine = function(row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n } else {\n return this.getFoldDisplayLine(\n foldLine, row, endColumn, startRow, startColumn);\n }\n };\n\n this.$cloneFoldData = function() {\n var fd = [];\n fd = this.$foldData.map(function(foldLine) {\n var folds = foldLine.folds.map(function(fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n\n return fd;\n };\n\n this.toggleFold = function(tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n\n if (fold) {\n this.expandFold(fold);\n return;\n } else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n } else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n } else if (bracketPos = this.findMatchingBracket({row: cursor.row, column: cursor.column + 1})) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n\n range.start.column++;\n } else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n } else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n } else if (folds.length == 1 ) {\n fold = folds[0];\n }\n }\n\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n\n this.addFold(placeholder, range);\n };\n\n this.getCommentFoldRange = function(row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n if (token && /^comment|string/.test(token.type)) {\n var range = new Range();\n var re = new RegExp(token.type.replace(/\\..*/, \"\\\\.\"));\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type));\n iterator.stepForward();\n }\n \n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + 2;\n\n iterator = new TokenIterator(this, row, column);\n \n if (dir != -1) {\n do {\n token = iterator.stepForward();\n } while (token && re.test(token.type));\n token = iterator.stepBackward();\n } else\n token = iterator.getCurrentToken();\n\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn() + token.value.length - 2;\n return range;\n }\n };\n\n this.foldAll = function(startRow, endRow, depth) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow\n ) {\n row = range.end.row;\n try {\n var fold = this.addFold(\"...\", range);\n if (fold)\n fold.collapseChildren = depth;\n } catch(e) {}\n }\n }\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function(style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n \n if (this.$foldStyle == style)\n return;\n\n this.$foldStyle = style;\n \n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n\n this.$setFolding = function(foldMode) {\n if (this.$foldMode == foldMode)\n return;\n \n this.$foldMode = foldMode;\n \n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n \n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n \n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n \n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n\n this.onFoldWidgetClick = function(row, e) {\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n \n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n \n this.$toggleFoldWidget = function(row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return;\n }\n\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return;\n }\n }\n \n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n } else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n } else if (range) {\n if (options.all) \n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n \n return range;\n };\n \n \n \n this.toggleFoldWidget = function(toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n \n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n \n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n\n if (fold) {\n this.removeFold(fold);\n } else {\n this.addFold(\"...\", range);\n }\n }\n };\n\n this.updateFoldWidgets = function(delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n } else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function(e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\n\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\n\nfunction BracketMatch() {\n\n this.findMatchingBracket = function(position, chr) {\n if (position.column == 0) return null;\n\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column-1);\n if (charBeforeCursor == \"\") return null;\n\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n \n this.getBracketRange = function(pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n\n var chr = line.charAt(pos.column-1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = {row: pos.row, column: pos.column + 1};\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n } else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n \n return range;\n };\n\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\"\n };\n\n this.$findOpeningBracket = function(bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n \n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n \n while (true) {\n \n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n \n value = token.value;\n valueIndex = value.length - 1;\n }\n \n return null;\n };\n\n this.$findClosingBracket = function(bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n\n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n\n while (true) {\n\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n\n valueIndex = 0;\n }\n \n return null;\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar config = acequire(\"./config\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Selection = acequire(\"./selection\").Selection;\nvar TextMode = acequire(\"./mode/text\").Mode;\nvar Range = acequire(\"./range\").Range;\nvar Document = acequire(\"./document\").Document;\nvar BackgroundTokenizer = acequire(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = acequire(\"./search_highlight\").SearchHighlight;\n\nvar EditSession = function(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n\n this.$foldData = [];\n this.$foldData.toString = function() {\n return this.join(\"\\n\");\n };\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n\n this.setDocument(text);\n this.selection = new Selection(this);\n\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n};\n\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setDocument = function(doc) {\n if (this.doc)\n this.doc.removeListener(\"change\", this.$onChange);\n\n this.doc = doc;\n doc.on(\"change\", this.$onChange);\n\n if (this.bgTokenizer)\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.resetCaches();\n };\n this.getDocument = function() {\n return this.doc;\n };\n this.$resetRowCache = function(docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n\n this.$getRowCacheIndex = function(cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n\n return low -1;\n };\n\n this.resetCaches = function() {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (this.bgTokenizer)\n this.bgTokenizer.start(0);\n };\n\n this.onChangeFold = function(e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n\n this.onChange = function(delta) {\n this.$modified = true;\n\n this.$resetRowCache(delta.start.row);\n\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager && !delta.ignore) {\n this.$deltasDoc.push(delta);\n if (removedFolds && removedFolds.length != 0) {\n this.$deltasFold.push({\n action: \"removeFolds\",\n folds: removedFolds\n });\n }\n\n this.$informUndoManager.schedule();\n }\n\n this.bgTokenizer && this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n this.setValue = function(text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n\n this.$resetRowCache(0);\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n this.getValue =\n this.toString = function() {\n return this.doc.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.getState = function(row) {\n return this.bgTokenizer.getState(row);\n };\n this.getTokens = function(row) {\n return this.bgTokenizer.getTokens(row);\n };\n this.getTokenAt = function(row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n i = tokens.length - 1;\n c = this.getLine(row).length;\n } else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n this.setUndoManager = function(undoManager) {\n this.$undoManager = undoManager;\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n\n if (undoManager) {\n var self = this;\n\n this.$syncInformUndoManager = function() {\n self.$informUndoManager.cancel();\n\n if (self.$deltasFold.length) {\n self.$deltas.push({\n group: \"fold\",\n deltas: self.$deltasFold\n });\n self.$deltasFold = [];\n }\n\n if (self.$deltasDoc.length) {\n self.$deltas.push({\n group: \"doc\",\n deltas: self.$deltasDoc\n });\n self.$deltasDoc = [];\n }\n\n if (self.$deltas.length > 0) {\n undoManager.execute({\n action: \"aceupdate\",\n args: [self.$deltas, self],\n merge: self.mergeUndoDeltas\n });\n }\n self.mergeUndoDeltas = false;\n self.$deltas = [];\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n };\n this.markUndoGroup = function() {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n \n this.$defaultUndoManager = {\n undo: function() {},\n redo: function() {},\n reset: function() {}\n };\n this.getUndoManager = function() {\n return this.$undoManager || this.$defaultUndoManager;\n };\n this.getTabString = function() {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n } else {\n return \"\\t\";\n }\n };\n this.setUseSoftTabs = function(val) {\n this.setOption(\"useSoftTabs\", val);\n };\n this.getUseSoftTabs = function() {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n this.setTabSize = function(tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n this.getTabSize = function() {\n return this.$tabSize;\n };\n this.isTabStop = function(position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n\n this.$overwrite = false;\n this.setOverwrite = function(overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n this.getOverwrite = function() {\n return this.$overwrite;\n };\n this.toggleOverwrite = function() {\n this.setOverwrite(!this.$overwrite);\n };\n this.addGutterDecoration = function(row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n this.removeGutterDecoration = function(row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n this.getBreakpoints = function() {\n return this.$breakpoints;\n };\n this.setBreakpoints = function(rows) {\n this.$breakpoints = [];\n for (var i=0; i 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column-1, column+1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n\n var start = column;\n if (start > 0) {\n do {\n start--;\n }\n while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n\n return new Range(row, start, row, end);\n };\n this.getAWordRange = function(row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n this.setNewLineMode = function(newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n this.getNewLineMode = function() {\n return this.doc.getNewLineMode();\n };\n this.setUseWorker = function(useWorker) { this.setOption(\"useWorker\", useWorker); };\n this.getUseWorker = function() { return this.$useWorker; };\n this.onReloadTokenizer = function(e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n\n this.$modes = {};\n this.$mode = null;\n this.$modeId = null;\n this.setMode = function(mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n } else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function(m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n } else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n\n this.$onChangeMode = function(mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode) \n return;\n\n this.$mode = mode;\n\n this.$stopWorker();\n\n if (this.$useWorker)\n this.$startWorker();\n\n var tokenizer = mode.getTokenizer();\n\n if(tokenizer.addEventListener !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.addEventListener(\"update\", onReloadTokenizer);\n }\n\n if (!this.bgTokenizer) {\n this.bgTokenizer = new BackgroundTokenizer(tokenizer);\n var _self = this;\n this.bgTokenizer.addEventListener(\"update\", function(e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n } else {\n this.bgTokenizer.setTokenizer(tokenizer);\n }\n\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n\n \n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\");\n }\n };\n\n this.$stopWorker = function() {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n\n this.$startWorker = function() {\n try {\n this.$worker = this.$mode.createWorker(this);\n } catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n this.getMode = function() {\n return this.$mode;\n };\n\n this.$scrollTop = 0;\n this.setScrollTop = function(scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n this.getScrollTop = function() {\n return this.$scrollTop;\n };\n\n this.$scrollLeft = 0;\n this.setScrollLeft = function(scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n this.getScrollLeft = function() {\n return this.$scrollLeft;\n };\n this.getScreenWidth = function() {\n this.$computeWidth();\n if (this.lineWidgets) \n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n \n this.getLineWidgetMaxWidth = function() {\n if (this.lineWidgetsWidth != null) return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function(w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n\n this.$computeWidth = function(force) {\n if (this.$modified || force) {\n this.$modified = false;\n\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n this.getLine = function(row) {\n return this.doc.getLine(row);\n };\n this.getLines = function(firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n this.getLength = function() {\n return this.doc.getLength();\n };\n this.getTextRange = function(range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n this.insert = function(position, text) {\n return this.doc.insert(position, text);\n };\n this.remove = function(range) {\n return this.doc.remove(range);\n };\n this.removeFullLines = function(firstRow, lastRow){\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n this.undoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.revertDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, true, lastUndoRange);\n } else {\n delta.deltas.forEach(function(foldDelta) {\n this.addFolds(foldDelta.folds);\n }, this);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.redoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.applyDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, false, lastUndoRange);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.setUndoSelect = function(enable) {\n this.$undoSelect = enable;\n };\n\n this.$getUndoSelection = function(deltas, isUndo, lastUndoRange) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n\n var delta = deltas[0];\n var range, point;\n var lastDeltaIsInsert = false;\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n lastDeltaIsInsert = true;\n } else {\n range = Range.fromPoints(delta.start, delta.start);\n lastDeltaIsInsert = false;\n }\n\n for (var i = 1; i < deltas.length; i++) {\n delta = deltas[i];\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n lastDeltaIsInsert = true;\n } else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n lastDeltaIsInsert = false;\n }\n }\n if (lastUndoRange != null) {\n if (Range.comparePoints(lastUndoRange.start, range.start) === 0) {\n lastUndoRange.start.column += range.end.column - range.start.column;\n lastUndoRange.end.column += range.end.column - range.start.column;\n }\n\n var cmp = lastUndoRange.compareRange(range);\n if (cmp == 1) {\n range.setStart(lastUndoRange.start);\n } else if (cmp == -1) {\n range.setEnd(lastUndoRange.end);\n }\n }\n\n return range;\n };\n this.replace = function(range, text) {\n return this.doc.replace(range, text);\n };\n this.moveText = function(fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function(x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n\n return toRange;\n };\n this.indentRows = function(startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row=startRow; row<=endRow; row++)\n this.doc.insertInLine({row: row, column: 0}, indentString);\n };\n this.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n } else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n\n this.$moveLines = function(firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0) return 0;\n var diff = row-firstRow;\n } else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength()-1) return 0;\n var diff = row-lastRow;\n } else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function(x){\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n \n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow+diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n this.moveLinesUp = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n this.moveLinesDown = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n this.duplicateLines = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n\n\n this.$clipRowToDocument = function(row) {\n return Math.max(0, Math.min(row, this.doc.getLength()-1));\n };\n\n this.$clipColumnToRow = function(row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n\n\n this.$clipPositionToDocument = function(row, column) {\n column = Math.max(0, column);\n\n if (row < 0) {\n row = 0;\n column = 0;\n } else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len-1).length;\n } else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n\n return {\n row: row,\n column: column\n };\n };\n\n this.$clipRangeToDocument = function(range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n } else {\n range.start.column = this.$clipColumnToRow(\n range.start.row,\n range.start.column\n );\n }\n\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n } else {\n range.end.column = this.$clipColumnToRow(\n range.end.row,\n range.end.column\n );\n }\n return range;\n };\n this.$wrapLimit = 80;\n this.$useWrapMode = false;\n this.$wrapLimitRange = {\n min : null,\n max : null\n };\n this.setUseWrapMode = function(useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n\n this._signal(\"changeWrapMode\");\n }\n };\n this.getUseWrapMode = function() {\n return this.$useWrapMode;\n };\n this.setWrapLimitRange = function(min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n this.adjustWrapLimit = function(desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = {min: $printMargin, max: $printMargin};\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n\n this.$constrainWrapLimit = function(wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n\n return wrapLimit;\n };\n this.getWrapLimit = function() {\n return this.$wrapLimit;\n };\n this.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n this.getWrapLimitRange = function() {\n return {\n min : this.$wrapLimitRange.min,\n max : this.$wrapLimitRange.max\n };\n };\n\n this.$updateInternalDataOnChange = function(delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n \n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n\n lastRow = firstRow;\n } else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n } else\n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n } else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n\n return removedFolds;\n };\n\n this.$updateRowLengthCache = function(firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n\n this.$updateWrapData = function(firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row ++;\n } else {\n tokens = [];\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(\n placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n } else {\n walkTokens = this.$getDisplayTokens(\n lines[row].substring(lastColumn, column),\n tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this),\n foldLine.end.row,\n lines[foldLine.end.row].length + 1\n );\n\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n var CHAR = 1,\n CHAR_EXT = 2,\n PLACEHOLDER_START = 3,\n PLACEHOLDER_BODY = 4,\n PUNCTUATION = 9,\n SPACE = 10,\n TAB = 11,\n TAB_SPACE = 12;\n\n\n this.$computeWrapSplits = function(tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n\n var isCode = this.$wrapAsCode;\n\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var displayed = tokens.slice(lastSplit, screenPos);\n var len = displayed.length;\n displayed.join(\"\")\n .replace(/12/g, function() {\n len -= 1;\n })\n .replace(/2/g, function() {\n len -= 1;\n });\n\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit -(wrapLimit>>2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split --;\n }\n } else {\n while (split > minSplit && tokens[split] < SPACE) {\n split --;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n this.$getDisplayTokens = function(str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n } else if((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n } else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n } else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n\n return [screenColumn, column];\n };\n\n this.lineWidgets = null;\n this.getRowLength = function(row) {\n if (this.lineWidgets)\n var h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n this.getRowLineCount = function(row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n } else {\n return this.$wrapData[row].length + 1;\n }\n };\n\n this.getRowWrapIndent = function(screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n } else {\n return 0;\n }\n }\n this.getScreenLastRowColumn = function(screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n this.getDocumentLastRowColumn = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n this.getDocumentLastRowColumnPosition = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n this.getRowSplitData = function(row) {\n if (!this.$useWrapMode) {\n return undefined;\n } else {\n return this.$wrapData[row];\n }\n };\n this.getScreenTabSize = function(screenColumn) {\n return this.$tabSize - screenColumn % this.$tabSize;\n };\n\n\n this.screenToDocumentRow = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n\n\n this.screenToDocumentColumn = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n this.screenToDocumentPosition = function(screenRow, screenColumn) {\n if (screenRow < 0)\n return {row: 0, column: 0};\n\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n } else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row+1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n } else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n } else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n var splitIndex = Math.floor(screenRow - row);\n column = splits[splitIndex];\n if(splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n\n return {row: docRow, column: docColumn};\n };\n this.documentToScreenPosition = function(docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n\n docRow = pos.row;\n docColumn = pos.column;\n\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n\n var rowEnd, row = 0;\n\n\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ?foldLine.start.row :Infinity;\n\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ?foldLine.start.row :Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n\n screenRow += this.getRowLength(row);\n row = rowEnd;\n\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n } else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow ++;\n screenRowOffset++;\n }\n textLine = textLine.substring(\n wrapRow[screenRowOffset - 1] || 0, textLine.length\n );\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n this.documentToScreenColumn = function(row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n this.documentToScreenRow = function(docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n this.getScreenLength = function() {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n } else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row :Infinity;\n\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row ++;\n if (row > foldStart) {\n row = fold.end.row+1;\n fold = this.$foldData[i++];\n foldStart = fold ?fold.start.row :Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n\n return screenRows;\n };\n this.$setFontMetrics = function(fm) {\n if (!this.$enableVarChar) return;\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n \n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n } else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n \n return [screenColumn, column];\n };\n };\n \n this.destroy = function() {\n if (this.bgTokenizer) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer = null;\n }\n this.$stopWorker();\n };\n function isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n }\n\n}).call(EditSession.prototype);\n\nacequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nacequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\n\n\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function(value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n } else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function() {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n }, \n wrapMethod: {\n set: function(val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$modified = true;\n this.$resetRowCache(0);\n this.$updateWrapData(0, this.getLength() - 1);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: { initialValue: true },\n firstLineNumber: {\n set: function() {this._signal(\"changeBreakpoint\");},\n initialValue: 1\n },\n useWorker: {\n set: function(useWorker) {\n this.$useWorker = useWorker;\n\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: {initialValue: true},\n tabSize: {\n set: function(tabSize) {\n if (isNaN(tabSize) || this.$tabSize === tabSize) return;\n\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n },\n initialValue: 4,\n handlesSet: true\n },\n overwrite: {\n set: function(val) {this._signal(\"changeOverwrite\");},\n initialValue: false\n },\n newLineMode: {\n set: function(val) {this.doc.setNewLineMode(val)},\n get: function() {return this.doc.getNewLineMode()},\n handlesSet: true\n },\n mode: {\n set: function(val) { this.setMode(val) },\n get: function() { return this.$modeId }\n }\n});\n\nexports.EditSession = EditSession;\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar Search = function() {\n this.$options = {};\n};\n\n(function() {\n this.set = function(options) {\n oop.mixin(this.$options, options);\n return this;\n };\n this.getOptions = function() {\n return lang.copyObject(this.$options);\n };\n this.setOptions = function(options) {\n this.$options = options;\n };\n this.find = function(session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n\n var firstRange = null;\n iterator.forEach(function(range, row, offset) {\n if (!range.start) {\n var column = range.offset + (offset || 0);\n firstRange = new Range(row, column, row, column + range.length);\n if (!range.length && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)\n ) {\n firstRange = null;\n return false;\n }\n } else\n firstRange = range;\n return true;\n });\n\n return firstRange;\n };\n this.findAll = function(session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n \n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n \n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex\n ) {\n continue;\n }\n ranges.push(prevRange = new Range(\n row, startIndex, row + len - 1, endIndex\n ));\n if (len > 2)\n row = row + len - 2;\n }\n } else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.start.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == range.start.row)\n i++;\n\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == range.end.row)\n j--;\n \n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n\n return ranges;\n };\n this.replace = function(input, replacement) {\n var options = this.$options;\n\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n\n if (!re)\n return;\n\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n \n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--; ) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n \n return replacement;\n };\n\n this.$matchIterator = function(session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n\n var callback;\n if (options.$isMultiLine) {\n var len = re.length;\n var matchIterator = function(line, row, offset) {\n var startIndex = line.search(re[0]);\n if (startIndex == -1)\n return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(row + i);\n if (line.search(re[i]) == -1)\n return;\n }\n\n var endIndex = line.match(re[len - 1])[0].length;\n\n var range = new Range(row, startIndex, row + len - 1, endIndex);\n if (re.offset == 1) {\n range.start.row--;\n range.start.column = Number.MAX_VALUE;\n } else if (offset)\n range.start.column += offset;\n\n if (callback(range))\n return true;\n };\n } else if (options.backwards) {\n var matchIterator = function(line, row, startIndex) {\n var matches = lang.getMatchOffsets(line, re);\n for (var i = matches.length-1; i >= 0; i--)\n if (callback(matches[i], row, startIndex))\n return true;\n };\n } else {\n var matchIterator = function(line, row, startIndex) {\n var matches = lang.getMatchOffsets(line, re);\n for (var i = 0; i < matches.length; i++)\n if (callback(matches[i], row, startIndex))\n return true;\n };\n }\n \n var lineIterator = this.$lineIterator(session, options);\n\n return {\n forEach: function(_callback) {\n callback = _callback;\n lineIterator.forEach(matchIterator);\n }\n };\n };\n\n this.$assembleRegExp = function(options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n\n var needle = options.needle;\n\n if (!options.needle)\n return options.re = false;\n\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n\n if (options.wholeWord)\n needle = \"\\\\b\" + needle + \"\\\\b\";\n\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n\n try {\n var re = new RegExp(needle, modifier);\n } catch(e) {\n re = false;\n }\n return options.re = re;\n };\n\n this.$assembleMultilineRegExp = function(needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++) try {\n re.push(new RegExp(parts[i], modifier));\n } catch(e) {\n return false;\n }\n if (parts[0] == \"\") {\n re.shift();\n re.offset = 1;\n } else {\n re.offset = 0;\n }\n return re;\n };\n\n this.$lineIterator = function(session, options) {\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n \n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n\n var forEach = backwards ? function(callback) {\n var row = start.row;\n\n var line = session.getLine(row).substring(0, start.column);\n if (callback(line, row))\n return;\n\n for (row--; row >= firstRow; row--)\n if (callback(session.getLine(row), row))\n return;\n\n if (options.wrap == false)\n return;\n\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (callback(session.getLine(row), row))\n return;\n } : function(callback) {\n var row = start.row;\n\n var line = session.getLine(row).substr(start.column);\n if (callback(line, row, start.column))\n return;\n\n for (row = row+1; row <= lastRow; row++)\n if (callback(session.getLine(row), row))\n return;\n\n if (options.wrap == false)\n return;\n\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (callback(session.getLine(row), row))\n return;\n };\n \n return {forEach: forEach};\n };\n\n}).call(Search.prototype);\n\nexports.Search = Search;\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keyUtil = acequire(\"../lib/keys\");\nvar useragent = acequire(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\n\nfunction HashHandler(config, platform) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = true;\n}\n\nfunction MultiHashHandler(config, platform) {\n HashHandler.call(this, config, platform);\n this.$singleCommand = false;\n}\n\nMultiHashHandler.prototype = HashHandler.prototype;\n\n(function() {\n \n\n this.addCommand = function(command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n\n this.commands[command.name] = command;\n\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n\n this.removeCommand = function(command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n } else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n\n this.bindKey = function(key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({exec: command, bindKey: key, name: command.name || key});\n \n key.split(\"|\").forEach(function(keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function(keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n \n function getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position || 0;\n }\n this._addCommandToBinding = function(keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n } else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n } else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n } else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n\n if (typeof position != \"number\") {\n if (position || command.isDefault)\n position = -100;\n else\n position = getPosition(command);\n }\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n\n this.addCommands = function(commands) {\n commands && Object.keys(commands).forEach(function(name) {\n var command = commands[name];\n if (!command)\n return;\n \n if (typeof command === \"string\")\n return this.bindKey(command, name);\n\n if (typeof command === \"function\")\n command = { exec: command };\n\n if (typeof command !== \"object\")\n return;\n\n if (!command.name)\n command.name = name;\n\n this.addCommand(command);\n }, this);\n };\n\n this.removeCommands = function(commands) {\n Object.keys(commands).forEach(function(name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n\n this.bindKeys = function(keyList) {\n Object.keys(keyList).forEach(function(key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n\n this._buildKeyHash = function(command) {\n this.bindKey(command.bindKey, command);\n };\n this.parseKeys = function(keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function(x){return x});\n var key = parts.pop();\n\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return {key: key, hashId: -1};\n else if (parts.length == 1 && parts[0] == \"shift\")\n return {key: key.toUpperCase(), hashId: -1};\n\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return {key: key, hashId: hashId};\n };\n\n this.findKeyCommand = function findKeyCommand(hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n\n this.handleKeyboard = function(data, hashId, keyString, keyCode) {\n if (keyCode < 0) return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n \n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return {command: \"null\"};\n }\n }\n \n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return {command: command};\n };\n \n this.getStatusText = function(editor, data) {\n return data.$keyChain || \"\";\n };\n\n}).call(HashHandler.prototype);\n\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar MultiHashHandler = acequire(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CommandManager = function(platform, commands) {\n MultiHashHandler.call(this, commands, platform);\n this.byName = this.commands;\n this.setDefaultHandler(\"exec\", function(e) {\n return e.command.exec(e.editor, e.args || {});\n });\n};\n\noop.inherits(CommandManager, MultiHashHandler);\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.exec = function(command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--; ) {\n if (this.exec(command[i], editor, args)) return true;\n }\n return false;\n }\n \n if (typeof command === \"string\")\n command = this.commands[command];\n\n if (!command)\n return false;\n\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n\n var e = {editor: editor, command: command, args: args};\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n\n return e.returnValue === false ? false : true;\n };\n\n this.toggleRecording = function(editor) {\n if (this.$inReplay)\n return;\n\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.removeEventListener(\"exec\", this.$addCommandToMacro);\n\n if (!this.macro.length)\n this.macro = this.oldMacro;\n\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function(e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n\n this.replay = function(editor) {\n if (this.$inReplay || !this.macro)\n return;\n\n if (this.recording)\n return this.toggleRecording(editor);\n\n try {\n this.$inReplay = true;\n this.macro.forEach(function(x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n } finally {\n this.$inReplay = false;\n }\n };\n\n this.trimMacro = function(m) {\n return m.map(function(x){\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n\n}).call(CommandManager.prototype);\n\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\nvar config = acequire(\"../config\");\nvar Range = acequire(\"../range\").Range;\n\nfunction bindKey(win, mac) {\n return {win: win, mac: mac};\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/settings_menu\", function(module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n}, {\n name: \"goToNextError\",\n bindKey: bindKey(\"Alt-E\", \"Ctrl-E\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"goToPreviousError\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Ctrl-Shift-E\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selectall\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function(editor) { editor.selectAll(); },\n readOnly: true\n}, {\n name: \"centerselection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function(editor) { editor.centerSelection(); },\n readOnly: true\n}, {\n name: \"gotoline\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function(editor) {\n var line = parseInt(prompt(\"Enter line number:\"), 10);\n if (!isNaN(line)) {\n editor.gotoLine(line);\n }\n },\n readOnly: true\n}, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function(editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function(editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleFoldWidget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleParentFoldWidget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldall\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function(editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldOther\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function(editor) { \n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfoldall\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function(editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findnext\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function(editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findprevious\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function(editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"selectOrFindNext\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function(editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext(); \n },\n readOnly: true\n}, {\n name: \"selectOrFindPrevious\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function(editor) { \n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n}, {\n name: \"find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor)});\n },\n readOnly: true\n}, {\n name: \"overwrite\",\n bindKey: \"Insert\",\n exec: function(editor) { editor.toggleOverwrite(); },\n readOnly: true\n}, {\n name: \"selecttostart\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Up\"),\n exec: function(editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotostart\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function(editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectup\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up\"),\n exec: function(editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golineup\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function(editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttoend\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-Down\"),\n exec: function(editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotoend\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function(editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectdown\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down\"),\n exec: function(editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golinedown\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function(editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordleft\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function(editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordleft\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function(editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolinestart\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left\"),\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolinestart\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function(editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectleft\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left\"),\n exec: function(editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoleft\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function(editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordright\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordright\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function(editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolineend\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolineend\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function(editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectright\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoright\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function(editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectpagedown\",\n bindKey: \"Shift-PageDown\",\n exec: function(editor) { editor.selectPageDown(); },\n readOnly: true\n}, {\n name: \"pagedown\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function(editor) { editor.scrollPageDown(); },\n readOnly: true\n}, {\n name: \"gotopagedown\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function(editor) { editor.gotoPageDown(); },\n readOnly: true\n}, {\n name: \"selectpageup\",\n bindKey: \"Shift-PageUp\",\n exec: function(editor) { editor.selectPageUp(); },\n readOnly: true\n}, {\n name: \"pageup\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function(editor) { editor.scrollPageUp(); },\n readOnly: true\n}, {\n name: \"gotopageup\",\n bindKey: \"PageUp\",\n exec: function(editor) { editor.gotoPageUp(); },\n readOnly: true\n}, {\n name: \"scrollup\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function(e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"scrolldown\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function(e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"selectlinestart\",\n bindKey: \"Shift-Home\",\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectlineend\",\n bindKey: \"Shift-End\",\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"togglerecording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function(editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n}, {\n name: \"replaymacro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function(editor) { editor.commands.replay(editor); },\n readOnly: true\n}, {\n name: \"jumptomatching\",\n bindKey: bindKey(\"Ctrl-P\", \"Ctrl-P\"),\n exec: function(editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selecttomatching\",\n bindKey: bindKey(\"Ctrl-Shift-P\", \"Ctrl-Shift-P\"),\n exec: function(editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"expandToMatching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function(editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"passKeysToBrowser\",\n bindKey: bindKey(null, null),\n exec: function() {},\n passEvent: true,\n readOnly: true\n}, {\n name: \"copy\",\n exec: function(editor) {\n },\n readOnly: true\n},\n{\n name: \"cut\",\n exec: function(editor) {\n var range = editor.getSelectionRange();\n editor._emit(\"cut\", range);\n\n if (!editor.selection.isEmpty()) {\n editor.session.remove(range);\n editor.clearSelection();\n }\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"paste\",\n exec: function(editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n}, {\n name: \"removeline\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function(editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"duplicateSelection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function(editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"sortlines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function(editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"togglecomment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function(editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"toggleBlockComment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function(editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"modifyNumberUp\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function(editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"modifyNumberDown\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function(editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor, true)});\n }\n}, {\n name: \"undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function(editor) { editor.undo(); }\n}, {\n name: \"redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function(editor) { editor.redo(); }\n}, {\n name: \"copylinesup\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function(editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesup\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function(editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"copylinesdown\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function(editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesdown\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function(editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"del\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function(editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"backspace\",\n bindKey: bindKey(\n \"Shift-Backspace|Backspace\",\n \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"\n ),\n exec: function(editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"cut_or_delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function(editor) { \n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n } else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolinestart\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function(editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolineend\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K\"),\n exec: function(editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordleft\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function(editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordright\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function(editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function(editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockoutdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockindent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function(editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"insertstring\",\n exec: function(editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"inserttext\",\n exec: function(editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"splitline\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function(editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"transposeletters\",\n bindKey: bindKey(\"Ctrl-T\", \"Ctrl-T\"),\n exec: function(editor) { editor.transposeLetters(); },\n multiSelectAction: function(editor) {editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"touppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function(editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"tolowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function(editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"expandtoline\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function(editor) {\n var range = editor.selection.getRange();\n\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"joinlines\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n } else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n}, {\n name: \"invertSelection\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n } else {\n newRanges.push(new Range(ranges[i-1].end.row, ranges[i-1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n\n editor.exitMultiSelectMode();\n editor.clearSelection();\n\n for(var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n}];\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar lang = acequire(\"./lib/lang\");\nvar useragent = acequire(\"./lib/useragent\");\nvar TextInput = acequire(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = acequire(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = acequire(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = acequire(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar Search = acequire(\"./search\").Search;\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = acequire(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = acequire(\"./commands/default_commands\").commands;\nvar config = acequire(\"./config\");\nvar TokenIterator = acequire(\"./token_iterator\").TokenIterator;\nvar Editor = function(renderer, session) {\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.keyBinding = new KeyBinding(this);\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n\n this.$blockScrolling = 0;\n this.$search = new Search().set({\n wrap: true\n });\n\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n\n this.$initOperationListeners();\n \n this._$emitInputEvent = lang.delayedCall(function() {\n this._signal(\"input\", {});\n if (this.session && this.session.bgTokenizer)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n \n this.on(\"change\", function(_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n\n this.setSession(session || new EditSession(\"\"));\n config.resetOptions(this);\n config._signal(\"editor\", this);\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$initOperationListeners = function() {\n function last(a) {return a[a.length - 1]}\n\n this.selections = [];\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this));\n\n this.on(\"change\", function() {\n this.curOp || this.startOperation();\n this.curOp.docChanged = true;\n }.bind(this), true);\n\n this.on(\"changeSelection\", function() {\n this.curOp || this.startOperation();\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n\n this.curOp = null;\n this.prevOp = {};\n this.startOperation = function(commadEvent) {\n if (this.curOp) {\n if (!commadEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commadEvent) {\n this.previousCommand = null;\n commadEvent = {};\n }\n\n this.$opResetTimer.schedule();\n this.curOp = {\n command: commadEvent.command || {},\n args: commadEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n if (this.curOp.command.name && this.curOp.command.scrollIntoView !== undefined)\n this.$blockScrolling++;\n };\n\n this.endOperation = function(e) {\n if (this.curOp) {\n if (e && e.returnValue === false)\n return this.curOp = null;\n this._signal(\"beforeEndOperation\");\n var command = this.curOp.command;\n if (command.name && this.$blockScrolling > 0)\n this.$blockScrolling--;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n \n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n this.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\n this.$historyTracker = function(e) {\n if (!this.$mergeUndoDeltas)\n return;\n\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n\n this.mergeNextCommand = true;\n } else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n\n if (\n this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000\n ) {\n shouldMerge = false; // the sequence is too long\n }\n\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n this.setKeyboardHandler = function(keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function(module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n } else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n this.getKeyboardHandler = function() {\n return this.keyBinding.getKeyboardHandler();\n };\n this.setSession = function(session) {\n if (this.session == session)\n return;\n if (this.curOp) this.endOperation();\n this.curOp = {};\n\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n \n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n \n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n \n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n \n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n \n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n \n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n \n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n \n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n \n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n \n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n \n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n \n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n \n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n \n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n \n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n \n this.onChangeMode();\n \n this.$blockScrolling += 1;\n this.onCursorChange();\n this.$blockScrolling -= 1;\n \n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n } else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n \n this.curOp = null;\n \n oldSession && oldSession._signal(\"changeEditor\", {oldEditor: this});\n session && session._signal(\"changeEditor\", {editor: this});\n };\n this.getSession = function() {\n return this.session;\n };\n this.setValue = function(val, cursorPos) {\n this.session.doc.setValue(val);\n\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n\n return val;\n };\n this.getValue = function() {\n return this.session.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.resize = function(force) {\n this.renderer.onResize(force);\n };\n this.setTheme = function(theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n this.getTheme = function() {\n return this.renderer.getTheme();\n };\n this.setStyle = function(style) {\n this.renderer.setStyle(style);\n };\n this.unsetStyle = function(style) {\n this.renderer.unsetStyle(style);\n };\n this.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container, \"fontSize\");\n };\n this.setFontSize = function(size) {\n this.setOption(\"fontSize\", size);\n };\n\n this.$highlightBrackets = function() {\n if (this.session.$bracketHighlight) {\n this.session.removeMarker(this.session.$bracketHighlight);\n this.session.$bracketHighlight = null;\n }\n\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function() {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n var pos = session.findMatchingBracket(self.getCursorPosition());\n if (pos) {\n var range = new Range(pos.row, pos.column, pos.row, pos.column + 1);\n } else if (session.$mode.getMatching) {\n var range = session.$mode.getMatching(self.session);\n }\n if (range)\n session.$bracketHighlight = session.addMarker(range, \"ace_bracket\", \"text\");\n }, 50);\n };\n this.$highlightTags = function() {\n if (this.$highlightTagPending)\n return;\n var self = this;\n this.$highlightTagPending = true;\n setTimeout(function() {\n self.$highlightTagPending = false;\n \n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n \n var pos = self.getCursorPosition();\n var iterator = new TokenIterator(self.session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n \n if (!token || !/\\b(?:tag-open|tag-name)/.test(token.type)) {\n session.removeMarker(session.$tagHighlight);\n session.$tagHighlight = null;\n return;\n }\n \n if (token.type.indexOf(\"tag-open\") != -1) {\n token = iterator.stepForward();\n if (!token)\n return;\n }\n \n var tag = token.value;\n var depth = 0;\n var prevToken = iterator.stepBackward();\n \n if (prevToken.value == '<'){\n do {\n prevToken = token;\n token = iterator.stepForward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<'){\n depth++;\n } else if (prevToken.value === '= 0);\n } else {\n do {\n token = prevToken;\n prevToken = iterator.stepBackward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<') {\n depth++;\n } else if (prevToken.value === ' 1))\n highlight = false;\n }\n\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n } else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n } else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n\n this.onSelectionChange = function(e) {\n var session = this.session;\n\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n } else {\n this.$updateHighlightActiveLine();\n }\n\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n\n this._signal(\"changeSelection\");\n };\n\n this.$getSelectionHighLightRegexp = function() {\n var session = this.session;\n\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n\n var startOuter = selection.start.column - 1;\n var endOuter = selection.end.column + 1;\n var line = session.getLine(selection.start.row);\n var lineCols = line.length;\n var needle = line.substring(Math.max(startOuter, 0),\n Math.min(endOuter, lineCols));\n if ((startOuter >= 0 && /^[\\w\\d]/.test(needle)) ||\n (endOuter <= lineCols && /[\\w\\d]$/.test(needle)))\n return;\n\n needle = line.substring(selection.start.column, selection.end.column);\n if (!/^[\\w\\d]+$/.test(needle))\n return;\n\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n\n return re;\n };\n\n\n this.onChangeFrontMarker = function() {\n this.renderer.updateFrontMarkers();\n };\n\n this.onChangeBackMarker = function() {\n this.renderer.updateBackMarkers();\n };\n\n\n this.onChangeBreakpoint = function() {\n this.renderer.updateBreakpoints();\n };\n\n this.onChangeAnnotation = function() {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n\n\n this.onChangeMode = function(e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n\n\n this.onChangeWrapLimit = function() {\n this.renderer.updateFull();\n };\n\n this.onChangeWrapMode = function() {\n this.renderer.onResize(true);\n };\n\n\n this.onChangeFold = function() {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n this.getSelectedText = function() {\n return this.session.getTextRange(this.getSelectionRange());\n };\n this.getCopyText = function() {\n var text = this.getSelectedText();\n this._signal(\"copy\", text);\n return text;\n };\n this.onCopy = function() {\n this.commands.exec(\"copy\", this);\n };\n this.onCut = function() {\n this.commands.exec(\"cut\", this);\n };\n this.onPaste = function(text, event) {\n var e = {text: text, event: event};\n this.commands.exec(\"paste\", this, e);\n };\n \n this.$handlePaste = function(e) {\n if (typeof e == \"string\") \n e = {text: e};\n this._signal(\"paste\", e);\n var text = e.text;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n this.insert(text);\n } else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n \n if (lines.length > ranges.length || lines.length < 2 || !lines[1])\n return this.commands.exec(\"insertstring\", this, text);\n \n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n this.session.remove(range);\n \n this.session.insert(range.start, lines[i]);\n }\n }\n };\n\n this.execCommand = function(command, args) {\n return this.commands.exec(command, this, args);\n };\n this.insert = function(text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n this.session.mergeUndoDeltas = false;\n this.$mergeNextCommand = false;\n }\n text = transform.text;\n\n }\n }\n \n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite()) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n var end = session.insert(cursor, text);\n\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(\n new Range(cursor.row, start + transform.selection[0],\n cursor.row, start + transform.selection[1]));\n } else { // Transform relative to the current row.\n this.selection.setSelectionRange(\n new Range(cursor.row + transform.selection[0],\n transform.selection[1],\n cursor.row + transform.selection[2],\n transform.selection[3]));\n }\n }\n\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n\n session.insert({row: cursor.row+1, column: 0}, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n };\n\n this.onTextInput = function(text) {\n this.keyBinding.onTextInput(text);\n };\n\n this.onCommandKey = function(e, hashId, keyCode) {\n this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n this.setOverwrite = function(overwrite) {\n this.session.setOverwrite(overwrite);\n };\n this.getOverwrite = function() {\n return this.session.getOverwrite();\n };\n this.toggleOverwrite = function() {\n this.session.toggleOverwrite();\n };\n this.setScrollSpeed = function(speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n this.getScrollSpeed = function() {\n return this.getOption(\"scrollSpeed\");\n };\n this.setDragDelay = function(dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n this.getDragDelay = function() {\n return this.getOption(\"dragDelay\");\n };\n this.setSelectionStyle = function(val) {\n this.setOption(\"selectionStyle\", val);\n };\n this.getSelectionStyle = function() {\n return this.getOption(\"selectionStyle\");\n };\n this.setHighlightActiveLine = function(shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n this.getHighlightActiveLine = function() {\n return this.getOption(\"highlightActiveLine\");\n };\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n this.setHighlightSelectedWord = function(shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n this.getHighlightSelectedWord = function() {\n return this.$highlightSelectedWord;\n };\n\n this.setAnimatedScroll = function(shouldAnimate){\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n\n this.getAnimatedScroll = function(){\n return this.renderer.getAnimatedScroll();\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.renderer.getShowInvisibles();\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n\n this.getDisplayIndentGuides = function() {\n return this.renderer.getDisplayIndentGuides();\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.renderer.getShowPrintMargin();\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.renderer.getPrintMarginColumn();\n };\n this.setReadOnly = function(readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n this.getReadOnly = function() {\n return this.getOption(\"readOnly\");\n };\n this.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n this.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n this.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n this.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n this.setShowFoldWidgets = function(show) {\n this.setOption(\"showFoldWidgets\", show);\n\n };\n this.getShowFoldWidgets = function() {\n return this.getOption(\"showFoldWidgets\");\n };\n\n this.setFadeFoldWidgets = function(fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n\n this.getFadeFoldWidgets = function() {\n return this.getOption(\"fadeFoldWidgets\");\n };\n this.remove = function(dir) {\n if (this.selection.isEmpty()){\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.removeWordRight = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeWordLeft = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineStart = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineEnd = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.splitLine = function() {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n this.transposeLetters = function() {\n if (!this.selection.isEmpty()) {\n return;\n }\n\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column-1);\n range = new Range(cursor.row, column-1, cursor.row, column+1);\n }\n else {\n swap = line.charAt(column-1) + line.charAt(column-2);\n range = new Range(cursor.row, column-2, cursor.row, column);\n }\n this.session.replace(range, swap);\n };\n this.toLowerCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.toUpperCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.indent = function() {\n var session = this.session;\n var range = this.getSelectionRange();\n\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n } else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n \n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n } else {\n var count = column % size;\n while (line[range.start.column] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n this.blockIndent = function() {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n this.blockOutdent = function() {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n this.sortLines = function() {\n var rows = this.$getSelectedRows();\n var session = this.session;\n\n var lines = [];\n for (i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n\n lines.sort(function(a, b) {\n if (a.toLowerCase() < b.toLowerCase()) return -1;\n if (a.toLowerCase() > b.toLowerCase()) return 1;\n return 0;\n });\n\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i-rows.first]);\n }\n };\n this.toggleCommentLines = function() {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n\n this.toggleBlockComment = function() {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n this.getNumberAt = function(row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if(m.index <= column && m.index+m[0].length >= column){\n var number = {\n value: m[0],\n start: m.index,\n end: m.index+m[0].length\n };\n return number;\n }\n }\n return null;\n };\n this.modifyNumber = function(amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column-1, row, column);\n\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n\n\n if(fp !== nr.end && column < fp){\n amount *= Math.pow(10, nr.end - column - 1);\n } else {\n amount *= Math.pow(10, nr.end - column);\n }\n\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start +1, column + nnr.length - nr.value.length));\n\n }\n }\n };\n this.removeLines = function() {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n\n this.duplicateSelection = function() {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n } else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n\n sel.setSelectionRange(range, reverse);\n }\n };\n this.moveLinesDown = function() {\n this.$moveLines(1, false);\n };\n this.moveLinesUp = function() {\n this.$moveLines(-1, false);\n };\n this.moveText = function(range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n this.copyLinesUp = function() {\n this.$moveLines(-1, true);\n };\n this.copyLinesDown = function() {\n this.$moveLines(1, true);\n };\n this.$moveLines = function(dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1) moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n } else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n \n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff) ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1) rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy) diff = 0;\n totalDiff += diff;\n }\n \n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n this.$getSelectedRows = function(range) {\n range = (range || this.getSelectionRange()).collapseRows();\n\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n\n this.onCompositionStart = function(text) {\n this.renderer.showComposition(this.getCursorPosition());\n };\n\n this.onCompositionUpdate = function(text) {\n this.renderer.setCompositionText(text);\n };\n\n this.onCompositionEnd = function() {\n this.renderer.hideComposition();\n };\n this.getFirstVisibleRow = function() {\n return this.renderer.getFirstVisibleRow();\n };\n this.getLastVisibleRow = function() {\n return this.renderer.getLastVisibleRow();\n };\n this.isRowVisible = function(row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n this.isRowFullyVisible = function(row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n this.$getVisibleRowCount = function() {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n\n this.$moveByPage = function(dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n\n this.$blockScrolling++;\n if (select === true) {\n this.selection.$moveSelection(function(){\n this.moveCursorBy(rows, 0);\n });\n } else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n this.$blockScrolling--;\n\n var scrollTop = renderer.scrollTop;\n\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n\n renderer.animateScrolling(scrollTop);\n };\n this.selectPageDown = function() {\n this.$moveByPage(1, true);\n };\n this.selectPageUp = function() {\n this.$moveByPage(-1, true);\n };\n this.gotoPageDown = function() {\n this.$moveByPage(1, false);\n };\n this.gotoPageUp = function() {\n this.$moveByPage(-1, false);\n };\n this.scrollPageDown = function() {\n this.$moveByPage(1);\n };\n this.scrollPageUp = function() {\n this.$moveByPage(-1);\n };\n this.scrollToRow = function(row) {\n this.renderer.scrollToRow(row);\n };\n this.scrollToLine = function(line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n this.centerSelection = function() {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n this.getCursorPosition = function() {\n return this.selection.getCursor();\n };\n this.getCursorPositionScreen = function() {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n this.getSelectionRange = function() {\n return this.selection.getRange();\n };\n this.selectAll = function() {\n this.$blockScrolling += 1;\n this.selection.selectAll();\n this.$blockScrolling -= 1;\n };\n this.clearSelection = function() {\n this.selection.clearSelection();\n };\n this.moveCursorTo = function(row, column) {\n this.selection.moveCursorTo(row, column);\n };\n this.moveCursorToPosition = function(pos) {\n this.selection.moveCursorToPosition(pos);\n };\n this.jumpToMatching = function(select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var token = prevToken || iterator.stepForward();\n\n if (!token) return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n \n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token && token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n \n if (prevToken.value === '<') {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if(this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n\n this.selection.setSelectionRange(selection);\n this.$blockScrolling -= 1;\n\n return replaced;\n };\n\n this.$tryReplace = function(range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n } else {\n return null;\n }\n };\n this.getLastSearchOptions = function() {\n return this.$search.getOptions();\n };\n this.find = function(needle, options, animate) {\n if (!options)\n options = {};\n\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({needle: needle});\n }\n\n this.$search.set(options);\n if (!options.start)\n this.$search.set({start: range});\n\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n this.findNext = function(options, animate) {\n this.find({skipCurrent: true, backwards: false}, options, animate);\n };\n this.findPrevious = function(options, animate) {\n this.find(options, {skipCurrent: true, backwards: true}, animate);\n };\n\n this.revealRange = function(range, animate) {\n this.$blockScrolling += 1;\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n this.$blockScrolling -= 1;\n\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n this.undo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().undo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.redo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().redo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.destroy = function() {\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session) {\n this.session.destroy();\n }\n };\n this.setAutoScrollEditorIntoView = function(enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function() {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function() {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function() {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())\n ) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n } else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n } else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function(enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n\n\n this.$resetCursorStyle = function() {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n\n}).call(Editor.prototype);\n\n\n\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function(style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", {data: style});\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function() {this.$updateHighlightActiveLine();},\n initialValue: true\n },\n highlightSelectedWord: {\n set: function(shouldHighlight) {this.$onSelectionChange();},\n initialValue: true\n },\n readOnly: {\n set: function(readOnly) {\n this.$resetCursorStyle(); \n },\n initialValue: false\n },\n cursorStyle: {\n set: function(val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: {initialValue: true},\n wrapBehavioursEnabled: {initialValue: true},\n autoScrollEditorIntoView: {\n set: function(val) {this.setAutoScrollEditorIntoView(val)}\n },\n keyboardHandler: {\n set: function(val) { this.setKeyboardHandler(val); },\n get: function() { return this.keybindingId; },\n handlesSet: true\n },\n\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n showLineNumbers: \"renderer\",\n showGutter: \"renderer\",\n displayIndentGuides: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\n\nexports.Editor = Editor;\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar UndoManager = function() {\n this.reset();\n};\n\n(function() {\n this.execute = function(options) {\n var deltaSets = options.args[0];\n this.$doc = options.args[1];\n if (options.merge && this.hasUndo()){\n this.dirtyCounter--;\n deltaSets = this.$undoStack.pop().concat(deltaSets);\n }\n this.$undoStack.push(deltaSets);\n this.$redoStack = [];\n if (this.dirtyCounter < 0) {\n this.dirtyCounter = NaN;\n }\n this.dirtyCounter++;\n };\n this.undo = function(dontSelect) {\n var deltaSets = this.$undoStack.pop();\n var undoSelectionRange = null;\n if (deltaSets) {\n undoSelectionRange = this.$doc.undoChanges(deltaSets, dontSelect);\n this.$redoStack.push(deltaSets);\n this.dirtyCounter--;\n }\n\n return undoSelectionRange;\n };\n this.redo = function(dontSelect) {\n var deltaSets = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSets) {\n redoSelectionRange =\n this.$doc.redoChanges(this.$deserializeDeltas(deltaSets), dontSelect);\n this.$undoStack.push(deltaSets);\n this.dirtyCounter++;\n }\n return redoSelectionRange;\n };\n this.reset = function() {\n this.$undoStack = [];\n this.$redoStack = [];\n this.dirtyCounter = 0;\n };\n this.hasUndo = function() {\n return this.$undoStack.length > 0;\n };\n this.hasRedo = function() {\n return this.$redoStack.length > 0;\n };\n this.markClean = function() {\n this.dirtyCounter = 0;\n };\n this.isClean = function() {\n return this.dirtyCounter === 0;\n };\n this.$serializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $serializeDelta);\n };\n this.$deserializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $deserializeDelta);\n };\n \n function $serializeDelta(delta){\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines.length == 1 ? null : delta.lines,\n text: delta.lines.length == 1 ? delta.lines[0] : null\n };\n }\n \n function $deserializeDelta(delta) {\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines || [delta.text]\n };\n }\n \n function cloneDeltaSetsObj(deltaSets_old, fnGetModifiedDelta) {\n var deltaSets_new = new Array(deltaSets_old.length);\n for (var i = 0; i < deltaSets_old.length; i++) {\n var deltaSet_old = deltaSets_old[i];\n var deltaSet_new = { group: deltaSet_old.group, deltas: new Array(deltaSet_old.length)};\n \n for (var j = 0; j < deltaSet_old.deltas.length; j++) {\n var delta_old = deltaSet_old.deltas[j];\n deltaSet_new.deltas[j] = fnGetModifiedDelta(delta_old);\n }\n \n deltaSets_new[i] = deltaSet_new;\n }\n return deltaSets_new;\n }\n \n}).call(UndoManager.prototype);\n\nexports.UndoManager = UndoManager;\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar lang = acequire(\"../lib/lang\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Gutter = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n \n this.gutterWidth = 0;\n\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n\n this.$cells = [];\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.setSession = function(session) {\n if (this.session)\n this.session.removeEventListener(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n\n this.addGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n\n this.removeGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n\n this.setAnnotations = function(annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = {text: []};\n \n var annoText = annotation.text;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n\n if (rowInfo.text.indexOf(annoText) === -1)\n rowInfo.text.push(annoText);\n\n var type = annotation.type;\n if (type == \"error\")\n rowInfo.className = \" ace_error\";\n else if (type == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (type == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n\n this.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n } else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n } else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n\n this.update = function(config) {\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineNumber = 0;\n \n var gutterRenderer = session.gutterRenderer || this.$renderer;\n\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$cells.length > index + 1) {\n cell = this.$cells.pop();\n this.element.removeChild(cell.element);\n }\n break;\n }\n\n cell = this.$cells[++index];\n if (!cell) {\n cell = {element: null, textNode: null, foldWidget: null};\n cell.element = dom.createElement(\"div\");\n cell.textNode = document.createTextNode('');\n cell.element.appendChild(cell.textNode);\n this.element.appendChild(cell.element);\n this.$cells[index] = cell;\n }\n\n var className = \"ace_gutter-cell \";\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row])\n className += this.$annotations[row].className;\n if (cell.element.className != className)\n cell.element.className = className;\n\n var height = session.getRowLength(row) * config.lineHeight + \"px\";\n if (height != cell.element.style.height)\n cell.element.style.height = height;\n\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n\n if (c) {\n if (!cell.foldWidget) {\n cell.foldWidget = dom.createElement(\"span\");\n cell.element.appendChild(cell.foldWidget);\n }\n var className = \"ace_fold-widget ace_\" + c;\n if (c == \"start\" && row == foldStart && row < fold.end.row)\n className += \" ace_closed\";\n else\n className += \" ace_open\";\n if (cell.foldWidget.className != className)\n cell.foldWidget.className = className;\n\n var height = config.lineHeight + \"px\";\n if (cell.foldWidget.style.height != height)\n cell.foldWidget.style.height = height;\n } else {\n if (cell.foldWidget) {\n cell.element.removeChild(cell.foldWidget);\n cell.foldWidget = null;\n }\n }\n \n var text = lastLineNumber = gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber;\n if (text != cell.textNode.data)\n cell.textNode.data = text;\n\n row++;\n }\n\n this.element.style.height = config.minHeight + \"px\";\n\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineNumber = session.getLength() + firstLineNumber;\n\n var gutterWidth = gutterRenderer \n ? gutterRenderer.getWidth(session, lastLineNumber, config)\n : lastLineNumber.toString().length * config.characterWidth;\n \n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._emit(\"changeGutterWidth\", gutterWidth);\n }\n };\n\n this.$fixedWidth = false;\n \n this.$showLineNumbers = true;\n this.$renderer = \"\";\n this.setShowLineNumbers = function(show) {\n this.$renderer = !show && {\n getWidth: function() {return \"\"},\n getText: function() {return \"\"}\n };\n };\n \n this.getShowLineNumbers = function() {\n return this.$showLineNumbers;\n };\n \n this.$showFoldWidgets = true;\n this.setShowFoldWidgets = function(show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n \n this.getShowFoldWidgets = function() {\n return this.$showFoldWidgets;\n };\n\n this.$computePadding = function() {\n if (!this.element.firstChild)\n return {left: 0, right: 0};\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = parseInt(style.paddingLeft) + 1 || 0;\n this.$padding.right = parseInt(style.paddingRight) || 0;\n return this.$padding;\n };\n\n this.getRegion = function(point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n\n}).call(Gutter.prototype);\n\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar dom = acequire(\"../lib/dom\");\n\nvar Marker = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n};\n\n(function() {\n\n this.$padding = 0;\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n this.setSession = function(session) {\n this.session = session;\n };\n \n this.setMarkers = function(markers) {\n this.markers = markers;\n };\n\n this.update = function(config) {\n var config = config || this.config;\n if (!config)\n return;\n\n this.config = config;\n\n\n var html = [];\n for (var key in this.markers) {\n var marker = this.markers[key];\n\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty()) continue;\n\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n marker.renderer(html, range, left, top, config);\n } else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n } else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n } else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n } else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$getTop = function(row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n\n function getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n }\n this.drawTextMarker = function(stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0; \n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n this.drawSingleLineMarker(stringBuilder, lineRange, \n clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end),\n layerConfig, row == end ? 0 : 1, extraStyle);\n }\n };\n this.drawMultiLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height = config.lineHeight;\n var top = this.$getTop(range.start.row, config);\n var left = padding + range.start.column * config.characterWidth;\n extraStyle = extraStyle || \"\";\n\n stringBuilder.push(\n \"
\"\n );\n top = this.$getTop(range.end.row, config);\n var width = range.end.column * config.characterWidth;\n\n stringBuilder.push(\n \"
\"\n );\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n \n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n\n stringBuilder.push(\n \"
\"\n );\n };\n this.drawSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n\n stringBuilder.push(\n \"
\"\n );\n };\n\n this.drawFullLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n\n stringBuilder.push(\n \"
\"\n );\n };\n \n this.drawScreenLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n\n stringBuilder.push(\n \"
\"\n );\n };\n\n}).call(Marker.prototype);\n\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Text = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.EOF_CHAR = \"\\xB6\";\n this.EOL_CHAR_LF = \"\\xAC\";\n this.EOL_CHAR_CRLF = \"\\xa4\";\n this.EOL_CHAR = this.EOL_CHAR_LF;\n this.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\n this.SPACE_CHAR = \"\\xB7\";\n this.$padding = 0;\n\n this.$updateEolChar = function() {\n var EOL_CHAR = this.session.doc.getNewLineCharacter() == \"\\n\"\n ? this.EOL_CHAR_LF\n : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n }\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.element.style.padding = \"0 \" + padding + \"px\";\n };\n\n this.getLineHeight = function() {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n\n this.getCharacterWidth = function() {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n \n this.$setFontMetrics = function(measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function(e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n }\n\n this.checkForSizeChanges = function() {\n this.$fontMetrics.checkForSizeChanges();\n };\n this.$pollSizeChanges = function() {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n this.setSession = function(session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n\n this.showInvisibles = false;\n this.setShowInvisibles = function(showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n\n this.showInvisibles = showInvisibles;\n this.$computeTabString();\n return true;\n };\n\n this.displayIndentGuides = true;\n this.setDisplayIndentGuides = function(display) {\n if (this.displayIndentGuides == display)\n return false;\n\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n\n this.$tabStrings = [];\n this.onChangeTabSize =\n this.$computeTabString = function() {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showInvisibles) {\n tabStr.push(\"\"\n + lang.stringRepeat(this.TAB_CHAR, i)\n + \"\");\n } else {\n tabStr.push(lang.stringRepeat(\" \", i));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = \"\";\n var tabClass = \"\";\n if (this.showInvisibles) {\n className += \" ace_invisible\";\n spaceClass = \" ace_invisible_space\";\n tabClass = \" ace_invisible_tab\";\n var spaceContent = lang.stringRepeat(this.SPACE_CHAR, this.tabSize);\n var tabContent = lang.stringRepeat(this.TAB_CHAR, this.tabSize);\n } else{\n var spaceContent = lang.stringRepeat(\" \", this.tabSize);\n var tabContent = spaceContent;\n }\n\n this.$tabStrings[\" \"] = \"\" + spaceContent + \"\";\n this.$tabStrings[\"\\t\"] = \"\" + tabContent + \"\";\n }\n };\n\n this.updateLines = function(config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n this.scrollLines(config);\n }\n this.config = config;\n\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n } else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx ++;\n }\n\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > last)\n break;\n\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n var html = [];\n this.$renderLine(\n html, row, !this.$useLineGroups(), row == foldStart ? foldLine : false\n );\n lineElement.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n lineElement.innerHTML = html.join(\"\");\n }\n row++;\n }\n };\n\n this.scrollLines = function(config) {\n var oldConfig = this.config;\n this.config = config;\n\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n\n var el = this.element;\n if (oldConfig.firstRow < config.firstRow)\n for (var row=this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row>0; row--)\n el.removeChild(el.firstChild);\n\n if (oldConfig.lastRow > config.lastRow)\n for (var row=this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row>0; row--)\n el.removeChild(el.lastChild);\n\n if (config.firstRow < oldConfig.firstRow) {\n var fragment = this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1);\n if (el.firstChild)\n el.insertBefore(fragment, el.firstChild);\n else\n el.appendChild(fragment);\n }\n\n if (config.lastRow > oldConfig.lastRow) {\n var fragment = this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow);\n el.appendChild(fragment);\n }\n };\n\n this.$renderLinesFragment = function(config, firstRow, lastRow) {\n var fragment = this.element.ownerDocument.createDocumentFragment();\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n\n var container = dom.createElement(\"div\");\n\n var html = [];\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n container.innerHTML = html.join(\"\");\n if (this.$useLineGroups()) {\n container.className = 'ace_line_group';\n fragment.appendChild(container);\n container.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n\n } else {\n while(container.firstChild)\n fragment.appendChild(container.firstChild);\n }\n\n row++;\n }\n return fragment;\n };\n\n this.update = function(config) {\n this.config = config;\n\n var html = [];\n var firstRow = config.firstRow, lastRow = config.lastRow;\n\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > lastRow)\n break;\n\n if (this.$useLineGroups())\n html.push(\"
\")\n\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n\n if (this.$useLineGroups())\n html.push(\"
\"); // end the line group\n\n row++;\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$textToken = {\n \"text\": true,\n \"rparen\": true,\n \"lparen\": true\n };\n\n this.$renderToken = function(stringBuilder, screenColumn, token, value) {\n var self = this;\n var replaceReg = /\\t|&|<|>|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF\\uFFF9-\\uFFFC])|[\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3000-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]/g;\n var replaceFunc = function(c, a, b, tabIdx, idx4) {\n if (a) {\n return self.showInvisibles\n ? \"\" + lang.stringRepeat(self.SPACE_CHAR, c.length) + \"\"\n : c;\n } else if (c == \"&\") {\n return \"&\";\n } else if (c == \"<\") {\n return \"<\";\n } else if (c == \">\") {\n return \">\";\n } else if (c == \"\\t\") {\n var tabSize = self.session.getScreenTabSize(screenColumn + tabIdx);\n screenColumn += tabSize - 1;\n return self.$tabStrings[tabSize];\n } else if (c == \"\\u3000\") {\n var classToUse = self.showInvisibles ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n var space = self.showInvisibles ? self.SPACE_CHAR : \"\";\n screenColumn += 1;\n return \"\" + space + \"\";\n } else if (b) {\n return \"\" + self.SPACE_CHAR + \"\";\n } else {\n screenColumn += 1;\n return \"\" + c + \"\";\n }\n };\n\n var output = value.replace(replaceReg, replaceFunc);\n\n if (!this.$textToken[token.type]) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var style = \"\";\n if (token.type == \"fold\")\n style = \" style='width:\" + (token.value.length * this.config.characterWidth) + \"px;' \";\n stringBuilder.push(\"\", output, \"\");\n }\n else {\n stringBuilder.push(output);\n }\n return screenColumn + value.length;\n };\n\n this.renderIndentGuide = function(stringBuilder, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\" \"], cols/this.tabSize));\n return value.substr(cols);\n } else if (value[0] == \"\\t\") {\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\"\\t\"], cols));\n return value.substr(cols);\n }\n return value;\n };\n\n this.$renderWrappedLine = function(stringBuilder, tokens, splits, onlyContents) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(stringBuilder, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n chars += value.length;\n } else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn,\n token, value.substring(0, splitChars - chars)\n );\n value = value.substring(splitChars - chars);\n chars = splitChars;\n\n if (!onlyContents) {\n stringBuilder.push(\"
\",\n \"
\"\n );\n }\n\n stringBuilder.push(lang.stringRepeat(\"\\xa0\", splits.indent));\n\n split ++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn, token, value\n );\n }\n }\n }\n };\n\n this.$renderSimpleLine = function(stringBuilder, tokens) {\n var screenColumn = 0;\n var token = tokens[0];\n var value = token.value;\n if (this.displayIndentGuides)\n value = this.renderIndentGuide(stringBuilder, value);\n if (value)\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n for (var i = 1; i < tokens.length; i++) {\n token = tokens[i];\n value = token.value;\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n }\n };\n this.$renderLine = function(stringBuilder, row, onlyContents, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n\n\n if (!onlyContents) {\n stringBuilder.push(\n \"
\"\n );\n }\n\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length)\n this.$renderWrappedLine(stringBuilder, tokens, splits, onlyContents);\n else\n this.$renderSimpleLine(stringBuilder, tokens);\n }\n\n if (this.showInvisibles) {\n if (foldLine)\n row = foldLine.end.row\n\n stringBuilder.push(\n \"\",\n row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR,\n \"\"\n );\n }\n if (!onlyContents)\n stringBuilder.push(\"
\");\n };\n\n this.$getFoldLineTokens = function(row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n\n col = from + value.length;\n idx += 1;\n }\n\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n } else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n\n var tokens = session.getTokens(row);\n foldLine.walk(function(placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n } else {\n if (isNewRow)\n tokens = session.getTokens(row);\n\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n\n return renderTokens;\n };\n\n this.$useLineGroups = function() {\n return this.session.getUseWrapMode();\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$measureNode)\n this.$measureNode.parentNode.removeChild(this.$measureNode);\n delete this.$measureNode;\n };\n\n}).call(Text.prototype);\n\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar isIE8;\n\nvar Cursor = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n \n if (isIE8 === undefined)\n isIE8 = !(\"opacity\" in this.element.style);\n\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = (isIE8\n ? this.$updateVisibility\n : this.$updateOpacity).bind(this);\n};\n\n(function() {\n \n this.$updateVisibility = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.visibility = val ? \"\" : \"hidden\";\n };\n this.$updateOpacity = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.opacity = val ? \"\" : \"0\";\n };\n \n\n this.$padding = 0;\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n\n this.setSession = function(session) {\n this.session = session;\n };\n\n this.setBlinking = function(blinking) {\n if (blinking != this.isBlinking){\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n\n this.setBlinkInterval = function(blinkInterval) {\n if (blinkInterval != this.blinkInterval){\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n\n this.setSmoothBlinking = function(smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking && !isIE8) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.$updateCursors = (this.$updateOpacity).bind(this);\n this.restartTimer();\n }\n };\n\n this.addCursor = function() {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n\n this.removeCursor = function() {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n\n this.hideCursor = function() {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.showCursor = function() {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.restartTimer = function() {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n if (this.smoothBlinking) {\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n \n update(true);\n\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible)\n return;\n\n if (this.smoothBlinking) {\n setTimeout(function(){\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }.bind(this));\n }\n \n var blink = function(){\n this.timeoutId = setTimeout(function() {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n\n this.intervalId = setInterval(function() {\n update(true);\n blink();\n }, this.blinkInterval);\n\n blink();\n };\n\n this.getPixelPosition = function(position, onScreen) {\n if (!this.config || !this.session)\n return {left : 0, top : 0};\n\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + pos.column * this.config.characterWidth;\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n\n return {left : cursorLeft, top : cursorTop};\n };\n\n this.update = function(config) {\n this.config = config;\n\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n\n if (selections === undefined || selections.length === 0){\n selections = [{cursor: null}];\n }\n\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n\n var style = (this.cursors[cursorIndex++] || this.addCursor()).style;\n \n if (!this.drawCursor) {\n style.left = pixelPos.left + \"px\";\n style.top = pixelPos.top + \"px\";\n style.width = config.characterWidth + \"px\";\n style.height = config.lineHeight + \"px\";\n } else {\n this.drawCursor(style, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n \n this.drawCursor = null;\n\n this.$setOverwrite = function(overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n\n this.destroy = function() {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n\n}).call(Cursor.prototype);\n\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar ScrollBar = function(parent) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + this.classSuffix;\n\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.element.appendChild(this.inner);\n\n parent.appendChild(this.element);\n\n this.setVisible(false);\n this.skipEvent = false;\n\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n};\n\n(function() {\n oop.implement(this, EventEmitter);\n\n this.setVisible = function(isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n };\n}).call(ScrollBar.prototype);\nvar VScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollTop = 0;\n renderer.$scrollbarWidth = \n this.width = dom.scrollbarWidth(parent.ownerDocument);\n this.inner.style.width =\n this.element.style.width = (this.width || 15) + 5 + \"px\";\n};\n\noop.inherits(VScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-v';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n this._emit(\"scroll\", {data: this.scrollTop});\n }\n this.skipEvent = false;\n };\n this.getWidth = function() {\n return this.isVisible ? this.width : 0;\n };\n this.setHeight = function(height) {\n this.element.style.height = height + \"px\";\n };\n this.setInnerHeight = function(height) {\n this.inner.style.height = height + \"px\";\n };\n this.setScrollHeight = function(height) {\n this.inner.style.height = height + \"px\";\n };\n this.setScrollTop = function(scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = this.element.scrollTop = scrollTop;\n }\n };\n\n}).call(VScrollBar.prototype);\nvar HScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollLeft = 0;\n this.height = renderer.$scrollbarWidth;\n this.inner.style.height =\n this.element.style.height = (this.height || 15) + 5 + \"px\";\n};\n\noop.inherits(HScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-h';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", {data: this.scrollLeft});\n }\n this.skipEvent = false;\n };\n this.getHeight = function() {\n return this.isVisible ? this.height : 0;\n };\n this.setWidth = function(width) {\n this.element.style.width = width + \"px\";\n };\n this.setInnerWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollLeft = function(scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n\n}).call(HScrollBar.prototype);\n\n\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\n\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"./lib/event\");\n\n\nvar RenderLoop = function(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.window = win || window;\n};\n\n(function() {\n\n\n this.schedule = function(change) {\n this.changes = this.changes | change;\n if (!this.pending && this.changes) {\n this.pending = true;\n var _self = this;\n event.nextFrame(function() {\n _self.pending = false;\n var changes;\n while (changes = _self.changes) {\n _self.changes = 0;\n _self.onRender(changes);\n }\n }, this.window);\n }\n };\n\n}).call(RenderLoop.prototype);\n\nexports.RenderLoop = RenderLoop;\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CHAR_COUNT = 0;\n\nvar FontMetrics = exports.FontMetrics = function(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n \n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n \n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n \n \n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n \n if (!CHAR_COUNT)\n this.$testFractionalRect();\n this.$measureNode.innerHTML = lang.stringRepeat(\"X\", CHAR_COUNT);\n \n this.$characterSize = {width: 0, height: 0};\n this.checkForSizeChanges();\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n \n this.$characterSize = {width: 0, height: 0};\n \n this.$testFractionalRect = function() {\n var el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(el.style);\n el.style.width = \"0.2px\";\n document.documentElement.appendChild(el);\n var w = el.getBoundingClientRect().width;\n if (w > 0 && w < 1)\n CHAR_COUNT = 50;\n else\n CHAR_COUNT = 100;\n el.parentNode.removeChild(el);\n };\n \n this.$setMeasureNodeStyles = function(style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n } else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n\n this.checkForSizeChanges = function() {\n var size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", {data: size});\n }\n };\n\n this.$pollSizeChanges = function() {\n if (this.$pollSizeChangesTimer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = setInterval(function() {\n self.checkForSizeChanges();\n }, 500);\n };\n \n this.setPolling = function(val) {\n if (val) {\n this.$pollSizeChanges();\n } else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n\n this.$measureSizes = function() {\n if (CHAR_COUNT === 50) {\n var rect = null;\n try { \n rect = this.$measureNode.getBoundingClientRect();\n } catch(e) {\n rect = {width: 0, height:0 };\n }\n var size = {\n height: rect.height,\n width: rect.width / CHAR_COUNT\n };\n } else {\n var size = {\n height: this.$measureNode.clientHeight,\n width: this.$measureNode.clientWidth / CHAR_COUNT\n };\n }\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n\n this.$measureCharWidth = function(ch) {\n this.$main.innerHTML = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n \n this.getCharacterWidth = function(ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n\n}).call(FontMetrics.prototype);\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/config\",\"ace/lib/useragent\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar config = acequire(\"./config\");\nvar useragent = acequire(\"./lib/useragent\");\nvar GutterLayer = acequire(\"./layer/gutter\").Gutter;\nvar MarkerLayer = acequire(\"./layer/marker\").Marker;\nvar TextLayer = acequire(\"./layer/text\").Text;\nvar CursorLayer = acequire(\"./layer/cursor\").Cursor;\nvar HScrollBar = acequire(\"./scrollbar\").HScrollBar;\nvar VScrollBar = acequire(\"./scrollbar\").VScrollBar;\nvar RenderLoop = acequire(\"./renderloop\").RenderLoop;\nvar FontMetrics = acequire(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = \".ace_editor {\\\nposition: relative;\\\noverflow: hidden;\\\nfont: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\\\ndirection: ltr;\\\n}\\\n.ace_scroller {\\\nposition: absolute;\\\noverflow: hidden;\\\ntop: 0;\\\nbottom: 0;\\\nbackground-color: inherit;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\ncursor: text;\\\n}\\\n.ace_content {\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmin-width: 100%;\\\n}\\\n.ace_dragging .ace_scroller:before{\\\nposition: absolute;\\\ntop: 0;\\\nleft: 0;\\\nright: 0;\\\nbottom: 0;\\\ncontent: '';\\\nbackground: rgba(250, 250, 250, 0.01);\\\nz-index: 1000;\\\n}\\\n.ace_dragging.ace_dark .ace_scroller:before{\\\nbackground: rgba(0, 0, 0, 0.01);\\\n}\\\n.ace_selecting, .ace_selecting * {\\\ncursor: text !important;\\\n}\\\n.ace_gutter {\\\nposition: absolute;\\\noverflow : hidden;\\\nwidth: auto;\\\ntop: 0;\\\nbottom: 0;\\\nleft: 0;\\\ncursor: default;\\\nz-index: 4;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\n}\\\n.ace_gutter-active-line {\\\nposition: absolute;\\\nleft: 0;\\\nright: 0;\\\n}\\\n.ace_scroller.ace_scroll-left {\\\nbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\\\n}\\\n.ace_gutter-cell {\\\npadding-left: 19px;\\\npadding-right: 6px;\\\nbackground-repeat: no-repeat;\\\n}\\\n.ace_gutter-cell.ace_error {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_warning {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_dark .ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_scrollbar {\\\nposition: absolute;\\\nright: 0;\\\nbottom: 0;\\\nz-index: 6;\\\n}\\\n.ace_scrollbar-inner {\\\nposition: absolute;\\\ncursor: text;\\\nleft: 0;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-v{\\\noverflow-x: hidden;\\\noverflow-y: scroll;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-h {\\\noverflow-x: scroll;\\\noverflow-y: hidden;\\\nleft: 0;\\\n}\\\n.ace_print-margin {\\\nposition: absolute;\\\nheight: 100%;\\\n}\\\n.ace_text-input {\\\nposition: absolute;\\\nz-index: 0;\\\nwidth: 0.5em;\\\nheight: 1em;\\\nopacity: 0;\\\nbackground: transparent;\\\n-moz-appearance: none;\\\nappearance: none;\\\nborder: none;\\\nresize: none;\\\noutline: none;\\\noverflow: hidden;\\\nfont: inherit;\\\npadding: 0 1px;\\\nmargin: 0 -1px;\\\ntext-indent: -1em;\\\n-ms-user-select: text;\\\n-moz-user-select: text;\\\n-webkit-user-select: text;\\\nuser-select: text;\\\nwhite-space: pre!important;\\\n}\\\n.ace_text-input.ace_composition {\\\nbackground: inherit;\\\ncolor: inherit;\\\nz-index: 1000;\\\nopacity: 1;\\\ntext-indent: 0;\\\n}\\\n.ace_layer {\\\nz-index: 1;\\\nposition: absolute;\\\noverflow: hidden;\\\nword-wrap: normal;\\\nwhite-space: pre;\\\nheight: 100%;\\\nwidth: 100%;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\npointer-events: none;\\\n}\\\n.ace_gutter-layer {\\\nposition: relative;\\\nwidth: auto;\\\ntext-align: right;\\\npointer-events: auto;\\\n}\\\n.ace_text-layer {\\\nfont: inherit !important;\\\n}\\\n.ace_cjk {\\\ndisplay: inline-block;\\\ntext-align: center;\\\n}\\\n.ace_cursor-layer {\\\nz-index: 4;\\\n}\\\n.ace_cursor {\\\nz-index: 4;\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nborder-left: 2px solid;\\\ntransform: translatez(0);\\\n}\\\n.ace_slim-cursors .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_overwrite-cursors .ace_cursor {\\\nborder-left-width: 0;\\\nborder-bottom: 1px solid;\\\n}\\\n.ace_hidden-cursors .ace_cursor {\\\nopacity: 0.2;\\\n}\\\n.ace_smooth-blinking .ace_cursor {\\\n-webkit-transition: opacity 0.18s;\\\ntransition: opacity 0.18s;\\\n}\\\n.ace_editor.ace_multiselect .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\\nposition: absolute;\\\nz-index: 3;\\\n}\\\n.ace_marker-layer .ace_selection {\\\nposition: absolute;\\\nz-index: 5;\\\n}\\\n.ace_marker-layer .ace_bracket {\\\nposition: absolute;\\\nz-index: 6;\\\n}\\\n.ace_marker-layer .ace_active-line {\\\nposition: absolute;\\\nz-index: 2;\\\n}\\\n.ace_marker-layer .ace_selected-word {\\\nposition: absolute;\\\nz-index: 4;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\n}\\\n.ace_line .ace_fold {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ndisplay: inline-block;\\\nheight: 11px;\\\nmargin-top: -2px;\\\nvertical-align: middle;\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\\nbackground-repeat: no-repeat, repeat-x;\\\nbackground-position: center center, top left;\\\ncolor: transparent;\\\nborder: 1px solid black;\\\nborder-radius: 2px;\\\ncursor: pointer;\\\npointer-events: auto;\\\n}\\\n.ace_dark .ace_fold {\\\n}\\\n.ace_fold:hover{\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_tooltip {\\\nbackground-color: #FFF;\\\nbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\\\nbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\\\nborder: 1px solid gray;\\\nborder-radius: 1px;\\\nbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\\ncolor: black;\\\nmax-width: 100%;\\\npadding: 3px 4px;\\\nposition: fixed;\\\nz-index: 999999;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ncursor: default;\\\nwhite-space: pre;\\\nword-wrap: break-word;\\\nline-height: normal;\\\nfont-style: normal;\\\nfont-weight: normal;\\\nletter-spacing: normal;\\\npointer-events: none;\\\n}\\\n.ace_folding-enabled > .ace_gutter-cell {\\\npadding-right: 13px;\\\n}\\\n.ace_fold-widget {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmargin: 0 -12px 0 1px;\\\ndisplay: none;\\\nwidth: 11px;\\\nvertical-align: top;\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: center;\\\nborder-radius: 3px;\\\nborder: 1px solid transparent;\\\ncursor: pointer;\\\n}\\\n.ace_folding-enabled .ace_fold-widget {\\\ndisplay: inline-block; \\\n}\\\n.ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\\n}\\\n.ace_fold-widget:hover {\\\nborder: 1px solid rgba(0, 0, 0, 0.3);\\\nbackground-color: rgba(255, 255, 255, 0.2);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\\n}\\\n.ace_fold-widget:active {\\\nborder: 1px solid rgba(0, 0, 0, 0.4);\\\nbackground-color: rgba(0, 0, 0, 0.05);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\\n}\\\n.ace_dark .ace_fold-widget {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget:hover {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\nbackground-color: rgba(255, 255, 255, 0.1);\\\n}\\\n.ace_dark .ace_fold-widget:active {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\n}\\\n.ace_fold-widget.ace_invalid {\\\nbackground-color: #FFB4B4;\\\nborder-color: #DE5555;\\\n}\\\n.ace_fade-fold-widgets .ace_fold-widget {\\\n-webkit-transition: opacity 0.4s ease 0.05s;\\\ntransition: opacity 0.4s ease 0.05s;\\\nopacity: 0;\\\n}\\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\\n-webkit-transition: opacity 0.05s ease 0.05s;\\\ntransition: opacity 0.05s ease 0.05s;\\\nopacity:1;\\\n}\\\n.ace_underline {\\\ntext-decoration: underline;\\\n}\\\n.ace_bold {\\\nfont-weight: bold;\\\n}\\\n.ace_nobold .ace_bold {\\\nfont-weight: normal;\\\n}\\\n.ace_italic {\\\nfont-style: italic;\\\n}\\\n.ace_error-marker {\\\nbackground-color: rgba(255, 0, 0,0.2);\\\nposition: absolute;\\\nz-index: 9;\\\n}\\\n.ace_highlight-marker {\\\nbackground-color: rgba(255, 255, 0,0.2);\\\nposition: absolute;\\\nz-index: 8;\\\n}\\\n.ace_br1 {border-top-left-radius : 3px;}\\\n.ace_br2 {border-top-right-radius : 3px;}\\\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\\\n.ace_br4 {border-bottom-right-radius: 3px;}\\\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\\\n.ace_br8 {border-bottom-left-radius : 3px;}\\\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n\";\n\ndom.importCssString(editorCss, \"ace_editor.css\");\n\nvar VirtualRenderer = function(container, theme) {\n var _self = this;\n\n this.container = container || dom.createElement(\"div\");\n this.$keepTextAreaAtCursor = !useragent.isOldIE;\n\n dom.addCssClass(this.container, \"ace_editor\");\n\n this.setTheme(theme);\n\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n\n this.$markerBack = new MarkerLayer(this.content);\n\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n\n this.$markerFront = new MarkerLayer(this.content);\n\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n\n this.scrollBar = \n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n\n this.scrollTop = 0;\n this.scrollLeft = 0;\n\n this.cursorPos = {\n row : 0,\n column : 0\n };\n\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.addEventListener(\"changeCharacterSize\", function(e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n\n this.layerConfig = {\n width : 1,\n padding : 0,\n firstRow : 0,\n firstRowScreen: 0,\n lastRow : 0,\n lineHeight : 0,\n characterWidth : 0,\n minHeight : 1,\n maxHeight : 1,\n offset : 0,\n height : 1,\n gutterOffset: 1\n };\n \n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n\n this.$loop = new RenderLoop(\n this.$renderChanges.bind(this),\n this.container.ownerDocument.defaultView\n );\n this.$loop.schedule(this.CHANGE_FULL);\n\n this.updateCharacterSize();\n this.setPadding(4);\n config.resetOptions(this);\n config._emit(\"renderer\", this);\n};\n\n(function() {\n\n this.CHANGE_CURSOR = 1;\n this.CHANGE_MARKER = 2;\n this.CHANGE_GUTTER = 4;\n this.CHANGE_SCROLL = 8;\n this.CHANGE_LINES = 16;\n this.CHANGE_TEXT = 32;\n this.CHANGE_SIZE = 64;\n this.CHANGE_MARKER_BACK = 128;\n this.CHANGE_MARKER_FRONT = 256;\n this.CHANGE_FULL = 512;\n this.CHANGE_H_SCROLL = 1024;\n\n oop.implement(this, EventEmitter);\n\n this.updateCharacterSize = function() {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n };\n this.setSession = function(session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n \n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n \n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n \n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode()\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n this.updateLines = function(firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n\n this.onChangeNewLineMode = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n };\n \n this.onChangeTabSize = function() {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n this.updateText = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n this.updateFull = function(force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n this.updateFontSize = function() {\n this.$textLayer.checkForSizeChanges();\n };\n\n this.$changes = 0;\n this.$updateSizeAsync = function() {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n this.onResize = function(force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n\n \n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n\n if (force)\n this.$gutterLayer.$padding = null;\n\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop = null;\n };\n \n this.$updateCachedSize = function(force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n changes = changes | this.CHANGE_SCROLL;\n }\n\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n \n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n \n this.gutterWidth = gutterWidth;\n \n this.scrollBarH.element.style.left = \n this.scroller.style.left = gutterWidth + \"px\";\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth()); \n \n this.scrollBarH.element.style.right = \n this.scroller.style.right = this.scrollBarV.getWidth() + \"px\";\n this.scroller.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force)\n changes |= this.CHANGE_FULL;\n }\n \n size.$dirty = !width || !height;\n\n if (changes)\n this._signal(\"resize\", oldSize);\n\n return changes;\n };\n\n this.onGutterResize = function() {\n var gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else {\n this.$computeLayerConfig();\n this.$loop.schedule(this.CHANGE_MARKER);\n }\n };\n this.adjustWrapLimit = function() {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n this.setAnimatedScroll = function(shouldAnimate){\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n this.getAnimatedScroll = function() {\n return this.$animatedScroll;\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.getOption(\"showInvisibles\");\n };\n this.getDisplayIndentGuides = function() {\n return this.getOption(\"displayIndentGuides\");\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.getOption(\"showPrintMargin\");\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.getOption(\"printMarginColumn\");\n };\n this.getShowGutter = function(){\n return this.getOption(\"showGutter\");\n };\n this.setShowGutter = function(show){\n return this.setOption(\"showGutter\", show);\n };\n\n this.getFadeFoldWidgets = function(){\n return this.getOption(\"fadeFoldWidgets\")\n };\n\n this.setFadeFoldWidgets = function(show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n\n this.$updateGutterLineHighlight = function() {\n var pos = this.$cursorLayer.$pixelPos;\n var height = this.layerConfig.lineHeight;\n if (this.session.getUseWrapMode()) {\n var cursor = this.session.selection.getCursor();\n cursor.column = 0;\n pos = this.$cursorLayer.getPixelPosition(cursor, true);\n height *= this.session.getRowLength(cursor.row);\n }\n this.$gutterLineHighlight.style.top = pos.top - this.layerConfig.offset + \"px\";\n this.$gutterLineHighlight.style.height = height + \"px\";\n };\n\n this.$updatePrintMargin = function() {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n\n var style = this.$printMarginEl.style;\n style.left = ((this.characterWidth * this.$printMarginColumn) + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n \n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n this.getContainerElement = function() {\n return this.container;\n };\n this.getMouseEventTarget = function() {\n return this.scroller;\n };\n this.getTextAreaContainer = function() {\n return this.container;\n };\n this.$moveTextAreaToCursor = function() {\n if (!this.$keepTextAreaAtCursor)\n return;\n var config = this.layerConfig;\n var posTop = this.$cursorLayer.$pixelPos.top;\n var posLeft = this.$cursorLayer.$pixelPos.left;\n posTop -= config.offset;\n\n var style = this.textarea.style;\n var h = this.lineHeight;\n if (posTop < 0 || posTop > config.height - h) {\n style.top = style.left = \"0\";\n return;\n }\n\n var w = this.characterWidth;\n if (this.$composition) {\n var val = this.textarea.value.replace(/^\\x01+/, \"\");\n w *= (this.session.$getStringScreenWidth(val)[0]+2);\n h += 2;\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n\n posLeft += this.gutterWidth;\n style.height = h + \"px\";\n style.width = w + \"px\";\n style.left = Math.min(posLeft, this.$size.scrollerWidth - w) + \"px\";\n style.top = Math.min(posTop, this.$size.height - h) + \"px\";\n };\n this.getFirstVisibleRow = function() {\n return this.layerConfig.firstRow;\n };\n this.getFirstFullyVisibleRow = function() {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n this.getLastFullyVisibleRow = function() {\n var config = this.layerConfig;\n var lastRow = config.lastRow\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n this.getLastVisibleRow = function() {\n return this.layerConfig.lastRow;\n };\n\n this.$padding = null;\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n \n this.setScrollMargin = function(top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top|0;\n sm.bottom = bottom|0;\n sm.right = right|0;\n sm.left = left|0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n this.getHScrollBarAlwaysVisible = function() {\n return this.$hScrollBarAlwaysVisible;\n };\n this.setHScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n this.getVScrollBarAlwaysVisible = function() {\n return this.$vScrollBarAlwaysVisible;\n };\n this.setVScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n\n this.$updateScrollBarV = function() {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n this.$updateScrollBarH = function() {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n \n this.$frozen = false;\n this.freeze = function() {\n this.$frozen = true;\n };\n \n this.unfreeze = function() {\n this.$frozen = false;\n };\n\n this.$renderChanges = function(changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return; \n } \n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n \n this._signal(\"beforeRender\");\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL\n ) {\n changes |= this.$computeLayerConfig();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - this.layerConfig.firstRow) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n this.$gutterLayer.element.style.marginTop = (-config.offset) + \"px\";\n this.content.style.marginTop = (-config.offset) + \"px\";\n this.content.style.width = config.width + 2 * this.$padding + \"px\";\n this.content.style.height = config.minHeight + \"px\";\n }\n if (changes & this.CHANGE_H_SCROLL) {\n this.content.style.marginLeft = -this.scrollLeft + \"px\";\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller\" : \"ace_scroller ace_scroll-left\";\n }\n if (changes & this.CHANGE_FULL) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this._signal(\"afterRender\");\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\");\n return;\n }\n\n if (changes & this.CHANGE_TEXT) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n\n this._signal(\"afterRender\");\n };\n\n \n this.$autosize = function() {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.max(\n (this.$minLines||1) * this.lineHeight,\n Math.min(maxHeight, height)\n ) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n var vScroll = height > maxHeight;\n \n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n \n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n \n this._signal(\"autosize\");\n }\n };\n \n this.$computeLayerConfig = function() {\n var session = this.session;\n var size = this.$size;\n \n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n\n var longestLine = this.$getLongestLine();\n \n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n\n var offset = this.scrollTop % this.lineHeight;\n var minHeight = size.scrollerHeight + this.lineHeight;\n \n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n \n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top,\n Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, \n longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n \n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n\n offset = this.scrollTop - firstRowScreen * lineHeight;\n\n var changes = 0;\n if (this.layerConfig.width != longestLine) \n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes = this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n \n this.layerConfig = {\n width : longestLine,\n padding : this.$padding,\n firstRow : firstRow,\n firstRowScreen: firstRowScreen,\n lastRow : lastRow,\n lineHeight : lineHeight,\n characterWidth : this.characterWidth,\n minHeight : minHeight,\n maxHeight : maxHeight,\n offset : offset,\n gutterOffset : Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)),\n height : this.$size.scrollerHeight\n };\n\n return changes;\n };\n\n this.$updateLines = function() {\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n\n var layerConfig = this.layerConfig;\n\n if (firstRow > layerConfig.lastRow + 1) { return; }\n if (lastRow < layerConfig.firstRow) { return; }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n\n this.$getLongestLine = function() {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n this.updateFrontMarkers = function() {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n this.updateBackMarkers = function() {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n this.addGutterDecoration = function(row, className){\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n this.removeGutterDecoration = function(row, className){\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n this.updateBreakpoints = function(rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.setAnnotations = function(annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.updateCursor = function() {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n this.hideCursor = function() {\n this.$cursorLayer.hideCursor();\n };\n this.showCursor = function() {\n this.$cursorLayer.showCursor();\n };\n\n this.scrollSelectionIntoView = function(anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n this.scrollCursorIntoView = function(cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n\n var left = pos.left;\n var top = pos.top;\n \n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n \n var scrollTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n \n if (scrollTop + topMargin > top) {\n if (offset && scrollTop + topMargin > top + this.lineHeight)\n top -= offset * this.$size.scrollerHeight;\n if (top === 0)\n top = -this.scrollMargin.top;\n this.session.setScrollTop(top);\n } else if (scrollTop + this.$size.scrollerHeight - bottomMargin < top + this.lineHeight) {\n if (offset && scrollTop + this.$size.scrollerHeight - bottomMargin < top - this.lineHeight)\n top += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(top + this.lineHeight - this.$size.scrollerHeight);\n }\n\n var scrollLeft = this.scrollLeft;\n\n if (scrollLeft > left) {\n if (left < this.$padding + 2 * this.layerConfig.characterWidth)\n left = -this.scrollMargin.left;\n this.session.setScrollLeft(left);\n } else if (scrollLeft + this.$size.scrollerWidth < left + this.characterWidth) {\n this.session.setScrollLeft(Math.round(left + this.characterWidth - this.$size.scrollerWidth));\n } else if (scrollLeft <= this.$padding && left - scrollLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n };\n this.getScrollTop = function() {\n return this.session.getScrollTop();\n };\n this.getScrollLeft = function() {\n return this.session.getScrollLeft();\n };\n this.getScrollTopRow = function() {\n return this.scrollTop / this.lineHeight;\n };\n this.getScrollBottomRow = function() {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n this.scrollToRow = function(row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n\n this.alignCursor = function(cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = {row: cursor, column: 0};\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n\n this.session.setScrollTop(offset);\n return offset;\n };\n\n this.STEPS = 8;\n this.$calcSteps = function(fromValue, toValue){\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n\n var func = function(t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n\n return steps;\n };\n this.scrollToLine = function(line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({row: line, column: 0});\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n\n this.animateScrolling = function(fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n \n if (fromValue == toValue)\n return;\n \n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n \n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = {from: fromValue, to: toValue, steps: steps};\n\n clearInterval(this.$timer);\n\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n this.$timer = setInterval(function() {\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n } else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n } else {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n callback && callback();\n }\n }, 10);\n };\n this.scrollToY = function(scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n this.scrollToX = function(scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n this.scrollTo = function(x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(y);\n };\n this.scrollBy = function(deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n this.isScrollableBy = function(deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n\n this.pixelToScreenCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n\n var offset = (x + this.scrollLeft - canvasPos.left - this.$padding) / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = Math.round(offset);\n\n return {row: row, column: col, side: offset - col > 0 ? 1 : -1};\n };\n\n this.screenToTextCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n\n var col = Math.round(\n (x + this.scrollLeft - canvasPos.left - this.$padding) / this.characterWidth\n );\n\n var row = (y + this.scrollTop - canvasPos.top) / this.lineHeight;\n\n return this.session.screenToDocumentPosition(row, Math.max(col, 0));\n };\n this.textToScreenCoordinates = function(row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n\n var x = this.$padding + Math.round(pos.column * this.characterWidth);\n var y = pos.row * this.lineHeight;\n\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n this.visualizeFocus = function() {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n this.visualizeBlur = function() {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n this.showComposition = function(position) {\n if (!this.$composition)\n this.$composition = {\n keepTextAreaAtCursor: this.$keepTextAreaAtCursor,\n cssText: this.textarea.style.cssText\n };\n\n this.$keepTextAreaAtCursor = true;\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n };\n this.setCompositionText = function(text) {\n this.$moveTextAreaToCursor();\n };\n this.hideComposition = function() {\n if (!this.$composition)\n return;\n\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.$keepTextAreaAtCursor = this.$composition.keepTextAreaAtCursor;\n this.textarea.style.cssText = this.$composition.cssText;\n this.$composition = null;\n };\n this.setTheme = function(theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange',{theme:theme});\n\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n } else {\n afterLoad(theme);\n }\n\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module.cssClass)\n return;\n dom.importCssString(\n module.cssText,\n module.cssClass,\n _self.container.ownerDocument\n );\n\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n\n var padding = \"padding\" in module ? module.padding \n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n\n _self._dispatchEvent('themeLoaded', {theme:module});\n cb && cb();\n }\n };\n this.getTheme = function() {\n return this.$themeId;\n };\n this.setStyle = function(style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n this.unsetStyle = function(style) {\n dom.removeCssClass(this.container, style);\n };\n \n this.setCursorStyle = function(style) {\n if (this.scroller.style.cursor != style)\n this.scroller.style.cursor = style;\n };\n this.setMouseCursor = function(cursorStyle) {\n this.scroller.style.cursor = cursorStyle;\n };\n this.destroy = function() {\n this.$textLayer.destroy();\n this.$cursorLayer.destroy();\n };\n\n}).call(VirtualRenderer.prototype);\n\n\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n animatedScroll: {initialValue: false},\n showInvisibles: {\n set: function(value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function(val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function() {\n return this.$showPrintMargin && this.$printMarginColumn; \n }\n },\n showGutter: {\n set: function(show){\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n fadeFoldWidgets: {\n set: function(show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function(show) {this.$gutterLayer.setShowFoldWidgets(show)},\n initialValue: true\n },\n showLineNumbers: {\n set: function(show) {\n this.$gutterLayer.setShowLineNumbers(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function(show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function(shouldHighlight) {\n if (!this.$gutterLineHighlight) {\n this.$gutterLineHighlight = dom.createElement(\"div\");\n this.$gutterLineHighlight.className = \"ace_gutter-active-line\";\n this.$gutter.appendChild(this.$gutterLineHighlight);\n return;\n }\n\n this.$gutterLineHighlight.style.display = shouldHighlight ? \"\" : \"none\";\n if (this.$cursorLayer.$pixelPos)\n this.$updateGutterLineHighlight();\n },\n initialValue: false,\n value: true\n },\n hScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function(size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function(name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n scrollPastEnd: {\n set: function(val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function(val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n theme: {\n set: function(val) { this.setTheme(val) },\n get: function() { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n }\n});\n\nexports.VirtualRenderer = VirtualRenderer;\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar net = acequire(\"../lib/net\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\nvar config = acequire(\"../config\");\n\nvar WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n if (acequire.nameToUrl && !acequire.toUrl)\n acequire.toUrl = acequire.nameToUrl;\n \n if (config.get(\"packaged\") || !acequire.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod.id, \"worker\")\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(acequire.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(acequire.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n try {\n var workerSrc = mod.src;\n var Blob = __webpack_require__(953);\n var blob = new Blob([ workerSrc ], { type: 'application/javascript' });\n var blobUrl = (window.URL || window.webkitURL).createObjectURL(blob);\n\n this.$worker = new Worker(blobUrl);\n\n } catch(e) {\n if (e instanceof window.DOMException) {\n var blob = this.$workerBlob(workerUrl);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n\n this.$worker = new Worker(blobURL);\n URL.revokeObjectURL(blobURL);\n } else {\n throw e;\n }\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod.id,\n classname : classname\n });\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch(msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if(this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n this.$workerBlob = function(workerUrl) {\n var script = \"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.callbackId = 1;\n this.callbacks = {};\n this.messageBuffer = [];\n\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n var _self = this;\n\n this.$worker = {};\n this.$worker.terminate = function() {};\n this.$worker.postMessage = function(e) {\n _self.messageBuffer.push(e);\n if (main) {\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n };\n this.setEmitSync = function(val) { emitSync = val };\n\n var processNext = function() {\n var msg = _self.messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n _self.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (_self.messageBuffer.length)\n processNext();\n });\n};\n\nUIWorkerClient.prototype = WorkerClient.prototype;\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar oop = acequire(\"./lib/oop\");\n\nvar PlaceHolder = function(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate);\n this.$others = others;\n \n this.$onCursorChange = function() {\n setTimeout(function() {\n _self.onCursorChange();\n });\n };\n \n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || {length: -1};\n this.$undoStackDepth = undoStack.length;\n this.setup();\n\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setup = function() {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n \n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function(other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n this.showOtherMarkers = function() {\n if (this.othersActive) return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function(anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column+_self.length), _self.othersClass, null, false);\n });\n };\n this.hideOtherMarkers = function() {\n if (!this.othersActive) return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n this.onUpdate = function(delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n \n var range = delta;\n if (range.start.row !== range.end.row) return;\n if (range.start.row !== this.pos.row) return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n \n this.updateAnchors(delta);\n \n if (inMainRange)\n this.length += lengthDiff;\n\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n } else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n \n this.$updating = false;\n this.updateMarkers();\n };\n \n this.updateAnchors = function(delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n \n this.updateMarkers = function() {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function(pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column+_self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n\n this.onCursorChange = function(event) {\n if (this.$updating || !this.session) return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n } else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n }; \n this.detach = function() {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.removeEventListener(\"change\", this.$onUpdate);\n this.session.selection.removeEventListener(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n this.cancel = function() {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n}).call(PlaceHolder.prototype);\n\n\nexports.PlaceHolder = PlaceHolder;\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\n\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n \n if (ctrl && useragent.isMac)\n button = ev.button;\n\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n \n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n \n if (button !== 0)\n return;\n\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function(e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n \n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n \n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n } else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n } else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n \n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n \n \n editor.$blockScrolling++;\n editor.inVirtualSelectionMode = true;\n \n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function() {\n var tmpSel = selection.toOrientedRange();\n\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n } else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.$blockScrolling--;\n editor.inVirtualSelectionMode = false;\n });\n\n } else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true; \n var initialRange;\n var rectSel = [];\n var blockSelect = function() {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column);\n\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n \n editor.$blockScrolling++;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n editor.$blockScrolling--;\n };\n editor.$blockScrolling++;\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n } else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n \n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead); \n else\n selection.moveToPosition(pos);\n editor.$blockScrolling--;\n \n screenCursor = {row: -1, column: -1};\n\n var onMouseSelectionEnd = function(e) {\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n editor.$blockScrolling++;\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n editor.$blockScrolling--;\n };\n\n var onSelectionInterval = blockSelect;\n\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function() {onSelectionInterval();}, 20);\n\n return e.preventDefault();\n }\n}\n\n\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(acequire, exports, module) {\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n exec: function(editor) { editor.selectMoreLines(-1); },\n bindKey: {win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelow\",\n exec: function(editor) { editor.selectMoreLines(1); },\n bindKey: {win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorAboveSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelowSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreBefore\",\n exec: function(editor) { editor.selectMore(-1); },\n bindKey: {win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreAfter\",\n exec: function(editor) { editor.selectMore(1); },\n bindKey: {win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextBefore\",\n exec: function(editor) { editor.selectMore(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextAfter\",\n exec: function(editor) { editor.selectMore(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"splitIntoLines\",\n exec: function(editor) { editor.multiSelect.splitIntoLines(); },\n bindKey: {win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\"},\n readOnly: true\n}, {\n name: \"alignCursors\",\n exec: function(editor) { editor.alignCursors(); },\n bindKey: {win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\"},\n scrollIntoView: \"cursor\"\n}, {\n name: \"findAll\",\n exec: function(editor) { editor.findAll(); },\n bindKey: {win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n bindKey: \"esc\",\n exec: function(editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function(editor) {return editor && editor.inMultiSelectMode}\n}];\n\nvar HashHandler = acequire(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(acequire, exports, module) {\n\nvar RangeList = acequire(\"./range_list\").RangeList;\nvar Range = acequire(\"./range\").Range;\nvar Selection = acequire(\"./selection\").Selection;\nvar onMouseDown = acequire(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = acequire(\"./lib/event\");\nvar lang = acequire(\"./lib/lang\");\nvar commands = acequire(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = acequire(\"./search\").Search;\nvar search = new Search();\n\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = acequire(\"./edit_session\").EditSession;\n(function() {\n this.getSelectionMarkers = function() {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function() {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function(range, $blockChangeEvents) {\n if (!range)\n return;\n\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n\n if (!range.cursor)\n range.cursor = range.end;\n\n var removed = this.rangeList.add(range);\n\n this.$onAddRange(range);\n\n if (removed.length)\n this.$onRemoveRange(removed);\n\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n\n this.toSingleRange = function(range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function(pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function() {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n else if(this.ranges[0])\n this.fromOrientedRange(this.ranges[0]);\n };\n\n this.$onAddRange = function(range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", {range: range});\n };\n\n this.$onRemoveRange = function(removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n\n for (var i = removed.length; i--; ) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n\n this._signal(\"removeRange\", {ranges: removed});\n\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function() {\n if (this.rangeList)\n return;\n\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function() {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n\n this.splitIntoLines = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var range = this.getRange();\n var isBackwards = this.isBackwards();\n var startRow = range.start.row;\n var endRow = range.end.row;\n if (startRow == endRow) {\n if (isBackwards)\n var start = range.end, end = range.start;\n else\n var start = range.start, end = range.end;\n \n this.addRange(Range.fromPoints(end, end));\n this.addRange(Range.fromPoints(start, start));\n return;\n }\n\n var rectSel = [];\n var r = this.getLineRange(startRow, true);\n r.start.column = range.start.column;\n rectSel.push(r);\n\n for (var i = startRow + 1; i < endRow; i++)\n rectSel.push(this.getLineRange(i, true));\n\n r = this.getLineRange(endRow, true);\n r.end.column = range.end.column;\n rectSel.push(r);\n\n rectSel.forEach(this.addRange, this);\n }\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var cursor = this.session.documentToScreenPosition(this.selectionLead);\n var anchor = this.session.documentToScreenPosition(this.selectionAnchor);\n\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function(screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n } else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n }\n\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n } else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n\n if (startRow == endRow)\n includeEmptyLines = true;\n\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(\n this.session.screenToDocumentPosition(row, startColumn),\n this.session.screenToDocumentPosition(row, endColumn)\n );\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n var docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n\n if (yBackwards)\n rectSel.reverse();\n\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = acequire(\"./editor\").Editor;\n(function() {\n this.updateSelectionMarkers = function() {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function(orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function(range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n\n this.removeSelectionMarkers = function(ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--; ) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n\n this.$onAddRange = function(e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onRemoveRange = function(e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onMultiSelect = function(e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onSingleSelect = function(e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n\n this.$onMultiSelectExec = function(e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n } else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n } else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n } else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n } else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n }; \n this.forEachSelection = function(cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n \n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n \n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n \n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n \n return result;\n };\n this.exitMultiSelectMode = function() {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n\n this.getSelectedText = function() {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n } else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n \n this.$checkMultiselectChange = function(e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row \n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n }\n };\n this.findAll = function(needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n } \n this.$search.set(options);\n \n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n\n this.$blockScrolling += 1;\n var selection = this.multiSelect;\n\n if (!additive)\n selection.toSingleRange(ranges[0]);\n\n for (var i = ranges.length; i--; )\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n \n this.$blockScrolling -= 1;\n\n return ranges.length;\n };\n this.selectMoreLines = function(dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n } else {\n var anchor = lead;\n }\n\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n } else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n } else {\n if (skip)\n var toRemove = range.cursor;\n }\n\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function(dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n\n var words = [];\n for (var i = all.length; i--; ) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n };\n this.selectMore = function(dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.$blockScrolling += 1;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.$blockScrolling -= 1;\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function() {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function(r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n \n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n \n if (fr < 0) fr = 0;\n if (lr >= max) lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({row: fr, column: 0}, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n } else {\n sameRowRanges.forEach(function(r) {\n sel.substractPoint(r.cursor);\n });\n\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function(r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function(r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n\n this.$reAlignText = function(lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n\n return lines.map(function(line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW, \" \")\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\n\n\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function(e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n\n addAltCursorListeners(editor);\n}\n\nfunction addAltCursorListeners(editor){\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function(e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n } else if (altCursor) {\n reset();\n }\n });\n\n event.addListener(el, \"keyup\", reset);\n event.addListener(el, \"blur\", reset);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\n\nexports.MultiSelect = MultiSelect;\n\n\nacequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function(val) {\n MultiSelect(this);\n if (val) {\n this.on(\"changeSession\", this.$multiselectOnSessionChange);\n this.on(\"mousedown\", onMouseDown);\n } else {\n this.off(\"changeSession\", this.$multiselectOnSessionChange);\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function(val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\n\n(function() {\n\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row) {\n return null;\n };\n\n this.indentationBlock = function(session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n\n if (level == -1)\n continue;\n\n if (level <= startLevel)\n break;\n\n endRow = row;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n\n this.openingBracketBlock = function(session, bracket, row, column, typeRe) {\n var start = {row: row, column: column + 1};\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n\n if (fw == \"start\" && end.row > start.row) {\n end.row --;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n\n this.closingBracketBlock = function(session, bracket, row, column, typeRe) {\n var end = {row: row, column: column};\n var start = session.$findOpeningBracket(bracket, end);\n\n if (!start)\n return;\n\n start.column++;\n end.column--;\n\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = \".ace-tm .ace_gutter {\\\nbackground: #f0f0f0;\\\ncolor: #333;\\\n}\\\n.ace-tm .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-tm .ace_fold {\\\nbackground-color: #6B72E6;\\\n}\\\n.ace-tm {\\\nbackground-color: #FFFFFF;\\\ncolor: black;\\\n}\\\n.ace-tm .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-tm .ace_invisible {\\\ncolor: rgb(191, 191, 191);\\\n}\\\n.ace-tm .ace_storage,\\\n.ace-tm .ace_keyword {\\\ncolor: blue;\\\n}\\\n.ace-tm .ace_constant {\\\ncolor: rgb(197, 6, 11);\\\n}\\\n.ace-tm .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-tm .ace_constant.ace_language {\\\ncolor: rgb(88, 92, 246);\\\n}\\\n.ace-tm .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_invalid {\\\nbackground-color: rgba(255, 0, 0, 0.1);\\\ncolor: red;\\\n}\\\n.ace-tm .ace_support.ace_function {\\\ncolor: rgb(60, 76, 114);\\\n}\\\n.ace-tm .ace_support.ace_constant {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_support.ace_type,\\\n.ace-tm .ace_support.ace_class {\\\ncolor: rgb(109, 121, 222);\\\n}\\\n.ace-tm .ace_keyword.ace_operator {\\\ncolor: rgb(104, 118, 135);\\\n}\\\n.ace-tm .ace_string {\\\ncolor: rgb(3, 106, 7);\\\n}\\\n.ace-tm .ace_comment {\\\ncolor: rgb(76, 136, 107);\\\n}\\\n.ace-tm .ace_comment.ace_doc {\\\ncolor: rgb(0, 102, 255);\\\n}\\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\\ncolor: rgb(128, 159, 191);\\\n}\\\n.ace-tm .ace_constant.ace_numeric {\\\ncolor: rgb(0, 0, 205);\\\n}\\\n.ace-tm .ace_variable {\\\ncolor: rgb(49, 132, 149);\\\n}\\\n.ace-tm .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-tm .ace_entity.ace_name.ace_function {\\\ncolor: #0000A2;\\\n}\\\n.ace-tm .ace_heading {\\\ncolor: rgb(12, 7, 255);\\\n}\\\n.ace-tm .ace_list {\\\ncolor:rgb(185, 6, 144);\\\n}\\\n.ace-tm .ace_meta.ace_tag {\\\ncolor:rgb(0, 22, 142);\\\n}\\\n.ace-tm .ace_string.ace_regex {\\\ncolor: rgb(255, 0, 0)\\\n}\\\n.ace-tm .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px white;\\\n}\\\n.ace-tm .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-tm .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-tm .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-tm .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-tm .ace_gutter-active-line {\\\nbackground-color : #dcdcdc;\\\n}\\\n.ace-tm .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-tm .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\\\n\";\n\nvar dom = acequire(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar Range = acequire(\"./range\").Range;\n\n\nfunction LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n \n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n}\n\n(function() {\n this.getRowLength = function(row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n\n this.$getWidgetScreenLength = function() {\n var screenRows = 0;\n this.lineWidgets.forEach(function(w){\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n }; \n \n this.$onChangeEditor = function(e) {\n this.attach(e.editor);\n };\n \n this.attach = function(editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n\n if (this.editor == editor)\n return;\n\n this.detach();\n this.editor = editor;\n \n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n this.detach = function(e) {\n var editor = this.editor;\n if (!editor)\n return;\n \n this.editor = null;\n editor.widgetManager = null;\n \n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function(w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n\n this.updateOnFold = function(e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n } else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n \n this.updateOnChange = function(delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n \n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n } else if (delta.action == 'remove') {\n var removed = lineWidgets.splice(startRow + 1, len);\n removed.forEach(function(w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n } else {\n var args = new Array(len);\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n \n this.$updateRows = function() {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n var noWidgets = true;\n lineWidgets.forEach(function(w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n\n this.addLineWidget = function(w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n \n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n \n this.session.lineWidgets[w.row] = w;\n \n w.session = this.session;\n \n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n }\n \n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (!w.pixelHeight) {\n w.pixelHeight = w.el.offsetHeight;\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n \n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n \n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n \n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n \n this.removeLineWidget = function(w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy) try {\n w.editor.destroy();\n } catch(e){}\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row]\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n } else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n this.$updateRows();\n };\n \n this.getWidgetsAtRow = function(row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n \n this.onWidgetChanged = function(w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n \n this.measureWidgets = function(e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n \n if (!changedWidgets || !changedWidgets.length) return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el) continue;\n if (w.session != this.session) continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n \n w.h = w.el.offsetHeight;\n \n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n \n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", {data:{start:{row: min}}});\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n \n this.renderWidgets = function(e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n \n while (first > 0 && !lineWidgets[first])\n first--;\n \n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el) continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({row: i, column:0}, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n \n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n \n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n \n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n } else {\n w.el.style.right = \"\";\n }\n }\n };\n \n}).call(LineWidgets.prototype);\n\n\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar LineWidgets = acequire(\"../line_widgets\").LineWidgets;\nvar dom = acequire(\"../lib/dom\");\nvar Range = acequire(\"../range\").Range;\n\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\n\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n \n var i = binarySearch(annotations, {row: row, column: -1}, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n \n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n \n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n \n \n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\n\nexports.showErrorMarker = function(editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n \n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function(w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n } else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n } else if (oldWidget) {\n return;\n } else {\n gutterAnno = {\n text: [\"Looks good!\"],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n \n var w = {\n row: pos.row, \n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n \n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n \n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
\");\n \n el.appendChild(dom.createElement(\"div\"));\n \n var kb = function(_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return {command: \"null\"};\n }\n };\n \n w.destroy = function() {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n \n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n \n editor.session.widgetManager.addLineWidget(w);\n \n w.el.onmousedown = editor.focus.bind(editor);\n \n editor.renderer.scrollCursorIntoView(null, 0.5, {bottom: w.el.offsetHeight});\n};\n\n\ndom.importCssString(\"\\\n .error_widget_wrapper {\\\n background: inherit;\\\n color: inherit;\\\n border:none\\\n }\\\n .error_widget {\\\n border-top: solid 2px;\\\n border-bottom: solid 2px;\\\n margin: 5px 0;\\\n padding: 10px 40px;\\\n white-space: pre-wrap;\\\n }\\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\\n border-color: #ff5a5a\\\n }\\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\\n border-color: #F1D817\\\n }\\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\\n border-color: #5a5a5a\\\n }\\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\\n border-color: #5aaa5a\\\n }\\\n .error_widget_arrow {\\\n position: absolute;\\\n border: solid 5px;\\\n border-top-color: transparent!important;\\\n border-right-color: transparent!important;\\\n border-left-color: transparent!important;\\\n top: -5px;\\\n }\\\n\", \"\");\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\n\nvar Editor = acequire(\"./editor\").Editor;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar UndoManager = acequire(\"./undomanager\").UndoManager;\nvar Renderer = acequire(\"./virtual_renderer\").VirtualRenderer;\nacequire(\"./worker/worker_client\");\nacequire(\"./keyboard/hash_handler\");\nacequire(\"./placeholder\");\nacequire(\"./multi_select\");\nacequire(\"./mode/folding/fold_mode\");\nacequire(\"./theme/textmate\");\nacequire(\"./ext/error_marker\");\n\nexports.config = acequire(\"./config\");\nexports.acequire = acequire;\nexports.edit = function(el) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n } else if (el) {\n value = dom.getInnerText(el);\n el.innerHTML = \"\";\n }\n\n var doc = exports.createEditSession(value);\n\n var editor = new Editor(new Renderer(el));\n editor.setSession(doc);\n\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode) env.textarea = oldNode;\n event.addListener(window, \"resize\", env.onResize);\n editor.on(\"destroy\", function() {\n event.removeListener(window, \"resize\", env.onResize);\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function(text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n}\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.version = \"1.2.3\";\n});\n (function() {\n ace.acequire([\"ace/ace\"], function(a) {\n a && a.config.init(true);\n if (!window.ace)\n window.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n window.ace[key] = a[key];\n });\n })();\n \nmodule.exports = window.ace.acequire(\"ace/ace\");\n\n/***/ }),\n/* 531 */\n/***/ (function(module, exports) {\n\nace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n this.$rules = {\n \"start\" : [ {\n token : \"comment.doc.tag\",\n regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n }, \n DocCommentHighlightRules.getTagRule(),\n {\n defaultToken : \"comment.doc\",\n caseInsensitive: true\n }]\n };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n return {\n token : \"comment.doc.tag.storage.type\",\n regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n return {\n token : \"comment.doc\", // doc comment\n regex : \"\\\\/\\\\*(?=\\\\*)\",\n next : start\n };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token : \"comment.doc\", // closing comment\n regex : \"\\\\*\\\\/\",\n next : start\n };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/csharp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar DocCommentHighlightRules = acequire(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar CSharpHighlightRules = function() {\n var keywordMapper = this.createKeywordMapper({\n \"variable.language\": \"this\",\n \"keyword\": \"abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string|var|dynamic\",\n \"constant.language\": \"null|true|false\"\n }, \"identifier\");\n\n this.$rules = {\n \"start\" : [\n {\n token : \"comment\",\n regex : \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token : \"comment\", // multi line comment\n regex : \"\\\\/\\\\*\",\n next : \"comment\"\n }, {\n token : \"string\", // character\n regex : /'(?:.|\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n]))'/\n }, {\n token : \"string\", start : '\"', end : '\"|$', next: [\n {token: \"constant.language.escape\", regex: /\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},\n {token: \"invalid\", regex: /\\\\./}\n ]\n }, {\n token : \"string\", start : '@\"', end : '\"', next:[\n {token: \"constant.language.escape\", regex: '\"\"'}\n ]\n }, {\n token : \"string\", start : /\\$\"/, end : '\"|$', next: [\n {token: \"constant.language.escape\", regex: /\\\\(:?$)|{{/},\n {token: \"constant.language.escape\", regex: /\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},\n {token: \"invalid\", regex: /\\\\./}\n ]\n }, {\n token : \"constant.numeric\", // hex\n regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token : \"constant.numeric\", // float\n regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token : \"constant.language.boolean\",\n regex : \"(?:true|false)\\\\b\"\n }, {\n token : keywordMapper,\n regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n }, {\n token : \"keyword.operator\",\n regex : \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n }, {\n token : \"keyword\",\n regex : \"^\\\\s*#(if|else|elif|endif|define|undef|warning|error|line|region|endregion|pragma)\"\n }, {\n token : \"punctuation.operator\",\n regex : \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : \"\\\\s+\"\n }\n ],\n \"comment\" : [\n {\n token : \"comment\", // closing comment\n regex : \".*?\\\\*\\\\/\",\n next : \"start\"\n }, {\n token : \"comment\", // comment spanning whole line\n regex : \".+\"\n }\n ]\n };\n\n this.embedRules(DocCommentHighlightRules, \"doc-\",\n [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n this.normalizeRules();\n};\n\noop.inherits(CSharpHighlightRules, TextHighlightRules);\n\nexports.CSharpHighlightRules = CSharpHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nvar SAFE_INSERT_IN_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\", \"comment\"];\n\nvar context;\nvar contextCache = {};\nvar initContext = function(editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = {rangeCount: editor.multiSelect.rangeCount};\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\n\nvar getWrapped = function(selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\n\nvar CstyleBehaviour = function() {\n this.add(\"braces\", \"insertion\", function(state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n } else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n } else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n } else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n } else if (closing) {\n var next_indent = this.$getIndent(line);\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n\n this.add(\"braces\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n } else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n\n this.add(\"parens\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n } else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"parens\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"brackets\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n } else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"brackets\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"string_dquotes\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n } else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column-1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n \n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n \n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n \n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n } else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(leftChar);\n if (isWordBefore || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1,1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n};\n\n \nCstyleBehaviour.isSaneInsertion = function(editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\n\nCstyleBehaviour.$matchTokenType = function(token, types) {\n return types.indexOf(token.type || token) > -1;\n};\n\nCstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\n\nCstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\n\nCstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\n\nCstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\n\nCstyleBehaviour.popAutoInsertedClosing = function() {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\n\nCstyleBehaviour.clearMaybeInsertedClosing = function() {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\n\n\n\noop.inherits(CstyleBehaviour, Behaviour);\n\nexports.CstyleBehaviour = CstyleBehaviour;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/csharp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/cstyle\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar CFoldMode = acequire(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, CFoldMode);\n\n(function() {\n this.usingRe = /^\\s*using \\S/;\n\n this.getFoldWidgetRangeBase = this.getFoldWidgetRange;\n this.getFoldWidgetBase = this.getFoldWidget;\n \n this.getFoldWidget = function(session, foldStyle, row) {\n var fw = this.getFoldWidgetBase(session, foldStyle, row);\n if (!fw) {\n var line = session.getLine(row);\n if (/^\\s*#region\\b/.test(line)) \n return \"start\";\n var usingRe = this.usingRe;\n if (usingRe.test(line)) {\n var prev = session.getLine(row - 1);\n var next = session.getLine(row + 1);\n if (!usingRe.test(prev) && usingRe.test(next))\n return \"start\"\n }\n }\n return fw;\n };\n \n this.getFoldWidgetRange = function(session, foldStyle, row) {\n var range = this.getFoldWidgetRangeBase(session, foldStyle, row);\n if (range)\n return range;\n\n var line = session.getLine(row);\n if (this.usingRe.test(line))\n return this.getUsingStatementBlock(session, line, row);\n \n if (/^\\s*#region\\b/.test(line))\n return this.getRegionBlock(session, line, row);\n };\n \n this.getUsingStatementBlock = function(session, line, row) {\n var startColumn = line.match(this.usingRe)[0].length - 1;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n\n while (++row < maxRow) {\n line = session.getLine(row);\n if (/^\\s*$/.test(line))\n continue;\n if (!this.usingRe.test(line))\n break;\n\n endRow = row;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n \n this.getRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*#(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n\n if (!depth)\n break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/csharp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/csharp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/csharp\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar CSharpHighlightRules = acequire(\"./csharp_highlight_rules\").CSharpHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/csharp\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = CSharpHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n \n this.lineCommentStart = \"//\";\n this.blockComment = {start: \"/*\", end: \"*/\"};\n \n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n \n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n \n if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n return indent;\n }\n \n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n \n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n \n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n\n this.createWorker = function(session) {\n return null;\n };\n\n this.$id = \"ace/mode/csharp\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\n\n/***/ }),\n/* 532 */\n/***/ (function(module, exports, __webpack_require__) {\n\nace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n this.$rules = {\n \"start\" : [ {\n token : \"comment.doc.tag\",\n regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n }, \n DocCommentHighlightRules.getTagRule(),\n {\n defaultToken : \"comment.doc\",\n caseInsensitive: true\n }]\n };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n return {\n token : \"comment.doc.tag.storage.type\",\n regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n return {\n token : \"comment.doc\", // doc comment\n regex : \"\\\\/\\\\*(?=\\\\*)\",\n next : start\n };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token : \"comment.doc\", // closing comment\n regex : \"\\\\*\\\\/\",\n next : start\n };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar DocCommentHighlightRules = acequire(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\";\n\nvar JavaScriptHighlightRules = function(options) {\n var keywordMapper = this.createKeywordMapper({\n \"variable.language\":\n \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\" + // Constructors\n \"Namespace|QName|XML|XMLList|\" + // E4X\n \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\" +\n \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\" +\n \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\" + // Errors\n \"SyntaxError|TypeError|URIError|\" +\n \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n \"isNaN|parseFloat|parseInt|\" +\n \"JSON|Math|\" + // Other\n \"this|arguments|prototype|window|document\" , // Pseudo\n \"keyword\":\n \"const|yield|import|get|set|\" +\n \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n \"if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n \"storage.type\":\n \"const|let|var|function\",\n \"constant.language\":\n \"null|Infinity|NaN|undefined\",\n \"support.function\":\n \"alert\",\n \"constant.language.boolean\": \"true|false\"\n }, \"identifier\");\n var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n \"u[0-9a-fA-F]{4}|\" + // unicode\n \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n \"[0-2][0-7]{0,2}|\" + // oct\n \"3[0-7][0-7]?|\" + // oct\n \"[4-7][0-7]?|\" + //oct\n \".)\";\n\n this.$rules = {\n \"no_regex\" : [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"no_regex\"),\n {\n token : \"string\",\n regex : \"'(?=.)\",\n next : \"qstring\"\n }, {\n token : \"string\",\n regex : '\"(?=.)',\n next : \"qqstring\"\n }, {\n token : \"constant.numeric\", // hex\n regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n }, {\n token : \"constant.numeric\", // float\n regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"support.function\",\n \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n next: \"function_arguments\"\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"entity.name.function\", \"text\", \"punctuation.operator\",\n \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : \"keyword\",\n regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n next : \"start\"\n }, {\n token : [\"support.constant\"],\n regex : /that\\b/\n }, {\n token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n }, {\n token : keywordMapper,\n regex : identifierRe\n }, {\n token : \"punctuation.operator\",\n regex : /[.](?![.])/,\n next : \"property\"\n }, {\n token : \"keyword.operator\",\n regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,\n next : \"start\"\n }, {\n token : \"punctuation.operator\",\n regex : /[?:,;.]/,\n next : \"start\"\n }, {\n token : \"paren.lparen\",\n regex : /[\\[({]/,\n next : \"start\"\n }, {\n token : \"paren.rparen\",\n regex : /[\\])}]/\n }, {\n token: \"comment\",\n regex: /^#!.*$/\n }\n ],\n property: [{\n token : \"text\",\n regex : \"\\\\s+\"\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : \"punctuation.operator\",\n regex : /[.](?![.])/\n }, {\n token : \"support.function\",\n regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n }, {\n token : \"support.function.dom\",\n regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n }, {\n token : \"support.constant\",\n regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n }, {\n token : \"identifier\",\n regex : identifierRe\n }, {\n regex: \"\",\n token: \"empty\",\n next: \"no_regex\"\n }\n ],\n \"start\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"start\"),\n {\n token: \"string.regexp\",\n regex: \"\\\\/\",\n next: \"regex\"\n }, {\n token : \"text\",\n regex : \"\\\\s+|^$\",\n next : \"start\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"regex\": [\n {\n token: \"regexp.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"string.regexp\",\n regex: \"/[sxngimy]*\",\n next: \"no_regex\"\n }, {\n token : \"invalid\",\n regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n }, {\n token : \"constant.language.escape\",\n regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n }, {\n token : \"constant.language.delimiter\",\n regex: /\\|/\n }, {\n token: \"constant.language.escape\",\n regex: /\\[\\^?/,\n next: \"regex_character_class\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp\"\n }\n ],\n \"regex_character_class\": [\n {\n token: \"regexp.charclass.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"constant.language.escape\",\n regex: \"]\",\n next: \"regex\"\n }, {\n token: \"constant.language.escape\",\n regex: \"-\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp.charachterclass\"\n }\n ],\n \"function_arguments\": [\n {\n token: \"variable.parameter\",\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: \"[, ]+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"qqstring\" : [\n {\n token : \"constant.language.escape\",\n regex : escapedRe\n }, {\n token : \"string\",\n regex : \"\\\\\\\\$\",\n next : \"qqstring\"\n }, {\n token : \"string\",\n regex : '\"|$',\n next : \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"qstring\" : [\n {\n token : \"constant.language.escape\",\n regex : escapedRe\n }, {\n token : \"string\",\n regex : \"\\\\\\\\$\",\n next : \"qstring\"\n }, {\n token : \"string\",\n regex : \"'|$\",\n next : \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n \n \n if (!options || !options.noES6) {\n this.$rules.no_regex.unshift({\n regex: \"[{}]\", onMatch: function(val, state, stack) {\n this.next = val == \"{\" ? this.nextState : \"\";\n if (val == \"{\" && stack.length) {\n stack.unshift(\"start\", state);\n }\n else if (val == \"}\" && stack.length) {\n stack.shift();\n this.next = stack.shift();\n if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n return \"paren.quasi.end\";\n }\n return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n },\n nextState: \"start\"\n }, {\n token : \"string.quasi.start\",\n regex : /`/,\n push : [{\n token : \"constant.language.escape\",\n regex : escapedRe\n }, {\n token : \"paren.quasi.start\",\n regex : /\\${/,\n push : \"start\"\n }, {\n token : \"string.quasi.end\",\n regex : /`/,\n next : \"pop\"\n }, {\n defaultToken: \"string.quasi\"\n }]\n });\n \n if (!options || !options.noJSX)\n JSX.call(this);\n }\n \n this.embedRules(DocCommentHighlightRules, \"doc-\",\n [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n \n this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n var jsxTag = {\n onMatch : function(val, state, stack) {\n var offset = val.charAt(1) == \"/\" ? 2 : 1;\n if (offset == 1) {\n if (state != this.nextState)\n stack.unshift(this.next, this.nextState, 0);\n else\n stack.unshift(this.next);\n stack[2]++;\n } else if (offset == 2) {\n if (state == this.nextState) {\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.shift();\n stack.shift();\n }\n }\n }\n return [{\n type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n value: val.slice(0, offset)\n }, {\n type: \"meta.tag.tag-name.xml\",\n value: val.substr(offset)\n }];\n },\n regex : \"\", \n onMatch : function(value, currentState, stack) {\n if (currentState == stack[0])\n stack.shift();\n if (value.length == 2) {\n if (stack[0] == this.nextState)\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.splice(0, 2);\n }\n }\n this.next = stack[0] || \"start\";\n return [{type: this.token, value: value}];\n },\n nextState: \"jsx\"\n }, \n jsxJsRule,\n comments(\"jsxAttributes\"),\n {\n token : \"entity.other.attribute-name.xml\",\n regex : tagRegex\n }, {\n token : \"keyword.operator.attribute-equals.xml\",\n regex : \"=\"\n }, {\n token : \"text.tag-whitespace.xml\",\n regex : \"\\\\s+\"\n }, {\n token : \"string.attribute-value.xml\",\n regex : \"'\",\n stateName : \"jsx_attr_q\",\n push : [\n {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n {include : \"reference\"},\n {defaultToken : \"string.attribute-value.xml\"}\n ]\n }, {\n token : \"string.attribute-value.xml\",\n regex : '\"',\n stateName : \"jsx_attr_qq\",\n push : [\n {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n {include : \"reference\"},\n {defaultToken : \"string.attribute-value.xml\"}\n ]\n },\n jsxTag\n ];\n this.$rules.reference = [{\n token : \"constant.language.escape.reference.xml\",\n regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }];\n}\n\nfunction comments(next) {\n return [\n {\n token : \"comment\", // multi line comment\n regex : /\\/\\*/,\n next: [\n DocCommentHighlightRules.getTagRule(),\n {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n {defaultToken : \"comment\", caseInsensitive: true}\n ]\n }, {\n token : \"comment\",\n regex : \"\\\\/\\\\/\",\n next: [\n DocCommentHighlightRules.getTagRule(),\n {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n {defaultToken : \"comment\", caseInsensitive: true}\n ]\n }\n ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nvar SAFE_INSERT_IN_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\", \"comment\"];\n\nvar context;\nvar contextCache = {};\nvar initContext = function(editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = {rangeCount: editor.multiSelect.rangeCount};\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\n\nvar getWrapped = function(selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\n\nvar CstyleBehaviour = function() {\n this.add(\"braces\", \"insertion\", function(state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n } else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n } else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n } else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n } else if (closing) {\n var next_indent = this.$getIndent(line);\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n\n this.add(\"braces\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n } else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n\n this.add(\"parens\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n } else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"parens\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"brackets\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n } else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"brackets\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"string_dquotes\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n } else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column-1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n \n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n \n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n \n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n } else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(leftChar);\n if (isWordBefore || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1,1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n};\n\n \nCstyleBehaviour.isSaneInsertion = function(editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\n\nCstyleBehaviour.$matchTokenType = function(token, types) {\n return types.indexOf(token.type || token) > -1;\n};\n\nCstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\n\nCstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\n\nCstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\n\nCstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\n\nCstyleBehaviour.popAutoInsertedClosing = function() {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\n\nCstyleBehaviour.clearMaybeInsertedClosing = function() {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\n\n\n\noop.inherits(CstyleBehaviour, Behaviour);\n\nexports.CstyleBehaviour = CstyleBehaviour;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar JavaScriptHighlightRules = acequire(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = acequire(\"../range\").Range;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = JavaScriptHighlightRules;\n \n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.lineCommentStart = \"//\";\n this.blockComment = {start: \"/*\", end: \"*/\"};\n\n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n\n if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n return indent;\n }\n\n if (state == \"start\" || state == \"no_regex\") {\n var match = line.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);\n if (match) {\n indent += tab;\n }\n } else if (state == \"doc-start\") {\n if (endState == \"start\" || endState == \"no_regex\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], __webpack_require__(290), \"JavaScriptWorker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"annotate\", function(results) {\n session.setAnnotations(results.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n\n this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\n\n/***/ }),\n/* 533 */\n/***/ (function(module, exports, __webpack_require__) {\n\nace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar JsonHighlightRules = function() {\n this.$rules = {\n \"start\" : [\n {\n token : \"variable\", // single line\n regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token : \"string\", // single line\n regex : '\"',\n next : \"string\"\n }, {\n token : \"constant.numeric\", // hex\n regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token : \"constant.numeric\", // float\n regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token : \"constant.language.boolean\",\n regex : \"(?:true|false)\\\\b\"\n }, {\n token : \"invalid.illegal\", // single quoted strings are not allowed\n regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token : \"invalid.illegal\", // comments are not allowed\n regex : \"\\\\/\\\\/.*$\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : \"\\\\s+\"\n }\n ],\n \"string\" : [\n {\n token : \"constant.language.escape\",\n regex : /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token : \"string\",\n regex : '[^\"\\\\\\\\]+'\n }, {\n token : \"string\",\n regex : '\"',\n next : \"start\"\n }, {\n token : \"string\",\n regex : \"\",\n next : \"start\"\n }\n ]\n };\n \n};\n\noop.inherits(JsonHighlightRules, TextHighlightRules);\n\nexports.JsonHighlightRules = JsonHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nvar SAFE_INSERT_IN_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\", \"comment\"];\n\nvar context;\nvar contextCache = {};\nvar initContext = function(editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = {rangeCount: editor.multiSelect.rangeCount};\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\n\nvar getWrapped = function(selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\n\nvar CstyleBehaviour = function() {\n this.add(\"braces\", \"insertion\", function(state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n } else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n } else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n } else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n } else if (closing) {\n var next_indent = this.$getIndent(line);\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n\n this.add(\"braces\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n } else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n\n this.add(\"parens\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n } else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"parens\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"brackets\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n } else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"brackets\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"string_dquotes\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n } else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column-1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n \n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n \n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n \n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n } else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(leftChar);\n if (isWordBefore || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1,1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n};\n\n \nCstyleBehaviour.isSaneInsertion = function(editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\n\nCstyleBehaviour.$matchTokenType = function(token, types) {\n return types.indexOf(token.type || token) > -1;\n};\n\nCstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\n\nCstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\n\nCstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\n\nCstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\n\nCstyleBehaviour.popAutoInsertedClosing = function() {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\n\nCstyleBehaviour.clearMaybeInsertedClosing = function() {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\n\n\n\noop.inherits(CstyleBehaviour, Behaviour);\n\nexports.CstyleBehaviour = CstyleBehaviour;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar HighlightRules = acequire(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], __webpack_require__(537), \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"annotate\", function(e) {\n session.setAnnotations(e.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n\n\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\n\n/***/ }),\n/* 534 */\n/***/ (function(module, exports, __webpack_require__) {\n\nace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n this.$rules = {\n \"start\" : [ {\n token : \"comment.doc.tag\",\n regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n }, \n DocCommentHighlightRules.getTagRule(),\n {\n defaultToken : \"comment.doc\",\n caseInsensitive: true\n }]\n };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n return {\n token : \"comment.doc.tag.storage.type\",\n regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n return {\n token : \"comment.doc\", // doc comment\n regex : \"\\\\/\\\\*(?=\\\\*)\",\n next : start\n };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token : \"comment.doc\", // closing comment\n regex : \"\\\\*\\\\/\",\n next : start\n };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar DocCommentHighlightRules = acequire(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\";\n\nvar JavaScriptHighlightRules = function(options) {\n var keywordMapper = this.createKeywordMapper({\n \"variable.language\":\n \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\" + // Constructors\n \"Namespace|QName|XML|XMLList|\" + // E4X\n \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\" +\n \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\" +\n \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\" + // Errors\n \"SyntaxError|TypeError|URIError|\" +\n \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n \"isNaN|parseFloat|parseInt|\" +\n \"JSON|Math|\" + // Other\n \"this|arguments|prototype|window|document\" , // Pseudo\n \"keyword\":\n \"const|yield|import|get|set|\" +\n \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n \"if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n \"storage.type\":\n \"const|let|var|function\",\n \"constant.language\":\n \"null|Infinity|NaN|undefined\",\n \"support.function\":\n \"alert\",\n \"constant.language.boolean\": \"true|false\"\n }, \"identifier\");\n var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n \"u[0-9a-fA-F]{4}|\" + // unicode\n \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n \"[0-2][0-7]{0,2}|\" + // oct\n \"3[0-7][0-7]?|\" + // oct\n \"[4-7][0-7]?|\" + //oct\n \".)\";\n\n this.$rules = {\n \"no_regex\" : [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"no_regex\"),\n {\n token : \"string\",\n regex : \"'(?=.)\",\n next : \"qstring\"\n }, {\n token : \"string\",\n regex : '\"(?=.)',\n next : \"qqstring\"\n }, {\n token : \"constant.numeric\", // hex\n regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n }, {\n token : \"constant.numeric\", // float\n regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"support.function\",\n \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n next: \"function_arguments\"\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"entity.name.function\", \"text\", \"punctuation.operator\",\n \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : \"keyword\",\n regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n next : \"start\"\n }, {\n token : [\"support.constant\"],\n regex : /that\\b/\n }, {\n token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n }, {\n token : keywordMapper,\n regex : identifierRe\n }, {\n token : \"punctuation.operator\",\n regex : /[.](?![.])/,\n next : \"property\"\n }, {\n token : \"keyword.operator\",\n regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,\n next : \"start\"\n }, {\n token : \"punctuation.operator\",\n regex : /[?:,;.]/,\n next : \"start\"\n }, {\n token : \"paren.lparen\",\n regex : /[\\[({]/,\n next : \"start\"\n }, {\n token : \"paren.rparen\",\n regex : /[\\])}]/\n }, {\n token: \"comment\",\n regex: /^#!.*$/\n }\n ],\n property: [{\n token : \"text\",\n regex : \"\\\\s+\"\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : \"punctuation.operator\",\n regex : /[.](?![.])/\n }, {\n token : \"support.function\",\n regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n }, {\n token : \"support.function.dom\",\n regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n }, {\n token : \"support.constant\",\n regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n }, {\n token : \"identifier\",\n regex : identifierRe\n }, {\n regex: \"\",\n token: \"empty\",\n next: \"no_regex\"\n }\n ],\n \"start\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"start\"),\n {\n token: \"string.regexp\",\n regex: \"\\\\/\",\n next: \"regex\"\n }, {\n token : \"text\",\n regex : \"\\\\s+|^$\",\n next : \"start\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"regex\": [\n {\n token: \"regexp.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"string.regexp\",\n regex: \"/[sxngimy]*\",\n next: \"no_regex\"\n }, {\n token : \"invalid\",\n regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n }, {\n token : \"constant.language.escape\",\n regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n }, {\n token : \"constant.language.delimiter\",\n regex: /\\|/\n }, {\n token: \"constant.language.escape\",\n regex: /\\[\\^?/,\n next: \"regex_character_class\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp\"\n }\n ],\n \"regex_character_class\": [\n {\n token: \"regexp.charclass.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"constant.language.escape\",\n regex: \"]\",\n next: \"regex\"\n }, {\n token: \"constant.language.escape\",\n regex: \"-\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp.charachterclass\"\n }\n ],\n \"function_arguments\": [\n {\n token: \"variable.parameter\",\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: \"[, ]+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"qqstring\" : [\n {\n token : \"constant.language.escape\",\n regex : escapedRe\n }, {\n token : \"string\",\n regex : \"\\\\\\\\$\",\n next : \"qqstring\"\n }, {\n token : \"string\",\n regex : '\"|$',\n next : \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"qstring\" : [\n {\n token : \"constant.language.escape\",\n regex : escapedRe\n }, {\n token : \"string\",\n regex : \"\\\\\\\\$\",\n next : \"qstring\"\n }, {\n token : \"string\",\n regex : \"'|$\",\n next : \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n \n \n if (!options || !options.noES6) {\n this.$rules.no_regex.unshift({\n regex: \"[{}]\", onMatch: function(val, state, stack) {\n this.next = val == \"{\" ? this.nextState : \"\";\n if (val == \"{\" && stack.length) {\n stack.unshift(\"start\", state);\n }\n else if (val == \"}\" && stack.length) {\n stack.shift();\n this.next = stack.shift();\n if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n return \"paren.quasi.end\";\n }\n return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n },\n nextState: \"start\"\n }, {\n token : \"string.quasi.start\",\n regex : /`/,\n push : [{\n token : \"constant.language.escape\",\n regex : escapedRe\n }, {\n token : \"paren.quasi.start\",\n regex : /\\${/,\n push : \"start\"\n }, {\n token : \"string.quasi.end\",\n regex : /`/,\n next : \"pop\"\n }, {\n defaultToken: \"string.quasi\"\n }]\n });\n \n if (!options || !options.noJSX)\n JSX.call(this);\n }\n \n this.embedRules(DocCommentHighlightRules, \"doc-\",\n [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n \n this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n var jsxTag = {\n onMatch : function(val, state, stack) {\n var offset = val.charAt(1) == \"/\" ? 2 : 1;\n if (offset == 1) {\n if (state != this.nextState)\n stack.unshift(this.next, this.nextState, 0);\n else\n stack.unshift(this.next);\n stack[2]++;\n } else if (offset == 2) {\n if (state == this.nextState) {\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.shift();\n stack.shift();\n }\n }\n }\n return [{\n type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n value: val.slice(0, offset)\n }, {\n type: \"meta.tag.tag-name.xml\",\n value: val.substr(offset)\n }];\n },\n regex : \"\", \n onMatch : function(value, currentState, stack) {\n if (currentState == stack[0])\n stack.shift();\n if (value.length == 2) {\n if (stack[0] == this.nextState)\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.splice(0, 2);\n }\n }\n this.next = stack[0] || \"start\";\n return [{type: this.token, value: value}];\n },\n nextState: \"jsx\"\n }, \n jsxJsRule,\n comments(\"jsxAttributes\"),\n {\n token : \"entity.other.attribute-name.xml\",\n regex : tagRegex\n }, {\n token : \"keyword.operator.attribute-equals.xml\",\n regex : \"=\"\n }, {\n token : \"text.tag-whitespace.xml\",\n regex : \"\\\\s+\"\n }, {\n token : \"string.attribute-value.xml\",\n regex : \"'\",\n stateName : \"jsx_attr_q\",\n push : [\n {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n {include : \"reference\"},\n {defaultToken : \"string.attribute-value.xml\"}\n ]\n }, {\n token : \"string.attribute-value.xml\",\n regex : '\"',\n stateName : \"jsx_attr_qq\",\n push : [\n {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n {include : \"reference\"},\n {defaultToken : \"string.attribute-value.xml\"}\n ]\n },\n jsxTag\n ];\n this.$rules.reference = [{\n token : \"constant.language.escape.reference.xml\",\n regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }];\n}\n\nfunction comments(next) {\n return [\n {\n token : \"comment\", // multi line comment\n regex : /\\/\\*/,\n next: [\n DocCommentHighlightRules.getTagRule(),\n {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n {defaultToken : \"comment\", caseInsensitive: true}\n ]\n }, {\n token : \"comment\",\n regex : \"\\\\/\\\\/\",\n next: [\n DocCommentHighlightRules.getTagRule(),\n {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n {defaultToken : \"comment\", caseInsensitive: true}\n ]\n }\n ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nvar SAFE_INSERT_IN_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\", \"comment\"];\n\nvar context;\nvar contextCache = {};\nvar initContext = function(editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = {rangeCount: editor.multiSelect.rangeCount};\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\n\nvar getWrapped = function(selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\n\nvar CstyleBehaviour = function() {\n this.add(\"braces\", \"insertion\", function(state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n } else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n } else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n } else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n } else if (closing) {\n var next_indent = this.$getIndent(line);\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n\n this.add(\"braces\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n } else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n\n this.add(\"parens\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n } else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"parens\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"brackets\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n } else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"brackets\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"string_dquotes\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n } else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column-1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n \n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n \n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n \n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n } else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(leftChar);\n if (isWordBefore || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1,1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n};\n\n \nCstyleBehaviour.isSaneInsertion = function(editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\n\nCstyleBehaviour.$matchTokenType = function(token, types) {\n return types.indexOf(token.type || token) > -1;\n};\n\nCstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\n\nCstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\n\nCstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\n\nCstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\n\nCstyleBehaviour.popAutoInsertedClosing = function() {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\n\nCstyleBehaviour.clearMaybeInsertedClosing = function() {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\n\n\n\noop.inherits(CstyleBehaviour, Behaviour);\n\nexports.CstyleBehaviour = CstyleBehaviour;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar JavaScriptHighlightRules = acequire(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = acequire(\"../range\").Range;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = JavaScriptHighlightRules;\n \n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.lineCommentStart = \"//\";\n this.blockComment = {start: \"/*\", end: \"*/\"};\n\n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n\n if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n return indent;\n }\n\n if (state == \"start\" || state == \"no_regex\") {\n var match = line.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);\n if (match) {\n indent += tab;\n }\n } else if (state == \"doc-start\") {\n if (endState == \"start\" || endState == \"no_regex\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], __webpack_require__(290), \"JavaScriptWorker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"annotate\", function(results) {\n session.setAnnotations(results.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n\n this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/typescript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar JavaScriptHighlightRules = acequire(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\n\nvar TypeScriptHighlightRules = function(options) {\n\n var tsRules = [\n {\n token: [\"keyword.operator.ts\", \"text\", \"variable.parameter.function.ts\", \"text\"],\n regex: \"\\\\b(module)(\\\\s*)([a-zA-Z0-9_?.$][\\\\w?.$]*)(\\\\s*\\\\{)\"\n }, \n {\n token: [\"storage.type.variable.ts\", \"text\", \"keyword.other.ts\", \"text\"],\n regex: \"(super)(\\\\s*\\\\()([a-zA-Z0-9,_?.$\\\\s]+\\\\s*)(\\\\))\"\n },\n {\n token: [\"entity.name.function.ts\",\"paren.lparen\", \"paren.rparen\"],\n regex: \"([a-zA-Z_?.$][\\\\w?.$]*)(\\\\()(\\\\))\"\n },\n {\n token: [\"variable.parameter.function.ts\", \"text\", \"variable.parameter.function.ts\"],\n regex: \"([a-zA-Z0-9_?.$][\\\\w?.$]*)(\\\\s*:\\\\s*)([a-zA-Z0-9_?.$][\\\\w?.$]*)\"\n }, \n {\n token: [\"keyword.operator.ts\"],\n regex: \"(?:\\\\b(constructor|declare|interface|as|AS|public|private|class|extends|export|super)\\\\b)\"\n }, \n {\n token: [\"storage.type.variable.ts\"],\n regex: \"(?:\\\\b(this\\\\.|string\\\\b|bool\\\\b|number)\\\\b)\"\n }, \n {\n token: [\"keyword.operator.ts\", \"storage.type.variable.ts\", \"keyword.operator.ts\", \"storage.type.variable.ts\"],\n regex: \"(class)(\\\\s+[a-zA-Z0-9_?.$][\\\\w?.$]*\\\\s+)(extends)(\\\\s+[a-zA-Z0-9_?.$][\\\\w?.$]*\\\\s+)?\"\n },\n {\n token: \"keyword\",\n regex: \"(?:super|export|class|extends|import)\\\\b\"\n }\n ];\n\n var JSRules = new JavaScriptHighlightRules({jsx: options && options.jsx}).getRules();\n \n JSRules.start = tsRules.concat(JSRules.start);\n this.$rules = JSRules;\n};\n\noop.inherits(TypeScriptHighlightRules, JavaScriptHighlightRules);\n\nexports.TypeScriptHighlightRules = TypeScriptHighlightRules;\n});\n\nace.define(\"ace/mode/typescript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/typescript_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/mode/matching_brace_outdent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar jsMode = acequire(\"./javascript\").Mode;\nvar TypeScriptHighlightRules = acequire(\"./typescript_highlight_rules\").TypeScriptHighlightRules;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\n\nvar Mode = function() {\n this.HighlightRules = TypeScriptHighlightRules;\n \n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, jsMode);\n\n(function() {\n this.createWorker = function(session) {\n return null;\n };\n this.$id = \"ace/mode/typescript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\n\n/***/ }),\n/* 535 */\n/***/ (function(module, exports, __webpack_require__) {\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n this.$rules = {\n start : [\n {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n {\n token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n },\n {\n token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n },\n {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n {\n token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n },\n {include : \"tag\"},\n {token : \"text.end-tag-open.xml\", regex: \"\",\n next : \"start\"\n }],\n\n processing_instruction : [\n {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n {defaultToken : \"instruction.xml\"}\n ],\n\n doctype : [\n {include : \"whitespace\"},\n {include : \"string\"},\n {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n ],\n\n int_subset : [{\n token : \"text.xml\",\n regex : \"\\\\s+\"\n }, {\n token: \"punctuation.int-subset.xml\",\n regex: \"]\",\n next: \"pop\"\n }, {\n token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n regex : \"(<\\\\!)(\" + tagRegex + \")\",\n push : [{\n token : \"text\",\n regex : \"\\\\s+\"\n },\n {\n token : \"punctuation.markup-decl.xml\",\n regex : \">\",\n next : \"pop\"\n },\n {include : \"string\"}]\n }],\n\n cdata : [\n {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n {token : \"text.xml\", regex : \"\\\\s+\"},\n {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n ],\n\n comment : [\n {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n {defaultToken : \"comment.xml\"}\n ],\n\n reference : [{\n token : \"constant.language.escape.reference.xml\",\n regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n\n attr_reference : [{\n token : \"constant.language.escape.reference.attribute-value.xml\",\n regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n\n tag : [{\n token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n regex : \"(?:(<)|(\", next : \"start\"}\n ]\n }],\n\n tag_whitespace : [\n {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n ],\n whitespace : [\n {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n ],\n string: [{\n token : \"string.xml\",\n regex : \"'\",\n push : [\n {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n {defaultToken : \"string.xml\"}\n ]\n }, {\n token : \"string.xml\",\n regex : '\"',\n push : [\n {token : \"string.xml\", regex: '\"', next: \"pop\"},\n {defaultToken : \"string.xml\"}\n ]\n }],\n\n attributes: [{\n token : \"entity.other.attribute-name.xml\",\n regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n }, {\n token : \"keyword.operator.attribute-equals.xml\",\n regex : \"=\"\n }, {\n include: \"tag_whitespace\"\n }, {\n include: \"attribute_value\"\n }],\n\n attribute_value: [{\n token : \"string.attribute-value.xml\",\n regex : \"'\",\n push : [\n {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n {include : \"attr_reference\"},\n {defaultToken : \"string.attribute-value.xml\"}\n ]\n }, {\n token : \"string.attribute-value.xml\",\n regex : '\"',\n push : [\n {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n {include : \"attr_reference\"},\n {defaultToken : \"string.attribute-value.xml\"}\n ]\n }]\n };\n\n if (this.constructor === XmlHighlightRules)\n this.normalizeRules();\n};\n\n\n(function() {\n\n this.embedTagRules = function(HighlightRules, prefix, tag){\n this.$rules.tag.unshift({\n token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n next: [\n {include : \"attributes\"},\n {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n ]\n });\n\n this.$rules[tag + \"-end\"] = [\n {include : \"attributes\"},\n {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next: \"start\",\n onMatch : function(value, currentState, stack) {\n stack.splice(0);\n return this.token;\n }}\n ]\n\n this.embedRules(HighlightRules, prefix, [{\n token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex : \"(|$))\",\n next: tag + \"-end\"\n }, {\n token: \"string.cdata.xml\",\n regex : \"<\\\\!\\\\[CDATA\\\\[\"\n }, {\n token: \"string.cdata.xml\",\n regex : \"\\\\]\\\\]>\"\n }]);\n };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nfunction is(token, type) {\n return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n var quote = text;\n var selected = session.doc.getTextRange(editor.getSelectionRange());\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return {\n text: quote + selected + quote,\n selection: false\n };\n }\n\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n\n if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n return {\n text: \"\",\n selection: [1, 1]\n };\n }\n\n if (!token)\n token = iterator.stepBackward();\n\n if (!token)\n return;\n\n while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n token = iterator.stepBackward();\n }\n var rightSpace = !rightChar || rightChar.match(/\\s/);\n if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n return {\n text: quote + quote,\n selection: [1, 1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '>') {\n var position = editor.getCursorPosition();\n var iterator = new TokenIterator(session, position.row, position.column);\n var token = iterator.getCurrentToken() || iterator.stepBackward();\n if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n return;\n if (is(token, \"reference.attribute-value\"))\n return;\n if (is(token, \"attribute-value\")) {\n var firstChar = token.value.charAt(0);\n if (firstChar == '\"' || firstChar == \"'\") {\n var lastChar = token.value.charAt(token.value.length - 1);\n var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n return;\n }\n }\n while (!is(token, \"tag-name\")) {\n token = iterator.stepBackward();\n }\n\n var tokenRow = iterator.getCurrentTokenRow();\n var tokenColumn = iterator.getCurrentTokenColumn();\n if (is(iterator.stepBackward(), \"end-tag-open\"))\n return;\n\n var element = token.value;\n if (tokenRow == position.row)\n element = element.substring(0, position.column - tokenColumn);\n\n if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n return;\n\n return {\n text: \">\" + \"\",\n selection: [1, 1]\n };\n }\n });\n\n this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n if (text == \"\\n\") {\n var cursor = editor.getCursorPosition();\n var line = session.getLine(cursor.row);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n\n if (token && token.type.indexOf(\"tag-close\") !== -1) {\n if (token.value == \"/>\")\n return;\n while (token && token.type.indexOf(\"tag-name\") === -1) {\n token = iterator.stepBackward();\n }\n\n if (!token) {\n return;\n }\n\n var tag = token.value;\n var row = iterator.getCurrentTokenRow();\n token = iterator.stepBackward();\n if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n return;\n }\n\n if (this.voidElements && !this.voidElements[tag]) {\n var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n var line = session.getLine(row);\n var nextIndent = this.$getIndent(line);\n var indent = nextIndent + session.getTabString();\n\n if (nextToken && nextToken.value === \" -1;\n}\n\n(function() {\n\n this.getFoldWidget = function(session, foldStyle, row) {\n var tag = this._getFirstTagInLine(session, row);\n\n if (!tag)\n return \"\";\n\n if (tag.closing || (!tag.tagName && tag.selfClosing))\n return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n return \"\";\n\n if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n return \"\";\n\n return \"start\";\n };\n this._getFirstTagInLine = function(session, row) {\n var tokens = session.getTokens(row);\n var tag = new Tag();\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (is(token, \"tag-open\")) {\n tag.end.column = tag.start.column + token.value.length;\n tag.closing = is(token, \"end-tag-open\");\n token = tokens[++i];\n if (!token)\n return null;\n tag.tagName = token.value;\n tag.end.column += token.value.length;\n for (i++; i < tokens.length; i++) {\n token = tokens[i];\n tag.end.column += token.value.length;\n if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == '/>';\n break;\n }\n }\n return tag;\n } else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == '/>';\n return tag;\n }\n tag.start.column += token.value.length;\n }\n\n return null;\n };\n\n this._findEndTagInLine = function(session, row, tagName, startColumn) {\n var tokens = session.getTokens(row);\n var column = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n column += token.value.length;\n if (column < startColumn)\n continue;\n if (is(token, \"end-tag-open\")) {\n token = tokens[i + 1];\n if (token && token.value == tagName)\n return true;\n }\n }\n return false;\n };\n this._readTagForward = function(iterator) {\n var token = iterator.getCurrentToken();\n if (!token)\n return null;\n\n var tag = new Tag();\n do {\n if (is(token, \"tag-open\")) {\n tag.closing = is(token, \"end-tag-open\");\n tag.start.row = iterator.getCurrentTokenRow();\n tag.start.column = iterator.getCurrentTokenColumn();\n } else if (is(token, \"tag-name\")) {\n tag.tagName = token.value;\n } else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == \"/>\";\n tag.end.row = iterator.getCurrentTokenRow();\n tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n iterator.stepForward();\n return tag;\n }\n } while(token = iterator.stepForward());\n\n return null;\n };\n \n this._readTagBackward = function(iterator) {\n var token = iterator.getCurrentToken();\n if (!token)\n return null;\n\n var tag = new Tag();\n do {\n if (is(token, \"tag-open\")) {\n tag.closing = is(token, \"end-tag-open\");\n tag.start.row = iterator.getCurrentTokenRow();\n tag.start.column = iterator.getCurrentTokenColumn();\n iterator.stepBackward();\n return tag;\n } else if (is(token, \"tag-name\")) {\n tag.tagName = token.value;\n } else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == \"/>\";\n tag.end.row = iterator.getCurrentTokenRow();\n tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n }\n } while(token = iterator.stepBackward());\n\n return null;\n };\n \n this._pop = function(stack, tag) {\n while (stack.length) {\n \n var top = stack[stack.length-1];\n if (!tag || top.tagName == tag.tagName) {\n return stack.pop();\n }\n else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n stack.pop();\n continue;\n } else {\n return null;\n }\n }\n };\n \n this.getFoldWidgetRange = function(session, foldStyle, row) {\n var firstTag = this._getFirstTagInLine(session, row);\n \n if (!firstTag)\n return null;\n \n var isBackward = firstTag.closing || firstTag.selfClosing;\n var stack = [];\n var tag;\n \n if (!isBackward) {\n var iterator = new TokenIterator(session, row, firstTag.start.column);\n var start = {\n row: row,\n column: firstTag.start.column + firstTag.tagName.length + 2\n };\n if (firstTag.start.row == firstTag.end.row)\n start.column = firstTag.end.column;\n while (tag = this._readTagForward(iterator)) {\n if (tag.selfClosing) {\n if (!stack.length) {\n tag.start.column += tag.tagName.length + 2;\n tag.end.column -= 2;\n return Range.fromPoints(tag.start, tag.end);\n } else\n continue;\n }\n \n if (tag.closing) {\n this._pop(stack, tag);\n if (stack.length == 0)\n return Range.fromPoints(start, tag.start);\n }\n else {\n stack.push(tag);\n }\n }\n }\n else {\n var iterator = new TokenIterator(session, row, firstTag.end.column);\n var end = {\n row: row,\n column: firstTag.start.column\n };\n \n while (tag = this._readTagBackward(iterator)) {\n if (tag.selfClosing) {\n if (!stack.length) {\n tag.start.column += tag.tagName.length + 2;\n tag.end.column -= 2;\n return Range.fromPoints(tag.start, tag.end);\n } else\n continue;\n }\n \n if (!tag.closing) {\n this._pop(stack, tag);\n if (stack.length == 0) {\n tag.start.column += tag.tagName.length + 2;\n if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n tag.start.column = tag.end.column;\n return Range.fromPoints(tag.start, end);\n }\n }\n else {\n stack.push(tag);\n }\n }\n }\n \n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar lang = acequire(\"../lib/lang\");\nvar TextMode = acequire(\"./text\").Mode;\nvar XmlHighlightRules = acequire(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = acequire(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = acequire(\"./folding/xml\").FoldMode;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n this.HighlightRules = XmlHighlightRules;\n this.$behaviour = new XmlBehaviour();\n this.foldingRules = new XmlFoldMode();\n};\n\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.voidElements = lang.arrayToMap([]);\n\n this.blockComment = {start: \"\"};\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], __webpack_require__(538), \"Worker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"error\", function(e) {\n session.setAnnotations(e.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n \n this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\n\n/***/ }),\n/* 536 */\n/***/ (function(module, exports) {\n\nace.define(\"ace/theme/github\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\nexports.isDark = false;\nexports.cssClass = \"ace-github\";\nexports.cssText = \"\\\n.ace-github .ace_gutter {\\\nbackground: #e8e8e8;\\\ncolor: #AAA;\\\n}\\\n.ace-github {\\\nbackground: #fff;\\\ncolor: #000;\\\n}\\\n.ace-github .ace_keyword {\\\nfont-weight: bold;\\\n}\\\n.ace-github .ace_string {\\\ncolor: #D14;\\\n}\\\n.ace-github .ace_variable.ace_class {\\\ncolor: teal;\\\n}\\\n.ace-github .ace_constant.ace_numeric {\\\ncolor: #099;\\\n}\\\n.ace-github .ace_constant.ace_buildin {\\\ncolor: #0086B3;\\\n}\\\n.ace-github .ace_support.ace_function {\\\ncolor: #0086B3;\\\n}\\\n.ace-github .ace_comment {\\\ncolor: #998;\\\nfont-style: italic;\\\n}\\\n.ace-github .ace_variable.ace_language {\\\ncolor: #0086B3;\\\n}\\\n.ace-github .ace_paren {\\\nfont-weight: bold;\\\n}\\\n.ace-github .ace_boolean {\\\nfont-weight: bold;\\\n}\\\n.ace-github .ace_string.ace_regexp {\\\ncolor: #009926;\\\nfont-weight: normal;\\\n}\\\n.ace-github .ace_variable.ace_instance {\\\ncolor: teal;\\\n}\\\n.ace-github .ace_constant.ace_language {\\\nfont-weight: bold;\\\n}\\\n.ace-github .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\\\nbackground: rgb(255, 255, 204);\\\n}\\\n.ace-github .ace_marker-layer .ace_active-line {\\\nbackground: rgb(245, 245, 245);\\\n}\\\n.ace-github .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-github.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px white;\\\n}\\\n.ace-github.ace_nobold .ace_line > span {\\\nfont-weight: normal !important;\\\n}\\\n.ace-github .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-github .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-github .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-github .ace_gutter-active-line {\\\nbackground-color : rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-github .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-github .ace_invisible {\\\ncolor: #BFBFBF\\\n}\\\n.ace-github .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-github .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\";\n\n var dom = acequire(\"../lib/dom\");\n dom.importCssString(exports.cssText, exports.cssClass);\n});\n\n\n/***/ }),\n/* 537 */\n/***/ (function(module, exports) {\n\nmodule.exports.id = 'ace/mode/json_worker';\nmodule.exports.src = \"\\\"no use strict\\\";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\\\"\\\";testPath;){var alias=paths[testPath];if(\\\"string\\\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\\\/*$/,\\\"/\\\")+(tail||alias.main||alias.name);if(alias===!1)return\\\"\\\";var i=testPath.lastIndexOf(\\\"/\\\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\\\"log\\\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\\\"error\\\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\\\"!\\\")){var chunks=moduleName.split(\\\"!\\\");return window.normalizeModule(parentId,chunks[0])+\\\"!\\\"+window.normalizeModule(parentId,chunks[1])}if(\\\".\\\"==moduleName.charAt(0)){var base=parentId.split(\\\"/\\\").slice(0,-1).join(\\\"/\\\");for(moduleName=(base?base+\\\"/\\\":\\\"\\\")+moduleName;-1!==moduleName.indexOf(\\\".\\\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\\\.\\\\//,\\\"\\\").replace(/\\\\/\\\\.\\\\//,\\\"/\\\").replace(/[^\\\\/]+\\\\/\\\\.\\\\.\\\\//,\\\"\\\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\\\"worker.js acequire() accepts only (parentId, id) as arguments\\\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\\\"unable to load \\\"+id);var path=resolveModuleId(id,window.acequire.tlns);return\\\".js\\\"!=path.slice(-3)&&(path+=\\\".js\\\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\\\"string\\\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\\\"function\\\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\\\"require\\\",\\\"exports\\\",\\\"module\\\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\\\"require\\\":return req;case\\\"exports\\\":return module.exports;case\\\"module\\\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\\\"ace/lib/event_emitter\\\").EventEmitter,oop=window.acequire(\\\"ace/lib/oop\\\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\\\"call\\\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\\\"event\\\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\\\"Unknown command:\\\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\\\"ace/lib/es5-shim\\\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define(\\\"ace/lib/oop\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\\\"ace/range\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\\\"Range: [\\\"+this.start.row+\\\"/\\\"+this.start.column+\\\"] -> [\\\"+this.end.row+\\\"/\\\"+this.end.column+\\\"]\\\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\\\"object\\\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\\\"object\\\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\\\"ace/apply_delta\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\\\"\\\";switch(delta.action){case\\\"insert\\\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\\\"remove\\\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\\\"ace/lib/event_emitter\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\\\"object\\\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\\\"unshift\\\":\\\"push\\\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\\\"ace/anchor\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/lib/event_emitter\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\\\"change\\\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\\\"change\\\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\\\"change\\\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\\\"ace/document\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/apply_delta\\\",\\\"ace/lib/event_emitter\\\",\\\"ace/range\\\",\\\"ace/anchor\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),applyDelta=acequire(\\\"./apply_delta\\\").applyDelta,EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Range=acequire(\\\"./range\\\").Range,Anchor=acequire(\\\"./anchor\\\").Anchor,Document=function(textOrLines){this.$lines=[\\\"\\\"],0===textOrLines.length?this.$lines=[\\\"\\\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\\\"aaa\\\".split(/a/).length?function(text){return text.replace(/\\\\r\\\\n|\\\\r/g,\\\"\\\\n\\\").split(\\\"\\\\n\\\")}:function(text){return text.split(/\\\\r\\\\n|\\\\r|\\\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\\\r\\\\n|\\\\r|\\\\n)/m);this.$autoNewLine=match?match[1]:\\\"\\\\n\\\",this._signal(\\\"changeNewLineMode\\\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\\\"windows\\\":return\\\"\\\\r\\\\n\\\";case\\\"unix\\\":return\\\"\\\\n\\\";default:return this.$autoNewLine||\\\"\\\\n\\\"}},this.$autoNewLine=\\\"\\\",this.$newLineMode=\\\"auto\\\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\\\"changeNewLineMode\\\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\\\"\\\\r\\\\n\\\"==text||\\\"\\\\r\\\"==text||\\\"\\\\n\\\"==text},this.getLine=function(row){return this.$lines[row]||\\\"\\\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\\\"\\\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\\\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\\\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\\\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\\\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\\\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\\\"),this.insertMergedLines(position,[\\\"\\\",\\\"\\\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\\\"\\\"]),column=0):(lines=[\\\"\\\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\\\"remove\\\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\\\"remove\\\",lines:[\\\"\\\",\\\"\\\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\\\"insert\\\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\\\"change\\\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\\\"\\\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\\\"insert\\\"==delta.action?\\\"remove\\\":\\\"insert\\\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\\\"ace/lib/lang\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\\\"\\\").reverse().join(\\\"\\\")},exports.stringRepeat=function(string,count){for(var result=\\\"\\\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\\\s\\\\s*/,trimEndRegexp=/\\\\s\\\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\\\"\\\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\\\"\\\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\\\"object\\\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\\\"object\\\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}var cons=obj.constructor;if(cons===RegExp)return obj;copy=cons();for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\\\]\\\\/\\\\\\\\])/g,\\\"\\\\\\\\$1\\\")},exports.escapeHTML=function(str){return str.replace(/&/g,\\\"&\\\").replace(/\\\"/g,\\\""\\\").replace(/'/g,\\\"'\\\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\\\"insert\\\",start:data[i],lines:data[i+1]};else var d={action:\\\"remove\\\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\\\"ace/mode/json/json_parse\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){\\\"use strict\\\";var at,ch,text,value,escapee={'\\\"':'\\\"',\\\"\\\\\\\\\\\":\\\"\\\\\\\\\\\",\\\"/\\\":\\\"/\\\",b:\\\"\\\\b\\\",f:\\\"\\\\f\\\",n:\\\"\\\\n\\\",r:\\\"\\\\r\\\",t:\\\"\\t\\\"},error=function(m){throw{name:\\\"SyntaxError\\\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\\\"Expected '\\\"+c+\\\"' instead of '\\\"+ch+\\\"'\\\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\\\"\\\";for(\\\"-\\\"===ch&&(string=\\\"-\\\",next(\\\"-\\\"));ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();if(\\\".\\\"===ch)for(string+=\\\".\\\";next()&&ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch;if(\\\"e\\\"===ch||\\\"E\\\"===ch)for(string+=ch,next(),(\\\"-\\\"===ch||\\\"+\\\"===ch)&&(string+=ch,next());ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\\\"Bad number\\\"),void 0):number},string=function(){var hex,i,uffff,string=\\\"\\\";if('\\\"'===ch)for(;next();){if('\\\"'===ch)return next(),string;if(\\\"\\\\\\\\\\\"===ch)if(next(),\\\"u\\\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\\\"string\\\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\\\"Bad string\\\")},white=function(){for(;ch&&\\\" \\\">=ch;)next()},word=function(){switch(ch){case\\\"t\\\":return next(\\\"t\\\"),next(\\\"r\\\"),next(\\\"u\\\"),next(\\\"e\\\"),!0;case\\\"f\\\":return next(\\\"f\\\"),next(\\\"a\\\"),next(\\\"l\\\"),next(\\\"s\\\"),next(\\\"e\\\"),!1;case\\\"n\\\":return next(\\\"n\\\"),next(\\\"u\\\"),next(\\\"l\\\"),next(\\\"l\\\"),null}error(\\\"Unexpected '\\\"+ch+\\\"'\\\")},array=function(){var array=[];if(\\\"[\\\"===ch){if(next(\\\"[\\\"),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;for(;ch;){if(array.push(value()),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;next(\\\",\\\"),white()}}error(\\\"Bad array\\\")},object=function(){var key,object={};if(\\\"{\\\"===ch){if(next(\\\"{\\\"),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;for(;ch;){if(key=string(),white(),next(\\\":\\\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \\\"'+key+'\\\"'),object[key]=value(),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;next(\\\",\\\"),white()}}error(\\\"Bad object\\\")};return value=function(){switch(white(),ch){case\\\"{\\\":return object();case\\\"[\\\":return array();case'\\\"':return string();case\\\"-\\\":return number();default:return ch>=\\\"0\\\"&&\\\"9\\\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\\\" \\\",result=value(),white(),ch&&error(\\\"Syntax error\\\"),\\\"function\\\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\\\"object\\\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\\\"\\\":result},\\\"\\\"):result}}),ace.define(\\\"ace/mode/json_worker\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/worker/mirror\\\",\\\"ace/mode/json/json_parse\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"../lib/oop\\\"),Mirror=acequire(\\\"../worker/mirror\\\").Mirror,parse=acequire(\\\"./json/json_parse\\\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\\\"error\\\"})}this.sender.emit(\\\"annotate\\\",errors)}}.call(JsonWorker.prototype)}),ace.define(\\\"ace/lib/es5-shim\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\\\"sentinel\\\",{}),\\\"sentinel\\\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\\\"function\\\"!=typeof target)throw new TypeError(\\\"Function.prototype.bind called on incompatible \\\"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\\\"__defineGetter__\\\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\\\"XXX\\\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\\\"[object Array]\\\"==_toString(obj)});var boxedString=Object(\\\"a\\\"),splitString=\\\"a\\\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduce of empty array with no initial value\\\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\\\"reduce of empty array with no initial value\\\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\\\"Object.getOwnPropertyDescriptor called on a non-object: \\\";Object.getOwnPropertyDescriptor=function(object,property){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\\\"object\\\"!=typeof prototype)throw new TypeError(\\\"typeof prototype[\\\"+typeof prototype+\\\"] != 'object'\\\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\\\"undefined\\\"==typeof document||doesDefinePropertyWork(document.createElement(\\\"div\\\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\\\"Property description must be an object: \\\",ERR_NON_OBJECT_TARGET=\\\"Object.defineProperty called on non-object: \\\",ERR_ACCESSORS_NOT_SUPPORTED=\\\"getters & setters can not be defined on this javascript engine\\\";Object.defineProperty=function(object,property,descriptor){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\\\"object\\\"!=typeof descriptor&&\\\"function\\\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\\\"value\\\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\\\"get\\\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\\\"set\\\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\\\"function\\\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\\\"\\\";owns(object,name);)name+=\\\"?\\\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\\\"toString\\\",\\\"toLocaleString\\\",\\\"valueOf\\\",\\\"hasOwnProperty\\\",\\\"isPrototypeOf\\\",\\\"propertyIsEnumerable\\\",\\\"constructor\\\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(\\\"Object.keys called on a non-object\\\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\\\"\\t\\\\n\\u000b\\\\f\\\\r   ᠎              \\\\u2028\\\\u2029\\\";if(!String.prototype.trim||ws.trim()){ws=\\\"[\\\"+ws+\\\"]\\\";var trimBeginRegexp=RegExp(\\\"^\\\"+ws+ws+\\\"*\\\"),trimEndRegexp=RegExp(ws+ws+\\\"*$\\\");String.prototype.trim=function(){return(this+\\\"\\\").replace(trimBeginRegexp,\\\"\\\").replace(trimEndRegexp,\\\"\\\")}}var toObject=function(o){if(null==o)throw new TypeError(\\\"can't convert \\\"+o+\\\" to object\\\");return Object(o)}});\";\n\n/***/ }),\n/* 538 */\n/***/ (function(module, exports) {\n\nmodule.exports.id = 'ace/mode/xml_worker';\nmodule.exports.src = \"\\\"no use strict\\\";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\\\"\\\";testPath;){var alias=paths[testPath];if(\\\"string\\\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\\\/*$/,\\\"/\\\")+(tail||alias.main||alias.name);if(alias===!1)return\\\"\\\";var i=testPath.lastIndexOf(\\\"/\\\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\\\"log\\\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\\\"error\\\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\\\"!\\\")){var chunks=moduleName.split(\\\"!\\\");return window.normalizeModule(parentId,chunks[0])+\\\"!\\\"+window.normalizeModule(parentId,chunks[1])}if(\\\".\\\"==moduleName.charAt(0)){var base=parentId.split(\\\"/\\\").slice(0,-1).join(\\\"/\\\");for(moduleName=(base?base+\\\"/\\\":\\\"\\\")+moduleName;-1!==moduleName.indexOf(\\\".\\\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\\\.\\\\//,\\\"\\\").replace(/\\\\/\\\\.\\\\//,\\\"/\\\").replace(/[^\\\\/]+\\\\/\\\\.\\\\.\\\\//,\\\"\\\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\\\"worker.js acequire() accepts only (parentId, id) as arguments\\\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\\\"unable to load \\\"+id);var path=resolveModuleId(id,window.acequire.tlns);return\\\".js\\\"!=path.slice(-3)&&(path+=\\\".js\\\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\\\"string\\\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\\\"function\\\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\\\"require\\\",\\\"exports\\\",\\\"module\\\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\\\"require\\\":return req;case\\\"exports\\\":return module.exports;case\\\"module\\\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\\\"ace/lib/event_emitter\\\").EventEmitter,oop=window.acequire(\\\"ace/lib/oop\\\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\\\"call\\\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\\\"event\\\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\\\"Unknown command:\\\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\\\"ace/lib/es5-shim\\\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define(\\\"ace/lib/oop\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\\\"ace/lib/lang\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\\\"\\\").reverse().join(\\\"\\\")},exports.stringRepeat=function(string,count){for(var result=\\\"\\\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\\\s\\\\s*/,trimEndRegexp=/\\\\s\\\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\\\"\\\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\\\"\\\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\\\"object\\\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\\\"object\\\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}var cons=obj.constructor;if(cons===RegExp)return obj;copy=cons();for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\\\]\\\\/\\\\\\\\])/g,\\\"\\\\\\\\$1\\\")},exports.escapeHTML=function(str){return str.replace(/&/g,\\\"&\\\").replace(/\\\"/g,\\\""\\\").replace(/'/g,\\\"'\\\").replace(/ [\\\"+this.end.row+\\\"/\\\"+this.end.column+\\\"]\\\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\\\"object\\\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\\\"object\\\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\\\"ace/apply_delta\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\\\"\\\";switch(delta.action){case\\\"insert\\\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\\\"remove\\\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\\\"ace/lib/event_emitter\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\\\"object\\\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\\\"unshift\\\":\\\"push\\\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\\\"ace/anchor\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/lib/event_emitter\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\\\"change\\\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\\\"change\\\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\\\"change\\\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\\\"ace/document\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/apply_delta\\\",\\\"ace/lib/event_emitter\\\",\\\"ace/range\\\",\\\"ace/anchor\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),applyDelta=acequire(\\\"./apply_delta\\\").applyDelta,EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Range=acequire(\\\"./range\\\").Range,Anchor=acequire(\\\"./anchor\\\").Anchor,Document=function(textOrLines){this.$lines=[\\\"\\\"],0===textOrLines.length?this.$lines=[\\\"\\\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\\\"aaa\\\".split(/a/).length?function(text){return text.replace(/\\\\r\\\\n|\\\\r/g,\\\"\\\\n\\\").split(\\\"\\\\n\\\")}:function(text){return text.split(/\\\\r\\\\n|\\\\r|\\\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\\\r\\\\n|\\\\r|\\\\n)/m);this.$autoNewLine=match?match[1]:\\\"\\\\n\\\",this._signal(\\\"changeNewLineMode\\\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\\\"windows\\\":return\\\"\\\\r\\\\n\\\";case\\\"unix\\\":return\\\"\\\\n\\\";default:return this.$autoNewLine||\\\"\\\\n\\\"}},this.$autoNewLine=\\\"\\\",this.$newLineMode=\\\"auto\\\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\\\"changeNewLineMode\\\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\\\"\\\\r\\\\n\\\"==text||\\\"\\\\r\\\"==text||\\\"\\\\n\\\"==text},this.getLine=function(row){return this.$lines[row]||\\\"\\\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\\\"\\\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\\\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\\\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\\\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\\\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\\\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\\\"),this.insertMergedLines(position,[\\\"\\\",\\\"\\\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\\\"\\\"]),column=0):(lines=[\\\"\\\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\\\"remove\\\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\\\"remove\\\",lines:[\\\"\\\",\\\"\\\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\\\"insert\\\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\\\"change\\\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\\\"\\\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\\\"insert\\\"==delta.action?\\\"remove\\\":\\\"insert\\\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\\\"ace/worker/mirror\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/range\\\",\\\"ace/document\\\",\\\"ace/lib/lang\\\"],function(acequire,exports){\\\"use strict\\\";acequire(\\\"../range\\\").Range;var Document=acequire(\\\"../document\\\").Document,lang=acequire(\\\"../lib/lang\\\"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(\\\"\\\"),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on(\\\"change\\\",function(e){var data=e.data;if(data[0].start)doc.applyDeltas(data);else for(var i=0;data.length>i;i+=2){if(Array.isArray(data[i+1]))var d={action:\\\"insert\\\",start:data[i],lines:data[i+1]};else var d={action:\\\"remove\\\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\\\"ace/mode/xml/sax\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){function XMLReader(){}function parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){function fixedFromCharCode(code){if(code>65535){code-=65536;var surrogate1=55296+(code>>10),surrogate2=56320+(1023&code);return String.fromCharCode(surrogate1,surrogate2)}return String.fromCharCode(code)}function entityReplacer(a){var k=a.slice(1,-1);return k in entityMap?entityMap[k]:\\\"#\\\"===k.charAt(0)?fixedFromCharCode(parseInt(k.substr(1).replace(\\\"x\\\",\\\"0x\\\"))):(errorHandler.error(\\\"entity not found:\\\"+a),a)}function appendText(end){var xt=source.substring(start,end).replace(/&#?\\\\w+;/g,entityReplacer);locator&&position(start),domBuilder.characters(xt,0,end-start),start=end}function position(start,m){for(;start>=endPos&&(m=linePattern.exec(source));)startPos=m.index,endPos=startPos+m[0].length,locator.lineNumber++;locator.columnNumber=start-startPos+1}for(var startPos=0,endPos=0,linePattern=/.+(?:\\\\r\\\\n?|\\\\n)|.*$/g,locator=domBuilder.locator,parseStack=[{currentNSMap:defaultNSMapCopy}],closeMap={},start=0;;){var i=source.indexOf(\\\"<\\\",start);if(0>i){if(!source.substr(start).match(/^\\\\s*$/)){var doc=domBuilder.document,text=doc.createTextNode(source.substr(start));doc.appendChild(text),domBuilder.currentElement=text}return}switch(i>start&&appendText(i),source.charAt(i+1)){case\\\"/\\\":var config,end=source.indexOf(\\\">\\\",i+3),tagName=source.substring(i+2,end);if(!(parseStack.length>1)){errorHandler.fatalError(\\\"end tag name not found for: \\\"+tagName);break}config=parseStack.pop();var localNSMap=config.localNSMap;if(config.tagName!=tagName&&errorHandler.fatalError(\\\"end tag name: \\\"+tagName+\\\" does not match the current start tagName: \\\"+config.tagName),domBuilder.endElement(config.uri,config.localName,tagName),localNSMap)for(var prefix in localNSMap)domBuilder.endPrefixMapping(prefix);end++;break;case\\\"?\\\":locator&&position(i),end=parseInstruction(source,i,domBuilder);break;case\\\"!\\\":locator&&position(i),end=parseDCC(source,i,domBuilder,errorHandler);break;default:try{locator&&position(i);var el=new ElementAttributes,end=parseElementStartPart(source,i,el,entityReplacer,errorHandler),len=el.length;if(len&&locator){for(var backup=copyLocator(locator,{}),i=0;len>i;i++){var a=el[i];position(a.offset),a.offset=copyLocator(locator,{})}copyLocator(backup,locator)}!el.closed&&fixSelfClosed(source,end,el.tagName,closeMap)&&(el.closed=!0,entityMap.nbsp||errorHandler.warning(\\\"unclosed xml attribute\\\")),appendElement(el,domBuilder,parseStack),\\\"http://www.w3.org/1999/xhtml\\\"!==el.uri||el.closed?end++:end=parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)}catch(e){errorHandler.error(\\\"element parse error: \\\"+e),end=-1}}0>end?appendText(i+1):start=end}}function copyLocator(f,t){return t.lineNumber=f.lineNumber,t.columnNumber=f.columnNumber,t}function parseElementStartPart(source,start,el,entityReplacer,errorHandler){for(var attrName,value,p=++start,s=S_TAG;;){var c=source.charAt(p);switch(c){case\\\"=\\\":if(s===S_ATTR)attrName=source.slice(start,p),s=S_EQ;else{if(s!==S_ATTR_S)throw Error(\\\"attribute equal must after attrName\\\");s=S_EQ}break;case\\\"'\\\":case'\\\"':if(s===S_EQ){if(start=p+1,p=source.indexOf(c,start),!(p>0))throw Error(\\\"attribute value no end '\\\"+c+\\\"' match\\\");value=source.slice(start,p).replace(/&#?\\\\w+;/g,entityReplacer),el.add(attrName,value,start-1),s=S_E}else{if(s!=S_V)throw Error('attribute value must after \\\"=\\\"');value=source.slice(start,p).replace(/&#?\\\\w+;/g,entityReplacer),el.add(attrName,value,start),errorHandler.warning('attribute \\\"'+attrName+'\\\" missed start quot('+c+\\\")!!\\\"),start=p+1,s=S_E}break;case\\\"/\\\":switch(s){case S_TAG:el.setTagName(source.slice(start,p));case S_E:case S_S:case S_C:s=S_C,el.closed=!0;case S_V:case S_ATTR:case S_ATTR_S:break;default:throw Error(\\\"attribute invalid close char('/')\\\")}break;case\\\"\\\":errorHandler.error(\\\"unexpected end of input\\\");case\\\">\\\":switch(s){case S_TAG:el.setTagName(source.slice(start,p));case S_E:case S_S:case S_C:break;case S_V:case S_ATTR:value=source.slice(start,p),\\\"/\\\"===value.slice(-1)&&(el.closed=!0,value=value.slice(0,-1));case S_ATTR_S:s===S_ATTR_S&&(value=attrName),s==S_V?(errorHandler.warning('attribute \\\"'+value+'\\\" missed quot(\\\")!!'),el.add(attrName,value.replace(/&#?\\\\w+;/g,entityReplacer),start)):(errorHandler.warning('attribute \\\"'+value+'\\\" missed value!! \\\"'+value+'\\\" instead!!'),el.add(value,value,start));break;case S_EQ:throw Error(\\\"attribute value missed!!\\\")}return p;case\\\"€\\\":c=\\\" \\\";default:if(\\\" \\\">=c)switch(s){case S_TAG:el.setTagName(source.slice(start,p)),s=S_S;break;case S_ATTR:attrName=source.slice(start,p),s=S_ATTR_S;break;case S_V:var value=source.slice(start,p).replace(/&#?\\\\w+;/g,entityReplacer);errorHandler.warning('attribute \\\"'+value+'\\\" missed quot(\\\")!!'),el.add(attrName,value,start);case S_E:s=S_S}else switch(s){case S_ATTR_S:errorHandler.warning('attribute \\\"'+attrName+'\\\" missed value!! \\\"'+attrName+'\\\" instead!!'),el.add(attrName,attrName,start),start=p,s=S_ATTR;\\nbreak;case S_E:errorHandler.warning('attribute space is acequired\\\"'+attrName+'\\\"!!');case S_S:s=S_ATTR,start=p;break;case S_EQ:s=S_V,start=p;break;case S_C:throw Error(\\\"elements closed character '/' and '>' must be connected to\\\")}}p++}}function appendElement(el,domBuilder,parseStack){for(var tagName=el.tagName,localNSMap=null,currentNSMap=parseStack[parseStack.length-1].currentNSMap,i=el.length;i--;){var a=el[i],qName=a.qName,value=a.value,nsp=qName.indexOf(\\\":\\\");if(nsp>0)var prefix=a.prefix=qName.slice(0,nsp),localName=qName.slice(nsp+1),nsPrefix=\\\"xmlns\\\"===prefix&&localName;else localName=qName,prefix=null,nsPrefix=\\\"xmlns\\\"===qName&&\\\"\\\";a.localName=localName,nsPrefix!==!1&&(null==localNSMap&&(localNSMap={},_copy(currentNSMap,currentNSMap={})),currentNSMap[nsPrefix]=localNSMap[nsPrefix]=value,a.uri=\\\"http://www.w3.org/2000/xmlns/\\\",domBuilder.startPrefixMapping(nsPrefix,value))}for(var i=el.length;i--;){a=el[i];var prefix=a.prefix;prefix&&(\\\"xml\\\"===prefix&&(a.uri=\\\"http://www.w3.org/XML/1998/namespace\\\"),\\\"xmlns\\\"!==prefix&&(a.uri=currentNSMap[prefix]))}var nsp=tagName.indexOf(\\\":\\\");nsp>0?(prefix=el.prefix=tagName.slice(0,nsp),localName=el.localName=tagName.slice(nsp+1)):(prefix=null,localName=el.localName=tagName);var ns=el.uri=currentNSMap[prefix||\\\"\\\"];if(domBuilder.startElement(ns,localName,tagName,el),el.closed){if(domBuilder.endElement(ns,localName,tagName),localNSMap)for(prefix in localNSMap)domBuilder.endPrefixMapping(prefix)}else el.currentNSMap=currentNSMap,el.localNSMap=localNSMap,parseStack.push(el)}function parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){if(/^(?:script|textarea)$/i.test(tagName)){var elEndStart=source.indexOf(\\\"\\\",elStartEnd),text=source.substring(elStartEnd+1,elEndStart);if(/[&<]/.test(text))return/^script$/i.test(tagName)?(domBuilder.characters(text,0,text.length),elEndStart):(text=text.replace(/&#?\\\\w+;/g,entityReplacer),domBuilder.characters(text,0,text.length),elEndStart)}return elStartEnd+1}function fixSelfClosed(source,elStartEnd,tagName,closeMap){var pos=closeMap[tagName];return null==pos&&(pos=closeMap[tagName]=source.lastIndexOf(\\\"\\\")),elStartEnd>pos}function _copy(source,target){for(var n in source)target[n]=source[n]}function parseDCC(source,start,domBuilder,errorHandler){var next=source.charAt(start+2);switch(next){case\\\"-\\\":if(\\\"-\\\"===source.charAt(start+3)){var end=source.indexOf(\\\"-->\\\",start+4);return end>start?(domBuilder.comment(source,start+4,end-start-4),end+3):(errorHandler.error(\\\"Unclosed comment\\\"),-1)}return-1;default:if(\\\"CDATA[\\\"==source.substr(start+3,6)){var end=source.indexOf(\\\"]]>\\\",start+9);return domBuilder.startCDATA(),domBuilder.characters(source,start+9,end-start-9),domBuilder.endCDATA(),end+3}var matchs=split(source,start),len=matchs.length;if(len>1&&/!doctype/i.test(matchs[0][0])){var name=matchs[1][0],pubid=len>3&&/^public$/i.test(matchs[2][0])&&matchs[3][0],sysid=len>4&&matchs[4][0],lastMatch=matchs[len-1];return domBuilder.startDTD(name,pubid&&pubid.replace(/^(['\\\"])(.*?)\\\\1$/,\\\"$2\\\"),sysid&&sysid.replace(/^(['\\\"])(.*?)\\\\1$/,\\\"$2\\\")),domBuilder.endDTD(),lastMatch.index+lastMatch[0].length}}return-1}function parseInstruction(source,start,domBuilder){var end=source.indexOf(\\\"?>\\\",start);if(end){var match=source.substring(start,end).match(/^<\\\\?(\\\\S*)\\\\s*([\\\\s\\\\S]*?)\\\\s*$/);return match?(match[0].length,domBuilder.processingInstruction(match[1],match[2]),end+2):-1}return-1}function ElementAttributes(){}function _set_proto_(thiz,parent){return thiz.__proto__=parent,thiz}function split(source,start){var match,buf=[],reg=/'[^']+'|\\\"[^\\\"]+\\\"|[^\\\\s<>\\\\/=]+=?|(\\\\/?\\\\s*>|<)/g;for(reg.lastIndex=start,reg.exec(source);match=reg.exec(source);)if(buf.push(match),match[1])return buf}var nameStartChar=/[A-Z_a-z\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD]/,nameChar=RegExp(\\\"[\\\\\\\\-\\\\\\\\.0-9\\\"+nameStartChar.source.slice(1,-1)+\\\"·̀-ͯ\\\\\\\\ux203F-⁀]\\\"),tagNamePattern=RegExp(\\\"^\\\"+nameStartChar.source+nameChar.source+\\\"*(?::\\\"+nameStartChar.source+nameChar.source+\\\"*)?$\\\"),S_TAG=0,S_ATTR=1,S_ATTR_S=2,S_EQ=3,S_V=4,S_E=5,S_S=6,S_C=7;return XMLReader.prototype={parse:function(source,defaultNSMap,entityMap){var domBuilder=this.domBuilder;domBuilder.startDocument(),_copy(defaultNSMap,defaultNSMap={}),parse(source,defaultNSMap,entityMap,domBuilder,this.errorHandler),domBuilder.endDocument()}},ElementAttributes.prototype={setTagName:function(tagName){if(!tagNamePattern.test(tagName))throw Error(\\\"invalid tagName:\\\"+tagName);this.tagName=tagName},add:function(qName,value,offset){if(!tagNamePattern.test(qName))throw Error(\\\"invalid attribute:\\\"+qName);this[this.length++]={qName:qName,value:value,offset:offset}},length:0,getLocalName:function(i){return this[i].localName},getOffset:function(i){return this[i].offset},getQName:function(i){return this[i].qName},getURI:function(i){return this[i].uri},getValue:function(i){return this[i].value}},_set_proto_({},_set_proto_.prototype)instanceof _set_proto_||(_set_proto_=function(thiz,parent){function p(){}p.prototype=parent,p=new p;for(parent in thiz)p[parent]=thiz[parent];return p}),XMLReader}),ace.define(\\\"ace/mode/xml/dom\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){function copy(src,dest){for(var p in src)dest[p]=src[p]}function _extends(Class,Super){function t(){}var pt=Class.prototype;if(Object.create){var ppt=Object.create(Super.prototype);pt.__proto__=ppt}pt instanceof Super||(t.prototype=Super.prototype,t=new t,copy(pt,t),Class.prototype=pt=t),pt.constructor!=Class&&(\\\"function\\\"!=typeof Class&&console.error(\\\"unknow Class:\\\"+Class),pt.constructor=Class)}function DOMException(code,message){if(message instanceof Error)var error=message;else error=this,Error.call(this,ExceptionMessage[code]),this.message=ExceptionMessage[code],Error.captureStackTrace&&Error.captureStackTrace(this,DOMException);return error.code=code,message&&(this.message=this.message+\\\": \\\"+message),error}function NodeList(){}function LiveNodeList(node,refresh){this._node=node,this._refresh=refresh,_updateLiveList(this)}function _updateLiveList(list){var inc=list._node._inc||list._node.ownerDocument._inc;if(list._inc!=inc){var ls=list._refresh(list._node);__set__(list,\\\"length\\\",ls.length),copy(ls,list),list._inc=inc}}function NamedNodeMap(){}function _findNodeIndex(list,node){for(var i=list.length;i--;)if(list[i]===node)return i}function _addNamedNode(el,list,newAttr,oldAttr){if(oldAttr?list[_findNodeIndex(list,oldAttr)]=newAttr:list[list.length++]=newAttr,el){newAttr.ownerElement=el;var doc=el.ownerDocument;doc&&(oldAttr&&_onRemoveAttribute(doc,el,oldAttr),_onAddAttribute(doc,el,newAttr))}}function _removeNamedNode(el,list,attr){var i=_findNodeIndex(list,attr);if(!(i>=0))throw DOMException(NOT_FOUND_ERR,Error());for(var lastIndex=list.length-1;lastIndex>i;)list[i]=list[++i];if(list.length=lastIndex,el){var doc=el.ownerDocument;doc&&(_onRemoveAttribute(doc,el,attr),attr.ownerElement=null)}}function DOMImplementation(features){if(this._features={},features)for(var feature in features)this._features=features[feature]}function Node(){}function _xmlEncoder(c){return\\\"<\\\"==c&&\\\"<\\\"||\\\">\\\"==c&&\\\">\\\"||\\\"&\\\"==c&&\\\"&\\\"||'\\\"'==c&&\\\""\\\"||\\\"&#\\\"+c.charCodeAt()+\\\";\\\"}function _visitNode(node,callback){if(callback(node))return!0;if(node=node.firstChild)do if(_visitNode(node,callback))return!0;while(node=node.nextSibling)}function Document(){}function _onAddAttribute(doc,el,newAttr){doc&&doc._inc++;var ns=newAttr.namespaceURI;\\\"http://www.w3.org/2000/xmlns/\\\"==ns&&(el._nsMap[newAttr.prefix?newAttr.localName:\\\"\\\"]=newAttr.value)}function _onRemoveAttribute(doc,el,newAttr){doc&&doc._inc++;var ns=newAttr.namespaceURI;\\\"http://www.w3.org/2000/xmlns/\\\"==ns&&delete el._nsMap[newAttr.prefix?newAttr.localName:\\\"\\\"]}function _onUpdateChild(doc,el,newChild){if(doc&&doc._inc){doc._inc++;var cs=el.childNodes;if(newChild)cs[cs.length++]=newChild;else{for(var child=el.firstChild,i=0;child;)cs[i++]=child,child=child.nextSibling;cs.length=i}}}function _removeChild(parentNode,child){var previous=child.previousSibling,next=child.nextSibling;return previous?previous.nextSibling=next:parentNode.firstChild=next,next?next.previousSibling=previous:parentNode.lastChild=previous,_onUpdateChild(parentNode.ownerDocument,parentNode),child}function _insertBefore(parentNode,newChild,nextChild){var cp=newChild.parentNode;if(cp&&cp.removeChild(newChild),newChild.nodeType===DOCUMENT_FRAGMENT_NODE){var newFirst=newChild.firstChild;if(null==newFirst)return newChild;var newLast=newChild.lastChild}else newFirst=newLast=newChild;var pre=nextChild?nextChild.previousSibling:parentNode.lastChild;newFirst.previousSibling=pre,newLast.nextSibling=nextChild,pre?pre.nextSibling=newFirst:parentNode.firstChild=newFirst,null==nextChild?parentNode.lastChild=newLast:nextChild.previousSibling=newLast;do newFirst.parentNode=parentNode;while(newFirst!==newLast&&(newFirst=newFirst.nextSibling));return _onUpdateChild(parentNode.ownerDocument||parentNode,parentNode),newChild.nodeType==DOCUMENT_FRAGMENT_NODE&&(newChild.firstChild=newChild.lastChild=null),newChild}function _appendSingleChild(parentNode,newChild){var cp=newChild.parentNode;if(cp){var pre=parentNode.lastChild;cp.removeChild(newChild);var pre=parentNode.lastChild}var pre=parentNode.lastChild;return newChild.parentNode=parentNode,newChild.previousSibling=pre,newChild.nextSibling=null,pre?pre.nextSibling=newChild:parentNode.firstChild=newChild,parentNode.lastChild=newChild,_onUpdateChild(parentNode.ownerDocument,parentNode,newChild),newChild}function Element(){this._nsMap={}}function Attr(){}function CharacterData(){}function Text(){}function Comment(){}function CDATASection(){}function DocumentType(){}function Notation(){}function Entity(){}function EntityReference(){}function DocumentFragment(){}function ProcessingInstruction(){}function XMLSerializer(){}function serializeToString(node,buf){switch(node.nodeType){case ELEMENT_NODE:var attrs=node.attributes,len=attrs.length,child=node.firstChild,nodeName=node.tagName,isHTML=htmlns===node.namespaceURI;buf.push(\\\"<\\\",nodeName);for(var i=0;len>i;i++)serializeToString(attrs.item(i),buf,isHTML);if(child||isHTML&&!/^(?:meta|link|img|br|hr|input|button)$/i.test(nodeName)){if(buf.push(\\\">\\\"),isHTML&&/^script$/i.test(nodeName))child&&buf.push(child.data);else for(;child;)serializeToString(child,buf),child=child.nextSibling;buf.push(\\\"\\\")}else buf.push(\\\"/>\\\");return;case DOCUMENT_NODE:case DOCUMENT_FRAGMENT_NODE:for(var child=node.firstChild;child;)serializeToString(child,buf),child=child.nextSibling;return;case ATTRIBUTE_NODE:return buf.push(\\\" \\\",node.name,'=\\\"',node.value.replace(/[<&\\\"]/g,_xmlEncoder),'\\\"');case TEXT_NODE:return buf.push(node.data.replace(/[<&]/g,_xmlEncoder));case CDATA_SECTION_NODE:return buf.push(\\\"\\\");case COMMENT_NODE:return buf.push(\\\"\\\");case DOCUMENT_TYPE_NODE:var pubid=node.publicId,sysid=node.systemId;if(buf.push(\\\"');else if(sysid&&\\\".\\\"!=sysid)buf.push(' SYSTEM \\\"',sysid,'\\\">');else{var sub=node.internalSubset;sub&&buf.push(\\\" [\\\",sub,\\\"]\\\"),buf.push(\\\">\\\")}return;case PROCESSING_INSTRUCTION_NODE:return buf.push(\\\"\\\");case ENTITY_REFERENCE_NODE:return buf.push(\\\"&\\\",node.nodeName,\\\";\\\");default:buf.push(\\\"??\\\",node.nodeName)}}function importNode(doc,node,deep){var node2;switch(node.nodeType){case ELEMENT_NODE:node2=node.cloneNode(!1),node2.ownerDocument=doc;case DOCUMENT_FRAGMENT_NODE:break;case ATTRIBUTE_NODE:deep=!0}if(node2||(node2=node.cloneNode(!1)),node2.ownerDocument=doc,node2.parentNode=null,deep)for(var child=node.firstChild;child;)node2.appendChild(importNode(doc,child,deep)),child=child.nextSibling;return node2}function cloneNode(doc,node,deep){var node2=new node.constructor;for(var n in node){var v=node[n];\\\"object\\\"!=typeof v&&v!=node2[n]&&(node2[n]=v)}switch(node.childNodes&&(node2.childNodes=new NodeList),node2.ownerDocument=doc,node2.nodeType){case ELEMENT_NODE:var attrs=node.attributes,attrs2=node2.attributes=new NamedNodeMap,len=attrs.length;attrs2._ownerElement=node2;for(var i=0;len>i;i++)node2.setAttributeNode(cloneNode(doc,attrs.item(i),!0));break;case ATTRIBUTE_NODE:deep=!0}if(deep)for(var child=node.firstChild;child;)node2.appendChild(cloneNode(doc,child,deep)),child=child.nextSibling;return node2}function __set__(object,key,value){object[key]=value}function getTextContent(node){switch(node.nodeType){case 1:case 11:var buf=[];for(node=node.firstChild;node;)7!==node.nodeType&&8!==node.nodeType&&buf.push(getTextContent(node)),node=node.nextSibling;return buf.join(\\\"\\\");default:return node.nodeValue}}var htmlns=\\\"http://www.w3.org/1999/xhtml\\\",NodeType={},ELEMENT_NODE=NodeType.ELEMENT_NODE=1,ATTRIBUTE_NODE=NodeType.ATTRIBUTE_NODE=2,TEXT_NODE=NodeType.TEXT_NODE=3,CDATA_SECTION_NODE=NodeType.CDATA_SECTION_NODE=4,ENTITY_REFERENCE_NODE=NodeType.ENTITY_REFERENCE_NODE=5,ENTITY_NODE=NodeType.ENTITY_NODE=6,PROCESSING_INSTRUCTION_NODE=NodeType.PROCESSING_INSTRUCTION_NODE=7,COMMENT_NODE=NodeType.COMMENT_NODE=8,DOCUMENT_NODE=NodeType.DOCUMENT_NODE=9,DOCUMENT_TYPE_NODE=NodeType.DOCUMENT_TYPE_NODE=10,DOCUMENT_FRAGMENT_NODE=NodeType.DOCUMENT_FRAGMENT_NODE=11,NOTATION_NODE=NodeType.NOTATION_NODE=12,ExceptionCode={},ExceptionMessage={};ExceptionCode.INDEX_SIZE_ERR=(ExceptionMessage[1]=\\\"Index size error\\\",1),ExceptionCode.DOMSTRING_SIZE_ERR=(ExceptionMessage[2]=\\\"DOMString size error\\\",2),ExceptionCode.HIERARCHY_REQUEST_ERR=(ExceptionMessage[3]=\\\"Hierarchy request error\\\",3),ExceptionCode.WRONG_DOCUMENT_ERR=(ExceptionMessage[4]=\\\"Wrong document\\\",4),ExceptionCode.INVALID_CHARACTER_ERR=(ExceptionMessage[5]=\\\"Invalid character\\\",5),ExceptionCode.NO_DATA_ALLOWED_ERR=(ExceptionMessage[6]=\\\"No data allowed\\\",6),ExceptionCode.NO_MODIFICATION_ALLOWED_ERR=(ExceptionMessage[7]=\\\"No modification allowed\\\",7);var NOT_FOUND_ERR=ExceptionCode.NOT_FOUND_ERR=(ExceptionMessage[8]=\\\"Not found\\\",8);ExceptionCode.NOT_SUPPORTED_ERR=(ExceptionMessage[9]=\\\"Not supported\\\",9);var INUSE_ATTRIBUTE_ERR=ExceptionCode.INUSE_ATTRIBUTE_ERR=(ExceptionMessage[10]=\\\"Attribute in use\\\",10);ExceptionCode.INVALID_STATE_ERR=(ExceptionMessage[11]=\\\"Invalid state\\\",11),ExceptionCode.SYNTAX_ERR=(ExceptionMessage[12]=\\\"Syntax error\\\",12),ExceptionCode.INVALID_MODIFICATION_ERR=(ExceptionMessage[13]=\\\"Invalid modification\\\",13),ExceptionCode.NAMESPACE_ERR=(ExceptionMessage[14]=\\\"Invalid namespace\\\",14),ExceptionCode.INVALID_ACCESS_ERR=(ExceptionMessage[15]=\\\"Invalid access\\\",15),DOMException.prototype=Error.prototype,copy(ExceptionCode,DOMException),NodeList.prototype={length:0,item:function(index){return this[index]||null}},LiveNodeList.prototype.item=function(i){return _updateLiveList(this),this[i]},_extends(LiveNodeList,NodeList),NamedNodeMap.prototype={length:0,item:NodeList.prototype.item,getNamedItem:function(key){for(var i=this.length;i--;){var attr=this[i];if(attr.nodeName==key)return attr}},setNamedItem:function(attr){var el=attr.ownerElement;if(el&&el!=this._ownerElement)throw new DOMException(INUSE_ATTRIBUTE_ERR);var oldAttr=this.getNamedItem(attr.nodeName);return _addNamedNode(this._ownerElement,this,attr,oldAttr),oldAttr},setNamedItemNS:function(attr){var oldAttr,el=attr.ownerElement;if(el&&el!=this._ownerElement)throw new DOMException(INUSE_ATTRIBUTE_ERR);return oldAttr=this.getNamedItemNS(attr.namespaceURI,attr.localName),_addNamedNode(this._ownerElement,this,attr,oldAttr),oldAttr},removeNamedItem:function(key){var attr=this.getNamedItem(key);return _removeNamedNode(this._ownerElement,this,attr),attr},removeNamedItemNS:function(namespaceURI,localName){var attr=this.getNamedItemNS(namespaceURI,localName);return _removeNamedNode(this._ownerElement,this,attr),attr},getNamedItemNS:function(namespaceURI,localName){for(var i=this.length;i--;){var node=this[i];if(node.localName==localName&&node.namespaceURI==namespaceURI)return node}return null}},DOMImplementation.prototype={hasFeature:function(feature,version){var versions=this._features[feature.toLowerCase()];return versions&&(!version||version in versions)?!0:!1},createDocument:function(namespaceURI,qualifiedName,doctype){var doc=new Document;if(doc.implementation=this,doc.childNodes=new NodeList,doc.doctype=doctype,doctype&&doc.appendChild(doctype),qualifiedName){var root=doc.createElementNS(namespaceURI,qualifiedName);doc.appendChild(root)}return doc},createDocumentType:function(qualifiedName,publicId,systemId){var node=new DocumentType;return node.name=qualifiedName,node.nodeName=qualifiedName,node.publicId=publicId,node.systemId=systemId,node}},Node.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(newChild,refChild){return _insertBefore(this,newChild,refChild)},replaceChild:function(newChild,oldChild){this.insertBefore(newChild,oldChild),oldChild&&this.removeChild(oldChild)},removeChild:function(oldChild){return _removeChild(this,oldChild)},appendChild:function(newChild){return this.insertBefore(newChild,null)},hasChildNodes:function(){return null!=this.firstChild},cloneNode:function(deep){return cloneNode(this.ownerDocument||this,this,deep)},normalize:function(){for(var child=this.firstChild;child;){var next=child.nextSibling;next&&next.nodeType==TEXT_NODE&&child.nodeType==TEXT_NODE?(this.removeChild(next),child.appendData(next.data)):(child.normalize(),child=next)}},isSupported:function(feature,version){return this.ownerDocument.implementation.hasFeature(feature,version)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(namespaceURI){for(var el=this;el;){var map=el._nsMap;if(map)for(var n in map)if(map[n]==namespaceURI)return n;el=2==el.nodeType?el.ownerDocument:el.parentNode}return null},lookupNamespaceURI:function(prefix){for(var el=this;el;){var map=el._nsMap;if(map&&prefix in map)return map[prefix];el=2==el.nodeType?el.ownerDocument:el.parentNode}return null},isDefaultNamespace:function(namespaceURI){var prefix=this.lookupPrefix(namespaceURI);return null==prefix}},copy(NodeType,Node),copy(NodeType,Node.prototype),Document.prototype={nodeName:\\\"#document\\\",nodeType:DOCUMENT_NODE,doctype:null,documentElement:null,_inc:1,insertBefore:function(newChild,refChild){if(newChild.nodeType==DOCUMENT_FRAGMENT_NODE){for(var child=newChild.firstChild;child;){var next=child.nextSibling;this.insertBefore(child,refChild),child=next}return newChild}return null==this.documentElement&&1==newChild.nodeType&&(this.documentElement=newChild),_insertBefore(this,newChild,refChild),newChild.ownerDocument=this,newChild},removeChild:function(oldChild){return this.documentElement==oldChild&&(this.documentElement=null),_removeChild(this,oldChild)},importNode:function(importedNode,deep){return importNode(this,importedNode,deep)},getElementById:function(id){var rtv=null;return _visitNode(this.documentElement,function(node){return 1==node.nodeType&&node.getAttribute(\\\"id\\\")==id?(rtv=node,!0):void 0}),rtv},createElement:function(tagName){var node=new Element;node.ownerDocument=this,node.nodeName=tagName,node.tagName=tagName,node.childNodes=new NodeList;var attrs=node.attributes=new NamedNodeMap;return attrs._ownerElement=node,node},createDocumentFragment:function(){var node=new DocumentFragment;return node.ownerDocument=this,node.childNodes=new NodeList,node},createTextNode:function(data){var node=new Text;return node.ownerDocument=this,node.appendData(data),node},createComment:function(data){var node=new Comment;return node.ownerDocument=this,node.appendData(data),node},createCDATASection:function(data){var node=new CDATASection;return node.ownerDocument=this,node.appendData(data),node},createProcessingInstruction:function(target,data){var node=new ProcessingInstruction;return node.ownerDocument=this,node.tagName=node.target=target,node.nodeValue=node.data=data,node},createAttribute:function(name){var node=new Attr;return node.ownerDocument=this,node.name=name,node.nodeName=name,node.localName=name,node.specified=!0,node},createEntityReference:function(name){var node=new EntityReference;return node.ownerDocument=this,node.nodeName=name,node},createElementNS:function(namespaceURI,qualifiedName){var node=new Element,pl=qualifiedName.split(\\\":\\\"),attrs=node.attributes=new NamedNodeMap;return node.childNodes=new NodeList,node.ownerDocument=this,node.nodeName=qualifiedName,node.tagName=qualifiedName,node.namespaceURI=namespaceURI,2==pl.length?(node.prefix=pl[0],node.localName=pl[1]):node.localName=qualifiedName,attrs._ownerElement=node,node},createAttributeNS:function(namespaceURI,qualifiedName){var node=new Attr,pl=qualifiedName.split(\\\":\\\");return node.ownerDocument=this,node.nodeName=qualifiedName,node.name=qualifiedName,node.namespaceURI=namespaceURI,node.specified=!0,2==pl.length?(node.prefix=pl[0],node.localName=pl[1]):node.localName=qualifiedName,node}},_extends(Document,Node),Element.prototype={nodeType:ELEMENT_NODE,hasAttribute:function(name){return null!=this.getAttributeNode(name)},getAttribute:function(name){var attr=this.getAttributeNode(name);return attr&&attr.value||\\\"\\\"},getAttributeNode:function(name){return this.attributes.getNamedItem(name)},setAttribute:function(name,value){var attr=this.ownerDocument.createAttribute(name);attr.value=attr.nodeValue=\\\"\\\"+value,this.setAttributeNode(attr)},removeAttribute:function(name){var attr=this.getAttributeNode(name);attr&&this.removeAttributeNode(attr)},appendChild:function(newChild){return newChild.nodeType===DOCUMENT_FRAGMENT_NODE?this.insertBefore(newChild,null):_appendSingleChild(this,newChild)},setAttributeNode:function(newAttr){return this.attributes.setNamedItem(newAttr)},setAttributeNodeNS:function(newAttr){return this.attributes.setNamedItemNS(newAttr)},removeAttributeNode:function(oldAttr){return this.attributes.removeNamedItem(oldAttr.nodeName)},removeAttributeNS:function(namespaceURI,localName){var old=this.getAttributeNodeNS(namespaceURI,localName);old&&this.removeAttributeNode(old)},hasAttributeNS:function(namespaceURI,localName){return null!=this.getAttributeNodeNS(namespaceURI,localName)},getAttributeNS:function(namespaceURI,localName){var attr=this.getAttributeNodeNS(namespaceURI,localName);return attr&&attr.value||\\\"\\\"},setAttributeNS:function(namespaceURI,qualifiedName,value){var attr=this.ownerDocument.createAttributeNS(namespaceURI,qualifiedName);attr.value=attr.nodeValue=\\\"\\\"+value,this.setAttributeNode(attr)},getAttributeNodeNS:function(namespaceURI,localName){return this.attributes.getNamedItemNS(namespaceURI,localName)},getElementsByTagName:function(tagName){return new LiveNodeList(this,function(base){var ls=[];return _visitNode(base,function(node){node===base||node.nodeType!=ELEMENT_NODE||\\\"*\\\"!==tagName&&node.tagName!=tagName||ls.push(node)}),ls})},getElementsByTagNameNS:function(namespaceURI,localName){return new LiveNodeList(this,function(base){var ls=[];return _visitNode(base,function(node){node===base||node.nodeType!==ELEMENT_NODE||\\\"*\\\"!==namespaceURI&&node.namespaceURI!==namespaceURI||\\\"*\\\"!==localName&&node.localName!=localName||ls.push(node)}),ls})}},Document.prototype.getElementsByTagName=Element.prototype.getElementsByTagName,Document.prototype.getElementsByTagNameNS=Element.prototype.getElementsByTagNameNS,_extends(Element,Node),Attr.prototype.nodeType=ATTRIBUTE_NODE,_extends(Attr,Node),CharacterData.prototype={data:\\\"\\\",substringData:function(offset,count){return this.data.substring(offset,offset+count)},appendData:function(text){text=this.data+text,this.nodeValue=this.data=text,this.length=text.length},insertData:function(offset,text){this.replaceData(offset,0,text)},appendChild:function(){throw Error(ExceptionMessage[3])},deleteData:function(offset,count){this.replaceData(offset,count,\\\"\\\")},replaceData:function(offset,count,text){var start=this.data.substring(0,offset),end=this.data.substring(offset+count);text=start+text+end,this.nodeValue=this.data=text,this.length=text.length}},_extends(CharacterData,Node),Text.prototype={nodeName:\\\"#text\\\",nodeType:TEXT_NODE,splitText:function(offset){var text=this.data,newText=text.substring(offset);text=text.substring(0,offset),this.data=this.nodeValue=text,this.length=text.length;var newNode=this.ownerDocument.createTextNode(newText);return this.parentNode&&this.parentNode.insertBefore(newNode,this.nextSibling),newNode}},_extends(Text,CharacterData),Comment.prototype={nodeName:\\\"#comment\\\",nodeType:COMMENT_NODE},_extends(Comment,CharacterData),CDATASection.prototype={nodeName:\\\"#cdata-section\\\",nodeType:CDATA_SECTION_NODE},_extends(CDATASection,CharacterData),DocumentType.prototype.nodeType=DOCUMENT_TYPE_NODE,_extends(DocumentType,Node),Notation.prototype.nodeType=NOTATION_NODE,_extends(Notation,Node),Entity.prototype.nodeType=ENTITY_NODE,_extends(Entity,Node),EntityReference.prototype.nodeType=ENTITY_REFERENCE_NODE,_extends(EntityReference,Node),DocumentFragment.prototype.nodeName=\\\"#document-fragment\\\",DocumentFragment.prototype.nodeType=DOCUMENT_FRAGMENT_NODE,_extends(DocumentFragment,Node),ProcessingInstruction.prototype.nodeType=PROCESSING_INSTRUCTION_NODE,_extends(ProcessingInstruction,Node),XMLSerializer.prototype.serializeToString=function(node){var buf=[];return serializeToString(node,buf),buf.join(\\\"\\\")},Node.prototype.toString=function(){return XMLSerializer.prototype.serializeToString(this)};try{Object.defineProperty&&(Object.defineProperty(LiveNodeList.prototype,\\\"length\\\",{get:function(){return _updateLiveList(this),this.$$length}}),Object.defineProperty(Node.prototype,\\\"textContent\\\",{get:function(){return getTextContent(this)},set:function(data){switch(this.nodeType){case 1:case 11:for(;this.firstChild;)this.removeChild(this.firstChild);(data||data+\\\"\\\")&&this.appendChild(this.ownerDocument.createTextNode(data));break;default:this.data=data,this.value=value,this.nodeValue=data}}}),__set__=function(object,key,value){object[\\\"$$\\\"+key]=value})}catch(e){}return DOMImplementation}),ace.define(\\\"ace/mode/xml/dom-parser\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/mode/xml/sax\\\",\\\"ace/mode/xml/dom\\\"],function(acequire){\\\"use strict\\\";function DOMParser(options){this.options=options||{locator:{}}}function buildErrorHandler(errorImpl,domBuilder,locator){function build(key){var fn=errorImpl[key];if(!fn)if(isCallback)fn=2==errorImpl.length?function(msg){errorImpl(key,msg)}:errorImpl;else for(var i=arguments.length;--i&&!(fn=errorImpl[arguments[i]]););errorHandler[key]=fn&&function(msg){fn(msg+_locator(locator),msg,locator)}||function(){}}if(!errorImpl){if(domBuilder instanceof DOMHandler)return domBuilder;errorImpl=domBuilder}var errorHandler={},isCallback=errorImpl instanceof Function;return locator=locator||{},build(\\\"warning\\\",\\\"warn\\\"),build(\\\"error\\\",\\\"warn\\\",\\\"warning\\\"),build(\\\"fatalError\\\",\\\"warn\\\",\\\"warning\\\",\\\"error\\\"),errorHandler}function DOMHandler(){this.cdata=!1}function position(locator,node){node.lineNumber=locator.lineNumber,node.columnNumber=locator.columnNumber}function _locator(l){return l?\\\"\\\\n@\\\"+(l.systemId||\\\"\\\")+\\\"#[line:\\\"+l.lineNumber+\\\",col:\\\"+l.columnNumber+\\\"]\\\":void 0}function _toString(chars,start,length){return\\\"string\\\"==typeof chars?chars.substr(start,length):chars.length>=start+length||start?new java.lang.String(chars,start,length)+\\\"\\\":chars}function appendElement(hander,node){hander.currentElement?hander.currentElement.appendChild(node):hander.document.appendChild(node)}var XMLReader=acequire(\\\"./sax\\\"),DOMImplementation=acequire(\\\"./dom\\\");return DOMParser.prototype.parseFromString=function(source,mimeType){var options=this.options,sax=new XMLReader,domBuilder=options.domBuilder||new DOMHandler,errorHandler=options.errorHandler,locator=options.locator,defaultNSMap=options.xmlns||{},entityMap={lt:\\\"<\\\",gt:\\\">\\\",amp:\\\"&\\\",quot:'\\\"',apos:\\\"'\\\"};return locator&&domBuilder.setDocumentLocator(locator),sax.errorHandler=buildErrorHandler(errorHandler,domBuilder,locator),sax.domBuilder=options.domBuilder||domBuilder,/\\\\/x?html?$/.test(mimeType)&&(entityMap.nbsp=\\\" \\\",entityMap.copy=\\\"©\\\",defaultNSMap[\\\"\\\"]=\\\"http://www.w3.org/1999/xhtml\\\"),source?sax.parse(source,defaultNSMap,entityMap):sax.errorHandler.error(\\\"invalid document source\\\"),domBuilder.document},DOMHandler.prototype={startDocument:function(){this.document=(new DOMImplementation).createDocument(null,null,null),this.locator&&(this.document.documentURI=this.locator.systemId)},startElement:function(namespaceURI,localName,qName,attrs){var doc=this.document,el=doc.createElementNS(namespaceURI,qName||localName),len=attrs.length;appendElement(this,el),this.currentElement=el,this.locator&&position(this.locator,el);for(var i=0;len>i;i++){var namespaceURI=attrs.getURI(i),value=attrs.getValue(i),qName=attrs.getQName(i),attr=doc.createAttributeNS(namespaceURI,qName);attr.getOffset&&position(attr.getOffset(1),attr),attr.value=attr.nodeValue=value,el.setAttributeNode(attr)}},endElement:function(){var current=this.currentElement;current.tagName,this.currentElement=current.parentNode},startPrefixMapping:function(){},endPrefixMapping:function(){},processingInstruction:function(target,data){var ins=this.document.createProcessingInstruction(target,data);this.locator&&position(this.locator,ins),appendElement(this,ins)},ignorableWhitespace:function(){},characters:function(chars){if(chars=_toString.apply(this,arguments),this.currentElement&&chars){if(this.cdata){var charNode=this.document.createCDATASection(chars);this.currentElement.appendChild(charNode)}else{var charNode=this.document.createTextNode(chars);this.currentElement.appendChild(charNode)}this.locator&&position(this.locator,charNode)}},skippedEntity:function(){},endDocument:function(){this.document.normalize()},setDocumentLocator:function(locator){(this.locator=locator)&&(locator.lineNumber=0)},comment:function(chars){chars=_toString.apply(this,arguments);var comm=this.document.createComment(chars);this.locator&&position(this.locator,comm),appendElement(this,comm)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(name,publicId,systemId){var impl=this.document.implementation;if(impl&&impl.createDocumentType){var dt=impl.createDocumentType(name,publicId,systemId);this.locator&&position(this.locator,dt),appendElement(this,dt)}},warning:function(error){console.warn(error,_locator(this.locator))},error:function(error){console.error(error,_locator(this.locator))},fatalError:function(error){throw console.error(error,_locator(this.locator)),error}},\\\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\\\".replace(/\\\\w+/g,function(key){DOMHandler.prototype[key]=function(){return null}}),{DOMParser:DOMParser}}),ace.define(\\\"ace/mode/xml_worker\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/lib/lang\\\",\\\"ace/worker/mirror\\\",\\\"ace/mode/xml/dom-parser\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"../lib/oop\\\");acequire(\\\"../lib/lang\\\");var Mirror=acequire(\\\"../worker/mirror\\\").Mirror,DOMParser=acequire(\\\"./xml/dom-parser\\\").DOMParser,Worker=exports.Worker=function(sender){Mirror.call(this,sender),this.setTimeout(400),this.context=null};oop.inherits(Worker,Mirror),function(){this.setOptions=function(options){this.context=options.context},this.onUpdate=function(){var value=this.doc.getValue();if(value){var parser=new DOMParser,errors=[];parser.options.errorHandler={fatalError:function(fullMsg,errorMsg,locator){errors.push({row:locator.lineNumber,column:locator.columnNumber,text:errorMsg,type:\\\"error\\\"})},error:function(fullMsg,errorMsg,locator){errors.push({row:locator.lineNumber,column:locator.columnNumber,text:errorMsg,type:\\\"error\\\"})},warning:function(fullMsg,errorMsg,locator){errors.push({row:locator.lineNumber,column:locator.columnNumber,text:errorMsg,type:\\\"warning\\\"})}},parser.parseFromString(value),this.sender.emit(\\\"error\\\",errors)}}}.call(Worker.prototype)}),ace.define(\\\"ace/lib/es5-shim\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\\\"sentinel\\\",{}),\\\"sentinel\\\"in object\\n}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\\\"function\\\"!=typeof target)throw new TypeError(\\\"Function.prototype.bind called on incompatible \\\"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\\\"__defineGetter__\\\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\\\"XXX\\\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\\\"[object Array]\\\"==_toString(obj)});var boxedString=Object(\\\"a\\\"),splitString=\\\"a\\\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduce of empty array with no initial value\\\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\\\"reduce of empty array with no initial value\\\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\\\"Object.getOwnPropertyDescriptor called on a non-object: \\\";Object.getOwnPropertyDescriptor=function(object,property){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\\\"object\\\"!=typeof prototype)throw new TypeError(\\\"typeof prototype[\\\"+typeof prototype+\\\"] != 'object'\\\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\\\"undefined\\\"==typeof document||doesDefinePropertyWork(document.createElement(\\\"div\\\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\\\"Property description must be an object: \\\",ERR_NON_OBJECT_TARGET=\\\"Object.defineProperty called on non-object: \\\",ERR_ACCESSORS_NOT_SUPPORTED=\\\"getters & setters can not be defined on this javascript engine\\\";Object.defineProperty=function(object,property,descriptor){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\\\"object\\\"!=typeof descriptor&&\\\"function\\\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\\\"value\\\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\\\"get\\\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\\\"set\\\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\\\"function\\\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\\\"\\\";owns(object,name);)name+=\\\"?\\\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\\\"toString\\\",\\\"toLocaleString\\\",\\\"valueOf\\\",\\\"hasOwnProperty\\\",\\\"isPrototypeOf\\\",\\\"propertyIsEnumerable\\\",\\\"constructor\\\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(\\\"Object.keys called on a non-object\\\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\\\"\\t\\\\n\\u000b\\\\f\\\\r   ᠎              \\\\u2028\\\\u2029\\\";if(!String.prototype.trim||ws.trim()){ws=\\\"[\\\"+ws+\\\"]\\\";var trimBeginRegexp=RegExp(\\\"^\\\"+ws+ws+\\\"*\\\"),trimEndRegexp=RegExp(ws+ws+\\\"*$\\\");String.prototype.trim=function(){return(this+\\\"\\\").replace(trimBeginRegexp,\\\"\\\").replace(trimEndRegexp,\\\"\\\")}}var toObject=function(o){if(null==o)throw new TypeError(\\\"can't convert \\\"+o+\\\" to object\\\");return Object(o)}});\";\n\n/***/ }),\n/* 539 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return function() {\n return x;\n };\n});\n\n\n/***/ }),\n/* 540 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__pairs__ = __webpack_require__(297);\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function(values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n\n if (reduce == null) reduce = __WEBPACK_IMPORTED_MODULE_0__pairs__[\"a\" /* pair */];\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n});\n\n\n/***/ }),\n/* 541 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony default export */ var _unused_webpack_default_export = (function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n});\n\n\n/***/ }),\n/* 542 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__array__ = __webpack_require__(291);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__bisect__ = __webpack_require__(292);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constant__ = __webpack_require__(539);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__extent__ = __webpack_require__(295);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__identity__ = __webpack_require__(543);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__range__ = __webpack_require__(298);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__ticks__ = __webpack_require__(300);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__threshold_sturges__ = __webpack_require__(299);\n\n\n\n\n\n\n\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function() {\n var value = __WEBPACK_IMPORTED_MODULE_4__identity__[\"a\" /* default */],\n domain = __WEBPACK_IMPORTED_MODULE_3__extent__[\"a\" /* default */],\n threshold = __WEBPACK_IMPORTED_MODULE_7__threshold_sturges__[\"a\" /* default */];\n\n function histogram(data) {\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n tz = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__ticks__[\"a\" /* tickStep */])(x0, x1, tz);\n tz = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__range__[\"a\" /* default */])(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive\n }\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__bisect__[\"a\" /* default */])(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__constant__[\"a\" /* default */])(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__constant__[\"a\" /* default */])([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__constant__[\"a\" /* default */])(__WEBPACK_IMPORTED_MODULE_0__array__[\"b\" /* slice */].call(_)) : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__constant__[\"a\" /* default */])(_), histogram) : threshold;\n };\n\n return histogram;\n});\n\n\n/***/ }),\n/* 543 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return x;\n});\n\n\n/***/ }),\n/* 544 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony default export */ var _unused_webpack_default_export = (function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n return max;\n});\n\n\n/***/ }),\n/* 545 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__number__ = __webpack_require__(85);\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function(values, valueof) {\n var n = values.length,\n m = n,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(values[i]))) sum += value;\n else --m;\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(valueof(values[i], i, values)))) sum += value;\n else --m;\n }\n }\n\n if (m) return sum / m;\n});\n\n\n/***/ }),\n/* 546 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ascending__ = __webpack_require__(63);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__number__ = __webpack_require__(85);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__quantile__ = __webpack_require__(172);\n\n\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n numbers = [];\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__number__[\"a\" /* default */])(values[i]))) {\n numbers.push(value);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__number__[\"a\" /* default */])(valueof(values[i], i, values)))) {\n numbers.push(value);\n }\n }\n }\n\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__quantile__[\"a\" /* default */])(numbers.sort(__WEBPACK_IMPORTED_MODULE_0__ascending__[\"a\" /* default */]), 0.5);\n});\n\n\n/***/ }),\n/* 547 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony default export */ var _unused_webpack_default_export = (function(arrays) {\n var n = arrays.length,\n m,\n i = -1,\n j = 0,\n merged,\n array;\n\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n\n return merged;\n});\n\n\n/***/ }),\n/* 548 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony default export */ var _unused_webpack_default_export = (function(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n});\n\n\n/***/ }),\n/* 549 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ascending__ = __webpack_require__(63);\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function(values, compare) {\n if (!(n = values.length)) return;\n var n,\n i = 0,\n j = 0,\n xi,\n xj = values[j];\n\n if (compare == null) compare = __WEBPACK_IMPORTED_MODULE_0__ascending__[\"a\" /* default */];\n\n while (++i < n) {\n if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {\n xj = xi, j = i;\n }\n }\n\n if (compare(xj, xj) === 0) return j;\n});\n\n\n/***/ }),\n/* 550 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony default export */ var _unused_webpack_default_export = (function(array, i0, i1) {\n var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n\n return array;\n});\n\n\n/***/ }),\n/* 551 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony default export */ var _unused_webpack_default_export = (function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (value = +values[i]) sum += value; // Note: zero and null are equivalent.\n }\n }\n\n else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) sum += value;\n }\n }\n\n return sum;\n});\n\n\n/***/ }),\n/* 552 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__array__ = __webpack_require__(291);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ascending__ = __webpack_require__(63);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__number__ = __webpack_require__(85);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__quantile__ = __webpack_require__(172);\n\n\n\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function(values, min, max) {\n values = __WEBPACK_IMPORTED_MODULE_0__array__[\"a\" /* map */].call(values, __WEBPACK_IMPORTED_MODULE_2__number__[\"a\" /* default */]).sort(__WEBPACK_IMPORTED_MODULE_1__ascending__[\"a\" /* default */]);\n return Math.ceil((max - min) / (2 * (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__quantile__[\"a\" /* default */])(values, 0.75) - __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__quantile__[\"a\" /* default */])(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n});\n\n\n/***/ }),\n/* 553 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__deviation__ = __webpack_require__(294);\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function(values, min, max) {\n return Math.ceil((max - min) / (3.5 * __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__deviation__[\"a\" /* default */])(values) * Math.pow(values.length, -1 / 3)));\n});\n\n\n/***/ }),\n/* 554 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__transpose__ = __webpack_require__(301);\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__transpose__[\"a\" /* default */])(arguments);\n});\n\n\n/***/ }),\n/* 555 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony default export */ var _unused_webpack_default_export = (function(map) {\n var entries = [];\n for (var key in map) entries.push({key: key, value: map[key]});\n return entries;\n});\n\n\n/***/ }),\n/* 556 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__nest__ = __webpack_require__(558);\n/* unused harmony reexport nest */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__set__ = __webpack_require__(559);\n/* unused harmony reexport set */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__map__ = __webpack_require__(173);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_2__map__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__keys__ = __webpack_require__(557);\n/* unused harmony reexport keys */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__values__ = __webpack_require__(560);\n/* unused harmony reexport values */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__entries__ = __webpack_require__(555);\n/* unused harmony reexport entries */\n\n\n\n\n\n\n\n\n/***/ }),\n/* 557 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony default export */ var _unused_webpack_default_export = (function(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n});\n\n\n/***/ }),\n/* 558 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__map__ = __webpack_require__(173);\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function() {\n var keys = [],\n sortKeys = [],\n sortValues,\n rollup,\n nest;\n\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) {\n if (sortValues != null) array.sort(sortValues);\n return rollup != null ? rollup(array) : array;\n }\n\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__map__[\"a\" /* default */])(),\n values,\n result = createResult();\n\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n\n valuesByKey.each(function(values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n\n return result;\n }\n\n function entries(map, depth) {\n if (++depth > keys.length) return map;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys.length) array = map.entries();\n else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n }\n\n return nest = {\n object: function(array) { return apply(array, 0, createObject, setObject); },\n map: function(array) { return apply(array, 0, createMap, setMap); },\n entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n key: function(d) { keys.push(d); return nest; },\n sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n sortValues: function(order) { sortValues = order; return nest; },\n rollup: function(f) { rollup = f; return nest; }\n };\n});\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__map__[\"a\" /* default */])();\n}\n\nfunction setMap(map, key, value) {\n map.set(key, value);\n}\n\n\n/***/ }),\n/* 559 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__map__ = __webpack_require__(173);\n\n\nfunction Set() {}\n\nvar proto = __WEBPACK_IMPORTED_MODULE_0__map__[\"a\" /* default */].prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[__WEBPACK_IMPORTED_MODULE_0__map__[\"b\" /* prefix */] + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\n/* unused harmony default export */ var _unused_webpack_default_export = (set);\n\n\n/***/ }),\n/* 560 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony default export */ var _unused_webpack_default_export = (function(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n});\n\n\n/***/ }),\n/* 561 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = cubehelix;\n/* unused harmony export Cubehelix */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__define__ = __webpack_require__(175);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color__ = __webpack_require__(174);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__math__ = __webpack_require__(303);\n\n\n\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof __WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* Rgb */])) o = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__[\"b\" /* rgbConvert */])(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * __WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* rad2deg */] - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nfunction cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\n__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__[\"a\" /* default */])(Cubehelix, cubehelix, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__[\"b\" /* extend */])(__WEBPACK_IMPORTED_MODULE_1__color__[\"c\" /* Color */], {\n brighter: function(k) {\n k = k == null ? __WEBPACK_IMPORTED_MODULE_1__color__[\"d\" /* brighter */] : Math.pow(__WEBPACK_IMPORTED_MODULE_1__color__[\"d\" /* brighter */], k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? __WEBPACK_IMPORTED_MODULE_1__color__[\"e\" /* darker */] : Math.pow(__WEBPACK_IMPORTED_MODULE_1__color__[\"e\" /* darker */], k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * __WEBPACK_IMPORTED_MODULE_2__math__[\"b\" /* deg2rad */],\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new __WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* Rgb */](\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n\n\n/***/ }),\n/* 562 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export gray */\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = lab;\n/* unused harmony export Lab */\n/* unused harmony export lch */\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = hcl;\n/* unused harmony export Hcl */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__define__ = __webpack_require__(175);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color__ = __webpack_require__(174);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__math__ = __webpack_require__(303);\n\n\n\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nvar K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof __WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* Rgb */])) o = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__[\"b\" /* rgbConvert */])(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nfunction gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nfunction lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nfunction Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\n__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__[\"a\" /* default */])(Lab, lab, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__[\"b\" /* extend */])(__WEBPACK_IMPORTED_MODULE_1__color__[\"c\" /* Color */], {\n brighter: function(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new __WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* Rgb */](\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * __WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* rad2deg */];\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nfunction lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nfunction hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * __WEBPACK_IMPORTED_MODULE_2__math__[\"b\" /* deg2rad */];\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\n__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__[\"a\" /* default */])(Hcl, hcl, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__[\"b\" /* extend */])(__WEBPACK_IMPORTED_MODULE_1__color__[\"c\" /* Color */], {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return hcl2lab(this).rgb();\n }\n}));\n\n\n/***/ }),\n/* 563 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return format; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return formatPrefix; });\n/* unused harmony export default */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__locale__ = __webpack_require__(307);\n\n\nvar locale;\nvar format;\nvar formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nfunction defaultLocale(definition) {\n locale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__locale__[\"a\" /* default */])(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n\n\n/***/ }),\n/* 564 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n});\n\n\n/***/ }),\n/* 565 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n});\n\n\n/***/ }),\n/* 566 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__formatDecimal__ = __webpack_require__(176);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x, p) {\n var d = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__formatDecimal__[\"a\" /* default */])(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n});\n\n\n/***/ }),\n/* 567 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (i0 > 0) { if (!+s[i]) break out; i0 = 0; } break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n});\n\n\n/***/ }),\n/* 568 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__formatPrefixAuto__ = __webpack_require__(304);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__formatRounded__ = __webpack_require__(566);\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__formatRounded__[\"a\" /* default */])(x * 100, p); },\n \"r\": __WEBPACK_IMPORTED_MODULE_1__formatRounded__[\"a\" /* default */],\n \"s\": __WEBPACK_IMPORTED_MODULE_0__formatPrefixAuto__[\"b\" /* default */],\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n});\n\n\n/***/ }),\n/* 569 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return x;\n});\n\n\n/***/ }),\n/* 570 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__exponent__ = __webpack_require__(116);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(step) {\n return Math.max(0, -__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__exponent__[\"a\" /* default */])(Math.abs(step)));\n});\n\n\n/***/ }),\n/* 571 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__exponent__ = __webpack_require__(116);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__exponent__[\"a\" /* default */])(value) / 3))) * 3 - __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__exponent__[\"a\" /* default */])(Math.abs(step)));\n});\n\n\n/***/ }),\n/* 572 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__exponent__ = __webpack_require__(116);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__exponent__[\"a\" /* default */])(max) - __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__exponent__[\"a\" /* default */])(step)) + 1;\n});\n\n\n/***/ }),\n/* 573 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export cubehelixLong */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(64);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color__ = __webpack_require__(65);\n\n\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"a\" /* cubehelix */])(start)).h, (end = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"a\" /* cubehelix */])(end)).h),\n s = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.s, end.s),\n l = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.l, end.l),\n opacity = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\n/* unused harmony default export */ var _unused_webpack_default_export = (cubehelix(__WEBPACK_IMPORTED_MODULE_1__color__[\"b\" /* hue */]));\nvar cubehelixLong = cubehelix(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */]);\n\n\n/***/ }),\n/* 574 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony default export */ var _unused_webpack_default_export = (function(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n});\n\n\n/***/ }),\n/* 575 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export hclLong */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(64);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color__ = __webpack_require__(65);\n\n\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"b\" /* hcl */])(start)).h, (end = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"b\" /* hcl */])(end)).h),\n c = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.c, end.c),\n l = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.l, end.l),\n opacity = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\n/* unused harmony default export */ var _unused_webpack_default_export = (hcl(__WEBPACK_IMPORTED_MODULE_1__color__[\"b\" /* hue */]));\nvar hclLong = hcl(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */]);\n\n\n/***/ }),\n/* 576 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export hslLong */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(64);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color__ = __webpack_require__(65);\n\n\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"d\" /* hsl */])(start)).h, (end = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"d\" /* hsl */])(end)).h),\n s = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.s, end.s),\n l = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.l, end.l),\n opacity = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\n/* unused harmony default export */ var _unused_webpack_default_export = (hsl(__WEBPACK_IMPORTED_MODULE_1__color__[\"b\" /* hue */]));\nvar hslLong = hsl(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */]);\n\n\n/***/ }),\n/* 577 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__color__ = __webpack_require__(65);\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function(a, b) {\n var i = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__color__[\"b\" /* hue */])(+a, +b);\n return function(t) {\n var x = i(t);\n return x - 360 * Math.floor(x / 360);\n };\n});\n\n\n/***/ }),\n/* 578 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__value__ = __webpack_require__(178);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__value__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__array__ = __webpack_require__(308);\n/* unused harmony reexport interpolateArray */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__basis__ = __webpack_require__(177);\n/* unused harmony reexport interpolateBasis */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__basisClosed__ = __webpack_require__(309);\n/* unused harmony reexport interpolateBasisClosed */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__date__ = __webpack_require__(311);\n/* unused harmony reexport interpolateDate */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__discrete__ = __webpack_require__(574);\n/* unused harmony reexport interpolateDiscrete */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__hue__ = __webpack_require__(577);\n/* unused harmony reexport interpolateHue */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__number__ = __webpack_require__(117);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_7__number__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__object__ = __webpack_require__(312);\n/* unused harmony reexport interpolateObject */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__round__ = __webpack_require__(582);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_9__round__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__string__ = __webpack_require__(314);\n/* unused harmony reexport interpolateString */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__transform_index__ = __webpack_require__(584);\n/* unused harmony reexport interpolateTransformCss */\n/* unused harmony reexport interpolateTransformSvg */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__zoom__ = __webpack_require__(586);\n/* unused harmony reexport interpolateZoom */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__rgb__ = __webpack_require__(313);\n/* unused harmony reexport interpolateRgb */\n/* unused harmony reexport interpolateRgbBasis */\n/* unused harmony reexport interpolateRgbBasisClosed */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__hsl__ = __webpack_require__(576);\n/* unused harmony reexport interpolateHsl */\n/* unused harmony reexport interpolateHslLong */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__lab__ = __webpack_require__(579);\n/* unused harmony reexport interpolateLab */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__hcl__ = __webpack_require__(575);\n/* unused harmony reexport interpolateHcl */\n/* unused harmony reexport interpolateHclLong */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__cubehelix__ = __webpack_require__(573);\n/* unused harmony reexport interpolateCubehelix */\n/* unused harmony reexport interpolateCubehelixLong */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__piecewise__ = __webpack_require__(580);\n/* unused harmony reexport piecewise */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__quantize__ = __webpack_require__(581);\n/* unused harmony reexport quantize */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 579 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export default */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(64);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color__ = __webpack_require__(65);\n\n\n\nfunction lab(start, end) {\n var l = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])((start = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"c\" /* lab */])(start)).l, (end = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__[\"c\" /* lab */])(end)).l),\n a = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.a, end.a),\n b = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.b, end.b),\n opacity = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__[\"a\" /* default */])(start.opacity, end.opacity);\n return function(t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n}\n\n\n/***/ }),\n/* 580 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export default */\nfunction piecewise(interpolate, values) {\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n\n\n/***/ }),\n/* 581 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony default export */ var _unused_webpack_default_export = (function(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n});\n\n\n/***/ }),\n/* 582 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n return a = +a, b -= a, function(t) {\n return Math.round(a + b * t);\n };\n});\n\n\n/***/ }),\n/* 583 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return identity; });\nvar degrees = 180 / Math.PI;\n\nvar identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\n/* harmony default export */ __webpack_exports__[\"b\"] = (function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n});\n\n\n/***/ }),\n/* 584 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export interpolateTransformCss */\n/* unused harmony export interpolateTransformSvg */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__number__ = __webpack_require__(117);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__parse__ = __webpack_require__(585);\n\n\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(xa, xb)}, {i: i - 2, x: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(xa, xb)}, {i: i - 2, x: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__[\"a\" /* default */])(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nvar interpolateTransformCss = interpolateTransform(__WEBPACK_IMPORTED_MODULE_1__parse__[\"a\" /* parseCss */], \"px, \", \"px)\", \"deg)\");\nvar interpolateTransformSvg = interpolateTransform(__WEBPACK_IMPORTED_MODULE_1__parse__[\"b\" /* parseSvg */], \", \", \")\", \")\");\n\n\n/***/ }),\n/* 585 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = parseCss;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = parseSvg;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__decompose__ = __webpack_require__(583);\n\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\nfunction parseCss(value) {\n if (value === \"none\") return __WEBPACK_IMPORTED_MODULE_0__decompose__[\"a\" /* identity */];\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__decompose__[\"b\" /* default */])(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nfunction parseSvg(value) {\n if (value == null) return __WEBPACK_IMPORTED_MODULE_0__decompose__[\"a\" /* identity */];\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return __WEBPACK_IMPORTED_MODULE_0__decompose__[\"a\" /* identity */];\n value = value.matrix;\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__decompose__[\"b\" /* default */])(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n\n\n/***/ }),\n/* 586 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\n/* unused harmony default export */ var _unused_webpack_default_export = (function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000;\n\n return i;\n});\n\n\n/***/ }),\n/* 587 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (path);\n\n\n/***/ }),\n/* 588 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = band;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = point;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__init__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ordinal__ = __webpack_require__(318);\n\n\n\n\nfunction band() {\n var scale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__ordinal__[\"a\" /* default */])().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"h\" /* range */])(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = [+_[0], +_[1]], round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), range)\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return __WEBPACK_IMPORTED_MODULE_1__init__[\"b\" /* initRange */].apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nfunction point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n\n\n/***/ }),\n/* 589 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(x) {\n return function() {\n return x;\n };\n});\n\n\n/***/ }),\n/* 590 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = diverging;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = divergingLog;\n/* harmony export (immutable) */ __webpack_exports__[\"e\"] = divergingSymlog;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = divergingPow;\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = divergingSqrt;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__continuous__ = __webpack_require__(41);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__init__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__linear__ = __webpack_require__(50);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__log__ = __webpack_require__(179);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__sequential__ = __webpack_require__(319);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__symlog__ = __webpack_require__(181);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__pow__ = __webpack_require__(180);\n\n\n\n\n\n\n\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = __WEBPACK_IMPORTED_MODULE_0__continuous__[\"a\" /* identity */],\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (x < t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), t2 = transform(x2 = +_[2]), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1);\n return scale;\n };\n}\n\nfunction diverging() {\n var scale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__linear__[\"b\" /* linearish */])(transformer()(__WEBPACK_IMPORTED_MODULE_0__continuous__[\"a\" /* identity */]));\n\n scale.copy = function() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__sequential__[\"f\" /* copy */])(scale, diverging());\n };\n\n return __WEBPACK_IMPORTED_MODULE_1__init__[\"a\" /* initInterpolator */].apply(scale, arguments);\n}\n\nfunction divergingLog() {\n var scale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__log__[\"b\" /* loggish */])(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__sequential__[\"f\" /* copy */])(scale, divergingLog()).base(scale.base());\n };\n\n return __WEBPACK_IMPORTED_MODULE_1__init__[\"a\" /* initInterpolator */].apply(scale, arguments);\n}\n\nfunction divergingSymlog() {\n var scale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__symlog__[\"b\" /* symlogish */])(transformer());\n\n scale.copy = function() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__sequential__[\"f\" /* copy */])(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return __WEBPACK_IMPORTED_MODULE_1__init__[\"a\" /* initInterpolator */].apply(scale, arguments);\n}\n\nfunction divergingPow() {\n var scale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__pow__[\"c\" /* powish */])(transformer());\n\n scale.copy = function() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__sequential__[\"f\" /* copy */])(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return __WEBPACK_IMPORTED_MODULE_1__init__[\"a\" /* initInterpolator */].apply(scale, arguments);\n}\n\nfunction divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n\n\n/***/ }),\n/* 591 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = identity;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__array__ = __webpack_require__(49);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__linear__ = __webpack_require__(50);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__number__ = __webpack_require__(317);\n\n\n\n\nfunction identity(domain) {\n var unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = __WEBPACK_IMPORTED_MODULE_0__array__[\"a\" /* map */].call(_, __WEBPACK_IMPORTED_MODULE_2__number__[\"a\" /* default */]), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? __WEBPACK_IMPORTED_MODULE_0__array__[\"a\" /* map */].call(domain, __WEBPACK_IMPORTED_MODULE_2__number__[\"a\" /* default */]) : [0, 1];\n\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__linear__[\"b\" /* linearish */])(scale);\n}\n\n\n/***/ }),\n/* 592 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = quantile;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__array__ = __webpack_require__(49);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__init__ = __webpack_require__(20);\n\n\n\n\nfunction quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"g\" /* quantile */])(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : range[__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"b\" /* bisect */])(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"e\" /* ascending */]);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = __WEBPACK_IMPORTED_MODULE_1__array__[\"b\" /* slice */].call(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return __WEBPACK_IMPORTED_MODULE_2__init__[\"b\" /* initRange */].apply(scale, arguments);\n}\n\n\n/***/ }),\n/* 593 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = quantize;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__array__ = __webpack_require__(49);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__linear__ = __webpack_require__(50);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__init__ = __webpack_require__(20);\n\n\n\n\n\nfunction quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x <= x ? range[__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"b\" /* bisect */])(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = __WEBPACK_IMPORTED_MODULE_1__array__[\"b\" /* slice */].call(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return __WEBPACK_IMPORTED_MODULE_3__init__[\"b\" /* initRange */].apply(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__linear__[\"b\" /* linearish */])(scale), arguments);\n}\n\n\n/***/ }),\n/* 594 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = sequentialQuantile;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__continuous__ = __webpack_require__(41);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__init__ = __webpack_require__(20);\n\n\n\n\nfunction sequentialQuantile() {\n var domain = [],\n interpolator = __WEBPACK_IMPORTED_MODULE_1__continuous__[\"a\" /* identity */];\n\n function scale(x) {\n if (!isNaN(x = +x)) return interpolator((__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"b\" /* bisect */])(domain, x) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"e\" /* ascending */]);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return __WEBPACK_IMPORTED_MODULE_2__init__[\"a\" /* initInterpolator */].apply(scale, arguments);\n}\n\n\n/***/ }),\n/* 595 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = threshold;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__array__ = __webpack_require__(49);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__init__ = __webpack_require__(20);\n\n\n\n\nfunction threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x <= x ? range[__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__[\"b\" /* bisect */])(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = __WEBPACK_IMPORTED_MODULE_1__array__[\"b\" /* slice */].call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = __WEBPACK_IMPORTED_MODULE_1__array__[\"b\" /* slice */].call(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return __WEBPACK_IMPORTED_MODULE_2__init__[\"b\" /* initRange */].apply(scale, arguments);\n}\n\n\n/***/ }),\n/* 596 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__time__ = __webpack_require__(321);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_time_format__ = __webpack_require__(337);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_d3_time__ = __webpack_require__(188);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__init__ = __webpack_require__(20);\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n return __WEBPACK_IMPORTED_MODULE_3__init__[\"b\" /* initRange */].apply(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__time__[\"b\" /* calendar */])(__WEBPACK_IMPORTED_MODULE_2_d3_time__[\"a\" /* utcYear */], __WEBPACK_IMPORTED_MODULE_2_d3_time__[\"b\" /* utcMonth */], __WEBPACK_IMPORTED_MODULE_2_d3_time__[\"c\" /* utcWeek */], __WEBPACK_IMPORTED_MODULE_2_d3_time__[\"d\" /* utcDay */], __WEBPACK_IMPORTED_MODULE_2_d3_time__[\"e\" /* utcHour */], __WEBPACK_IMPORTED_MODULE_2_d3_time__[\"f\" /* utcMinute */], __WEBPACK_IMPORTED_MODULE_2_d3_time__[\"g\" /* utcSecond */], __WEBPACK_IMPORTED_MODULE_2_d3_time__[\"h\" /* utcMillisecond */], __WEBPACK_IMPORTED_MODULE_1_d3_time_format__[\"a\" /* utcFormat */]).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n});\n\n\n/***/ }),\n/* 597 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_path__ = __webpack_require__(86);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constant__ = __webpack_require__(51);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__math__ = __webpack_require__(87);\n\n\n\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < __WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* epsilon */]) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* sqrt */])(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* sqrt */])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"e\" /* max */])(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - __WEBPACK_IMPORTED_MODULE_2__math__[\"f\" /* halfPi */],\n a1 = endAngle.apply(this, arguments) - __WEBPACK_IMPORTED_MODULE_2__math__[\"f\" /* halfPi */],\n da = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"g\" /* abs */])(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_path__[\"a\" /* path */])();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > __WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* epsilon */])) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > __WEBPACK_IMPORTED_MODULE_2__math__[\"c\" /* tau */] - __WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* epsilon */]) {\n context.moveTo(r1 * __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"h\" /* cos */])(a0), r1 * __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"i\" /* sin */])(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > __WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* epsilon */]) {\n context.moveTo(r0 * __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"h\" /* cos */])(a1), r0 * __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"i\" /* sin */])(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > __WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* epsilon */]) && (padRadius ? +padRadius.apply(this, arguments) : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* sqrt */])(r0 * r0 + r1 * r1)),\n rc = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"j\" /* min */])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"g\" /* abs */])(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > __WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* epsilon */]) {\n var p0 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"k\" /* asin */])(rp / r0 * __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"i\" /* sin */])(ap)),\n p1 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"k\" /* asin */])(rp / r1 * __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"i\" /* sin */])(ap));\n if ((da0 -= p0 * 2) > __WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* epsilon */]) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > __WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* epsilon */]) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"h\" /* cos */])(a01),\n y01 = r1 * __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"i\" /* sin */])(a01),\n x10 = r0 * __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"h\" /* cos */])(a10),\n y10 = r0 * __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"i\" /* sin */])(a10);\n\n // Apply rounded corners?\n if (rc > __WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* epsilon */]) {\n var x11 = r1 * __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"h\" /* cos */])(a11),\n y11 = r1 * __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"i\" /* sin */])(a11),\n x00 = r0 * __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"h\" /* cos */])(a00),\n y00 = r0 * __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"i\" /* sin */])(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < __WEBPACK_IMPORTED_MODULE_2__math__[\"b\" /* pi */] && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"i\" /* sin */])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"l\" /* acos */])((ax * bx + ay * by) / (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* sqrt */])(ax * ax + ay * ay) * __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* sqrt */])(bx * bx + by * by))) / 2),\n lc = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"d\" /* sqrt */])(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"j\" /* min */])(rc, (r0 - lc) / (kc - 1));\n rc1 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"j\" /* min */])(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > __WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* epsilon */])) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > __WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* epsilon */]) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"m\" /* atan2 */])(t0.y01, t0.x01), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"m\" /* atan2 */])(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"m\" /* atan2 */])(t0.y01, t0.x01), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"m\" /* atan2 */])(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"m\" /* atan2 */])(t0.cy + t0.y11, t0.cx + t0.x11), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"m\" /* atan2 */])(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"m\" /* atan2 */])(t1.y11, t1.x11), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"m\" /* atan2 */])(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > __WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* epsilon */]) || !(da0 > __WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* epsilon */])) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > __WEBPACK_IMPORTED_MODULE_2__math__[\"a\" /* epsilon */]) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"m\" /* atan2 */])(t0.y01, t0.x01), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"m\" /* atan2 */])(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"m\" /* atan2 */])(t0.y01, t0.x01), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"m\" /* atan2 */])(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"m\" /* atan2 */])(t0.cy + t0.y11, t0.cx + t0.x11), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"m\" /* atan2 */])(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"m\" /* atan2 */])(t1.y11, t1.x11), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"m\" /* atan2 */])(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - __WEBPACK_IMPORTED_MODULE_2__math__[\"b\" /* pi */] / 2;\n return [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"h\" /* cos */])(a) * r, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__math__[\"i\" /* sin */])(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n});\n\n\n/***/ }),\n/* 598 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__curve_radial__ = __webpack_require__(326);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__area__ = __webpack_require__(322);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__lineRadial__ = __webpack_require__(327);\n\n\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function() {\n var a = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__area__[\"a\" /* default */])().curve(__WEBPACK_IMPORTED_MODULE_0__curve_radial__[\"b\" /* curveRadialLinear */]),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__lineRadial__[\"a\" /* lineRadial */])(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__lineRadial__[\"a\" /* lineRadial */])(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__lineRadial__[\"a\" /* lineRadial */])(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__lineRadial__[\"a\" /* lineRadial */])(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__curve_radial__[\"a\" /* default */])(_)) : c()._curve;\n };\n\n return a;\n});\n\n\n/***/ }),\n/* 599 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__noop__ = __webpack_require__(121);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__basis__ = __webpack_require__(118);\n\n\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: __WEBPACK_IMPORTED_MODULE_0__noop__[\"a\" /* default */],\n areaEnd: __WEBPACK_IMPORTED_MODULE_0__noop__[\"a\" /* default */],\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__basis__[\"b\" /* point */])(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(context) {\n return new BasisClosed(context);\n});\n\n\n/***/ }),\n/* 600 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__basis__ = __webpack_require__(118);\n\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__basis__[\"b\" /* point */])(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(context) {\n return new BasisOpen(context);\n});\n\n\n/***/ }),\n/* 601 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__basis__ = __webpack_require__(118);\n\n\nfunction Bundle(context, beta) {\n this._basis = new __WEBPACK_IMPORTED_MODULE_0__basis__[\"a\" /* Basis */](context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = ((function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new __WEBPACK_IMPORTED_MODULE_0__basis__[\"a\" /* Basis */](context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85));\n\n\n/***/ }),\n/* 602 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__cardinalClosed__ = __webpack_require__(324);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__noop__ = __webpack_require__(121);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__catmullRom__ = __webpack_require__(182);\n\n\n\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: __WEBPACK_IMPORTED_MODULE_1__noop__[\"a\" /* default */],\n areaEnd: __WEBPACK_IMPORTED_MODULE_1__noop__[\"a\" /* default */],\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__catmullRom__[\"a\" /* point */])(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = ((function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new __WEBPACK_IMPORTED_MODULE_0__cardinalClosed__[\"a\" /* CardinalClosed */](context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5));\n\n\n/***/ }),\n/* 603 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__cardinalOpen__ = __webpack_require__(325);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__catmullRom__ = __webpack_require__(182);\n\n\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__catmullRom__[\"a\" /* point */])(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = ((function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new __WEBPACK_IMPORTED_MODULE_0__cardinalOpen__[\"a\" /* CardinalOpen */](context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5));\n\n\n/***/ }),\n/* 604 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__noop__ = __webpack_require__(121);\n\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: __WEBPACK_IMPORTED_MODULE_0__noop__[\"a\" /* default */],\n areaEnd: __WEBPACK_IMPORTED_MODULE_0__noop__[\"a\" /* default */],\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(context) {\n return new LinearClosed(context);\n});\n\n\n/***/ }),\n/* 605 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = monotoneX;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = monotoneY;\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nfunction monotoneX(context) {\n return new MonotoneX(context);\n}\n\nfunction monotoneY(context) {\n return new MonotoneY(context);\n}\n\n\n/***/ }),\n/* 606 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(context) {\n return new Natural(context);\n});\n\n\n/***/ }),\n/* 607 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = stepBefore;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = stepAfter;\nfunction Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(context) {\n return new Step(context, 0.5);\n});\n\nfunction stepBefore(context) {\n return new Step(context, 0);\n}\n\nfunction stepAfter(context) {\n return new Step(context, 1);\n}\n\n\n/***/ }),\n/* 608 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n});\n\n\n/***/ }),\n/* 609 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(d) {\n return d;\n});\n\n\n/***/ }),\n/* 610 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export linkHorizontal */\n/* unused harmony export linkVertical */\n/* unused harmony export linkRadial */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_path__ = __webpack_require__(86);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__array__ = __webpack_require__(323);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constant__ = __webpack_require__(51);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__point__ = __webpack_require__(186);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__pointRadial__ = __webpack_require__(329);\n\n\n\n\n\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = __WEBPACK_IMPORTED_MODULE_3__point__[\"a\" /* x */],\n y = __WEBPACK_IMPORTED_MODULE_3__point__[\"b\" /* y */],\n context = null;\n\n function link() {\n var buffer, argv = __WEBPACK_IMPORTED_MODULE_1__array__[\"a\" /* slice */].call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_path__[\"a\" /* path */])();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__constant__[\"a\" /* default */])(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__constant__[\"a\" /* default */])(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__pointRadial__[\"a\" /* default */])(x0, y0),\n p1 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__pointRadial__[\"a\" /* default */])(x0, y0 = (y0 + y1) / 2),\n p2 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__pointRadial__[\"a\" /* default */])(x1, y0),\n p3 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__pointRadial__[\"a\" /* default */])(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nfunction linkHorizontal() {\n return link(curveHorizontal);\n}\n\nfunction linkVertical() {\n return link(curveVertical);\n}\n\nfunction linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n\n\n/***/ }),\n/* 611 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony default export */ var _unused_webpack_default_export = (function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) >= 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = yp;\n }\n }\n }\n});\n\n\n/***/ }),\n/* 612 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__none__ = __webpack_require__(88);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__none__[\"a\" /* default */])(series, order);\n});\n\n\n/***/ }),\n/* 613 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__none__ = __webpack_require__(88);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__none__[\"a\" /* default */])(series, order);\n});\n\n\n/***/ }),\n/* 614 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__none__ = __webpack_require__(88);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__none__[\"a\" /* default */])(series, order);\n});\n\n\n/***/ }),\n/* 615 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ascending__ = __webpack_require__(185);\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function(series) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__ascending__[\"b\" /* default */])(series).reverse();\n});\n\n\n/***/ }),\n/* 616 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__appearance__ = __webpack_require__(328);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ascending__ = __webpack_require__(185);\n\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(__WEBPACK_IMPORTED_MODULE_1__ascending__[\"a\" /* sum */]),\n order = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__appearance__[\"a\" /* default */])(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n});\n\n\n/***/ }),\n/* 617 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__none__ = __webpack_require__(89);\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function(series) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__none__[\"a\" /* default */])(series).reverse();\n});\n\n\n/***/ }),\n/* 618 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constant__ = __webpack_require__(51);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__descending__ = __webpack_require__(608);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__identity__ = __webpack_require__(609);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__math__ = __webpack_require__(87);\n\n\n\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (function() {\n var value = __WEBPACK_IMPORTED_MODULE_2__identity__[\"a\" /* default */],\n sortValues = __WEBPACK_IMPORTED_MODULE_1__descending__[\"a\" /* default */],\n sort = null,\n startAngle = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(0),\n endAngle = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(__WEBPACK_IMPORTED_MODULE_3__math__[\"c\" /* tau */]),\n padAngle = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(0);\n\n function pie(data) {\n var i,\n n = data.length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(__WEBPACK_IMPORTED_MODULE_3__math__[\"c\" /* tau */], Math.max(-__WEBPACK_IMPORTED_MODULE_3__math__[\"c\" /* tau */], endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__constant__[\"a\" /* default */])(+_), pie) : padAngle;\n };\n\n return pie;\n});\n\n\n/***/ }),\n/* 619 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__array__ = __webpack_require__(323);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constant__ = __webpack_require__(51);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__offset_none__ = __webpack_require__(88);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__order_none__ = __webpack_require__(89);\n\n\n\n\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n var keys = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])([]),\n order = __WEBPACK_IMPORTED_MODULE_3__order_none__[\"a\" /* default */],\n offset = __WEBPACK_IMPORTED_MODULE_2__offset_none__[\"a\" /* default */],\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(__WEBPACK_IMPORTED_MODULE_0__array__[\"a\" /* slice */].call(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? __WEBPACK_IMPORTED_MODULE_3__order_none__[\"a\" /* default */] : typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__constant__[\"a\" /* default */])(__WEBPACK_IMPORTED_MODULE_0__array__[\"a\" /* slice */].call(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? __WEBPACK_IMPORTED_MODULE_2__offset_none__[\"a\" /* default */] : _, stack) : offset;\n };\n\n return stack;\n});\n\n\n/***/ }),\n/* 620 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export symbols */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_path__ = __webpack_require__(86);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__symbol_circle__ = __webpack_require__(330);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__symbol_cross__ = __webpack_require__(331);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__symbol_diamond__ = __webpack_require__(332);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__symbol_star__ = __webpack_require__(334);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__symbol_square__ = __webpack_require__(333);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__symbol_triangle__ = __webpack_require__(335);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__symbol_wye__ = __webpack_require__(336);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__constant__ = __webpack_require__(51);\n\n\n\n\n\n\n\n\n\n\nvar symbols = [\n __WEBPACK_IMPORTED_MODULE_1__symbol_circle__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_2__symbol_cross__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_3__symbol_diamond__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_5__symbol_square__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_4__symbol_star__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_6__symbol_triangle__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_7__symbol_wye__[\"a\" /* default */]\n];\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function() {\n var type = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__constant__[\"a\" /* default */])(__WEBPACK_IMPORTED_MODULE_1__symbol_circle__[\"a\" /* default */]),\n size = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__constant__[\"a\" /* default */])(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_path__[\"a\" /* path */])();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__constant__[\"a\" /* default */])(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__constant__[\"a\" /* default */])(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n});\n\n\n/***/ }),\n/* 621 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__isoFormat__ = __webpack_require__(338);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__defaultLocale__ = __webpack_require__(187);\n\n\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__defaultLocale__[\"b\" /* utcParse */])(__WEBPACK_IMPORTED_MODULE_0__isoFormat__[\"a\" /* isoSpecifier */]);\n\n/* unused harmony default export */ var _unused_webpack_default_export = (parseIso);\n\n\n/***/ }),\n/* 622 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export days */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__duration__ = __webpack_require__(35);\n\n\n\nvar day = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__[\"a\" /* default */])(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * __WEBPACK_IMPORTED_MODULE_1__duration__[\"d\" /* durationMinute */]) / __WEBPACK_IMPORTED_MODULE_1__duration__[\"b\" /* durationDay */];\n}, function(date) {\n return date.getDate() - 1;\n});\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (day);\nvar days = day.range;\n\n\n/***/ }),\n/* 623 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export hours */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__duration__ = __webpack_require__(35);\n\n\n\nvar hour = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__[\"a\" /* default */])(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * __WEBPACK_IMPORTED_MODULE_1__duration__[\"e\" /* durationSecond */] - date.getMinutes() * __WEBPACK_IMPORTED_MODULE_1__duration__[\"d\" /* durationMinute */]);\n}, function(date, step) {\n date.setTime(+date + step * __WEBPACK_IMPORTED_MODULE_1__duration__[\"c\" /* durationHour */]);\n}, function(start, end) {\n return (end - start) / __WEBPACK_IMPORTED_MODULE_1__duration__[\"c\" /* durationHour */];\n}, function(date) {\n return date.getHours();\n});\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (hour);\nvar hours = hour.range;\n\n\n/***/ }),\n/* 624 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export milliseconds */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(18);\n\n\nvar millisecond = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__[\"a\" /* default */])(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__[\"a\" /* default */])(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (millisecond);\nvar milliseconds = millisecond.range;\n\n\n/***/ }),\n/* 625 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export minutes */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__duration__ = __webpack_require__(35);\n\n\n\nvar minute = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__[\"a\" /* default */])(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * __WEBPACK_IMPORTED_MODULE_1__duration__[\"e\" /* durationSecond */]);\n}, function(date, step) {\n date.setTime(+date + step * __WEBPACK_IMPORTED_MODULE_1__duration__[\"d\" /* durationMinute */]);\n}, function(start, end) {\n return (end - start) / __WEBPACK_IMPORTED_MODULE_1__duration__[\"d\" /* durationMinute */];\n}, function(date) {\n return date.getMinutes();\n});\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (minute);\nvar minutes = minute.range;\n\n\n/***/ }),\n/* 626 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export months */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(18);\n\n\nvar month = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__[\"a\" /* default */])(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (month);\nvar months = month.range;\n\n\n/***/ }),\n/* 627 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export seconds */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__duration__ = __webpack_require__(35);\n\n\n\nvar second = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__[\"a\" /* default */])(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * __WEBPACK_IMPORTED_MODULE_1__duration__[\"e\" /* durationSecond */]);\n}, function(start, end) {\n return (end - start) / __WEBPACK_IMPORTED_MODULE_1__duration__[\"e\" /* durationSecond */];\n}, function(date) {\n return date.getUTCSeconds();\n});\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (second);\nvar seconds = second.range;\n\n\n/***/ }),\n/* 628 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export utcDays */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__duration__ = __webpack_require__(35);\n\n\n\nvar utcDay = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__[\"a\" /* default */])(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / __WEBPACK_IMPORTED_MODULE_1__duration__[\"b\" /* durationDay */];\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (utcDay);\nvar utcDays = utcDay.range;\n\n\n/***/ }),\n/* 629 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export utcHours */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__duration__ = __webpack_require__(35);\n\n\n\nvar utcHour = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__[\"a\" /* default */])(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * __WEBPACK_IMPORTED_MODULE_1__duration__[\"c\" /* durationHour */]);\n}, function(start, end) {\n return (end - start) / __WEBPACK_IMPORTED_MODULE_1__duration__[\"c\" /* durationHour */];\n}, function(date) {\n return date.getUTCHours();\n});\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (utcHour);\nvar utcHours = utcHour.range;\n\n\n/***/ }),\n/* 630 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export utcMinutes */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__duration__ = __webpack_require__(35);\n\n\n\nvar utcMinute = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__[\"a\" /* default */])(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * __WEBPACK_IMPORTED_MODULE_1__duration__[\"d\" /* durationMinute */]);\n}, function(start, end) {\n return (end - start) / __WEBPACK_IMPORTED_MODULE_1__duration__[\"d\" /* durationMinute */];\n}, function(date) {\n return date.getUTCMinutes();\n});\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (utcMinute);\nvar utcMinutes = utcMinute.range;\n\n\n/***/ }),\n/* 631 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export utcMonths */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(18);\n\n\nvar utcMonth = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__[\"a\" /* default */])(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (utcMonth);\nvar utcMonths = utcMonth.range;\n\n\n/***/ }),\n/* 632 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return utcSunday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return utcMonday; });\n/* unused harmony export utcTuesday */\n/* unused harmony export utcWednesday */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return utcThursday; });\n/* unused harmony export utcFriday */\n/* unused harmony export utcSaturday */\n/* unused harmony export utcSundays */\n/* unused harmony export utcMondays */\n/* unused harmony export utcTuesdays */\n/* unused harmony export utcWednesdays */\n/* unused harmony export utcThursdays */\n/* unused harmony export utcFridays */\n/* unused harmony export utcSaturdays */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__duration__ = __webpack_require__(35);\n\n\n\nfunction utcWeekday(i) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__[\"a\" /* default */])(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / __WEBPACK_IMPORTED_MODULE_1__duration__[\"a\" /* durationWeek */];\n });\n}\n\nvar utcSunday = utcWeekday(0);\nvar utcMonday = utcWeekday(1);\nvar utcTuesday = utcWeekday(2);\nvar utcWednesday = utcWeekday(3);\nvar utcThursday = utcWeekday(4);\nvar utcFriday = utcWeekday(5);\nvar utcSaturday = utcWeekday(6);\n\nvar utcSundays = utcSunday.range;\nvar utcMondays = utcMonday.range;\nvar utcTuesdays = utcTuesday.range;\nvar utcWednesdays = utcWednesday.range;\nvar utcThursdays = utcThursday.range;\nvar utcFridays = utcFriday.range;\nvar utcSaturdays = utcSaturday.range;\n\n\n/***/ }),\n/* 633 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export utcYears */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(18);\n\n\nvar utcYear = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__[\"a\" /* default */])(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__[\"a\" /* default */])(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (utcYear);\nvar utcYears = utcYear.range;\n\n\n/***/ }),\n/* 634 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return sunday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return monday; });\n/* unused harmony export tuesday */\n/* unused harmony export wednesday */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return thursday; });\n/* unused harmony export friday */\n/* unused harmony export saturday */\n/* unused harmony export sundays */\n/* unused harmony export mondays */\n/* unused harmony export tuesdays */\n/* unused harmony export wednesdays */\n/* unused harmony export thursdays */\n/* unused harmony export fridays */\n/* unused harmony export saturdays */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__duration__ = __webpack_require__(35);\n\n\n\nfunction weekday(i) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__[\"a\" /* default */])(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * __WEBPACK_IMPORTED_MODULE_1__duration__[\"d\" /* durationMinute */]) / __WEBPACK_IMPORTED_MODULE_1__duration__[\"a\" /* durationWeek */];\n });\n}\n\nvar sunday = weekday(0);\nvar monday = weekday(1);\nvar tuesday = weekday(2);\nvar wednesday = weekday(3);\nvar thursday = weekday(4);\nvar friday = weekday(5);\nvar saturday = weekday(6);\n\nvar sundays = sunday.range;\nvar mondays = monday.range;\nvar tuesdays = tuesday.range;\nvar wednesdays = wednesday.range;\nvar thursdays = thursday.range;\nvar fridays = friday.range;\nvar saturdays = saturday.range;\n\n\n/***/ }),\n/* 635 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export years */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(18);\n\n\nvar year = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__[\"a\" /* default */])(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__[\"a\" /* default */])(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (year);\nvar years = year.range;\n\n\n/***/ }),\n/* 636 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(638);\nvar isArguments = __webpack_require__(637);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 637 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 638 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 639 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(505);\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(__webpack_require__(640));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 640 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 641 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};\n\n/***/ }),\n/* 642 */\n/***/ (function(module, exports) {\n\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\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\n\n/***/ }),\n/* 643 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t}.call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n\n\n/***/ }),\n/* 644 */\n/***/ (function(module, exports) {\n\n/**\n * lodash 3.9.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\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\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/**\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/** 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 * 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\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 equivalents which return 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\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\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 = getNative;\n\n\n/***/ }),\n/* 645 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\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(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(47)))\n\n/***/ }),\n/* 646 */\n/***/ (function(module, exports) {\n\n/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used for built-in 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\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * 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 // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, 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 Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\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(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isArguments;\n\n\n/***/ }),\n/* 647 */\n/***/ (function(module, exports) {\n\n/**\n * lodash 3.0.4 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n funcTag = '[object Function]';\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\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\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/**\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/** 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/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\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 * 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\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\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\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 equivalents which return 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\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\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 = isArray;\n\n\n/***/ }),\n/* 648 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global, module) {/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\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/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\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[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\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 == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\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 {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\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 {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\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 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\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 {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !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 result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\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 = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\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 length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\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(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\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/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\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 */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(47), __webpack_require__(149)(module)))\n\n/***/ }),\n/* 649 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * lodash 3.1.2 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar getNative = __webpack_require__(644),\n isArguments = __webpack_require__(646),\n isArray = __webpack_require__(647);\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\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 for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\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 * 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\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\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\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\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\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\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\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\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 = keys;\n\n\n/***/ }),\n/* 650 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\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(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(47)))\n\n/***/ }),\n/* 651 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getNative = __webpack_require__(52),\n root = __webpack_require__(28);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n\n\n/***/ }),\n/* 652 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar hashClear = __webpack_require__(720),\n hashDelete = __webpack_require__(721),\n hashGet = __webpack_require__(722),\n hashHas = __webpack_require__(723),\n hashSet = __webpack_require__(724);\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n\n\n/***/ }),\n/* 653 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getNative = __webpack_require__(52),\n root = __webpack_require__(28);\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n\n\n/***/ }),\n/* 654 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getNative = __webpack_require__(52),\n root = __webpack_require__(28);\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n\n\n/***/ }),\n/* 655 */\n/***/ (function(module, exports) {\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n\n\n/***/ }),\n/* 656 */\n/***/ (function(module, exports) {\n\n/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\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 all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = arrayEvery;\n\n\n/***/ }),\n/* 657 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar copyObject = __webpack_require__(68),\n keys = __webpack_require__(43);\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `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 object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n\n\n/***/ }),\n/* 658 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar copyObject = __webpack_require__(68),\n keysIn = __webpack_require__(135);\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `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 baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n\n\n/***/ }),\n/* 659 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Stack = __webpack_require__(192),\n arrayEach = __webpack_require__(344),\n assignValue = __webpack_require__(350),\n baseAssign = __webpack_require__(657),\n baseAssignIn = __webpack_require__(658),\n cloneBuffer = __webpack_require__(695),\n copyArray = __webpack_require__(702),\n copySymbols = __webpack_require__(703),\n copySymbolsIn = __webpack_require__(704),\n getAllKeys = __webpack_require__(360),\n getAllKeysIn = __webpack_require__(361),\n getTag = __webpack_require__(128),\n initCloneArray = __webpack_require__(725),\n initCloneByTag = __webpack_require__(726),\n initCloneObject = __webpack_require__(727),\n isArray = __webpack_require__(12),\n isBuffer = __webpack_require__(209),\n isMap = __webpack_require__(770),\n isObject = __webpack_require__(21),\n isSet = __webpack_require__(771),\n keys = __webpack_require__(43),\n keysIn = __webpack_require__(135);\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\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 genTag = '[object GeneratorFunction]',\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 symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\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[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : 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 copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n\n\n/***/ }),\n/* 660 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(21);\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n\n\n/***/ }),\n/* 661 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseEach = __webpack_require__(90);\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nmodule.exports = baseEvery;\n\n\n/***/ }),\n/* 662 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseEach = __webpack_require__(90);\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n\n\n/***/ }),\n/* 663 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar createBaseFor = __webpack_require__(708);\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly 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/* 664 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n\n\n/***/ }),\n/* 665 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseFindIndex = __webpack_require__(351),\n baseIsNaN = __webpack_require__(671),\n strictIndexOf = __webpack_require__(755);\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\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 return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n\n\n/***/ }),\n/* 666 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar SetCache = __webpack_require__(191),\n arrayIncludes = __webpack_require__(346),\n arrayIncludesWith = __webpack_require__(347),\n arrayMap = __webpack_require__(67),\n baseUnary = __webpack_require__(91),\n cacheHas = __webpack_require__(198);\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseIntersection;\n\n\n/***/ }),\n/* 667 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(42),\n isObjectLike = __webpack_require__(29);\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n\n\n/***/ }),\n/* 668 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Stack = __webpack_require__(192),\n equalArrays = __webpack_require__(358),\n equalByTag = __webpack_require__(713),\n equalObjects = __webpack_require__(714),\n getTag = __webpack_require__(128),\n isArray = __webpack_require__(12),\n isBuffer = __webpack_require__(209),\n isTypedArray = __webpack_require__(371);\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in 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 `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 {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n\n\n/***/ }),\n/* 669 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getTag = __webpack_require__(128),\n isObjectLike = __webpack_require__(29);\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n\n\n/***/ }),\n/* 670 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Stack = __webpack_require__(192),\n baseIsEqual = __webpack_require__(196);\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(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 stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n\n\n/***/ }),\n/* 671 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n\n\n/***/ }),\n/* 672 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isFunction = __webpack_require__(9),\n isMasked = __webpack_require__(730),\n isObject = __webpack_require__(21),\n toSource = __webpack_require__(368);\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.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 funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n\n\n/***/ }),\n/* 673 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getTag = __webpack_require__(128),\n isObjectLike = __webpack_require__(29);\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n\n\n/***/ }),\n/* 674 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(42),\n isLength = __webpack_require__(210),\n isObjectLike = __webpack_require__(29);\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 dataViewTag = '[object DataView]',\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[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n\n\n/***/ }),\n/* 675 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isPrototype = __webpack_require__(204),\n nativeKeys = __webpack_require__(743);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n\n\n/***/ }),\n/* 676 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(21),\n isPrototype = __webpack_require__(204),\n nativeKeysIn = __webpack_require__(744);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n\n\n/***/ }),\n/* 677 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsMatch = __webpack_require__(670),\n getMatchData = __webpack_require__(716),\n matchesStrictComparable = __webpack_require__(364);\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n\n\n/***/ }),\n/* 678 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsEqual = __webpack_require__(196),\n get = __webpack_require__(69),\n hasIn = __webpack_require__(767),\n isKey = __webpack_require__(203),\n isStrictComparable = __webpack_require__(363),\n matchesStrictComparable = __webpack_require__(364),\n toKey = __webpack_require__(93);\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n\n\n/***/ }),\n/* 679 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayMap = __webpack_require__(67),\n baseGet = __webpack_require__(125),\n baseIteratee = __webpack_require__(24),\n baseMap = __webpack_require__(356),\n baseSortBy = __webpack_require__(686),\n baseUnary = __webpack_require__(91),\n compareMultiple = __webpack_require__(701),\n identity = __webpack_require__(53),\n isArray = __webpack_require__(12);\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n\n\n/***/ }),\n/* 680 */\n/***/ (function(module, exports) {\n\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 accessor 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/* 681 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGet = __webpack_require__(125);\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 accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n\n\n/***/ }),\n/* 682 */\n/***/ (function(module, exports) {\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n\n\n/***/ }),\n/* 683 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar constant = __webpack_require__(759),\n defineProperty = __webpack_require__(357),\n identity = __webpack_require__(53);\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n\n\n/***/ }),\n/* 684 */\n/***/ (function(module, exports) {\n\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 if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\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/* 685 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseEach = __webpack_require__(90);\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection 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 baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n\n\n/***/ }),\n/* 686 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n\n\n/***/ }),\n/* 687 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nmodule.exports = baseSum;\n\n\n/***/ }),\n/* 688 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n\n\n/***/ }),\n/* 689 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(66),\n arrayMap = __webpack_require__(67),\n isArray = __webpack_require__(12),\n isSymbol = __webpack_require__(70);\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n\n\n/***/ }),\n/* 690 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar trimmedEndIndex = __webpack_require__(757);\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n\n\n/***/ }),\n/* 691 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar SetCache = __webpack_require__(191),\n arrayIncludes = __webpack_require__(346),\n arrayIncludesWith = __webpack_require__(347),\n cacheHas = __webpack_require__(198),\n createSet = __webpack_require__(711),\n setToArray = __webpack_require__(206);\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\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 (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n\n\n/***/ }),\n/* 692 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar castPath = __webpack_require__(126),\n last = __webpack_require__(372),\n parent = __webpack_require__(746),\n toKey = __webpack_require__(93);\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n\n\n/***/ }),\n/* 693 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isArrayLikeObject = __webpack_require__(769);\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nmodule.exports = castArrayLikeObject;\n\n\n/***/ }),\n/* 694 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar identity = __webpack_require__(53);\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n\n\n/***/ }),\n/* 695 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(28);\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(149)(module)))\n\n/***/ }),\n/* 696 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar cloneArrayBuffer = __webpack_require__(199);\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n\n\n/***/ }),\n/* 697 */\n/***/ (function(module, exports) {\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n\n\n/***/ }),\n/* 698 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(66);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n\n\n/***/ }),\n/* 699 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar cloneArrayBuffer = __webpack_require__(199);\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n\n\n/***/ }),\n/* 700 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isSymbol = __webpack_require__(70);\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n\n\n/***/ }),\n/* 701 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar compareAscending = __webpack_require__(700);\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n\n\n/***/ }),\n/* 702 */\n/***/ (function(module, exports) {\n\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 copyArray(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 = copyArray;\n\n\n/***/ }),\n/* 703 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar copyObject = __webpack_require__(68),\n getSymbols = __webpack_require__(201);\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n\n\n/***/ }),\n/* 704 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar copyObject = __webpack_require__(68),\n getSymbolsIn = __webpack_require__(362);\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n\n\n/***/ }),\n/* 705 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar root = __webpack_require__(28);\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n\n\n/***/ }),\n/* 706 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseRest = __webpack_require__(197),\n isIterateeCall = __webpack_require__(92);\n\n/**\n * Creates a function like `_.assign`.\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 baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n\n\n/***/ }),\n/* 707 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isArrayLike = __webpack_require__(54);\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 if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(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/* 708 */\n/***/ (function(module, exports) {\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\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 index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++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/* 709 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIteratee = __webpack_require__(24),\n isArrayLike = __webpack_require__(54),\n keys = __webpack_require__(43);\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n\n\n/***/ }),\n/* 710 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseRange = __webpack_require__(682),\n isIterateeCall = __webpack_require__(92),\n toFinite = __webpack_require__(379);\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n\n\n/***/ }),\n/* 711 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Set = __webpack_require__(342),\n noop = __webpack_require__(775),\n setToArray = __webpack_require__(206);\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n\n\n/***/ }),\n/* 712 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isPlainObject = __webpack_require__(133);\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nmodule.exports = customOmitClone;\n\n\n/***/ }),\n/* 713 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(66),\n Uint8Array = __webpack_require__(343),\n eq = __webpack_require__(130),\n equalArrays = __webpack_require__(358),\n mapToArray = __webpack_require__(741),\n setToArray = __webpack_require__(206);\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\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 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n\n\n/***/ }),\n/* 714 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getAllKeys = __webpack_require__(360);\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in 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 {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !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 result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n\n\n/***/ }),\n/* 715 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar flatten = __webpack_require__(766),\n overRest = __webpack_require__(366),\n setToString = __webpack_require__(367);\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n\n\n/***/ }),\n/* 716 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isStrictComparable = __webpack_require__(363),\n keys = __webpack_require__(43);\n\n/**\n * Gets the property 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 = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n\n\n/***/ }),\n/* 717 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(66);\n\n/** Used for built-in 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\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n\n\n/***/ }),\n/* 718 */\n/***/ (function(module, exports) {\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n\n\n/***/ }),\n/* 719 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar castPath = __webpack_require__(126),\n isArguments = __webpack_require__(208),\n isArray = __webpack_require__(12),\n isIndex = __webpack_require__(202),\n isLength = __webpack_require__(210),\n toKey = __webpack_require__(93);\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n\n\n/***/ }),\n/* 720 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar nativeCreate = __webpack_require__(129);\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n\n\n/***/ }),\n/* 721 */\n/***/ (function(module, exports) {\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n\n\n/***/ }),\n/* 722 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar nativeCreate = __webpack_require__(129);\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n\n\n/***/ }),\n/* 723 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar nativeCreate = __webpack_require__(129);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n\n\n/***/ }),\n/* 724 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar nativeCreate = __webpack_require__(129);\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n\n\n/***/ }),\n/* 725 */\n/***/ (function(module, exports) {\n\n/** Used for built-in 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 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/* 726 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar cloneArrayBuffer = __webpack_require__(199),\n cloneDataView = __webpack_require__(696),\n cloneRegExp = __webpack_require__(697),\n cloneSymbol = __webpack_require__(698),\n cloneTypedArray = __webpack_require__(699);\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\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/**\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`, `Map`, `Number`, `RegExp`, `Set`, 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 cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n\n\n/***/ }),\n/* 727 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseCreate = __webpack_require__(660),\n getPrototype = __webpack_require__(200),\n isPrototype = __webpack_require__(204);\n\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 return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n\n\n/***/ }),\n/* 728 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(66),\n isArguments = __webpack_require__(208),\n isArray = __webpack_require__(12);\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n\n\n/***/ }),\n/* 729 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n\n\n/***/ }),\n/* 730 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar coreJsData = __webpack_require__(705);\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n\n\n/***/ }),\n/* 731 */\n/***/ (function(module, exports) {\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n\n\n/***/ }),\n/* 732 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar assocIndexOf = __webpack_require__(123);\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n\n\n/***/ }),\n/* 733 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar assocIndexOf = __webpack_require__(123);\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n\n\n/***/ }),\n/* 734 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar assocIndexOf = __webpack_require__(123);\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n\n\n/***/ }),\n/* 735 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar assocIndexOf = __webpack_require__(123);\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n\n\n/***/ }),\n/* 736 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Hash = __webpack_require__(652),\n ListCache = __webpack_require__(122),\n Map = __webpack_require__(189);\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n\n\n/***/ }),\n/* 737 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getMapData = __webpack_require__(127);\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n\n\n/***/ }),\n/* 738 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getMapData = __webpack_require__(127);\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n\n\n/***/ }),\n/* 739 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getMapData = __webpack_require__(127);\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n\n\n/***/ }),\n/* 740 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getMapData = __webpack_require__(127);\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n\n\n/***/ }),\n/* 741 */\n/***/ (function(module, exports) {\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n\n\n/***/ }),\n/* 742 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar memoize = __webpack_require__(773);\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n\n\n/***/ }),\n/* 743 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar overArg = __webpack_require__(365);\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n\n\n/***/ }),\n/* 744 */\n/***/ (function(module, exports) {\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n\n\n/***/ }),\n/* 745 */\n/***/ (function(module, exports) {\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n/***/ }),\n/* 746 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGet = __webpack_require__(125),\n baseSlice = __webpack_require__(684);\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 747 */\n/***/ (function(module, exports) {\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n\n\n/***/ }),\n/* 748 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n\n\n/***/ }),\n/* 749 */\n/***/ (function(module, exports) {\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n\n\n/***/ }),\n/* 750 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ListCache = __webpack_require__(122);\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n\n\n/***/ }),\n/* 751 */\n/***/ (function(module, exports) {\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n\n\n/***/ }),\n/* 752 */\n/***/ (function(module, exports) {\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n\n\n/***/ }),\n/* 753 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n\n\n/***/ }),\n/* 754 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ListCache = __webpack_require__(122),\n Map = __webpack_require__(189),\n MapCache = __webpack_require__(190);\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n\n\n/***/ }),\n/* 755 */\n/***/ (function(module, exports) {\n\n/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\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 strictIndexOf(array, value, fromIndex) {\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 = strictIndexOf;\n\n\n/***/ }),\n/* 756 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar memoizeCapped = __webpack_require__(742);\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n\n\n/***/ }),\n/* 757 */\n/***/ (function(module, exports) {\n\n/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n\n\n/***/ }),\n/* 758 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar copyObject = __webpack_require__(68),\n createAssigner = __webpack_require__(706),\n keysIn = __webpack_require__(135);\n\n/**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\nvar assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n});\n\nmodule.exports = assignIn;\n\n\n/***/ }),\n/* 759 */\n/***/ (function(module, exports) {\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n\n\n/***/ }),\n/* 760 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(207);\n\n\n/***/ }),\n/* 761 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(758);\n\n\n/***/ }),\n/* 762 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayFilter = __webpack_require__(345),\n baseFilter = __webpack_require__(662),\n baseIteratee = __webpack_require__(24),\n isArray = __webpack_require__(12);\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n\n\n/***/ }),\n/* 763 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar createFind = __webpack_require__(709),\n findIndex = __webpack_require__(764);\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n\n\n/***/ }),\n/* 764 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseFindIndex = __webpack_require__(351),\n baseIteratee = __webpack_require__(24),\n toInteger = __webpack_require__(782);\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n\n\n/***/ }),\n/* 765 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseFlatten = __webpack_require__(195),\n map = __webpack_require__(373);\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nmodule.exports = flatMap;\n\n\n/***/ }),\n/* 766 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseFlatten = __webpack_require__(195);\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n\n\n/***/ }),\n/* 767 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseHasIn = __webpack_require__(664),\n hasPath = __webpack_require__(719);\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n\n\n/***/ }),\n/* 768 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayMap = __webpack_require__(67),\n baseIntersection = __webpack_require__(666),\n baseRest = __webpack_require__(197),\n castArrayLikeObject = __webpack_require__(693);\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nmodule.exports = intersection;\n\n\n/***/ }),\n/* 769 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isArrayLike = __webpack_require__(54),\n isObjectLike = __webpack_require__(29);\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n\n\n/***/ }),\n/* 770 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsMap = __webpack_require__(669),\n baseUnary = __webpack_require__(91),\n nodeUtil = __webpack_require__(205);\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n\n\n/***/ }),\n/* 771 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsSet = __webpack_require__(673),\n baseUnary = __webpack_require__(91),\n nodeUtil = __webpack_require__(205);\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n\n\n/***/ }),\n/* 772 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseAssignValue = __webpack_require__(194),\n baseForOwn = __webpack_require__(352),\n baseIteratee = __webpack_require__(24);\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n\n\n/***/ }),\n/* 773 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MapCache = __webpack_require__(190);\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n\n\n/***/ }),\n/* 774 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseExtremum = __webpack_require__(124),\n baseIteratee = __webpack_require__(24),\n baseLt = __webpack_require__(355);\n\n/**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\nfunction minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt)\n : undefined;\n}\n\nmodule.exports = minBy;\n\n\n/***/ }),\n/* 775 */\n/***/ (function(module, exports) {\n\n/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n\n\n/***/ }),\n/* 776 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar root = __webpack_require__(28);\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n\n\n/***/ }),\n/* 777 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseProperty = __webpack_require__(680),\n basePropertyDeep = __webpack_require__(681),\n isKey = __webpack_require__(203),\n toKey = __webpack_require__(93);\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n\n\n/***/ }),\n/* 778 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arraySome = __webpack_require__(349),\n baseIteratee = __webpack_require__(24),\n baseSome = __webpack_require__(685),\n isArray = __webpack_require__(12),\n isIterateeCall = __webpack_require__(92);\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n\n\n/***/ }),\n/* 779 */\n/***/ (function(module, exports) {\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n\n\n/***/ }),\n/* 780 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIteratee = __webpack_require__(24),\n baseSum = __webpack_require__(687);\n\n/**\n * This method is like `_.sum` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be summed.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the sum.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.sumBy(objects, function(o) { return o.n; });\n * // => 20\n *\n * // The `_.property` iteratee shorthand.\n * _.sumBy(objects, 'n');\n * // => 20\n */\nfunction sumBy(array, iteratee) {\n return (array && array.length)\n ? baseSum(array, baseIteratee(iteratee, 2))\n : 0;\n}\n\nmodule.exports = sumBy;\n\n\n/***/ }),\n/* 781 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar debounce = __webpack_require__(369),\n isObject = __webpack_require__(21);\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n\n\n/***/ }),\n/* 782 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toFinite = __webpack_require__(379);\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n\n\n/***/ }),\n/* 783 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseToString = __webpack_require__(689);\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n\n\n/***/ }),\n/* 784 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Mexp=__webpack_require__(788);\r\nMexp.prototype.formulaEval = function () {\r\n\t\"use strict\";\r\n\tvar stack=[],pop1,pop2,pop3;\r\n\tvar disp=[];\r\n\tvar temp='';\r\n\tvar arr=this.value;\r\n\tfor(var i=0;i\"+pop2.value+\"\"+arr[i].show+\"\"+pop1.value+\"\",type:10});\r\n\t\t\telse disp.push({value:(pop2.type!=1?\"(\":\"\")+pop2.value+(pop2.type!=1?\")\":\"\")+\"\"+pop1.value+\"\",type:1});\r\n\t\t}\r\n\t\telse if(arr[i].type===2||arr[i].type===9){\r\n\t\t\tpop1=disp.pop();\r\n\t\t\tpop2=disp.pop();\r\n\t\t\tdisp.push({value:(pop2.type!=1?\"(\":\"\")+pop2.value+(pop2.type!=1?\")\":\"\")+arr[i].show+(pop1.type!=1?\"(\":\"\")+pop1.value+(pop1.type!=1?\")\":\"\"),type:arr[i].type});\r\n\t\t}\r\n\t\telse if(arr[i].type===12){\r\n\t\t\tpop1=disp.pop();\r\n\t\t\tpop2=disp.pop();\r\n\t\t\tpop3=disp.pop();\r\n\t\t\tdisp.push({value:arr[i].show+\"(\"+pop3.value+\",\"+pop2.value+\",\"+pop1.value+\")\",type:12});\r\n\t\t}\r\n\t}\r\n\treturn disp[0].value;\r\n};\r\nmodule.exports=Mexp;\n\n/***/ }),\n/* 785 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Mexp=__webpack_require__(786);\r\n\tfunction inc(arr,val){\r\n\t\tfor(var i=0;i(newAr.length-2)?newAr.length-1:inpStr.length-i);x>0;x--){\r\n\t\t\t\tfor(y=0;yprep)stack.push(elem);\r\n\t\t\t\telse {\r\n\t\t\t\t\twhile(prep>=pre&&!flag||flag&&pre1) {\r\n\t\tthrow(new Mexp.exception(\"Uncaught Syntax error\"));\r\n\t}\r\n\treturn stack[0].value>1000000000000000?\"Infinity\":parseFloat(stack[0].value.toFixed(15));\r\n};\r\nMexp.eval=function(str,tokens,obj){\r\n\tif (typeof tokens===\"undefined\") {\r\n\t\treturn this.lex(str).toPostfix().postfixEval();\r\n\t}\r\n\telse if (typeof obj===\"undefined\") {\r\n\t\tif (typeof tokens.length!==\"undefined\") \r\n\t\t\treturn this.lex(str,tokens).toPostfix().postfixEval();\r\n\t\telse\r\n\t\t\treturn this.lex(str).toPostfix().postfixEval(tokens);\r\n\t}\r\n\telse\r\n\t\treturn this.lex(str,tokens).toPostfix().postfixEval(obj);\r\n};\r\nmodule.exports=Mexp;\n\n/***/ }),\n/* 789 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 790 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = __webpack_require__(213);\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 791 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = __webpack_require__(213);\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n/***/ }),\n/* 792 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactIs = __webpack_require__(33);\nvar assign = __webpack_require__(94);\n\nvar ReactPropTypesSecret = __webpack_require__(213);\nvar checkPropTypes = __webpack_require__(790);\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 793 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _brace = __webpack_require__(530);\n\nvar _brace2 = _interopRequireDefault(_brace);\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _lodash = __webpack_require__(648);\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _ace$acequire = _brace2.default.acequire('ace/range');\n\nvar Range = _ace$acequire.Range;\n\n\nvar editorOptions = ['minLines', 'maxLines', 'readOnly', 'highlightActiveLine', 'tabSize', 'enableBasicAutocompletion', 'enableLiveAutocompletion', 'enableSnippets '];\n\nvar ReactAce = function (_Component) {\n _inherits(ReactAce, _Component);\n\n function ReactAce(props) {\n _classCallCheck(this, ReactAce);\n\n var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ReactAce).call(this, props));\n\n ['onChange', 'onFocus', 'onBlur', 'onCopy', 'onPaste', 'onScroll', 'handleOptions'].forEach(function (method) {\n _this[method] = _this[method].bind(_this);\n });\n return _this;\n }\n\n _createClass(ReactAce, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n var _props = this.props;\n var name = _props.name;\n var className = _props.className;\n var onBeforeLoad = _props.onBeforeLoad;\n var mode = _props.mode;\n var theme = _props.theme;\n var fontSize = _props.fontSize;\n var value = _props.value;\n var cursorStart = _props.cursorStart;\n var showGutter = _props.showGutter;\n var wrapEnabled = _props.wrapEnabled;\n var showPrintMargin = _props.showPrintMargin;\n var keyboardHandler = _props.keyboardHandler;\n var onLoad = _props.onLoad;\n var commands = _props.commands;\n var annotations = _props.annotations;\n var markers = _props.markers;\n\n\n this.editor = _brace2.default.edit(name);\n\n if (onBeforeLoad) {\n onBeforeLoad(_brace2.default);\n }\n\n var editorProps = Object.keys(this.props.editorProps);\n for (var i = 0; i < editorProps.length; i++) {\n this.editor[editorProps[i]] = this.props.editorProps[editorProps[i]];\n }\n\n this.editor.getSession().setMode('ace/mode/' + mode);\n this.editor.setTheme('ace/theme/' + theme);\n this.editor.setFontSize(fontSize);\n this.editor.setValue(value, cursorStart);\n this.editor.renderer.setShowGutter(showGutter);\n this.editor.getSession().setUseWrapMode(wrapEnabled);\n this.editor.setShowPrintMargin(showPrintMargin);\n this.editor.on('focus', this.onFocus);\n this.editor.on('blur', this.onBlur);\n this.editor.on('copy', this.onCopy);\n this.editor.on('paste', this.onPaste);\n this.editor.on('change', this.onChange);\n this.editor.session.on('changeScrollTop', this.onScroll);\n this.handleOptions(this.props);\n this.editor.getSession().setAnnotations(annotations || []);\n this.handleMarkers(markers || []);\n\n // get a list of possible options to avoid 'misspelled option errors'\n var availableOptions = this.editor.$options;\n for (var _i = 0; _i < editorOptions.length; _i++) {\n var option = editorOptions[_i];\n if (availableOptions.hasOwnProperty(option)) {\n this.editor.setOption(option, this.props[option]);\n }\n }\n\n if (Array.isArray(commands)) {\n commands.forEach(function (command) {\n _this2.editor.commands.addCommand(command);\n });\n }\n\n if (keyboardHandler) {\n this.editor.setKeyboardHandler('ace/keyboard/' + keyboardHandler);\n }\n\n if (className) {\n this.refs.editor.className += ' ' + className;\n }\n\n if (onLoad) {\n onLoad(this.editor);\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var _this3 = this;\n\n var oldProps = this.props;\n\n for (var i = 0; i < editorOptions.length; i++) {\n var option = editorOptions[i];\n if (nextProps[option] !== oldProps[option]) {\n this.editor.setOption(option, nextProps[option]);\n }\n }\n\n if (nextProps.className !== oldProps.className) {\n (function () {\n var appliedClasses = _this3.refs.editor.className;\n var appliedClassesArray = appliedClasses.trim().split(' ');\n var oldClassesArray = oldProps.className.trim().split(' ');\n oldClassesArray.forEach(function (oldClass) {\n var index = appliedClassesArray.indexOf(oldClass);\n appliedClassesArray.splice(index, 1);\n });\n _this3.refs.editor.className = ' ' + nextProps.className + ' ' + appliedClassesArray.join(' ');\n })();\n }\n\n if (nextProps.mode !== oldProps.mode) {\n this.editor.getSession().setMode('ace/mode/' + nextProps.mode);\n }\n if (nextProps.theme !== oldProps.theme) {\n this.editor.setTheme('ace/theme/' + nextProps.theme);\n }\n if (nextProps.fontSize !== oldProps.fontSize) {\n this.editor.setFontSize(nextProps.fontSize);\n }\n if (nextProps.wrapEnabled !== oldProps.wrapEnabled) {\n this.editor.getSession().setUseWrapMode(nextProps.wrapEnabled);\n }\n if (nextProps.showPrintMargin !== oldProps.showPrintMargin) {\n this.editor.setShowPrintMargin(nextProps.showPrintMargin);\n }\n if (nextProps.showGutter !== oldProps.showGutter) {\n this.editor.renderer.setShowGutter(nextProps.showGutter);\n }\n if (!(0, _lodash2.default)(nextProps.setOptions, oldProps.setOptions)) {\n this.handleOptions(nextProps);\n }\n if (!(0, _lodash2.default)(nextProps.annotations, oldProps.annotations)) {\n this.editor.getSession().setAnnotations(nextProps.annotations || []);\n }\n if (!(0, _lodash2.default)(nextProps.markers, oldProps.markers)) {\n this.handleMarkers(nextProps.markers || []);\n }\n if (this.editor && this.editor.getValue() !== nextProps.value) {\n // editor.setValue is a synchronous function call, change event is emitted before setValue return.\n this.silent = true;\n var pos = this.editor.session.selection.toJSON();\n this.editor.setValue(nextProps.value, nextProps.cursorStart);\n this.editor.session.selection.fromJSON(pos);\n this.silent = false;\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.editor.destroy();\n this.editor = null;\n }\n }, {\n key: 'onChange',\n value: function onChange() {\n if (this.props.onChange && !this.silent) {\n var value = this.editor.getValue();\n this.props.onChange(value);\n }\n }\n }, {\n key: 'onFocus',\n value: function onFocus() {\n if (this.props.onFocus) {\n this.props.onFocus();\n }\n }\n }, {\n key: 'onBlur',\n value: function onBlur() {\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n }\n }, {\n key: 'onCopy',\n value: function onCopy(text) {\n if (this.props.onCopy) {\n this.props.onCopy(text);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(text) {\n if (this.props.onPaste) {\n this.props.onPaste(text);\n }\n }\n }, {\n key: 'onScroll',\n value: function onScroll() {\n if (this.props.onScroll) {\n this.props.onScroll(this.editor);\n }\n }\n }, {\n key: 'handleOptions',\n value: function handleOptions(props) {\n var setOptions = Object.keys(props.setOptions);\n for (var y = 0; y < setOptions.length; y++) {\n this.editor.setOption(setOptions[y], props.setOptions[setOptions[y]]);\n }\n }\n }, {\n key: 'handleMarkers',\n value: function handleMarkers(markers) {\n var _this4 = this;\n\n // remove foreground markers\n var currentMarkers = this.editor.getSession().getMarkers(true);\n for (var i in currentMarkers) {\n if (currentMarkers.hasOwnProperty(i)) {\n this.editor.getSession().removeMarker(currentMarkers[i].id);\n }\n }\n // remove background markers\n currentMarkers = this.editor.getSession().getMarkers(false);\n for (var _i2 in currentMarkers) {\n if (currentMarkers.hasOwnProperty(_i2)) {\n this.editor.getSession().removeMarker(currentMarkers[_i2].id);\n }\n }\n // add new markers\n markers.forEach(function (_ref) {\n var startRow = _ref.startRow;\n var startCol = _ref.startCol;\n var endRow = _ref.endRow;\n var endCol = _ref.endCol;\n var className = _ref.className;\n var type = _ref.type;\n var _ref$inFront = _ref.inFront;\n var inFront = _ref$inFront === undefined ? false : _ref$inFront;\n\n var range = new Range(startRow, startCol, endRow, endCol);\n _this4.editor.getSession().addMarker(range, className, type, inFront);\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props2 = this.props;\n var name = _props2.name;\n var width = _props2.width;\n var height = _props2.height;\n\n var divStyle = { width: width, height: height };\n return _react2.default.createElement('div', { ref: 'editor',\n id: name,\n style: divStyle\n });\n }\n }]);\n\n return ReactAce;\n}(_react.Component);\n\nexports.default = ReactAce;\n\n\nReactAce.propTypes = {\n mode: _react.PropTypes.string,\n theme: _react.PropTypes.string,\n name: _react.PropTypes.string,\n className: _react.PropTypes.string,\n height: _react.PropTypes.string,\n width: _react.PropTypes.string,\n fontSize: _react.PropTypes.number,\n showGutter: _react.PropTypes.bool,\n onChange: _react.PropTypes.func,\n onCopy: _react.PropTypes.func,\n onPaste: _react.PropTypes.func,\n onFocus: _react.PropTypes.func,\n onBlur: _react.PropTypes.func,\n onScroll: _react.PropTypes.func,\n value: _react.PropTypes.string,\n onLoad: _react.PropTypes.func,\n onBeforeLoad: _react.PropTypes.func,\n minLines: _react.PropTypes.number,\n maxLines: _react.PropTypes.number,\n readOnly: _react.PropTypes.bool,\n highlightActiveLine: _react.PropTypes.bool,\n tabSize: _react.PropTypes.number,\n showPrintMargin: _react.PropTypes.bool,\n cursorStart: _react.PropTypes.number,\n editorProps: _react.PropTypes.object,\n setOptions: _react.PropTypes.object,\n annotations: _react.PropTypes.array,\n markers: _react.PropTypes.array,\n keyboardHandler: _react.PropTypes.string,\n wrapEnabled: _react.PropTypes.bool,\n enableBasicAutocompletion: _react.PropTypes.oneOfType([_react.PropTypes.bool, _react.PropTypes.array]),\n enableLiveAutocompletion: _react.PropTypes.oneOfType([_react.PropTypes.bool, _react.PropTypes.array]),\n commands: _react.PropTypes.array\n};\n\nReactAce.defaultProps = {\n name: 'brace-editor',\n mode: '',\n theme: '',\n height: '500px',\n width: '500px',\n value: '',\n fontSize: 12,\n showGutter: true,\n onChange: null,\n onPaste: null,\n onLoad: null,\n onScroll: null,\n minLines: null,\n maxLines: null,\n readOnly: false,\n highlightActiveLine: true,\n showPrintMargin: true,\n tabSize: 4,\n cursorStart: 1,\n editorProps: {},\n setOptions: {},\n wrapEnabled: false,\n enableBasicAutocompletion: false,\n enableLiveAutocompletion: false\n};\n\n/***/ }),\n/* 794 */\n/***/ (function(module, exports, __webpack_require__) {\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory(__webpack_require__(0), __webpack_require__(212));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"prop-types\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Dropzone\"] = factory(require(\"react\"), require(\"prop-types\"));\n\telse\n\t\troot[\"Dropzone\"] = factory(root[\"react\"], root[\"prop-types\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _propTypes = __webpack_require__(3);\n\t\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\t\n\tvar _attrAccept = __webpack_require__(4);\n\t\n\tvar _attrAccept2 = _interopRequireDefault(_attrAccept);\n\t\n\tvar _getDataTransferItems = __webpack_require__(5);\n\t\n\tvar _getDataTransferItems2 = _interopRequireDefault(_getDataTransferItems);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\t\n\tfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint prefer-template: 0 */\n\t\n\tvar supportMultiple = typeof document !== 'undefined' && document && document.createElement ? 'multiple' in document.createElement('input') : true;\n\t\n\tfunction fileAccepted(file, accept) {\n\t // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with\n\t // that MIME type will always be accepted\n\t return file.type === 'application/x-moz-file' || (0, _attrAccept2.default)(file, accept);\n\t}\n\t\n\tvar Dropzone = function (_React$Component) {\n\t _inherits(Dropzone, _React$Component);\n\t\n\t _createClass(Dropzone, null, [{\n\t key: 'onDocumentDragOver',\n\t value: function onDocumentDragOver(e) {\n\t // allow the entire document to be a drag target\n\t e.preventDefault();\n\t }\n\t }]);\n\t\n\t function Dropzone(props, context) {\n\t _classCallCheck(this, Dropzone);\n\t\n\t var _this = _possibleConstructorReturn(this, (Dropzone.__proto__ || Object.getPrototypeOf(Dropzone)).call(this, props, context));\n\t\n\t _this.renderChildren = function (children, isDragActive, isDragReject) {\n\t if (typeof children === 'function') {\n\t return children(_extends({}, _this.state, { isDragActive: isDragActive, isDragReject: isDragReject }));\n\t }\n\t return children;\n\t };\n\t\n\t _this.onClick = _this.onClick.bind(_this);\n\t _this.onDocumentDrop = _this.onDocumentDrop.bind(_this);\n\t _this.onDragStart = _this.onDragStart.bind(_this);\n\t _this.onDragEnter = _this.onDragEnter.bind(_this);\n\t _this.onDragLeave = _this.onDragLeave.bind(_this);\n\t _this.onDragOver = _this.onDragOver.bind(_this);\n\t _this.onDrop = _this.onDrop.bind(_this);\n\t _this.onFileDialogCancel = _this.onFileDialogCancel.bind(_this);\n\t _this.setRef = _this.setRef.bind(_this);\n\t _this.isFileDialogActive = false;\n\t _this.state = {\n\t draggedFiles: [],\n\t acceptedFiles: [],\n\t rejectedFiles: []\n\t };\n\t return _this;\n\t }\n\t\n\t _createClass(Dropzone, [{\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var preventDropOnDocument = this.props.preventDropOnDocument;\n\t\n\t this.dragTargets = [];\n\t\n\t if (preventDropOnDocument) {\n\t document.addEventListener('dragover', Dropzone.onDocumentDragOver, false);\n\t document.addEventListener('drop', this.onDocumentDrop, false);\n\t }\n\t // Tried implementing addEventListener, but didn't work out\n\t document.body.onfocus = this.onFileDialogCancel;\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t var preventDropOnDocument = this.props.preventDropOnDocument;\n\t\n\t if (preventDropOnDocument) {\n\t document.removeEventListener('dragover', Dropzone.onDocumentDragOver);\n\t document.removeEventListener('drop', this.onDocumentDrop);\n\t }\n\t // Can be replaced with removeEventListener, if addEventListener works\n\t document.body.onfocus = null;\n\t }\n\t }, {\n\t key: 'onDocumentDrop',\n\t value: function onDocumentDrop(e) {\n\t if (this.node.contains(e.target)) {\n\t // if we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n\t return;\n\t }\n\t e.preventDefault();\n\t this.dragTargets = [];\n\t }\n\t }, {\n\t key: 'onDragStart',\n\t value: function onDragStart(e) {\n\t if (this.props.onDragStart) {\n\t this.props.onDragStart.call(this, e);\n\t }\n\t }\n\t }, {\n\t key: 'onDragEnter',\n\t value: function onDragEnter(e) {\n\t e.preventDefault();\n\t\n\t // Count the dropzone and any children that are entered.\n\t if (this.dragTargets.indexOf(e.target) === -1) {\n\t this.dragTargets.push(e.target);\n\t }\n\t\n\t this.setState({ draggedFiles: (0, _getDataTransferItems2.default)(e) });\n\t\n\t if (this.props.onDragEnter) {\n\t this.props.onDragEnter.call(this, e);\n\t }\n\t }\n\t }, {\n\t key: 'onDragOver',\n\t value: function onDragOver(e) {\n\t // eslint-disable-line class-methods-use-this\n\t e.preventDefault();\n\t e.stopPropagation();\n\t try {\n\t e.dataTransfer.dropEffect = 'copy'; // eslint-disable-line no-param-reassign\n\t } catch (err) {\n\t // continue regardless of error\n\t }\n\t\n\t if (this.props.onDragOver) {\n\t this.props.onDragOver.call(this, e);\n\t }\n\t return false;\n\t }\n\t }, {\n\t key: 'onDragLeave',\n\t value: function onDragLeave(e) {\n\t var _this2 = this;\n\t\n\t e.preventDefault();\n\t\n\t // Only deactivate once the dropzone and all children have been left.\n\t this.dragTargets = this.dragTargets.filter(function (el) {\n\t return el !== e.target && _this2.node.contains(el);\n\t });\n\t if (this.dragTargets.length > 0) {\n\t return;\n\t }\n\t\n\t // Clear dragging files state\n\t this.setState({ draggedFiles: [] });\n\t\n\t if (this.props.onDragLeave) {\n\t this.props.onDragLeave.call(this, e);\n\t }\n\t }\n\t }, {\n\t key: 'onDrop',\n\t value: function onDrop(e) {\n\t var _this3 = this;\n\t\n\t var _props = this.props,\n\t onDrop = _props.onDrop,\n\t onDropAccepted = _props.onDropAccepted,\n\t onDropRejected = _props.onDropRejected,\n\t multiple = _props.multiple,\n\t disablePreview = _props.disablePreview,\n\t accept = _props.accept;\n\t\n\t var fileList = (0, _getDataTransferItems2.default)(e);\n\t var acceptedFiles = [];\n\t var rejectedFiles = [];\n\t\n\t // Stop default browser behavior\n\t e.preventDefault();\n\t\n\t // Reset the counter along with the drag on a drop.\n\t this.dragTargets = [];\n\t this.isFileDialogActive = false;\n\t\n\t fileList.forEach(function (file) {\n\t if (!disablePreview) {\n\t try {\n\t file.preview = window.URL.createObjectURL(file); // eslint-disable-line no-param-reassign\n\t } catch (err) {\n\t if (process.env.NODE_ENV !== 'production') {\n\t console.error('Failed to generate preview for file', file, err); // eslint-disable-line no-console\n\t }\n\t }\n\t }\n\t\n\t if (fileAccepted(file, accept) && _this3.fileMatchSize(file)) {\n\t acceptedFiles.push(file);\n\t } else {\n\t rejectedFiles.push(file);\n\t }\n\t });\n\t\n\t if (!multiple) {\n\t // if not in multi mode add any extra accepted files to rejected.\n\t // This will allow end users to easily ignore a multi file drop in \"single\" mode.\n\t rejectedFiles.push.apply(rejectedFiles, _toConsumableArray(acceptedFiles.splice(1)));\n\t }\n\t\n\t if (onDrop) {\n\t onDrop.call(this, acceptedFiles, rejectedFiles, e);\n\t }\n\t\n\t if (rejectedFiles.length > 0 && onDropRejected) {\n\t onDropRejected.call(this, rejectedFiles, e);\n\t }\n\t\n\t if (acceptedFiles.length > 0 && onDropAccepted) {\n\t onDropAccepted.call(this, acceptedFiles, e);\n\t }\n\t\n\t // Clear files value\n\t this.draggedFiles = null;\n\t\n\t // Reset drag state\n\t this.setState({\n\t draggedFiles: [],\n\t acceptedFiles: acceptedFiles,\n\t rejectedFiles: rejectedFiles\n\t });\n\t }\n\t }, {\n\t key: 'onClick',\n\t value: function onClick(e) {\n\t var _props2 = this.props,\n\t onClick = _props2.onClick,\n\t disableClick = _props2.disableClick;\n\t\n\t if (!disableClick) {\n\t e.stopPropagation();\n\t this.open();\n\t if (onClick) {\n\t onClick.call(this, e);\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'onFileDialogCancel',\n\t value: function onFileDialogCancel() {\n\t // timeout will not recognize context of this method\n\t var onFileDialogCancel = this.props.onFileDialogCancel;\n\t var fileInputEl = this.fileInputEl;\n\t var isFileDialogActive = this.isFileDialogActive;\n\t // execute the timeout only if the onFileDialogCancel is defined and FileDialog\n\t // is opened in the browser\n\t\n\t if (onFileDialogCancel && isFileDialogActive) {\n\t setTimeout(function () {\n\t // Returns an object as FileList\n\t var FileList = fileInputEl.files;\n\t if (!FileList.length) {\n\t isFileDialogActive = false;\n\t onFileDialogCancel();\n\t }\n\t }, 300);\n\t }\n\t }\n\t }, {\n\t key: 'setRef',\n\t value: function setRef(ref) {\n\t this.node = ref;\n\t }\n\t }, {\n\t key: 'fileMatchSize',\n\t value: function fileMatchSize(file) {\n\t return file.size <= this.props.maxSize && file.size >= this.props.minSize;\n\t }\n\t }, {\n\t key: 'allFilesAccepted',\n\t value: function allFilesAccepted(files) {\n\t var _this4 = this;\n\t\n\t return files.every(function (file) {\n\t return fileAccepted(file, _this4.props.accept);\n\t });\n\t }\n\t\n\t /**\n\t * Open system file upload dialog.\n\t *\n\t * @public\n\t */\n\t\n\t }, {\n\t key: 'open',\n\t value: function open() {\n\t this.isFileDialogActive = true;\n\t this.fileInputEl.value = null;\n\t this.fileInputEl.click();\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _this5 = this;\n\t\n\t var _props3 = this.props,\n\t accept = _props3.accept,\n\t activeClassName = _props3.activeClassName,\n\t inputProps = _props3.inputProps,\n\t multiple = _props3.multiple,\n\t name = _props3.name,\n\t rejectClassName = _props3.rejectClassName,\n\t children = _props3.children,\n\t rest = _objectWithoutProperties(_props3, ['accept', 'activeClassName', 'inputProps', 'multiple', 'name', 'rejectClassName', 'children']);\n\t\n\t var activeStyle = rest.activeStyle,\n\t className = rest.className,\n\t rejectStyle = rest.rejectStyle,\n\t style = rest.style,\n\t props = _objectWithoutProperties(rest, ['activeStyle', 'className', 'rejectStyle', 'style']);\n\t\n\t var draggedFiles = this.state.draggedFiles;\n\t\n\t var filesCount = draggedFiles.length;\n\t var isMultipleAllowed = multiple || filesCount <= 1;\n\t var isDragActive = filesCount > 0 && this.allFilesAccepted(draggedFiles);\n\t var isDragReject = filesCount > 0 && (!isDragActive || !isMultipleAllowed);\n\t\n\t className = className || '';\n\t\n\t if (isDragActive && activeClassName) {\n\t className += ' ' + activeClassName;\n\t }\n\t if (isDragReject && rejectClassName) {\n\t className += ' ' + rejectClassName;\n\t }\n\t\n\t if (!className && !style && !activeStyle && !rejectStyle) {\n\t style = {\n\t width: 200,\n\t height: 200,\n\t borderWidth: 2,\n\t borderColor: '#666',\n\t borderStyle: 'dashed',\n\t borderRadius: 5\n\t };\n\t activeStyle = {\n\t borderStyle: 'solid',\n\t borderColor: '#6c6',\n\t backgroundColor: '#eee'\n\t };\n\t rejectStyle = {\n\t borderStyle: 'solid',\n\t borderColor: '#c66',\n\t backgroundColor: '#eee'\n\t };\n\t }\n\t\n\t var appliedStyle = void 0;\n\t if (activeStyle && isDragActive) {\n\t appliedStyle = _extends({}, style, activeStyle);\n\t } else if (rejectStyle && isDragReject) {\n\t appliedStyle = _extends({}, style, rejectStyle);\n\t } else {\n\t appliedStyle = _extends({}, style);\n\t }\n\t\n\t var inputAttributes = {\n\t accept: accept,\n\t type: 'file',\n\t style: { display: 'none' },\n\t multiple: supportMultiple && multiple,\n\t ref: function ref(el) {\n\t return _this5.fileInputEl = el;\n\t }, // eslint-disable-line\n\t onChange: this.onDrop\n\t };\n\t\n\t if (name && name.length) {\n\t inputAttributes.name = name;\n\t }\n\t\n\t // Remove custom properties before passing them to the wrapper div element\n\t var customProps = ['acceptedFiles', 'preventDropOnDocument', 'disablePreview', 'disableClick', 'onDropAccepted', 'onDropRejected', 'onFileDialogCancel', 'maxSize', 'minSize'];\n\t var divProps = _extends({}, props);\n\t customProps.forEach(function (prop) {\n\t return delete divProps[prop];\n\t });\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t _extends({\n\t className: className,\n\t style: appliedStyle\n\t }, divProps /* expand user provided props first so event handlers are never overridden */, {\n\t onClick: this.onClick,\n\t onDragStart: this.onDragStart,\n\t onDragEnter: this.onDragEnter,\n\t onDragOver: this.onDragOver,\n\t onDragLeave: this.onDragLeave,\n\t onDrop: this.onDrop,\n\t ref: this.setRef\n\t }),\n\t this.renderChildren(children, isDragActive, isDragReject),\n\t _react2.default.createElement('input', _extends({}, inputProps /* expand user provided inputProps first so inputAttributes override them */, inputAttributes))\n\t );\n\t }\n\t }]);\n\t\n\t return Dropzone;\n\t}(_react2.default.Component);\n\t\n\tDropzone.propTypes = {\n\t /**\n\t * Allow specific types of files. See https://github.com/okonet/attr-accept for more information.\n\t * Keep in mind that mime type determination is not reliable accross platforms. CSV files,\n\t * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n\t * Windows. In some cases there might not be a mime type set at all.\n\t * See: https://github.com/okonet/react-dropzone/issues/276\n\t */\n\t accept: _propTypes2.default.string,\n\t\n\t /**\n\t * Contents of the dropzone\n\t */\n\t children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]),\n\t\n\t /**\n\t * Disallow clicking on the dropzone container to open file dialog\n\t */\n\t disableClick: _propTypes2.default.bool,\n\t\n\t /**\n\t * Enable/disable preview generation\n\t */\n\t disablePreview: _propTypes2.default.bool,\n\t\n\t /**\n\t * If false, allow dropped items to take over the current browser window\n\t */\n\t preventDropOnDocument: _propTypes2.default.bool,\n\t\n\t /**\n\t * Pass additional attributes to the `` tag\n\t */\n\t inputProps: _propTypes2.default.object,\n\t\n\t /**\n\t * Allow dropping multiple files\n\t */\n\t multiple: _propTypes2.default.bool,\n\t\n\t /**\n\t * `name` attribute for the input tag\n\t */\n\t name: _propTypes2.default.string,\n\t\n\t /**\n\t * Maximum file size\n\t */\n\t maxSize: _propTypes2.default.number,\n\t\n\t /**\n\t * Minimum file size\n\t */\n\t minSize: _propTypes2.default.number,\n\t\n\t /**\n\t * className\n\t */\n\t className: _propTypes2.default.string,\n\t\n\t /**\n\t * className for accepted state\n\t */\n\t activeClassName: _propTypes2.default.string,\n\t\n\t /**\n\t * className for rejected state\n\t */\n\t rejectClassName: _propTypes2.default.string,\n\t\n\t /**\n\t * CSS styles to apply\n\t */\n\t style: _propTypes2.default.object,\n\t\n\t /**\n\t * CSS styles to apply when drop will be accepted\n\t */\n\t activeStyle: _propTypes2.default.object,\n\t\n\t /**\n\t * CSS styles to apply when drop will be rejected\n\t */\n\t rejectStyle: _propTypes2.default.object,\n\t\n\t /**\n\t * onClick callback\n\t * @param {Event} event\n\t */\n\t onClick: _propTypes2.default.func,\n\t\n\t /**\n\t * onDrop callback\n\t */\n\t onDrop: _propTypes2.default.func,\n\t\n\t /**\n\t * onDropAccepted callback\n\t */\n\t onDropAccepted: _propTypes2.default.func,\n\t\n\t /**\n\t * onDropRejected callback\n\t */\n\t onDropRejected: _propTypes2.default.func,\n\t\n\t /**\n\t * onDragStart callback\n\t */\n\t onDragStart: _propTypes2.default.func,\n\t\n\t /**\n\t * onDragEnter callback\n\t */\n\t onDragEnter: _propTypes2.default.func,\n\t\n\t /**\n\t * onDragOver callback\n\t */\n\t onDragOver: _propTypes2.default.func,\n\t\n\t /**\n\t * onDragLeave callback\n\t */\n\t onDragLeave: _propTypes2.default.func,\n\t\n\t /**\n\t * Provide a callback on clicking the cancel button of the file dialog\n\t */\n\t onFileDialogCancel: _propTypes2.default.func\n\t};\n\t\n\tDropzone.defaultProps = {\n\t preventDropOnDocument: true,\n\t disablePreview: false,\n\t disableClick: false,\n\t multiple: true,\n\t maxSize: Infinity,\n\t minSize: 0\n\t};\n\t\n\texports.default = Dropzone;\n\tmodule.exports = exports['default'];\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t// shim for using process in browser\n\tvar process = module.exports = {};\n\t\n\t// cached from whatever global is present so that test runners that stub it\n\t// don't break things. But we need to wrap it in a try catch in case it is\n\t// wrapped in strict mode code which doesn't define any globals. It's inside a\n\t// function because try/catches deoptimize in certain engines.\n\t\n\tvar cachedSetTimeout;\n\tvar cachedClearTimeout;\n\t\n\tfunction defaultSetTimout() {\n\t throw new Error('setTimeout has not been defined');\n\t}\n\tfunction defaultClearTimeout () {\n\t throw new Error('clearTimeout has not been defined');\n\t}\n\t(function () {\n\t try {\n\t if (typeof setTimeout === 'function') {\n\t cachedSetTimeout = setTimeout;\n\t } else {\n\t cachedSetTimeout = defaultSetTimout;\n\t }\n\t } catch (e) {\n\t cachedSetTimeout = defaultSetTimout;\n\t }\n\t try {\n\t if (typeof clearTimeout === 'function') {\n\t cachedClearTimeout = clearTimeout;\n\t } else {\n\t cachedClearTimeout = defaultClearTimeout;\n\t }\n\t } catch (e) {\n\t cachedClearTimeout = defaultClearTimeout;\n\t }\n\t} ())\n\tfunction runTimeout(fun) {\n\t if (cachedSetTimeout === setTimeout) {\n\t //normal enviroments in sane situations\n\t return setTimeout(fun, 0);\n\t }\n\t // if setTimeout wasn't available but was latter defined\n\t if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n\t cachedSetTimeout = setTimeout;\n\t return setTimeout(fun, 0);\n\t }\n\t try {\n\t // when when somebody has screwed with setTimeout but no I.E. maddness\n\t return cachedSetTimeout(fun, 0);\n\t } catch(e){\n\t try {\n\t // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n\t return cachedSetTimeout.call(null, fun, 0);\n\t } catch(e){\n\t // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n\t return cachedSetTimeout.call(this, fun, 0);\n\t }\n\t }\n\t\n\t\n\t}\n\tfunction runClearTimeout(marker) {\n\t if (cachedClearTimeout === clearTimeout) {\n\t //normal enviroments in sane situations\n\t return clearTimeout(marker);\n\t }\n\t // if clearTimeout wasn't available but was latter defined\n\t if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n\t cachedClearTimeout = clearTimeout;\n\t return clearTimeout(marker);\n\t }\n\t try {\n\t // when when somebody has screwed with setTimeout but no I.E. maddness\n\t return cachedClearTimeout(marker);\n\t } catch (e){\n\t try {\n\t // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n\t return cachedClearTimeout.call(null, marker);\n\t } catch (e){\n\t // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n\t // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n\t return cachedClearTimeout.call(this, marker);\n\t }\n\t }\n\t\n\t\n\t\n\t}\n\tvar queue = [];\n\tvar draining = false;\n\tvar currentQueue;\n\tvar queueIndex = -1;\n\t\n\tfunction cleanUpNextTick() {\n\t if (!draining || !currentQueue) {\n\t return;\n\t }\n\t draining = false;\n\t if (currentQueue.length) {\n\t queue = currentQueue.concat(queue);\n\t } else {\n\t queueIndex = -1;\n\t }\n\t if (queue.length) {\n\t drainQueue();\n\t }\n\t}\n\t\n\tfunction drainQueue() {\n\t if (draining) {\n\t return;\n\t }\n\t var timeout = runTimeout(cleanUpNextTick);\n\t draining = true;\n\t\n\t var len = queue.length;\n\t while(len) {\n\t currentQueue = queue;\n\t queue = [];\n\t while (++queueIndex < len) {\n\t if (currentQueue) {\n\t currentQueue[queueIndex].run();\n\t }\n\t }\n\t queueIndex = -1;\n\t len = queue.length;\n\t }\n\t currentQueue = null;\n\t draining = false;\n\t runClearTimeout(timeout);\n\t}\n\t\n\tprocess.nextTick = function (fun) {\n\t var args = new Array(arguments.length - 1);\n\t if (arguments.length > 1) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t args[i - 1] = arguments[i];\n\t }\n\t }\n\t queue.push(new Item(fun, args));\n\t if (queue.length === 1 && !draining) {\n\t runTimeout(drainQueue);\n\t }\n\t};\n\t\n\t// v8 likes predictible objects\n\tfunction Item(fun, array) {\n\t this.fun = fun;\n\t this.array = array;\n\t}\n\tItem.prototype.run = function () {\n\t this.fun.apply(null, this.array);\n\t};\n\tprocess.title = 'browser';\n\tprocess.browser = true;\n\tprocess.env = {};\n\tprocess.argv = [];\n\tprocess.version = ''; // empty string to avoid regexp issues\n\tprocess.versions = {};\n\t\n\tfunction noop() {}\n\t\n\tprocess.on = noop;\n\tprocess.addListener = noop;\n\tprocess.once = noop;\n\tprocess.off = noop;\n\tprocess.removeListener = noop;\n\tprocess.removeAllListeners = noop;\n\tprocess.emit = noop;\n\t\n\tprocess.binding = function (name) {\n\t throw new Error('process.binding is not supported');\n\t};\n\t\n\tprocess.cwd = function () { return '/' };\n\tprocess.chdir = function (dir) {\n\t throw new Error('process.chdir is not supported');\n\t};\n\tprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\tmodule.exports=function(t){function n(e){if(r[e])return r[e].exports;var o=r[e]={exports:{},id:e,loaded:!1};return t[e].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}var r={};return n.m=t,n.c=r,n.p=\"\",n(0)}([function(t,n,r){\"use strict\";n.__esModule=!0,r(8),r(9),n[\"default\"]=function(t,n){if(t&&n){var r=function(){var r=Array.isArray(n)?n:n.split(\",\"),e=t.name||\"\",o=t.type||\"\",i=o.replace(/\\/.*$/,\"\");return{v:r.some(function(t){var n=t.trim();return\".\"===n.charAt(0)?e.toLowerCase().endsWith(n.toLowerCase()):/\\/\\*$/.test(n)?i===n.replace(/\\/.*$/,\"\"):o===n})}}();if(\"object\"==typeof r)return r.v}return!0},t.exports=n[\"default\"]},function(t,n){var r=t.exports={version:\"1.2.2\"};\"number\"==typeof __e&&(__e=r)},function(t,n){var r=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=r)},function(t,n,r){var e=r(2),o=r(1),i=r(4),u=r(19),c=\"prototype\",f=function(t,n){return function(){return t.apply(n,arguments)}},s=function(t,n,r){var a,p,l,y,d=t&s.G,h=t&s.P,v=d?e:t&s.S?e[n]||(e[n]={}):(e[n]||{})[c],x=d?o:o[n]||(o[n]={});d&&(r=n);for(a in r)p=!(t&s.F)&&v&&a in v,l=(p?v:r)[a],y=t&s.B&&p?f(l,e):h&&\"function\"==typeof l?f(Function.call,l):l,v&&!p&&u(v,a,l),x[a]!=l&&i(x,a,y),h&&((x[c]||(x[c]={}))[a]=l)};e.core=o,s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,t.exports=s},function(t,n,r){var e=r(5),o=r(18);t.exports=r(22)?function(t,n,r){return e.setDesc(t,n,o(1,r))}:function(t,n,r){return t[n]=r,t}},function(t,n){var r=Object;t.exports={create:r.create,getProto:r.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:r.getOwnPropertyDescriptor,setDesc:r.defineProperty,setDescs:r.defineProperties,getKeys:r.keys,getNames:r.getOwnPropertyNames,getSymbols:r.getOwnPropertySymbols,each:[].forEach}},function(t,n){var r=0,e=Math.random();t.exports=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++r+e).toString(36))}},function(t,n,r){var e=r(20)(\"wks\"),o=r(2).Symbol;t.exports=function(t){return e[t]||(e[t]=o&&o[t]||(o||r(6))(\"Symbol.\"+t))}},function(t,n,r){r(26),t.exports=r(1).Array.some},function(t,n,r){r(25),t.exports=r(1).String.endsWith},function(t,n){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(t+\" is not a function!\");return t}},function(t,n){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},function(t,n,r){var e=r(10);t.exports=function(t,n,r){if(e(t),void 0===n)return t;switch(r){case 1:return function(r){return t.call(n,r)};case 2:return function(r,e){return t.call(n,r,e)};case 3:return function(r,e,o){return t.call(n,r,e,o)}}return function(){return t.apply(n,arguments)}}},function(t,n){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,n,r){t.exports=function(t){var n=/./;try{\"/./\"[t](n)}catch(e){try{return n[r(7)(\"match\")]=!1,!\"/./\"[t](n)}catch(o){}}return!0}},function(t,n){t.exports=function(t){try{return!!t()}catch(n){return!0}}},function(t,n){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,n,r){var e=r(16),o=r(11),i=r(7)(\"match\");t.exports=function(t){var n;return e(t)&&(void 0!==(n=t[i])?!!n:\"RegExp\"==o(t))}},function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},function(t,n,r){var e=r(2),o=r(4),i=r(6)(\"src\"),u=\"toString\",c=Function[u],f=(\"\"+c).split(u);r(1).inspectSource=function(t){return c.call(t)},(t.exports=function(t,n,r,u){\"function\"==typeof r&&(o(r,i,t[n]?\"\"+t[n]:f.join(String(n))),\"name\"in r||(r.name=n)),t===e?t[n]=r:(u||delete t[n],o(t,n,r))})(Function.prototype,u,function(){return\"function\"==typeof this&&this[i]||c.call(this)})},function(t,n,r){var e=r(2),o=\"__core-js_shared__\",i=e[o]||(e[o]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,n,r){var e=r(17),o=r(13);t.exports=function(t,n,r){if(e(n))throw TypeError(\"String#\"+r+\" doesn't accept regex!\");return String(o(t))}},function(t,n,r){t.exports=!r(15)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(t,n){var r=Math.ceil,e=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?e:r)(t)}},function(t,n,r){var e=r(23),o=Math.min;t.exports=function(t){return t>0?o(e(t),9007199254740991):0}},function(t,n,r){\"use strict\";var e=r(3),o=r(24),i=r(21),u=\"endsWith\",c=\"\"[u];e(e.P+e.F*r(14)(u),\"String\",{endsWith:function(t){var n=i(this,t,u),r=arguments,e=r.length>1?r[1]:void 0,f=o(n.length),s=void 0===e?f:Math.min(o(e),f),a=String(t);return c?c.call(n,a,s):n.slice(s-a.length,s)===a}})},function(t,n,r){var e=r(5),o=r(3),i=r(1).Array||Array,u={},c=function(t,n){e.each.call(t.split(\",\"),function(t){void 0==n&&t in i?u[t]=i[t]:t in[]&&(u[t]=r(12)(Function.call,[][t],n))})};c(\"pop,reverse,shift,keys,values,entries\",1),c(\"indexOf,every,some,forEach,map,filter,find,findIndex,includes\",3),c(\"join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill\"),o(o.S,\"Array\",u)}]);\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = getDataTransferFiles;\n\tfunction getDataTransferFiles(event) {\n\t var dataTransferItemsList = [];\n\t if (event.dataTransfer) {\n\t var dt = event.dataTransfer;\n\t if (dt.files && dt.files.length) {\n\t dataTransferItemsList = dt.files;\n\t } else if (dt.items && dt.items.length) {\n\t // During the drag even the dataTransfer.files is null\n\t // but Chrome implements some drag store, which is accesible via dataTransfer.items\n\t dataTransferItemsList = dt.items;\n\t }\n\t } else if (event.target && event.target.files) {\n\t dataTransferItemsList = event.target.files;\n\t }\n\t // Convert from DataTransferItemsList to the native Array\n\t return Array.prototype.slice.call(dataTransferItemsList);\n\t}\n\tmodule.exports = exports[\"default\"];\n\n/***/ })\n/******/ ])\n});\n;\n\n\n/***/ }),\n/* 795 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/** @license React v16.8.4\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\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 argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 796 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/** @license React v16.8.4\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nObject.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n\n\n/***/ }),\n/* 797 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(802);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _resizeObserverPolyfill = __webpack_require__(947);\n\nvar _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill);\n\nvar _lodash = __webpack_require__(645);\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _lodash3 = __webpack_require__(650);\n\nvar _lodash4 = _interopRequireDefault(_lodash3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar listMode = { debounce: _lodash2.default, throttle: _lodash4.default };\n\nvar styles = {\n position: 'absolute',\n width: 0,\n height: 0,\n visibility: 'hidden',\n display: 'none'\n};\n\nvar ResizeDetector = function (_PureComponent) {\n _inherits(ResizeDetector, _PureComponent);\n\n function ResizeDetector(props) {\n _classCallCheck(this, ResizeDetector);\n\n var _this = _possibleConstructorReturn(this, (ResizeDetector.__proto__ || Object.getPrototypeOf(ResizeDetector)).call(this, props));\n\n _this.createResizeObserver = function (entries) {\n var _this$props = _this.props,\n handleWidth = _this$props.handleWidth,\n handleHeight = _this$props.handleHeight,\n onResize = _this$props.onResize;\n\n entries.forEach(function (entry) {\n var _entry$contentRect = entry.contentRect,\n width = _entry$contentRect.width,\n height = _entry$contentRect.height;\n\n var notifyWidth = handleWidth && _this.width !== width;\n var notifyHeight = handleHeight && _this.height !== height;\n if (!_this.skipOnMount && (notifyWidth || notifyHeight)) {\n onResize(width, height);\n }\n _this.width = width;\n _this.height = height;\n _this.skipOnMount = false;\n });\n };\n\n var skipOnMount = props.skipOnMount,\n refreshMode = props.refreshMode,\n refreshRate = props.refreshRate;\n\n\n _this.width = undefined;\n _this.height = undefined;\n _this.skipOnMount = skipOnMount;\n\n var resizeObserver = listMode[refreshMode] && listMode[refreshMode](_this.createResizeObserver, refreshRate) || _this.createResizeObserver;\n\n _this.ro = new _resizeObserverPolyfill2.default(resizeObserver);\n return _this;\n }\n\n _createClass(ResizeDetector, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var resizableElementId = this.props.resizableElementId;\n\n var resizableElement = resizableElementId ? document.getElementById(resizableElementId) : this.el.parentElement;\n this.ro.observe(resizableElement);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n var resizableElementId = this.props.resizableElementId;\n\n var resizableElement = resizableElementId ? document.getElementById(resizableElementId) : this.el.parentElement;\n this.ro.unobserve(resizableElement);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n return _react2.default.createElement('div', {\n style: styles,\n ref: function ref(el) {\n _this2.el = el;\n }\n });\n }\n }]);\n\n return ResizeDetector;\n}(_react.PureComponent);\n\nexports.default = ResizeDetector;\n\n\nResizeDetector.propTypes = {\n handleWidth: _propTypes2.default.bool,\n handleHeight: _propTypes2.default.bool,\n skipOnMount: _propTypes2.default.bool,\n refreshRate: _propTypes2.default.number,\n refreshMode: _propTypes2.default.string,\n resizableElementId: _propTypes2.default.string,\n onResize: _propTypes2.default.func\n};\n\nResizeDetector.defaultProps = {\n handleWidth: false,\n handleHeight: false,\n skipOnMount: false,\n refreshRate: 1000,\n refreshMode: undefined,\n resizableElementId: '',\n onResize: function onResize(e) {\n return e;\n }\n};\n\n/***/ }),\n/* 798 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ResizeDetector = __webpack_require__(797);\n\nvar _ResizeDetector2 = _interopRequireDefault(_ResizeDetector);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _ResizeDetector2.default;\n\n/***/ }),\n/* 799 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = __webpack_require__(214);\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 800 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = __webpack_require__(214);\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n/***/ }),\n/* 801 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactIs = __webpack_require__(33);\nvar assign = __webpack_require__(94);\n\nvar ReactPropTypesSecret = __webpack_require__(214);\nvar checkPropTypes = __webpack_require__(799);\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 802 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = __webpack_require__(33);\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(801)(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = __webpack_require__(800)();\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 803 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_transition_group__ = __webpack_require__(386);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_transition_group___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react_transition_group__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(215);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__AnimateGroupChild__ = __webpack_require__(804);\n\n\n\n\n\nfunction AnimateGroup(props) {\n var component = props.component,\n children = props.children,\n appear = props.appear,\n enter = props.enter,\n leave = props.leave;\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_transition_group__[\"TransitionGroup\"], {\n component: component\n }, __WEBPACK_IMPORTED_MODULE_0_react__[\"Children\"].map(children, function (child, index) {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__AnimateGroupChild__[\"a\" /* default */], {\n appearOptions: appear,\n enterOptions: enter,\n leaveOptions: leave,\n key: \"child-\".concat(index)\n }, child);\n }));\n}\n\nAnimateGroup.propTypes = {\n appear: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object,\n enter: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object,\n leave: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object,\n children: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.array, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.element]),\n component: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.any\n};\nAnimateGroup.defaultProps = {\n component: 'span'\n};\n/* unused harmony default export */ var _unused_webpack_default_export = (AnimateGroup);\n\n/***/ }),\n/* 804 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isNumber__ = __webpack_require__(132);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isNumber___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isNumber__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_transition_group__ = __webpack_require__(386);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_transition_group___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react_transition_group__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(215);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Animate__ = __webpack_require__(384);\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\nvar parseDurationOfSingleTransition = function parseDurationOfSingleTransition() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var steps = options.steps,\n duration = options.duration;\n\n if (steps && steps.length) {\n return steps.reduce(function (result, entry) {\n return result + (__WEBPACK_IMPORTED_MODULE_0_lodash_isNumber___default()(entry.duration) && entry.duration > 0 ? entry.duration : 0);\n }, 0);\n }\n\n if (__WEBPACK_IMPORTED_MODULE_0_lodash_isNumber___default()(duration)) {\n return duration;\n }\n\n return 0;\n};\n\nvar AnimateGroupChild =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(AnimateGroupChild, _Component);\n\n function AnimateGroupChild() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, AnimateGroupChild);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(AnimateGroupChild)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isActive: false\n };\n\n _this.handleEnter = function (node, isAppearing) {\n var _this$props = _this.props,\n appearOptions = _this$props.appearOptions,\n enterOptions = _this$props.enterOptions;\n\n _this.handleStyleActive(isAppearing ? appearOptions : enterOptions);\n };\n\n _this.handleExit = function () {\n _this.handleStyleActive(_this.props.leaveOptions);\n };\n\n return _this;\n }\n\n _createClass(AnimateGroupChild, [{\n key: \"handleStyleActive\",\n value: function handleStyleActive(style) {\n if (style) {\n var onAnimationEnd = style.onAnimationEnd ? function () {\n style.onAnimationEnd();\n } : null;\n this.setState(_objectSpread({}, style, {\n onAnimationEnd: onAnimationEnd,\n isActive: true\n }));\n }\n }\n }, {\n key: \"parseTimeout\",\n value: function parseTimeout() {\n var _this$props2 = this.props,\n appearOptions = _this$props2.appearOptions,\n enterOptions = _this$props2.enterOptions,\n leaveOptions = _this$props2.leaveOptions;\n return parseDurationOfSingleTransition(appearOptions) + parseDurationOfSingleTransition(enterOptions) + parseDurationOfSingleTransition(leaveOptions);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n children = _this$props3.children,\n appearOptions = _this$props3.appearOptions,\n enterOptions = _this$props3.enterOptions,\n leaveOptions = _this$props3.leaveOptions,\n props = _objectWithoutProperties(_this$props3, [\"children\", \"appearOptions\", \"enterOptions\", \"leaveOptions\"]);\n\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2_react_transition_group__[\"Transition\"], _extends({}, props, {\n onEnter: this.handleEnter,\n onExit: this.handleExit,\n timeout: this.parseTimeout()\n }), function () {\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__Animate__[\"a\" /* default */], _this2.state, __WEBPACK_IMPORTED_MODULE_1_react__[\"Children\"].only(children));\n });\n }\n }]);\n\n return AnimateGroupChild;\n}(__WEBPACK_IMPORTED_MODULE_1_react__[\"Component\"]);\n\nAnimateGroupChild.propTypes = {\n appearOptions: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n enterOptions: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n leaveOptions: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.element\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = (AnimateGroupChild);\n\n/***/ }),\n/* 805 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = createAnimateManager;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__setRafTimeout__ = __webpack_require__(808);\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n\nfunction createAnimateManager() {\n var currStyle = {};\n\n var handleChange = function handleChange() {\n return null;\n };\n\n var shouldStop = false;\n\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n\n var styles = _style;\n\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n\n if (typeof curr === 'number') {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__setRafTimeout__[\"a\" /* default */])(setStyle.bind(null, restStyles), curr);\n return;\n }\n\n setStyle(curr);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__setRafTimeout__[\"a\" /* default */])(setStyle.bind(null, restStyles));\n return;\n }\n\n if (_typeof(_style) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n\n if (typeof _style === 'function') {\n _style();\n }\n };\n\n return {\n stop: function stop() {\n shouldStop = true;\n },\n start: function start(style) {\n shouldStop = false;\n setStyle(style);\n },\n subscribe: function subscribe(_handleChange) {\n handleChange = _handleChange;\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}\n\n/***/ }),\n/* 806 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export shallowEqual */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isPlainObject__ = __webpack_require__(133);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isPlainObject___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isPlainObject__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isEqual__ = __webpack_require__(22);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isEqual___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_isEqual__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isArray__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_isArray__);\n\n\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (_typeof(objA) !== 'object' || objA === null || _typeof(objB) !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = hasOwnProperty.bind(objB);\n\n for (var i = 0; i < keysA.length; i++) {\n var keyA = keysA[i];\n\n if (objA[keyA] === objB[keyA]) {\n continue;\n } // special diff with Array or Object\n\n\n if (__WEBPACK_IMPORTED_MODULE_2_lodash_isArray___default()(objA[keyA])) {\n if (!__WEBPACK_IMPORTED_MODULE_2_lodash_isArray___default()(objB[keyA]) || objA[keyA].length !== objB[keyA].length) {\n return false;\n } else if (!__WEBPACK_IMPORTED_MODULE_1_lodash_isEqual___default()(objA[keyA], objB[keyA])) {\n return false;\n }\n } else if (__WEBPACK_IMPORTED_MODULE_0_lodash_isPlainObject___default()(objA[keyA])) {\n if (!__WEBPACK_IMPORTED_MODULE_0_lodash_isPlainObject___default()(objB[keyA]) || !__WEBPACK_IMPORTED_MODULE_1_lodash_isEqual___default()(objA[keyA], objB[keyA])) {\n return false;\n }\n } else if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shallowCompare(instance, nextProps, nextState) {\n return !shallowEqual(instance.props, nextProps) || !shallowEqual(instance.state, nextState);\n}\n\nfunction shouldComponentUpdate(nextProps, nextState) {\n return shallowCompare(this, nextProps, nextState);\n}\n/* eslint-disable no-param-reassign */\n\n\nfunction pureRenderDecorator(component) {\n component.prototype.shouldComponentUpdate = shouldComponentUpdate;\n}\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (pureRenderDecorator);\n\n/***/ }),\n/* 807 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_filter__ = __webpack_require__(762);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_filter___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_filter__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_raf__ = __webpack_require__(382);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_raf___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_raf__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util__ = __webpack_require__(137);\n\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n\n\n\nvar alpha = function alpha(begin, end, k) {\n return begin + (end - begin) * k;\n};\n\nvar needContinue = function needContinue(_ref) {\n var from = _ref.from,\n to = _ref.to;\n return from !== to;\n};\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\n\n\nvar calStepperVals = function calStepperVals(easing, preVals, steps) {\n var nextStepVals = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"e\" /* mapObject */])(function (key, val) {\n if (needContinue(val)) {\n var _easing = easing(val.from, val.to, val.velocity),\n _easing2 = _slicedToArray(_easing, 2),\n newX = _easing2[0],\n newV = _easing2[1];\n\n return _objectSpread({}, val, {\n from: newX,\n velocity: newV\n });\n }\n\n return val;\n }, preVals);\n\n if (steps < 1) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"e\" /* mapObject */])(function (key, val) {\n if (needContinue(val)) {\n return _objectSpread({}, val, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n\n return val;\n }, preVals);\n }\n\n return calStepperVals(easing, nextStepVals, steps - 1);\n}; // configure update function\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (from, to, easing, duration, render) {\n var interKeys = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"f\" /* getIntersectionKeys */])(from, to);\n var timingStyle = interKeys.reduce(function (res, key) {\n return _objectSpread({}, res, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _objectSpread({}, res, _defineProperty({}, key, {\n from: from[key],\n velocity: 0,\n to: to[key]\n }));\n }, {});\n var cafId = -1;\n var preTime;\n var beginTime;\n\n var update = function update() {\n return null;\n };\n\n var getCurrStyle = function getCurrStyle() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"e\" /* mapObject */])(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n\n var shouldStopAnimation = function shouldStopAnimation() {\n return !__WEBPACK_IMPORTED_MODULE_0_lodash_filter___default()(stepperStyle, needContinue).length;\n }; // stepper timing function like spring\n\n\n var stepperUpdate = function stepperUpdate(now) {\n if (!preTime) {\n preTime = now;\n }\n\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps); // get union set and add compatible prefix\n\n render(_objectSpread({}, from, to, getCurrStyle(stepperStyle)));\n preTime = now;\n\n if (!shouldStopAnimation()) {\n cafId = __WEBPACK_IMPORTED_MODULE_1_raf___default()(update);\n }\n }; // t => val timing function like cubic-bezier\n\n\n var timingUpdate = function timingUpdate(now) {\n if (!beginTime) {\n beginTime = now;\n }\n\n var t = (now - beginTime) / duration;\n var currStyle = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"e\" /* mapObject */])(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(t)]));\n }, timingStyle); // get union set and add compatible prefix\n\n render(_objectSpread({}, from, to, currStyle));\n\n if (t < 1) {\n cafId = __WEBPACK_IMPORTED_MODULE_1_raf___default()(update);\n } else {\n var finalStyle = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"e\" /* mapObject */])(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(1)]));\n }, timingStyle);\n render(_objectSpread({}, from, to, finalStyle));\n }\n };\n\n update = easing.isStepper ? stepperUpdate : timingUpdate; // return start animation method\n\n return function () {\n __WEBPACK_IMPORTED_MODULE_1_raf___default()(update); // return stop animation method\n\n return function () {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_raf__[\"cancel\"])(cafId);\n };\n };\n});\n\n/***/ }),\n/* 808 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = setRafTimeout;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_raf__ = __webpack_require__(382);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_raf___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_raf__);\n\nfunction setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var currTime = -1;\n\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n __WEBPACK_IMPORTED_MODULE_0_raf___default()(shouldUpdate);\n }\n };\n\n __WEBPACK_IMPORTED_MODULE_0_raf___default()(shouldUpdate);\n}\n\n/***/ }),\n/* 809 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = __webpack_require__(216);\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 810 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = __webpack_require__(216);\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n/***/ }),\n/* 811 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactIs = __webpack_require__(33);\nvar assign = __webpack_require__(94);\n\nvar ReactPropTypesSecret = __webpack_require__(216);\nvar checkPropTypes = __webpack_require__(809);\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 812 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar PropTypes = _interopRequireWildcard(__webpack_require__(95));\n\nvar _addClass = _interopRequireDefault(__webpack_require__(639));\n\nvar _removeClass = _interopRequireDefault(__webpack_require__(641));\n\nvar _react = _interopRequireDefault(__webpack_require__(0));\n\nvar _Transition = _interopRequireDefault(__webpack_require__(217));\n\nvar _PropTypes = __webpack_require__(387);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 813 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(95));\n\nvar _react = _interopRequireDefault(__webpack_require__(0));\n\nvar _reactDom = __webpack_require__(5);\n\nvar _TransitionGroup = _interopRequireDefault(__webpack_require__(218));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
I appear first
\n *
I replace the above
\n *
\n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 814 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = __webpack_require__(219);\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 815 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = __webpack_require__(219);\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n/***/ }),\n/* 816 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactIs = __webpack_require__(33);\nvar assign = __webpack_require__(94);\n\nvar ReactPropTypesSecret = __webpack_require__(219);\nvar checkPropTypes = __webpack_require__(814);\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 817 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = __webpack_require__(0);\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}\n\n/***/ }),\n/* 818 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _get = __webpack_require__(113)['default'];\n\nvar _inherits = __webpack_require__(114)['default'];\n\nvar _createClass = __webpack_require__(112)['default'];\n\nvar _classCallCheck = __webpack_require__(111)['default'];\n\nvar _Object$keys = __webpack_require__(509)['default'];\n\nvar _Object$assign = __webpack_require__(170)['default'];\n\nvar _interopRequireDefault = __webpack_require__(115)['default'];\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _shallowequal = __webpack_require__(948);\n\nvar _shallowequal2 = _interopRequireDefault(_shallowequal);\n\nvar _deepEqual = __webpack_require__(636);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar NodeHeader = (function (_React$Component) {\n _inherits(NodeHeader, _React$Component);\n\n function NodeHeader(props) {\n _classCallCheck(this, NodeHeader);\n\n _get(Object.getPrototypeOf(NodeHeader.prototype), 'constructor', this).call(this, props);\n }\n\n _createClass(NodeHeader, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var props = this.props;\n var nextPropKeys = _Object$keys(nextProps);\n for (var i = 0; i < nextPropKeys.length; i++) {\n var key = nextPropKeys[i];\n if (key === 'animations') {\n continue;\n }\n var isEqual = (0, _shallowequal2['default'])(props[key], nextProps[key]);\n if (!isEqual) {\n return true;\n }\n }\n return !(0, _deepEqual2['default'])(props.animations, nextProps.animations, { strict: true });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props;\n var style = _props.style;\n var decorators = _props.decorators;\n\n var terminal = !this.props.node.children;\n var active = this.props.node.active;\n var container = [style.link, active ? style.activeLink : null];\n var headerStyles = _Object$assign({ container: container }, this.props.style);\n return _react2['default'].createElement(decorators.Container, {\n style: headerStyles,\n decorators: decorators,\n terminal: terminal,\n onClick: this.props.onClick,\n animations: this.props.animations,\n node: this.props.node\n });\n }\n }]);\n\n return NodeHeader;\n})(_react2['default'].Component);\n\nNodeHeader.propTypes = {\n style: _react2['default'].PropTypes.object.isRequired,\n decorators: _react2['default'].PropTypes.object.isRequired,\n animations: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.object, _react2['default'].PropTypes.bool]).isRequired,\n node: _react2['default'].PropTypes.object.isRequired,\n onClick: _react2['default'].PropTypes.func\n};\n\nexports['default'] = NodeHeader;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 819 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _get = __webpack_require__(113)['default'];\n\nvar _inherits = __webpack_require__(114)['default'];\n\nvar _createClass = __webpack_require__(112)['default'];\n\nvar _classCallCheck = __webpack_require__(111)['default'];\n\nvar _extends = __webpack_require__(511)['default'];\n\nvar _Object$assign = __webpack_require__(170)['default'];\n\nvar _interopRequireDefault = __webpack_require__(115)['default'];\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _velocityReact = __webpack_require__(428);\n\nvar _header = __webpack_require__(818);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar TreeNode = (function (_React$Component) {\n _inherits(TreeNode, _React$Component);\n\n function TreeNode(props) {\n _classCallCheck(this, TreeNode);\n\n _get(Object.getPrototypeOf(TreeNode.prototype), 'constructor', this).call(this, props);\n this.onClick = this.onClick.bind(this);\n }\n\n _createClass(TreeNode, [{\n key: 'onClick',\n value: function onClick() {\n var toggled = !this.props.node.toggled;\n var onToggle = this.props.onToggle;\n if (onToggle) {\n onToggle(this.props.node, toggled);\n }\n }\n }, {\n key: 'animations',\n value: function animations() {\n var props = this.props;\n if (props.animations === false) {\n return false;\n }\n var anim = _Object$assign({}, props.animations, props.node.animations);\n return {\n toggle: anim.toggle(this.props),\n drawer: anim.drawer(this.props)\n };\n }\n }, {\n key: 'decorators',\n value: function decorators() {\n // Merge Any Node Based Decorators Into The Pack\n var props = this.props;\n var nodeDecorators = props.node.decorators || {};\n return _Object$assign({}, props.decorators, nodeDecorators);\n }\n }, {\n key: 'render',\n value: function render() {\n var decorators = this.decorators();\n var animations = this.animations();\n return _react2['default'].createElement(\n 'li',\n { style: this.props.style.base, ref: 'topLevel' },\n this.renderHeader(decorators, animations),\n this.renderDrawer(decorators, animations)\n );\n }\n }, {\n key: 'renderDrawer',\n value: function renderDrawer(decorators, animations) {\n var toggled = this.props.node.toggled;\n if (!animations && !toggled) {\n return null;\n }\n if (!animations && toggled) {\n return this.renderChildren(decorators, animations);\n }\n return _react2['default'].createElement(\n _velocityReact.VelocityTransitionGroup,\n _extends({}, animations.drawer, { ref: 'velocity' }),\n toggled ? this.renderChildren(decorators, animations) : null\n );\n }\n }, {\n key: 'renderHeader',\n value: function renderHeader(decorators, animations) {\n return _react2['default'].createElement(_header2['default'], {\n decorators: decorators,\n animations: animations,\n style: this.props.style,\n node: _Object$assign({}, this.props.node),\n onClick: this.onClick\n });\n }\n }, {\n key: 'renderChildren',\n value: function renderChildren(decorators) {\n var _this = this;\n\n if (this.props.node.loading) {\n return this.renderLoading(decorators);\n }\n var children = this.props.node.children;\n if (!Array.isArray(children)) {\n children = children ? [children] : [];\n }\n return _react2['default'].createElement(\n 'ul',\n { style: this.props.style.subtree, ref: 'subtree' },\n children.map(function (child, index) {\n return _react2['default'].createElement(TreeNode, _extends({}, _this._eventBubbles(), {\n key: child.id || index,\n node: child,\n decorators: _this.props.decorators,\n animations: _this.props.animations,\n style: _this.props.style\n }));\n })\n );\n }\n }, {\n key: 'renderLoading',\n value: function renderLoading(decorators) {\n return _react2['default'].createElement(\n 'ul',\n { style: this.props.style.subtree },\n _react2['default'].createElement(\n 'li',\n null,\n _react2['default'].createElement(decorators.Loading, { style: this.props.style.loading })\n )\n );\n }\n }, {\n key: '_eventBubbles',\n value: function _eventBubbles() {\n return { onToggle: this.props.onToggle };\n }\n }]);\n\n return TreeNode;\n})(_react2['default'].Component);\n\nTreeNode.propTypes = {\n style: _react2['default'].PropTypes.object.isRequired,\n node: _react2['default'].PropTypes.object.isRequired,\n decorators: _react2['default'].PropTypes.object.isRequired,\n animations: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.object, _react2['default'].PropTypes.bool]).isRequired,\n onToggle: _react2['default'].PropTypes.func\n};\n\nexports['default'] = TreeNode;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 820 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _get = __webpack_require__(113)['default'];\n\nvar _inherits = __webpack_require__(114)['default'];\n\nvar _createClass = __webpack_require__(112)['default'];\n\nvar _classCallCheck = __webpack_require__(111)['default'];\n\nvar _interopRequireDefault = __webpack_require__(115)['default'];\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _node = __webpack_require__(819);\n\nvar _node2 = _interopRequireDefault(_node);\n\nvar _decorators = __webpack_require__(389);\n\nvar _decorators2 = _interopRequireDefault(_decorators);\n\nvar _themesDefault = __webpack_require__(391);\n\nvar _themesDefault2 = _interopRequireDefault(_themesDefault);\n\nvar _themesAnimations = __webpack_require__(390);\n\nvar _themesAnimations2 = _interopRequireDefault(_themesAnimations);\n\nvar TreeBeard = (function (_React$Component) {\n _inherits(TreeBeard, _React$Component);\n\n function TreeBeard(props) {\n _classCallCheck(this, TreeBeard);\n\n _get(Object.getPrototypeOf(TreeBeard.prototype), 'constructor', this).call(this, props);\n }\n\n _createClass(TreeBeard, [{\n key: 'render',\n value: function render() {\n var _this = this;\n\n var data = this.props.data;\n // Support Multiple Root Nodes. Its not formally a tree, but its a use-case.\n if (!Array.isArray(data)) {\n data = [data];\n }\n return _react2['default'].createElement(\n 'ul',\n { style: this.props.style.tree.base, ref: 'treeBase' },\n data.map(function (node, index) {\n return _react2['default'].createElement(_node2['default'], {\n key: node.id || index,\n node: node,\n onToggle: _this.props.onToggle,\n animations: _this.props.animations,\n decorators: _this.props.decorators,\n style: _this.props.style.tree.node\n });\n })\n );\n }\n }]);\n\n return TreeBeard;\n})(_react2['default'].Component);\n\nTreeBeard.propTypes = {\n style: _react2['default'].PropTypes.object,\n data: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.object, _react2['default'].PropTypes.array]).isRequired,\n animations: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.object, _react2['default'].PropTypes.bool]),\n onToggle: _react2['default'].PropTypes.func,\n decorators: _react2['default'].PropTypes.object\n};\n\nTreeBeard.defaultProps = {\n style: _themesDefault2['default'],\n animations: _themesAnimations2['default'],\n decorators: _decorators2['default']\n};\n\nexports['default'] = TreeBeard;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 821 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = {\n Treebeard: __webpack_require__(820),\n decorators: __webpack_require__(389),\n animations: __webpack_require__(390),\n theme: __webpack_require__(391)\n};\n\n/***/ }),\n/* 822 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n// special flexbox specifications\n\n\nvar _prefixAll2 = __webpack_require__(843);\n\nvar _prefixAll3 = _interopRequireDefault(_prefixAll2);\n\nvar _getBrowserInformation = __webpack_require__(844);\n\nvar _getBrowserInformation2 = _interopRequireDefault(_getBrowserInformation);\n\nvar _getPrefixedKeyframes = __webpack_require__(845);\n\nvar _getPrefixedKeyframes2 = _interopRequireDefault(_getPrefixedKeyframes);\n\nvar _capitalizeString = __webpack_require__(220);\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nvar _sortPrefixedStyle = __webpack_require__(393);\n\nvar _sortPrefixedStyle2 = _interopRequireDefault(_sortPrefixedStyle);\n\nvar _prefixProps = __webpack_require__(833);\n\nvar _prefixProps2 = _interopRequireDefault(_prefixProps);\n\nvar _position = __webpack_require__(829);\n\nvar _position2 = _interopRequireDefault(_position);\n\nvar _calc = __webpack_require__(823);\n\nvar _calc2 = _interopRequireDefault(_calc);\n\nvar _zoomCursor = __webpack_require__(832);\n\nvar _zoomCursor2 = _interopRequireDefault(_zoomCursor);\n\nvar _grabCursor = __webpack_require__(827);\n\nvar _grabCursor2 = _interopRequireDefault(_grabCursor);\n\nvar _flex = __webpack_require__(824);\n\nvar _flex2 = _interopRequireDefault(_flex);\n\nvar _sizing = __webpack_require__(830);\n\nvar _sizing2 = _interopRequireDefault(_sizing);\n\nvar _gradient = __webpack_require__(828);\n\nvar _gradient2 = _interopRequireDefault(_gradient);\n\nvar _transition = __webpack_require__(831);\n\nvar _transition2 = _interopRequireDefault(_transition);\n\nvar _flexboxIE = __webpack_require__(825);\n\nvar _flexboxIE2 = _interopRequireDefault(_flexboxIE);\n\nvar _flexboxOld = __webpack_require__(826);\n\nvar _flexboxOld2 = _interopRequireDefault(_flexboxOld);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar plugins = [_position2.default, _calc2.default, _zoomCursor2.default, _grabCursor2.default, _sizing2.default, _gradient2.default, _transition2.default, _flexboxIE2.default, _flexboxOld2.default,\n// this must be run AFTER the flexbox specs\n_flex2.default];\n\nvar Prefixer = function () {\n /**\n * Instantiante a new prefixer\n * @param {string} userAgent - userAgent to gather prefix information according to caniuse.com\n * @param {string} keepUnprefixed - keeps unprefixed properties and values\n */\n\n function Prefixer() {\n var _this = this;\n\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n _classCallCheck(this, Prefixer);\n\n var defaultUserAgent = typeof navigator !== 'undefined' ? navigator.userAgent : undefined;\n\n this._userAgent = options.userAgent || defaultUserAgent;\n this._keepUnprefixed = options.keepUnprefixed || false;\n\n this._browserInfo = (0, _getBrowserInformation2.default)(this._userAgent);\n\n // Checks if the userAgent was resolved correctly\n if (this._browserInfo && this._browserInfo.prefix) {\n // set additional prefix information\n this.cssPrefix = this._browserInfo.prefix.css;\n this.jsPrefix = this._browserInfo.prefix.inline;\n this.prefixedKeyframes = (0, _getPrefixedKeyframes2.default)(this._browserInfo);\n } else {\n this._usePrefixAllFallback = true;\n return false;\n }\n\n var data = this._browserInfo.browser && _prefixProps2.default[this._browserInfo.browser];\n if (data) {\n this._requiresPrefix = Object.keys(data).filter(function (key) {\n return data[key] >= _this._browserInfo.version;\n }).reduce(function (result, name) {\n result[name] = true;\n return result;\n }, {});\n this._hasPropsRequiringPrefix = Object.keys(this._requiresPrefix).length > 0;\n } else {\n this._usePrefixAllFallback = true;\n }\n }\n\n /**\n * Returns a prefixed version of the style object\n * @param {Object} styles - Style object that gets prefixed properties added\n * @returns {Object} - Style object with prefixed properties and values\n */\n\n\n _createClass(Prefixer, [{\n key: 'prefix',\n value: function prefix(styles) {\n var _this2 = this;\n\n // use prefixAll as fallback if userAgent can not be resolved\n if (this._usePrefixAllFallback) {\n return (0, _prefixAll3.default)(styles);\n }\n\n // only add prefixes if needed\n if (!this._hasPropsRequiringPrefix) {\n return styles;\n }\n\n Object.keys(styles).forEach(function (property) {\n var value = styles[property];\n if (value instanceof Object && !Array.isArray(value)) {\n // recurse through nested style objects\n styles[property] = _this2.prefix(value);\n } else {\n // add prefixes if needed\n if (_this2._requiresPrefix[property]) {\n styles[_this2.jsPrefix + (0, _capitalizeString2.default)(property)] = value;\n if (!_this2._keepUnprefixed) {\n delete styles[property];\n }\n }\n }\n });\n\n Object.keys(styles).forEach(function (property) {\n [].concat(styles[property]).forEach(function (value) {\n // resolve plugins\n plugins.forEach(function (plugin) {\n // generates a new plugin interface with current data\n assignStyles(styles, plugin({\n property: property,\n value: value,\n styles: styles,\n browserInfo: _this2._browserInfo,\n prefix: {\n js: _this2.jsPrefix,\n css: _this2.cssPrefix,\n keyframes: _this2.prefixedKeyframes\n },\n keepUnprefixed: _this2._keepUnprefixed,\n requiresPrefix: _this2._requiresPrefix\n }), value, _this2._keepUnprefixed);\n });\n });\n });\n\n return (0, _sortPrefixedStyle2.default)(styles);\n }\n\n /**\n * Returns a prefixed version of the style object using all vendor prefixes\n * @param {Object} styles - Style object that gets prefixed properties added\n * @returns {Object} - Style object with prefixed properties and values\n */\n\n }], [{\n key: 'prefixAll',\n value: function prefixAll(styles) {\n return (0, _prefixAll3.default)(styles);\n }\n }]);\n\n return Prefixer;\n}();\n\nexports.default = Prefixer;\n\n\nfunction assignStyles(base) {\n var extend = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n var value = arguments[2];\n var keepUnprefixed = arguments[3];\n\n Object.keys(extend).forEach(function (property) {\n var baseValue = base[property];\n if (Array.isArray(baseValue)) {\n [].concat(extend[property]).forEach(function (val) {\n if (base[property].indexOf(val) === -1) {\n base[property].splice(baseValue.indexOf(value), keepUnprefixed ? 0 : 1, val);\n }\n });\n } else {\n base[property] = extend[property];\n }\n });\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 823 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = calc;\n\nvar _getPrefixedValue = __webpack_require__(36);\n\nvar _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction calc(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var _ref$browserInfo = _ref.browserInfo;\n var browser = _ref$browserInfo.browser;\n var version = _ref$browserInfo.version;\n var css = _ref.prefix.css;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n if (typeof value === 'string' && value.indexOf('calc(') > -1 && (browser === 'firefox' && version < 15 || browser === 'chrome' && version < 25 || browser === 'safari' && version < 6.1 || browser === 'ios_saf' && version < 7)) {\n return _defineProperty({}, property, (0, _getPrefixedValue2.default)(value.replace(/calc\\(/g, css + 'calc('), value, keepUnprefixed));\n }\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 824 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flex;\n\nvar _getPrefixedValue = __webpack_require__(36);\n\nvar _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar values = { flex: true, 'inline-flex': true };\n\nfunction flex(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var _ref$browserInfo = _ref.browserInfo;\n var browser = _ref$browserInfo.browser;\n var version = _ref$browserInfo.version;\n var css = _ref.prefix.css;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n if (property === 'display' && values[value] && (browser === 'chrome' && version < 29 && version > 20 || (browser === 'safari' || browser === 'ios_saf') && version < 9 && version > 6 || browser === 'opera' && (version == 15 || version == 16))) {\n return {\n display: (0, _getPrefixedValue2.default)(css + value, value, keepUnprefixed)\n };\n }\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 825 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxIE;\n\nvar _getPrefixedValue = __webpack_require__(36);\n\nvar _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar alternativeValues = {\n 'space-around': 'distribute',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end',\n flex: 'flexbox',\n 'inline-flex': 'inline-flexbox'\n};\nvar alternativeProps = {\n alignContent: 'msFlexLinePack',\n alignSelf: 'msFlexItemAlign',\n alignItems: 'msFlexAlign',\n justifyContent: 'msFlexPack',\n order: 'msFlexOrder',\n flexGrow: 'msFlexPositive',\n flexShrink: 'msFlexNegative',\n flexBasis: 'msPreferredSize'\n};\n\nfunction flexboxIE(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var styles = _ref.styles;\n var _ref$browserInfo = _ref.browserInfo;\n var browser = _ref$browserInfo.browser;\n var version = _ref$browserInfo.version;\n var css = _ref.prefix.css;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n if ((alternativeProps[property] || property === 'display' && typeof value === 'string' && value.indexOf('flex') > -1) && (browser === 'ie_mob' || browser === 'ie') && version == 10) {\n if (!keepUnprefixed && !Array.isArray(styles[property])) {\n delete styles[property];\n }\n if (property === 'display' && alternativeValues[value]) {\n return {\n display: (0, _getPrefixedValue2.default)(css + alternativeValues[value], value, keepUnprefixed)\n };\n }\n if (alternativeProps[property]) {\n return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);\n }\n }\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 826 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxOld;\n\nvar _getPrefixedValue = __webpack_require__(36);\n\nvar _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar alternativeValues = {\n 'space-around': 'justify',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end',\n 'wrap-reverse': 'multiple',\n wrap: 'multiple',\n flex: 'box',\n 'inline-flex': 'inline-box'\n};\n\nvar alternativeProps = {\n alignItems: 'WebkitBoxAlign',\n justifyContent: 'WebkitBoxPack',\n flexWrap: 'WebkitBoxLines'\n};\n\nvar otherProps = ['alignContent', 'alignSelf', 'order', 'flexGrow', 'flexShrink', 'flexBasis', 'flexDirection'];\nvar properties = Object.keys(alternativeProps).concat(otherProps);\n\nfunction flexboxOld(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var styles = _ref.styles;\n var _ref$browserInfo = _ref.browserInfo;\n var browser = _ref$browserInfo.browser;\n var version = _ref$browserInfo.version;\n var css = _ref.prefix.css;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n if ((properties.indexOf(property) > -1 || property === 'display' && typeof value === 'string' && value.indexOf('flex') > -1) && (browser === 'firefox' && version < 22 || browser === 'chrome' && version < 21 || (browser === 'safari' || browser === 'ios_saf') && version <= 6.1 || browser === 'android' && version < 4.4 || browser === 'and_uc')) {\n if (!keepUnprefixed && !Array.isArray(styles[property])) {\n delete styles[property];\n }\n if (property === 'flexDirection' && typeof value === 'string') {\n return {\n WebkitBoxOrient: value.indexOf('column') > -1 ? 'vertical' : 'horizontal',\n WebkitBoxDirection: value.indexOf('reverse') > -1 ? 'reverse' : 'normal'\n };\n }\n if (property === 'display' && alternativeValues[value]) {\n return {\n display: (0, _getPrefixedValue2.default)(css + alternativeValues[value], value, keepUnprefixed)\n };\n }\n if (alternativeProps[property]) {\n return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);\n }\n }\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 827 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = grabCursor;\n\nvar _getPrefixedValue = __webpack_require__(36);\n\nvar _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar values = { grab: true, grabbing: true };\n\nfunction grabCursor(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var browser = _ref.browserInfo.browser;\n var css = _ref.prefix.css;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n // adds prefixes for firefox, chrome, safari, and opera regardless of version until a reliable brwoser support info can be found (see: https://github.com/rofrischmann/inline-style-prefixer/issues/79)\n if (property === 'cursor' && values[value] && (browser === 'firefox' || browser === 'chrome' || browser === 'safari' || browser === 'opera')) {\n return {\n cursor: (0, _getPrefixedValue2.default)(css + value, value, keepUnprefixed)\n };\n }\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 828 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = gradient;\n\nvar _getPrefixedValue = __webpack_require__(36);\n\nvar _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/;\n\nfunction gradient(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var _ref$browserInfo = _ref.browserInfo;\n var browser = _ref$browserInfo.browser;\n var version = _ref$browserInfo.version;\n var css = _ref.prefix.css;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n if (typeof value === 'string' && value.match(values) !== null && (browser === 'firefox' && version < 16 || browser === 'chrome' && version < 26 || (browser === 'safari' || browser === 'ios_saf') && version < 7 || (browser === 'opera' || browser === 'op_mini') && version < 12.1 || browser === 'android' && version < 4.4 || browser === 'and_uc')) {\n return _defineProperty({}, property, (0, _getPrefixedValue2.default)(css + value, value, keepUnprefixed));\n }\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 829 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = position;\n\nvar _getPrefixedValue = __webpack_require__(36);\n\nvar _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction position(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var browser = _ref.browserInfo.browser;\n var css = _ref.prefix.css;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n if (property === 'position' && value === 'sticky' && (browser === 'safari' || browser === 'ios_saf')) {\n return _defineProperty({}, property, (0, _getPrefixedValue2.default)(css + value, value, keepUnprefixed));\n }\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 830 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sizing;\n\nvar _getPrefixedValue = __webpack_require__(36);\n\nvar _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar properties = {\n maxHeight: true,\n maxWidth: true,\n width: true,\n height: true,\n columnWidth: true,\n minWidth: true,\n minHeight: true\n};\nvar values = {\n 'min-content': true,\n 'max-content': true,\n 'fill-available': true,\n 'fit-content': true,\n 'contain-floats': true\n};\n\nfunction sizing(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var css = _ref.prefix.css;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n // This might change in the future\n // Keep an eye on it\n if (properties[property] && values[value]) {\n return _defineProperty({}, property, (0, _getPrefixedValue2.default)(css + value, value, keepUnprefixed));\n }\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 831 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nexports.default = transition;\n\nvar _hyphenateStyleName = __webpack_require__(341);\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nvar _unprefixProperty = __webpack_require__(847);\n\nvar _unprefixProperty2 = _interopRequireDefault(_unprefixProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar properties = { transition: true, transitionProperty: true };\n\nfunction transition(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var css = _ref.prefix.css;\n var requiresPrefix = _ref.requiresPrefix;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n // also check for already prefixed transitions\n var unprefixedProperty = (0, _unprefixProperty2.default)(property);\n\n if (typeof value === 'string' && properties[unprefixedProperty]) {\n var _ret = function () {\n // TODO: memoize this array\n var requiresPrefixDashCased = Object.keys(requiresPrefix).map(function (prop) {\n return (0, _hyphenateStyleName2.default)(prop);\n });\n\n // only split multi values, not cubic beziers\n var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g);\n\n requiresPrefixDashCased.forEach(function (prop) {\n multipleValues.forEach(function (val, index) {\n if (val.indexOf(prop) > -1 && prop !== 'order') {\n multipleValues[index] = val.replace(prop, css + prop) + (keepUnprefixed ? ',' + val : '');\n }\n });\n });\n\n return {\n v: _defineProperty({}, property, multipleValues.join(','))\n };\n }();\n\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n }\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 832 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = zoomCursor;\n\nvar _getPrefixedValue = __webpack_require__(36);\n\nvar _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar values = { 'zoom-in': true, 'zoom-out': true };\n\nfunction zoomCursor(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var _ref$browserInfo = _ref.browserInfo;\n var browser = _ref$browserInfo.browser;\n var version = _ref$browserInfo.version;\n var css = _ref.prefix.css;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n if (property === 'cursor' && values[value] && (browser === 'firefox' && version < 24 || browser === 'chrome' && version < 37 || browser === 'safari' && version < 9 || browser === 'opera' && version < 24)) {\n return {\n cursor: (0, _getPrefixedValue2.default)(css + value, value, keepUnprefixed)\n };\n }\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 833 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = { \"chrome\": { \"transform\": 35, \"transformOrigin\": 35, \"transformOriginX\": 35, \"transformOriginY\": 35, \"backfaceVisibility\": 35, \"perspective\": 35, \"perspectiveOrigin\": 35, \"transformStyle\": 35, \"transformOriginZ\": 35, \"animation\": 42, \"animationDelay\": 42, \"animationDirection\": 42, \"animationFillMode\": 42, \"animationDuration\": 42, \"animationIterationCount\": 42, \"animationName\": 42, \"animationPlayState\": 42, \"animationTimingFunction\": 42, \"appearance\": 55, \"userSelect\": 55, \"fontKerning\": 32, \"textEmphasisPosition\": 55, \"textEmphasis\": 55, \"textEmphasisStyle\": 55, \"textEmphasisColor\": 55, \"boxDecorationBreak\": 55, \"clipPath\": 55, \"maskImage\": 55, \"maskMode\": 55, \"maskRepeat\": 55, \"maskPosition\": 55, \"maskClip\": 55, \"maskOrigin\": 55, \"maskSize\": 55, \"maskComposite\": 55, \"mask\": 55, \"maskBorderSource\": 55, \"maskBorderMode\": 55, \"maskBorderSlice\": 55, \"maskBorderWidth\": 55, \"maskBorderOutset\": 55, \"maskBorderRepeat\": 55, \"maskBorder\": 55, \"maskType\": 55, \"textDecorationStyle\": 55, \"textDecorationSkip\": 55, \"textDecorationLine\": 55, \"textDecorationColor\": 55, \"filter\": 52, \"fontFeatureSettings\": 47, \"breakAfter\": 49, \"breakBefore\": 49, \"breakInside\": 49, \"columnCount\": 49, \"columnFill\": 49, \"columnGap\": 49, \"columnRule\": 49, \"columnRuleColor\": 49, \"columnRuleStyle\": 49, \"columnRuleWidth\": 49, \"columns\": 49, \"columnSpan\": 49, \"columnWidth\": 49 }, \"safari\": { \"flex\": 8, \"flexBasis\": 8, \"flexDirection\": 8, \"flexGrow\": 8, \"flexFlow\": 8, \"flexShrink\": 8, \"flexWrap\": 8, \"alignContent\": 8, \"alignItems\": 8, \"alignSelf\": 8, \"justifyContent\": 8, \"order\": 8, \"transition\": 6, \"transitionDelay\": 6, \"transitionDuration\": 6, \"transitionProperty\": 6, \"transitionTimingFunction\": 6, \"transform\": 8, \"transformOrigin\": 8, \"transformOriginX\": 8, \"transformOriginY\": 8, \"backfaceVisibility\": 8, \"perspective\": 8, \"perspectiveOrigin\": 8, \"transformStyle\": 8, \"transformOriginZ\": 8, \"animation\": 8, \"animationDelay\": 8, \"animationDirection\": 8, \"animationFillMode\": 8, \"animationDuration\": 8, \"animationIterationCount\": 8, \"animationName\": 8, \"animationPlayState\": 8, \"animationTimingFunction\": 8, \"appearance\": 10, \"userSelect\": 10, \"backdropFilter\": 10, \"fontKerning\": 9, \"scrollSnapType\": 10, \"scrollSnapPointsX\": 10, \"scrollSnapPointsY\": 10, \"scrollSnapDestination\": 10, \"scrollSnapCoordinate\": 10, \"textEmphasisPosition\": 7, \"textEmphasis\": 7, \"textEmphasisStyle\": 7, \"textEmphasisColor\": 7, \"boxDecorationBreak\": 10, \"clipPath\": 10, \"maskImage\": 10, \"maskMode\": 10, \"maskRepeat\": 10, \"maskPosition\": 10, \"maskClip\": 10, \"maskOrigin\": 10, \"maskSize\": 10, \"maskComposite\": 10, \"mask\": 10, \"maskBorderSource\": 10, \"maskBorderMode\": 10, \"maskBorderSlice\": 10, \"maskBorderWidth\": 10, \"maskBorderOutset\": 10, \"maskBorderRepeat\": 10, \"maskBorder\": 10, \"maskType\": 10, \"textDecorationStyle\": 10, \"textDecorationSkip\": 10, \"textDecorationLine\": 10, \"textDecorationColor\": 10, \"shapeImageThreshold\": 10, \"shapeImageMargin\": 10, \"shapeImageOutside\": 10, \"filter\": 9, \"hyphens\": 10, \"flowInto\": 10, \"flowFrom\": 10, \"breakBefore\": 8, \"breakAfter\": 8, \"breakInside\": 8, \"regionFragment\": 10, \"columnCount\": 8, \"columnFill\": 8, \"columnGap\": 8, \"columnRule\": 8, \"columnRuleColor\": 8, \"columnRuleStyle\": 8, \"columnRuleWidth\": 8, \"columns\": 8, \"columnSpan\": 8, \"columnWidth\": 8 }, \"firefox\": { \"appearance\": 51, \"userSelect\": 51, \"boxSizing\": 28, \"textAlignLast\": 48, \"textDecorationStyle\": 35, \"textDecorationSkip\": 35, \"textDecorationLine\": 35, \"textDecorationColor\": 35, \"tabSize\": 51, \"hyphens\": 42, \"fontFeatureSettings\": 33, \"breakAfter\": 51, \"breakBefore\": 51, \"breakInside\": 51, \"columnCount\": 51, \"columnFill\": 51, \"columnGap\": 51, \"columnRule\": 51, \"columnRuleColor\": 51, \"columnRuleStyle\": 51, \"columnRuleWidth\": 51, \"columns\": 51, \"columnSpan\": 51, \"columnWidth\": 51 }, \"opera\": { \"flex\": 16, \"flexBasis\": 16, \"flexDirection\": 16, \"flexGrow\": 16, \"flexFlow\": 16, \"flexShrink\": 16, \"flexWrap\": 16, \"alignContent\": 16, \"alignItems\": 16, \"alignSelf\": 16, \"justifyContent\": 16, \"order\": 16, \"transform\": 22, \"transformOrigin\": 22, \"transformOriginX\": 22, \"transformOriginY\": 22, \"backfaceVisibility\": 22, \"perspective\": 22, \"perspectiveOrigin\": 22, \"transformStyle\": 22, \"transformOriginZ\": 22, \"animation\": 29, \"animationDelay\": 29, \"animationDirection\": 29, \"animationFillMode\": 29, \"animationDuration\": 29, \"animationIterationCount\": 29, \"animationName\": 29, \"animationPlayState\": 29, \"animationTimingFunction\": 29, \"appearance\": 41, \"userSelect\": 41, \"fontKerning\": 19, \"textEmphasisPosition\": 41, \"textEmphasis\": 41, \"textEmphasisStyle\": 41, \"textEmphasisColor\": 41, \"boxDecorationBreak\": 41, \"clipPath\": 41, \"maskImage\": 41, \"maskMode\": 41, \"maskRepeat\": 41, \"maskPosition\": 41, \"maskClip\": 41, \"maskOrigin\": 41, \"maskSize\": 41, \"maskComposite\": 41, \"mask\": 41, \"maskBorderSource\": 41, \"maskBorderMode\": 41, \"maskBorderSlice\": 41, \"maskBorderWidth\": 41, \"maskBorderOutset\": 41, \"maskBorderRepeat\": 41, \"maskBorder\": 41, \"maskType\": 41, \"textDecorationStyle\": 41, \"textDecorationSkip\": 41, \"textDecorationLine\": 41, \"textDecorationColor\": 41, \"filter\": 39, \"fontFeatureSettings\": 34, \"breakAfter\": 36, \"breakBefore\": 36, \"breakInside\": 36, \"columnCount\": 36, \"columnFill\": 36, \"columnGap\": 36, \"columnRule\": 36, \"columnRuleColor\": 36, \"columnRuleStyle\": 36, \"columnRuleWidth\": 36, \"columns\": 36, \"columnSpan\": 36, \"columnWidth\": 36 }, \"ie\": { \"flex\": 10, \"flexDirection\": 10, \"flexFlow\": 10, \"flexWrap\": 10, \"transform\": 9, \"transformOrigin\": 9, \"transformOriginX\": 9, \"transformOriginY\": 9, \"userSelect\": 11, \"wrapFlow\": 11, \"wrapThrough\": 11, \"wrapMargin\": 11, \"scrollSnapType\": 11, \"scrollSnapPointsX\": 11, \"scrollSnapPointsY\": 11, \"scrollSnapDestination\": 11, \"scrollSnapCoordinate\": 11, \"touchAction\": 10, \"hyphens\": 11, \"flowInto\": 11, \"flowFrom\": 11, \"breakBefore\": 11, \"breakAfter\": 11, \"breakInside\": 11, \"regionFragment\": 11, \"gridTemplateColumns\": 11, \"gridTemplateRows\": 11, \"gridTemplateAreas\": 11, \"gridTemplate\": 11, \"gridAutoColumns\": 11, \"gridAutoRows\": 11, \"gridAutoFlow\": 11, \"grid\": 11, \"gridRowStart\": 11, \"gridColumnStart\": 11, \"gridRowEnd\": 11, \"gridRow\": 11, \"gridColumn\": 11, \"gridColumnEnd\": 11, \"gridColumnGap\": 11, \"gridRowGap\": 11, \"gridArea\": 11, \"gridGap\": 11, \"textSizeAdjust\": 11 }, \"edge\": { \"userSelect\": 14, \"wrapFlow\": 14, \"wrapThrough\": 14, \"wrapMargin\": 14, \"scrollSnapType\": 14, \"scrollSnapPointsX\": 14, \"scrollSnapPointsY\": 14, \"scrollSnapDestination\": 14, \"scrollSnapCoordinate\": 14, \"hyphens\": 14, \"flowInto\": 14, \"flowFrom\": 14, \"breakBefore\": 14, \"breakAfter\": 14, \"breakInside\": 14, \"regionFragment\": 14, \"gridTemplateColumns\": 14, \"gridTemplateRows\": 14, \"gridTemplateAreas\": 14, \"gridTemplate\": 14, \"gridAutoColumns\": 14, \"gridAutoRows\": 14, \"gridAutoFlow\": 14, \"grid\": 14, \"gridRowStart\": 14, \"gridColumnStart\": 14, \"gridRowEnd\": 14, \"gridRow\": 14, \"gridColumn\": 14, \"gridColumnEnd\": 14, \"gridColumnGap\": 14, \"gridRowGap\": 14, \"gridArea\": 14, \"gridGap\": 14 }, \"ios_saf\": { \"flex\": 8.1, \"flexBasis\": 8.1, \"flexDirection\": 8.1, \"flexGrow\": 8.1, \"flexFlow\": 8.1, \"flexShrink\": 8.1, \"flexWrap\": 8.1, \"alignContent\": 8.1, \"alignItems\": 8.1, \"alignSelf\": 8.1, \"justifyContent\": 8.1, \"order\": 8.1, \"transition\": 6, \"transitionDelay\": 6, \"transitionDuration\": 6, \"transitionProperty\": 6, \"transitionTimingFunction\": 6, \"transform\": 8.1, \"transformOrigin\": 8.1, \"transformOriginX\": 8.1, \"transformOriginY\": 8.1, \"backfaceVisibility\": 8.1, \"perspective\": 8.1, \"perspectiveOrigin\": 8.1, \"transformStyle\": 8.1, \"transformOriginZ\": 8.1, \"animation\": 8.1, \"animationDelay\": 8.1, \"animationDirection\": 8.1, \"animationFillMode\": 8.1, \"animationDuration\": 8.1, \"animationIterationCount\": 8.1, \"animationName\": 8.1, \"animationPlayState\": 8.1, \"animationTimingFunction\": 8.1, \"appearance\": 9.3, \"userSelect\": 9.3, \"backdropFilter\": 9.3, \"fontKerning\": 9.3, \"scrollSnapType\": 9.3, \"scrollSnapPointsX\": 9.3, \"scrollSnapPointsY\": 9.3, \"scrollSnapDestination\": 9.3, \"scrollSnapCoordinate\": 9.3, \"boxDecorationBreak\": 9.3, \"clipPath\": 9.3, \"maskImage\": 9.3, \"maskMode\": 9.3, \"maskRepeat\": 9.3, \"maskPosition\": 9.3, \"maskClip\": 9.3, \"maskOrigin\": 9.3, \"maskSize\": 9.3, \"maskComposite\": 9.3, \"mask\": 9.3, \"maskBorderSource\": 9.3, \"maskBorderMode\": 9.3, \"maskBorderSlice\": 9.3, \"maskBorderWidth\": 9.3, \"maskBorderOutset\": 9.3, \"maskBorderRepeat\": 9.3, \"maskBorder\": 9.3, \"maskType\": 9.3, \"textSizeAdjust\": 9.3, \"textDecorationStyle\": 9.3, \"textDecorationSkip\": 9.3, \"textDecorationLine\": 9.3, \"textDecorationColor\": 9.3, \"shapeImageThreshold\": 9.3, \"shapeImageMargin\": 9.3, \"shapeImageOutside\": 9.3, \"filter\": 9, \"hyphens\": 9.3, \"flowInto\": 9.3, \"flowFrom\": 9.3, \"breakBefore\": 8.1, \"breakAfter\": 8.1, \"breakInside\": 8.1, \"regionFragment\": 9.3, \"columnCount\": 8.1, \"columnFill\": 8.1, \"columnGap\": 8.1, \"columnRule\": 8.1, \"columnRuleColor\": 8.1, \"columnRuleStyle\": 8.1, \"columnRuleWidth\": 8.1, \"columns\": 8.1, \"columnSpan\": 8.1, \"columnWidth\": 8.1 }, \"android\": { \"flex\": 4.2, \"flexBasis\": 4.2, \"flexDirection\": 4.2, \"flexGrow\": 4.2, \"flexFlow\": 4.2, \"flexShrink\": 4.2, \"flexWrap\": 4.2, \"alignContent\": 4.2, \"alignItems\": 4.2, \"alignSelf\": 4.2, \"justifyContent\": 4.2, \"order\": 4.2, \"transition\": 4.2, \"transitionDelay\": 4.2, \"transitionDuration\": 4.2, \"transitionProperty\": 4.2, \"transitionTimingFunction\": 4.2, \"transform\": 4.4, \"transformOrigin\": 4.4, \"transformOriginX\": 4.4, \"transformOriginY\": 4.4, \"backfaceVisibility\": 4.4, \"perspective\": 4.4, \"perspectiveOrigin\": 4.4, \"transformStyle\": 4.4, \"transformOriginZ\": 4.4, \"animation\": 4.4, \"animationDelay\": 4.4, \"animationDirection\": 4.4, \"animationFillMode\": 4.4, \"animationDuration\": 4.4, \"animationIterationCount\": 4.4, \"animationName\": 4.4, \"animationPlayState\": 4.4, \"animationTimingFunction\": 4.4, \"appearance\": 51, \"userSelect\": 51, \"fontKerning\": 4.4, \"textEmphasisPosition\": 51, \"textEmphasis\": 51, \"textEmphasisStyle\": 51, \"textEmphasisColor\": 51, \"boxDecorationBreak\": 51, \"clipPath\": 51, \"maskImage\": 51, \"maskMode\": 51, \"maskRepeat\": 51, \"maskPosition\": 51, \"maskClip\": 51, \"maskOrigin\": 51, \"maskSize\": 51, \"maskComposite\": 51, \"mask\": 51, \"maskBorderSource\": 51, \"maskBorderMode\": 51, \"maskBorderSlice\": 51, \"maskBorderWidth\": 51, \"maskBorderOutset\": 51, \"maskBorderRepeat\": 51, \"maskBorder\": 51, \"maskType\": 51, \"filter\": 51, \"fontFeatureSettings\": 4.4, \"breakAfter\": 51, \"breakBefore\": 51, \"breakInside\": 51, \"columnCount\": 51, \"columnFill\": 51, \"columnGap\": 51, \"columnRule\": 51, \"columnRuleColor\": 51, \"columnRuleStyle\": 51, \"columnRuleWidth\": 51, \"columns\": 51, \"columnSpan\": 51, \"columnWidth\": 51 }, \"and_chr\": { \"appearance\": 51, \"userSelect\": 51, \"textEmphasisPosition\": 51, \"textEmphasis\": 51, \"textEmphasisStyle\": 51, \"textEmphasisColor\": 51, \"boxDecorationBreak\": 51, \"clipPath\": 51, \"maskImage\": 51, \"maskMode\": 51, \"maskRepeat\": 51, \"maskPosition\": 51, \"maskClip\": 51, \"maskOrigin\": 51, \"maskSize\": 51, \"maskComposite\": 51, \"mask\": 51, \"maskBorderSource\": 51, \"maskBorderMode\": 51, \"maskBorderSlice\": 51, \"maskBorderWidth\": 51, \"maskBorderOutset\": 51, \"maskBorderRepeat\": 51, \"maskBorder\": 51, \"maskType\": 51, \"textDecorationStyle\": 51, \"textDecorationSkip\": 51, \"textDecorationLine\": 51, \"textDecorationColor\": 51, \"filter\": 51 }, \"and_uc\": { \"flex\": 9.9, \"flexBasis\": 9.9, \"flexDirection\": 9.9, \"flexGrow\": 9.9, \"flexFlow\": 9.9, \"flexShrink\": 9.9, \"flexWrap\": 9.9, \"alignContent\": 9.9, \"alignItems\": 9.9, \"alignSelf\": 9.9, \"justifyContent\": 9.9, \"order\": 9.9, \"transition\": 9.9, \"transitionDelay\": 9.9, \"transitionDuration\": 9.9, \"transitionProperty\": 9.9, \"transitionTimingFunction\": 9.9, \"transform\": 9.9, \"transformOrigin\": 9.9, \"transformOriginX\": 9.9, \"transformOriginY\": 9.9, \"backfaceVisibility\": 9.9, \"perspective\": 9.9, \"perspectiveOrigin\": 9.9, \"transformStyle\": 9.9, \"transformOriginZ\": 9.9, \"animation\": 9.9, \"animationDelay\": 9.9, \"animationDirection\": 9.9, \"animationFillMode\": 9.9, \"animationDuration\": 9.9, \"animationIterationCount\": 9.9, \"animationName\": 9.9, \"animationPlayState\": 9.9, \"animationTimingFunction\": 9.9, \"appearance\": 9.9, \"userSelect\": 9.9, \"fontKerning\": 9.9, \"textEmphasisPosition\": 9.9, \"textEmphasis\": 9.9, \"textEmphasisStyle\": 9.9, \"textEmphasisColor\": 9.9, \"maskImage\": 9.9, \"maskMode\": 9.9, \"maskRepeat\": 9.9, \"maskPosition\": 9.9, \"maskClip\": 9.9, \"maskOrigin\": 9.9, \"maskSize\": 9.9, \"maskComposite\": 9.9, \"mask\": 9.9, \"maskBorderSource\": 9.9, \"maskBorderMode\": 9.9, \"maskBorderSlice\": 9.9, \"maskBorderWidth\": 9.9, \"maskBorderOutset\": 9.9, \"maskBorderRepeat\": 9.9, \"maskBorder\": 9.9, \"maskType\": 9.9, \"textSizeAdjust\": 9.9, \"filter\": 9.9, \"hyphens\": 9.9, \"flowInto\": 9.9, \"flowFrom\": 9.9, \"breakBefore\": 9.9, \"breakAfter\": 9.9, \"breakInside\": 9.9, \"regionFragment\": 9.9, \"fontFeatureSettings\": 9.9, \"columnCount\": 9.9, \"columnFill\": 9.9, \"columnGap\": 9.9, \"columnRule\": 9.9, \"columnRuleColor\": 9.9, \"columnRuleStyle\": 9.9, \"columnRuleWidth\": 9.9, \"columns\": 9.9, \"columnSpan\": 9.9, \"columnWidth\": 9.9 }, \"op_mini\": {} };\nmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 834 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = calc;\n\nvar _joinPrefixedValue = __webpack_require__(138);\n\nvar _joinPrefixedValue2 = _interopRequireDefault(_joinPrefixedValue);\n\nvar _isPrefixedValue = __webpack_require__(221);\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction calc(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('calc(') > -1) {\n return (0, _joinPrefixedValue2.default)(property, value, function (prefix, value) {\n return value.replace(/calc\\(/g, prefix + 'calc(');\n });\n }\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 835 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cursor;\n\nvar _joinPrefixedValue = __webpack_require__(138);\n\nvar _joinPrefixedValue2 = _interopRequireDefault(_joinPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar values = {\n 'zoom-in': true,\n 'zoom-out': true,\n grab: true,\n grabbing: true\n};\n\nfunction cursor(property, value) {\n if (property === 'cursor' && values[value]) {\n return (0, _joinPrefixedValue2.default)(property, value);\n }\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 836 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flex;\nvar values = { flex: true, 'inline-flex': true };\n\nfunction flex(property, value) {\n if (property === 'display' && values[value]) {\n return {\n display: ['-webkit-box', '-moz-box', '-ms-' + value + 'box', '-webkit-' + value, value]\n };\n }\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 837 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxIE;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar alternativeValues = {\n 'space-around': 'distribute',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end'\n};\nvar alternativeProps = {\n alignContent: 'msFlexLinePack',\n alignSelf: 'msFlexItemAlign',\n alignItems: 'msFlexAlign',\n justifyContent: 'msFlexPack',\n order: 'msFlexOrder',\n flexGrow: 'msFlexPositive',\n flexShrink: 'msFlexNegative',\n flexBasis: 'msPreferredSize'\n};\n\nfunction flexboxIE(property, value) {\n if (alternativeProps[property]) {\n return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);\n }\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 838 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxOld;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar alternativeValues = {\n 'space-around': 'justify',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end',\n 'wrap-reverse': 'multiple',\n wrap: 'multiple'\n};\n\nvar alternativeProps = {\n alignItems: 'WebkitBoxAlign',\n justifyContent: 'WebkitBoxPack',\n flexWrap: 'WebkitBoxLines'\n};\n\nfunction flexboxOld(property, value) {\n if (property === 'flexDirection' && typeof value === 'string') {\n return {\n WebkitBoxOrient: value.indexOf('column') > -1 ? 'vertical' : 'horizontal',\n WebkitBoxDirection: value.indexOf('reverse') > -1 ? 'reverse' : 'normal'\n };\n }\n if (alternativeProps[property]) {\n return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);\n }\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 839 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = gradient;\n\nvar _joinPrefixedValue = __webpack_require__(138);\n\nvar _joinPrefixedValue2 = _interopRequireDefault(_joinPrefixedValue);\n\nvar _isPrefixedValue = __webpack_require__(221);\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/;\n\nfunction gradient(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.match(values) !== null) {\n return (0, _joinPrefixedValue2.default)(property, value);\n }\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 840 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = position;\nfunction position(property, value) {\n if (property === 'position' && value === 'sticky') {\n return { position: ['-webkit-sticky', 'sticky'] };\n }\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 841 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sizing;\n\nvar _joinPrefixedValue = __webpack_require__(138);\n\nvar _joinPrefixedValue2 = _interopRequireDefault(_joinPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar properties = {\n maxHeight: true,\n maxWidth: true,\n width: true,\n height: true,\n columnWidth: true,\n minWidth: true,\n minHeight: true\n};\nvar values = {\n 'min-content': true,\n 'max-content': true,\n 'fill-available': true,\n 'fit-content': true,\n 'contain-floats': true\n};\n\nfunction sizing(property, value) {\n if (properties[property] && values[value]) {\n return (0, _joinPrefixedValue2.default)(property, value);\n }\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 842 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = transition;\n\nvar _hyphenateStyleName = __webpack_require__(341);\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nvar _capitalizeString = __webpack_require__(220);\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nvar _isPrefixedValue = __webpack_require__(221);\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nvar _prefixProps = __webpack_require__(392);\n\nvar _prefixProps2 = _interopRequireDefault(_prefixProps);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar properties = {\n transition: true,\n transitionProperty: true,\n WebkitTransition: true,\n WebkitTransitionProperty: true\n};\n\nfunction transition(property, value) {\n // also check for already prefixed transitions\n if (typeof value === 'string' && properties[property]) {\n var _ref2;\n\n var outputValue = prefixValue(value);\n var webkitOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (value) {\n return value.match(/-moz-|-ms-/) === null;\n }).join(',');\n\n // if the property is already prefixed\n if (property.indexOf('Webkit') > -1) {\n return _defineProperty({}, property, webkitOutput);\n }\n\n return _ref2 = {}, _defineProperty(_ref2, 'Webkit' + (0, _capitalizeString2.default)(property), webkitOutput), _defineProperty(_ref2, property, outputValue), _ref2;\n }\n}\n\nfunction prefixValue(value) {\n if ((0, _isPrefixedValue2.default)(value)) {\n return value;\n }\n\n // only split multi values, not cubic beziers\n var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g);\n\n // iterate each single value and check for transitioned properties\n // that need to be prefixed as well\n multipleValues.forEach(function (val, index) {\n multipleValues[index] = Object.keys(_prefixProps2.default).reduce(function (out, prefix) {\n var dashCasePrefix = '-' + prefix.toLowerCase() + '-';\n\n Object.keys(_prefixProps2.default[prefix]).forEach(function (prop) {\n var dashCaseProperty = (0, _hyphenateStyleName2.default)(prop);\n\n if (val.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') {\n // join all prefixes and create a new value\n out = val.replace(dashCaseProperty, dashCasePrefix + dashCaseProperty) + ',' + out;\n }\n });\n return out;\n }, val);\n });\n\n return multipleValues.join(',');\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 843 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixAll;\n\nvar _prefixProps = __webpack_require__(392);\n\nvar _prefixProps2 = _interopRequireDefault(_prefixProps);\n\nvar _capitalizeString = __webpack_require__(220);\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nvar _sortPrefixedStyle = __webpack_require__(393);\n\nvar _sortPrefixedStyle2 = _interopRequireDefault(_sortPrefixedStyle);\n\nvar _position = __webpack_require__(840);\n\nvar _position2 = _interopRequireDefault(_position);\n\nvar _calc = __webpack_require__(834);\n\nvar _calc2 = _interopRequireDefault(_calc);\n\nvar _cursor = __webpack_require__(835);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _flex = __webpack_require__(836);\n\nvar _flex2 = _interopRequireDefault(_flex);\n\nvar _sizing = __webpack_require__(841);\n\nvar _sizing2 = _interopRequireDefault(_sizing);\n\nvar _gradient = __webpack_require__(839);\n\nvar _gradient2 = _interopRequireDefault(_gradient);\n\nvar _transition = __webpack_require__(842);\n\nvar _transition2 = _interopRequireDefault(_transition);\n\nvar _flexboxIE = __webpack_require__(837);\n\nvar _flexboxIE2 = _interopRequireDefault(_flexboxIE);\n\nvar _flexboxOld = __webpack_require__(838);\n\nvar _flexboxOld2 = _interopRequireDefault(_flexboxOld);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// special flexbox specifications\n\n\nvar plugins = [_position2.default, _calc2.default, _cursor2.default, _sizing2.default, _gradient2.default, _transition2.default, _flexboxIE2.default, _flexboxOld2.default, _flex2.default];\n\n/**\n * Returns a prefixed version of the style object using all vendor prefixes\n * @param {Object} styles - Style object that gets prefixed properties added\n * @returns {Object} - Style object with prefixed properties and values\n */\nfunction prefixAll(styles) {\n Object.keys(styles).forEach(function (property) {\n var value = styles[property];\n if (value instanceof Object && !Array.isArray(value)) {\n // recurse through nested style objects\n styles[property] = prefixAll(value);\n } else {\n Object.keys(_prefixProps2.default).forEach(function (prefix) {\n var properties = _prefixProps2.default[prefix];\n // add prefixes if needed\n if (properties[property]) {\n styles[prefix + (0, _capitalizeString2.default)(property)] = value;\n }\n });\n }\n });\n\n Object.keys(styles).forEach(function (property) {\n [].concat(styles[property]).forEach(function (value, index) {\n // resolve every special plugins\n plugins.forEach(function (plugin) {\n return assignStyles(styles, plugin(property, value));\n });\n });\n });\n\n return (0, _sortPrefixedStyle2.default)(styles);\n}\n\nfunction assignStyles(base) {\n var extend = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n Object.keys(extend).forEach(function (property) {\n var baseValue = base[property];\n if (Array.isArray(baseValue)) {\n [].concat(extend[property]).forEach(function (value) {\n var valueIndex = baseValue.indexOf(value);\n if (valueIndex > -1) {\n base[property].splice(valueIndex, 1);\n }\n base[property].push(value);\n });\n } else {\n base[property] = extend[property];\n }\n });\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 844 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bowser = __webpack_require__(529);\n\nvar _bowser2 = _interopRequireDefault(_bowser);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar vendorPrefixes = {\n Webkit: ['chrome', 'safari', 'ios', 'android', 'phantom', 'opera', 'webos', 'blackberry', 'bada', 'tizen', 'chromium', 'vivaldi'],\n Moz: ['firefox', 'seamonkey', 'sailfish'],\n ms: ['msie', 'msedge']\n};\nvar browsers = {\n chrome: [['chrome'], ['chromium']],\n safari: [['safari']],\n firefox: [['firefox']],\n edge: [['msedge']],\n opera: [['opera'], ['vivaldi']],\n ios_saf: [['ios', 'mobile'], ['ios', 'tablet']],\n ie: [['msie']],\n op_mini: [['opera', 'mobile'], ['opera', 'tablet']],\n and_uc: [['android', 'mobile'], ['android', 'tablet']],\n android: [['android', 'mobile'], ['android', 'tablet']]\n};\n\nvar browserByInfo = function browserByInfo(info) {\n if (info.firefox) {\n return 'firefox';\n }\n var name = '';\n\n Object.keys(browsers).forEach(function (browser) {\n browsers[browser].forEach(function (condition) {\n var match = 0;\n condition.forEach(function (single) {\n if (info[single]) {\n match += 1;\n }\n });\n if (condition.length === match) {\n name = browser;\n }\n });\n });\n\n return name;\n};\n\n/**\n * Uses bowser to get default browser information such as version and name\n * Evaluates bowser info and adds vendorPrefix information\n * @param {string} userAgent - userAgent that gets evaluated\n */\n\nexports.default = function (userAgent) {\n if (!userAgent) {\n return false;\n }\n var info = _bowser2.default._detect(userAgent);\n\n Object.keys(vendorPrefixes).forEach(function (prefix) {\n vendorPrefixes[prefix].forEach(function (browser) {\n if (info[browser]) {\n info.prefix = {\n inline: prefix,\n css: '-' + prefix.toLowerCase() + '-'\n };\n }\n });\n });\n\n info.browser = browserByInfo(info);\n\n // For cordova IOS 8 the version is missing, set truncated osversion to prevent NaN\n info.version = info.version ? parseFloat(info.version) : parseInt(parseFloat(info.osversion), 10);\n info.osversion = parseFloat(info.osversion);\n\n // iOS forces all browsers to use Safari under the hood\n // as the Safari version seems to match the iOS version\n // we just explicitely use the osversion instead\n // https://github.com/rofrischmann/inline-style-prefixer/issues/72\n if (info.browser === 'ios_saf' && info.version > info.osversion) {\n info.version = info.osversion;\n info.safari = true;\n }\n\n // seperate native android chrome\n // https://github.com/rofrischmann/inline-style-prefixer/issues/45\n if (info.browser === 'android' && info.chrome && info.version > 37) {\n info.browser = 'and_chr';\n }\n\n // For android < 4.4 we want to check the osversion\n // not the chrome version, see issue #26\n // https://github.com/rofrischmann/inline-style-prefixer/issues/26\n if (info.browser === 'android' && info.osversion < 5) {\n info.version = info.osversion;\n }\n\n return info;\n};\n\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 845 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (_ref) {\n var browser = _ref.browser;\n var version = _ref.version;\n var prefix = _ref.prefix;\n\n var prefixedKeyframes = 'keyframes';\n\n if (browser === 'chrome' && version < 43 || (browser === 'safari' || browser === 'ios_saf') && version < 9 || browser === 'opera' && version < 30 || browser === 'android' && version <= 4.4 || browser === 'and_uc') {\n prefixedKeyframes = prefix.css + prefixedKeyframes;\n }\n return prefixedKeyframes;\n};\n\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 846 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (property) {\n return property.match(/^(Webkit|Moz|O|ms)/) !== null;\n};\n\nmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 847 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (property) {\n var unprefixed = property.replace(/^(ms|Webkit|Moz|O)/, '');\n return unprefixed.charAt(0).toLowerCase() + unprefixed.slice(1);\n};\n\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 848 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = appendImportantToEachValue;\n\nvar _appendPxIfNeeded = __webpack_require__(394);\n\nvar _appendPxIfNeeded2 = _interopRequireDefault(_appendPxIfNeeded);\n\nvar _mapObject = __webpack_require__(399);\n\nvar _mapObject2 = _interopRequireDefault(_mapObject);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction appendImportantToEachValue(style) {\n return (0, _mapObject2.default)(style, function (result, key) {\n return (0, _appendPxIfNeeded2.default)(key, style[key]) + ' !important';\n });\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 849 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _camelCaseRegex = /([a-z])?([A-Z])/g;\n\nvar _camelCaseReplacer = function _camelCaseReplacer(match, p1, p2) {\n return (p1 || '') + '-' + p2.toLowerCase();\n};\n\nvar _camelCaseToDashCase = function _camelCaseToDashCase(s) {\n return s.replace(_camelCaseRegex, _camelCaseReplacer);\n};\n\nvar camelCasePropsToDashCase = function camelCasePropsToDashCase(prefixedStyle) {\n // Since prefix is expected to work on inline style objects, we must\n // translate the keys to dash case for rendering to CSS.\n return Object.keys(prefixedStyle).reduce(function (result, key) {\n var dashCaseKey = _camelCaseToDashCase(key);\n\n // Fix IE vendor prefix\n if (/^ms-/.test(dashCaseKey)) {\n dashCaseKey = '-' + dashCaseKey;\n }\n\n result[dashCaseKey] = prefixedStyle[key];\n return result;\n }, {});\n};\n\nexports.default = camelCasePropsToDashCase;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 850 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _enhancer = __webpack_require__(395);\n\nvar _enhancer2 = _interopRequireDefault(_enhancer);\n\nvar _styleKeeper = __webpack_require__(224);\n\nvar _styleKeeper2 = _interopRequireDefault(_styleKeeper);\n\nvar _styleSheet = __webpack_require__(851);\n\nvar _styleSheet2 = _interopRequireDefault(_styleSheet);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _getStyleKeeper(instance) {\n if (!instance._radiumStyleKeeper) {\n var userAgent = instance.props.radiumConfig && instance.props.radiumConfig.userAgent || instance.context._radiumConfig && instance.context._radiumConfig.userAgent;\n instance._radiumStyleKeeper = new _styleKeeper2.default(userAgent);\n }\n\n return instance._radiumStyleKeeper;\n}\n\nvar StyleRoot = function (_PureComponent) {\n _inherits(StyleRoot, _PureComponent);\n\n function StyleRoot() {\n _classCallCheck(this, StyleRoot);\n\n var _this = _possibleConstructorReturn(this, _PureComponent.apply(this, arguments));\n\n _getStyleKeeper(_this);\n return _this;\n }\n\n StyleRoot.prototype.getChildContext = function getChildContext() {\n return { _radiumStyleKeeper: _getStyleKeeper(this) };\n };\n\n StyleRoot.prototype.render = function render() {\n /* eslint-disable no-unused-vars */\n // Pass down all props except config to the rendered div.\n var _props = this.props,\n radiumConfig = _props.radiumConfig,\n otherProps = _objectWithoutProperties(_props, ['radiumConfig']);\n /* eslint-enable no-unused-vars */\n\n return _react2.default.createElement(\n 'div',\n otherProps,\n this.props.children,\n _react2.default.createElement(_styleSheet2.default, null)\n );\n };\n\n return StyleRoot;\n}(_react.PureComponent);\n\nStyleRoot.contextTypes = {\n _radiumConfig: _react.PropTypes.object,\n _radiumStyleKeeper: _react.PropTypes.instanceOf(_styleKeeper2.default)\n};\n\nStyleRoot.childContextTypes = {\n _radiumStyleKeeper: _react.PropTypes.instanceOf(_styleKeeper2.default)\n};\n\nStyleRoot = (0, _enhancer2.default)(StyleRoot);\n\nexports.default = StyleRoot;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 851 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = undefined;\n\nvar _class, _temp;\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styleKeeper = __webpack_require__(224);\n\nvar _styleKeeper2 = _interopRequireDefault(_styleKeeper);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar StyleSheet = (_temp = _class = function (_PureComponent) {\n _inherits(StyleSheet, _PureComponent);\n\n function StyleSheet() {\n _classCallCheck(this, StyleSheet);\n\n var _this = _possibleConstructorReturn(this, _PureComponent.apply(this, arguments));\n\n _this._onChange = function () {\n setTimeout(function () {\n _this._isMounted && _this.setState(_this._getCSSState());\n }, 0);\n };\n\n _this.state = _this._getCSSState();\n return _this;\n }\n\n StyleSheet.prototype.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n this._subscription = this.context._radiumStyleKeeper.subscribe(this._onChange);\n this._onChange();\n };\n\n StyleSheet.prototype.componentWillUnmount = function componentWillUnmount() {\n this._isMounted = false;\n if (this._subscription) {\n this._subscription.remove();\n }\n };\n\n StyleSheet.prototype._getCSSState = function _getCSSState() {\n return { css: this.context._radiumStyleKeeper.getCSS() };\n };\n\n StyleSheet.prototype.render = function render() {\n return _react2.default.createElement('style', { dangerouslySetInnerHTML: { __html: this.state.css } });\n };\n\n return StyleSheet;\n}(_react.PureComponent), _class.contextTypes = {\n _radiumStyleKeeper: _react2.default.PropTypes.instanceOf(_styleKeeper2.default)\n}, _temp);\nexports.default = StyleSheet;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 852 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _class, _temp;\n\nvar _cssRuleSetToString = __webpack_require__(222);\n\nvar _cssRuleSetToString2 = _interopRequireDefault(_cssRuleSetToString);\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Style = (_temp = _class = function (_PureComponent) {\n _inherits(Style, _PureComponent);\n\n function Style() {\n _classCallCheck(this, Style);\n\n return _possibleConstructorReturn(this, _PureComponent.apply(this, arguments));\n }\n\n Style.prototype._buildStyles = function _buildStyles(styles) {\n var _this2 = this;\n\n var userAgent = this.props.radiumConfig && this.props.radiumConfig.userAgent || this.context && this.context._radiumConfig && this.context._radiumConfig.userAgent;\n\n var scopeSelector = this.props.scopeSelector;\n\n var rootRules = Object.keys(styles).reduce(function (accumulator, selector) {\n if (_typeof(styles[selector]) !== 'object') {\n accumulator[selector] = styles[selector];\n }\n\n return accumulator;\n }, {});\n var rootStyles = Object.keys(rootRules).length ? (0, _cssRuleSetToString2.default)(scopeSelector || '', rootRules, userAgent) : '';\n\n return rootStyles + Object.keys(styles).reduce(function (accumulator, selector) {\n var rules = styles[selector];\n\n if (selector === 'mediaQueries') {\n accumulator += _this2._buildMediaQueryString(rules);\n } else if (_typeof(styles[selector]) === 'object') {\n var completeSelector = scopeSelector ? selector.split(',').map(function (part) {\n return scopeSelector + ' ' + part.trim();\n }).join(',') : selector;\n\n accumulator += (0, _cssRuleSetToString2.default)(completeSelector, rules, userAgent);\n }\n\n return accumulator;\n }, '');\n };\n\n Style.prototype._buildMediaQueryString = function _buildMediaQueryString(stylesByMediaQuery) {\n var _this3 = this;\n\n var mediaQueryString = '';\n\n Object.keys(stylesByMediaQuery).forEach(function (query) {\n mediaQueryString += '@media ' + query + '{' + _this3._buildStyles(stylesByMediaQuery[query]) + '}';\n });\n\n return mediaQueryString;\n };\n\n Style.prototype.render = function render() {\n if (!this.props.rules) {\n return null;\n }\n\n var styles = this._buildStyles(this.props.rules);\n\n return _react2.default.createElement('style', { dangerouslySetInnerHTML: { __html: styles } });\n };\n\n return Style;\n}(_react.PureComponent), _class.propTypes = {\n radiumConfig: _react.PropTypes.object,\n rules: _react.PropTypes.object,\n scopeSelector: _react.PropTypes.string\n}, _class.contextTypes = {\n _radiumConfig: _react.PropTypes.object\n}, _class.defaultProps = {\n scopeSelector: ''\n}, _temp);\nexports.default = Style;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 853 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enhancer = __webpack_require__(395);\n\nvar _enhancer2 = _interopRequireDefault(_enhancer);\n\nvar _plugins = __webpack_require__(400);\n\nvar _plugins2 = _interopRequireDefault(_plugins);\n\nvar _style = __webpack_require__(852);\n\nvar _style2 = _interopRequireDefault(_style);\n\nvar _styleRoot = __webpack_require__(850);\n\nvar _styleRoot2 = _interopRequireDefault(_styleRoot);\n\nvar _getState = __webpack_require__(397);\n\nvar _getState2 = _interopRequireDefault(_getState);\n\nvar _keyframes = __webpack_require__(854);\n\nvar _keyframes2 = _interopRequireDefault(_keyframes);\n\nvar _resolveStyles = __webpack_require__(401);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction Radium(ComposedComponent) {\n return (0, _enhancer2.default)(ComposedComponent);\n}\n\nRadium.Plugins = _plugins2.default;\nRadium.Style = _style2.default;\nRadium.StyleRoot = _styleRoot2.default;\nRadium.getState = _getState2.default;\nRadium.keyframes = _keyframes2.default;\n\nif (process.env.NODE_ENV !== 'production') {\n Radium.TestMode = {\n clearState: _resolveStyles.__clearStateForTests,\n disable: _resolveStyles.__setTestMode.bind(null, false),\n enable: _resolveStyles.__setTestMode.bind(null, true)\n };\n}\n\nexports.default = Radium;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 854 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = keyframes;\n\nvar _cssRuleSetToString = __webpack_require__(222);\n\nvar _cssRuleSetToString2 = _interopRequireDefault(_cssRuleSetToString);\n\nvar _hash = __webpack_require__(398);\n\nvar _hash2 = _interopRequireDefault(_hash);\n\nvar _prefixer = __webpack_require__(223);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction keyframes(keyframeRules, name) {\n return {\n __radiumKeyframes: true,\n __process: function __process(userAgent) {\n var keyframesPrefixed = (0, _prefixer.getPrefixedKeyframes)(userAgent);\n var rules = Object.keys(keyframeRules).map(function (percentage) {\n return (0, _cssRuleSetToString2.default)(percentage, keyframeRules[percentage], userAgent);\n }).join('\\n');\n var animationName = (name ? name + '-' : '') + 'radium-animation-' + (0, _hash2.default)(rules);\n var css = '@' + keyframesPrefixed + ' ' + animationName + ' {\\n' + rules + '\\n}\\n';\n return { css: css, animationName: animationName };\n }\n };\n}\n\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 855 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.isNestedStyle = isNestedStyle;\nexports.mergeStyles = mergeStyles;\nfunction isNestedStyle(value) {\n // Don't merge objects overriding toString, since they should be converted\n // to string values.\n return value && value.constructor === Object && value.toString === Object.prototype.toString;\n}\n\n// Merge style objects. Deep merge plain object values.\nfunction mergeStyles(styles) {\n var result = {};\n\n styles.forEach(function (style) {\n if (!style || (typeof style === 'undefined' ? 'undefined' : _typeof(style)) !== 'object') {\n return;\n }\n\n if (Array.isArray(style)) {\n style = mergeStyles(style);\n }\n\n Object.keys(style).forEach(function (key) {\n // Simple case, nothing nested\n if (!isNestedStyle(style[key]) || !isNestedStyle(result[key])) {\n result[key] = style[key];\n return;\n }\n\n // If nested media, don't merge the nested styles, append a space to the\n // end (benign when converted to CSS). This way we don't end up merging\n // media queries that appear later in the chain with those that appear\n // earlier.\n if (key.indexOf('@media') === 0) {\n var newKey = key;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n newKey += ' ';\n if (!result[newKey]) {\n result[newKey] = style[key];\n return;\n }\n }\n }\n\n // Merge all other nested styles recursively\n result[key] = mergeStyles([result[key], style[key]]);\n });\n });\n\n return result;\n}\n\n/***/ }),\n/* 856 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _checkProps = function checkProps() {};\n\nif (process.env.NODE_ENV !== 'production') {\n // Warn if you use longhand and shorthand properties in the same style\n // object.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties\n\n var shorthandPropertyExpansions = {\n background: ['backgroundAttachment', 'backgroundBlendMode', 'backgroundClip', 'backgroundColor', 'backgroundImage', 'backgroundOrigin', 'backgroundPosition', 'backgroundPositionX', 'backgroundPositionY', 'backgroundRepeat', 'backgroundRepeatX', 'backgroundRepeatY', 'backgroundSize'],\n border: ['borderBottom', 'borderBottomColor', 'borderBottomStyle', 'borderBottomWidth', 'borderColor', 'borderLeft', 'borderLeftColor', 'borderLeftStyle', 'borderLeftWidth', 'borderRight', 'borderRightColor', 'borderRightStyle', 'borderRightWidth', 'borderStyle', 'borderTop', 'borderTopColor', 'borderTopStyle', 'borderTopWidth', 'borderWidth'],\n borderImage: ['borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth'],\n borderRadius: ['borderBottomLeftRadius', 'borderBottomRightRadius', 'borderTopLeftRadius', 'borderTopRightRadius'],\n font: ['fontFamily', 'fontKerning', 'fontSize', 'fontStretch', 'fontStyle', 'fontVariant', 'fontVariantLigatures', 'fontWeight', 'lineHeight'],\n listStyle: ['listStyleImage', 'listStylePosition', 'listStyleType'],\n margin: ['marginBottom', 'marginLeft', 'marginRight', 'marginTop'],\n padding: ['paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop'],\n transition: ['transitionDelay', 'transitionDuration', 'transitionProperty', 'transitionTimingFunction']\n };\n\n _checkProps = function checkProps(config) {\n var componentName = config.componentName,\n style = config.style;\n\n if ((typeof style === 'undefined' ? 'undefined' : _typeof(style)) !== 'object' || !style) {\n return;\n }\n\n var styleKeys = Object.keys(style);\n styleKeys.forEach(function (styleKey) {\n if (Array.isArray(shorthandPropertyExpansions[styleKey]) && shorthandPropertyExpansions[styleKey].some(function (sp) {\n return styleKeys.indexOf(sp) !== -1;\n })) {\n if (process.env.NODE_ENV !== 'production') {\n /* eslint-disable no-console */\n console.warn('Radium: property \"' + styleKey + '\" in style object', style, ': do not mix longhand and ' + 'shorthand properties in the same style object. Check the render ' + 'method of ' + componentName + '.', 'See https://github.com/FormidableLabs/radium/issues/95 for more ' + 'information.');\n /* eslint-enable no-console */\n }\n }\n });\n\n styleKeys.forEach(function (k) {\n return _checkProps(_extends({}, config, { style: style[k] }));\n });\n return;\n };\n}\n\nexports.default = _checkProps;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 857 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = keyframesPlugin;\nfunction keyframesPlugin(_ref) {\n var addCSS = _ref.addCSS,\n config = _ref.config,\n style = _ref.style;\n\n var newStyle = Object.keys(style).reduce(function (newStyleInProgress, key) {\n var value = style[key];\n if (key === 'animationName' && value && value.__radiumKeyframes) {\n var keyframesValue = value;\n\n var _keyframesValue$__pro = keyframesValue.__process(config.userAgent),\n animationName = _keyframesValue$__pro.animationName,\n css = _keyframesValue$__pro.css;\n\n addCSS(css);\n value = animationName;\n }\n\n newStyleInProgress[key] = value;\n return newStyleInProgress;\n }, {});\n return { style: newStyle };\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 858 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n\n// Convenient syntax for multiple styles: `style={[style1, style2, etc]}`\n// Ignores non-objects, so you can do `this.state.isCool && styles.cool`.\nvar mergeStyleArrayPlugin = function mergeStyleArrayPlugin(_ref) {\n var style = _ref.style,\n mergeStyles = _ref.mergeStyles;\n\n // eslint-disable-line no-shadow\n var newStyle = Array.isArray(style) ? mergeStyles(style) : style;\n return { style: newStyle };\n};\n\nexports.default = mergeStyleArrayPlugin;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 859 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _callbacks = [];\nvar _mouseUpListenerIsActive = false;\n\nfunction _handleMouseUp() {\n _callbacks.forEach(function (callback) {\n callback();\n });\n}\n\nvar subscribe = function subscribe(callback) {\n if (_callbacks.indexOf(callback) === -1) {\n _callbacks.push(callback);\n }\n\n if (!_mouseUpListenerIsActive) {\n window.addEventListener('mouseup', _handleMouseUp);\n _mouseUpListenerIsActive = true;\n }\n\n return {\n remove: function remove() {\n var index = _callbacks.indexOf(callback);\n _callbacks.splice(index, 1);\n\n if (_callbacks.length === 0 && _mouseUpListenerIsActive) {\n window.removeEventListener('mouseup', _handleMouseUp);\n _mouseUpListenerIsActive = false;\n }\n }\n };\n};\n\nexports.default = {\n subscribe: subscribe,\n __triggerForTests: _handleMouseUp\n};\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 860 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixPlugin;\n\nvar _prefixer = __webpack_require__(223);\n\nfunction prefixPlugin(_ref) {\n var config = _ref.config,\n style = _ref.style;\n\n var newStyle = (0, _prefixer.getPrefixedStyle)(style, config.userAgent);\n return { style: newStyle };\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 861 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = removeNestedStyles;\nfunction removeNestedStyles(_ref) {\n var isNestedStyle = _ref.isNestedStyle,\n style = _ref.style;\n\n // eslint-disable-line no-shadow\n var newStyle = Object.keys(style).reduce(function (newStyleInProgress, key) {\n var value = style[key];\n if (!isNestedStyle(value)) {\n newStyleInProgress[key] = value;\n }\n return newStyleInProgress;\n }, {});\n\n return {\n style: newStyle\n };\n}\n\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 862 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _mouseUpListener = __webpack_require__(859);\n\nvar _mouseUpListener2 = _interopRequireDefault(_mouseUpListener);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _isInteractiveStyleField = function _isInteractiveStyleField(styleFieldName) {\n return styleFieldName === ':hover' || styleFieldName === ':active' || styleFieldName === ':focus';\n};\n\nvar resolveInteractionStyles = function resolveInteractionStyles(config) {\n var ExecutionEnvironment = config.ExecutionEnvironment,\n getComponentField = config.getComponentField,\n getState = config.getState,\n mergeStyles = config.mergeStyles,\n props = config.props,\n setState = config.setState,\n style = config.style;\n\n\n var newComponentFields = {};\n var newProps = {};\n\n // Only add handlers if necessary\n if (style[':hover']) {\n // Always call the existing handler if one is already defined.\n // This code, and the very similar ones below, could be abstracted a bit\n // more, but it hurts readability IMO.\n var existingOnMouseEnter = props.onMouseEnter;\n newProps.onMouseEnter = function (e) {\n existingOnMouseEnter && existingOnMouseEnter(e);\n setState(':hover', true);\n };\n\n var existingOnMouseLeave = props.onMouseLeave;\n newProps.onMouseLeave = function (e) {\n existingOnMouseLeave && existingOnMouseLeave(e);\n setState(':hover', false);\n };\n }\n\n if (style[':active']) {\n var existingOnMouseDown = props.onMouseDown;\n newProps.onMouseDown = function (e) {\n existingOnMouseDown && existingOnMouseDown(e);\n newComponentFields._lastMouseDown = Date.now();\n setState(':active', 'viamousedown');\n };\n\n var existingOnKeyDown = props.onKeyDown;\n newProps.onKeyDown = function (e) {\n existingOnKeyDown && existingOnKeyDown(e);\n if (e.key === ' ' || e.key === 'Enter') {\n setState(':active', 'viakeydown');\n }\n };\n\n var existingOnKeyUp = props.onKeyUp;\n newProps.onKeyUp = function (e) {\n existingOnKeyUp && existingOnKeyUp(e);\n if (e.key === ' ' || e.key === 'Enter') {\n setState(':active', false);\n }\n };\n }\n\n if (style[':focus']) {\n var existingOnFocus = props.onFocus;\n newProps.onFocus = function (e) {\n existingOnFocus && existingOnFocus(e);\n setState(':focus', true);\n };\n\n var existingOnBlur = props.onBlur;\n newProps.onBlur = function (e) {\n existingOnBlur && existingOnBlur(e);\n setState(':focus', false);\n };\n }\n\n if (style[':active'] && !getComponentField('_radiumMouseUpListener') && ExecutionEnvironment.canUseEventListeners) {\n newComponentFields._radiumMouseUpListener = _mouseUpListener2.default.subscribe(function () {\n Object.keys(getComponentField('state')._radiumStyleState).forEach(function (key) {\n if (getState(':active', key) === 'viamousedown') {\n setState(':active', false, key);\n }\n });\n });\n }\n\n // Merge the styles in the order they were defined\n var interactionStyles = props.disabled ? [style[':disabled']] : Object.keys(style).filter(function (name) {\n return _isInteractiveStyleField(name) && getState(name);\n }).map(function (name) {\n return style[name];\n });\n\n var newStyle = mergeStyles([style].concat(interactionStyles));\n\n // Remove interactive styles\n newStyle = Object.keys(newStyle).reduce(function (styleWithoutInteractions, name) {\n if (!_isInteractiveStyleField(name) && name !== ':disabled') {\n styleWithoutInteractions[name] = newStyle[name];\n }\n return styleWithoutInteractions;\n }, {});\n\n return {\n componentFields: newComponentFields,\n props: newProps,\n style: newStyle\n };\n};\n\nexports.default = resolveInteractionStyles;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 863 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = resolveMediaQueries;\nvar _windowMatchMedia = void 0;\nfunction _getWindowMatchMedia(ExecutionEnvironment) {\n if (_windowMatchMedia === undefined) {\n _windowMatchMedia = !!ExecutionEnvironment.canUseDOM && !!window && !!window.matchMedia && function (mediaQueryString) {\n return window.matchMedia(mediaQueryString);\n } || null;\n }\n return _windowMatchMedia;\n}\n\nfunction _filterObject(obj, predicate) {\n return Object.keys(obj).filter(function (key) {\n return predicate(obj[key], key);\n }).reduce(function (result, key) {\n result[key] = obj[key];\n return result;\n }, {});\n}\n\nfunction _removeMediaQueries(style) {\n return Object.keys(style).reduce(function (styleWithoutMedia, key) {\n if (key.indexOf('@media') !== 0) {\n styleWithoutMedia[key] = style[key];\n }\n return styleWithoutMedia;\n }, {});\n}\n\nfunction _topLevelRulesToCSS(_ref) {\n var addCSS = _ref.addCSS,\n appendImportantToEachValue = _ref.appendImportantToEachValue,\n cssRuleSetToString = _ref.cssRuleSetToString,\n hash = _ref.hash,\n isNestedStyle = _ref.isNestedStyle,\n style = _ref.style,\n userAgent = _ref.userAgent;\n\n var className = '';\n Object.keys(style).filter(function (name) {\n return name.indexOf('@media') === 0;\n }).map(function (query) {\n var topLevelRules = appendImportantToEachValue(_filterObject(style[query], function (value) {\n return !isNestedStyle(value);\n }));\n\n if (!Object.keys(topLevelRules).length) {\n return;\n }\n\n var ruleCSS = cssRuleSetToString('', topLevelRules, userAgent);\n\n // CSS classes cannot start with a number\n var mediaQueryClassName = 'rmq-' + hash(query + ruleCSS);\n var css = query + '{ .' + mediaQueryClassName + ruleCSS + '}';\n\n addCSS(css);\n\n className += (className ? ' ' : '') + mediaQueryClassName;\n });\n return className;\n}\n\nfunction _subscribeToMediaQuery(_ref2) {\n var listener = _ref2.listener,\n listenersByQuery = _ref2.listenersByQuery,\n matchMedia = _ref2.matchMedia,\n mediaQueryListsByQuery = _ref2.mediaQueryListsByQuery,\n query = _ref2.query;\n\n query = query.replace('@media ', '');\n\n var mql = mediaQueryListsByQuery[query];\n if (!mql && matchMedia) {\n mediaQueryListsByQuery[query] = mql = matchMedia(query);\n }\n\n if (!listenersByQuery || !listenersByQuery[query]) {\n mql.addListener(listener);\n\n listenersByQuery[query] = {\n remove: function remove() {\n mql.removeListener(listener);\n }\n };\n }\n return mql;\n}\n\nfunction resolveMediaQueries(_ref3) {\n var ExecutionEnvironment = _ref3.ExecutionEnvironment,\n addCSS = _ref3.addCSS,\n appendImportantToEachValue = _ref3.appendImportantToEachValue,\n config = _ref3.config,\n cssRuleSetToString = _ref3.cssRuleSetToString,\n getComponentField = _ref3.getComponentField,\n getGlobalState = _ref3.getGlobalState,\n hash = _ref3.hash,\n isNestedStyle = _ref3.isNestedStyle,\n mergeStyles = _ref3.mergeStyles,\n props = _ref3.props,\n setState = _ref3.setState,\n style = _ref3.style;\n\n // eslint-disable-line no-shadow\n var newStyle = _removeMediaQueries(style);\n var mediaQueryClassNames = _topLevelRulesToCSS({\n addCSS: addCSS,\n appendImportantToEachValue: appendImportantToEachValue,\n cssRuleSetToString: cssRuleSetToString,\n hash: hash,\n isNestedStyle: isNestedStyle,\n style: style,\n userAgent: config.userAgent\n });\n\n var newProps = mediaQueryClassNames ? {\n className: mediaQueryClassNames + (props.className ? ' ' + props.className : '')\n } : null;\n\n var matchMedia = config.matchMedia || _getWindowMatchMedia(ExecutionEnvironment);\n\n if (!matchMedia) {\n return {\n props: newProps,\n style: newStyle\n };\n }\n\n var listenersByQuery = _extends({}, getComponentField('_radiumMediaQueryListenersByQuery'));\n var mediaQueryListsByQuery = getGlobalState('mediaQueryListsByQuery') || {};\n\n Object.keys(style).filter(function (name) {\n return name.indexOf('@media') === 0;\n }).map(function (query) {\n var nestedRules = _filterObject(style[query], isNestedStyle);\n\n if (!Object.keys(nestedRules).length) {\n return;\n }\n\n var mql = _subscribeToMediaQuery({\n listener: function listener() {\n return setState(query, mql.matches, '_all');\n },\n listenersByQuery: listenersByQuery,\n matchMedia: matchMedia,\n mediaQueryListsByQuery: mediaQueryListsByQuery,\n query: query\n });\n\n // Apply media query states\n if (mql.matches) {\n newStyle = mergeStyles([newStyle, nestedRules]);\n }\n });\n\n return {\n componentFields: {\n _radiumMediaQueryListenersByQuery: listenersByQuery\n },\n globalState: { mediaQueryListsByQuery: mediaQueryListsByQuery },\n props: newProps,\n style: newStyle\n };\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 864 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = visited;\nfunction visited(_ref) {\n var addCSS = _ref.addCSS,\n appendImportantToEachValue = _ref.appendImportantToEachValue,\n config = _ref.config,\n cssRuleSetToString = _ref.cssRuleSetToString,\n hash = _ref.hash,\n props = _ref.props,\n style = _ref.style;\n\n // eslint-disable-line no-shadow\n var className = props.className;\n\n var newStyle = Object.keys(style).reduce(function (newStyleInProgress, key) {\n var value = style[key];\n if (key === ':visited') {\n value = appendImportantToEachValue(value);\n var ruleCSS = cssRuleSetToString('', value, config.userAgent);\n var visitedClassName = 'rad-' + hash(ruleCSS);\n var css = '.' + visitedClassName + ':visited' + ruleCSS;\n\n addCSS(css);\n className = (className ? className + ' ' : '') + visitedClassName;\n } else {\n newStyleInProgress[key] = value;\n }\n\n return newStyleInProgress;\n }, {});\n\n return {\n props: className === props.className ? null : { className: className },\n style: newStyle\n };\n}\n\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 865 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getTickValuesFixedDomain = exports.getTickValues = exports.getNiceTickValues = void 0;\n\nvar _decimal = _interopRequireDefault(__webpack_require__(340));\n\nvar _utils = __webpack_require__(402);\n\nvar _arithmetic = _interopRequireDefault(__webpack_require__(867));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new _decimal.default(0);\n }\n\n var digitCount = _arithmetic.default.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n\n var digitCountValue = new _decimal.default(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new _decimal.default(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new _decimal.default(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new _decimal.default(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new _decimal.default(10).pow(_arithmetic.default.getDigitCount(value) - 1);\n middle = new _decimal.default(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new _decimal.default(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new _decimal.default(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new _decimal.default(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = (0, _utils.compose)((0, _utils.map)(function (n) {\n return middle.add(new _decimal.default(n - middleIndex).mul(step)).toNumber();\n }), _utils.range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new _decimal.default(0),\n tickMin: new _decimal.default(0),\n tickMax: new _decimal.default(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new _decimal.default(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new _decimal.default(0);\n } else {\n // calculate the middle value\n middle = new _decimal.default(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new _decimal.default(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new _decimal.default(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new _decimal.default(belowCount).mul(step)),\n tickMax: middle.add(new _decimal.default(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray((0, _utils.range)(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : _toConsumableArray((0, _utils.range)(0, tickCount - 1).map(function () {\n return -Infinity;\n })).concat([cormax]);\n\n return min > max ? (0, _utils.reverse)(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = _arithmetic.default.rangeStep(tickMin, tickMax.add(new _decimal.default(0.1).mul(step)), step);\n\n return min > max ? (0, _utils.reverse)(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new _decimal.default(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = (0, _utils.compose)((0, _utils.map)(function (n) {\n return new _decimal.default(cormin).add(new _decimal.default(n).mul(step)).toNumber();\n }), _utils.range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? (0, _utils.reverse)(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n // More than two ticks should be return\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new _decimal.default(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n\n var values = _toConsumableArray(_arithmetic.default.rangeStep(new _decimal.default(cormin), new _decimal.default(cormax).sub(new _decimal.default(0.99).mul(step)), step)).concat([cormax]);\n\n return min > max ? (0, _utils.reverse)(values) : values;\n}\n\nvar getNiceTickValues = (0, _utils.memoize)(getNiceTickValuesFn);\nexports.getNiceTickValues = getNiceTickValues;\nvar getTickValues = (0, _utils.memoize)(getTickValuesFn);\nexports.getTickValues = getTickValues;\nvar getTickValuesFixedDomain = (0, _utils.memoize)(getTickValuesFixedDomainFn);\nexports.getTickValuesFixedDomain = getTickValuesFixedDomain;\n\n/***/ }),\n/* 866 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"getTickValues\", {\n enumerable: true,\n get: function get() {\n return _getNiceTickValues.getTickValues;\n }\n});\nObject.defineProperty(exports, \"getNiceTickValues\", {\n enumerable: true,\n get: function get() {\n return _getNiceTickValues.getNiceTickValues;\n }\n});\nObject.defineProperty(exports, \"getTickValuesFixedDomain\", {\n enumerable: true,\n get: function get() {\n return _getNiceTickValues.getTickValuesFixedDomain;\n }\n});\n\nvar _getNiceTickValues = __webpack_require__(865);\n\n/***/ }),\n/* 867 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _decimal = _interopRequireDefault(__webpack_require__(340));\n\nvar _utils = __webpack_require__(402);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\n\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new _decimal.default(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new _decimal.default(start);\n var result = [];\n\n while (num.lt(end)) {\n result.push(num.toNumber());\n num = num.add(step);\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = (0, _utils.curry)(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = (0, _utils.curry)(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = (0, _utils.curry)(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nvar _default = {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};\nexports.default = _default;\n\n/***/ }),\n/* 868 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_DataUtils__ = __webpack_require__(11);\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Cartesian Grid\n */\n\n\n\n\n\n\nvar CartesianGrid = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(CartesianGrid, _Component);\n\n function CartesianGrid() {\n _classCallCheck(this, CartesianGrid);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(CartesianGrid).apply(this, arguments));\n }\n\n _createClass(CartesianGrid, [{\n key: \"renderHorizontal\",\n\n /**\n * Draw the horizontal grid lines\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal lines\n */\n value: function renderHorizontal(horizontalPoints) {\n var _this = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n width = _this$props.width,\n horizontal = _this$props.horizontal;\n\n if (!horizontalPoints || !horizontalPoints.length) {\n return null;\n }\n\n var items = horizontalPoints.map(function (entry, i) {\n var props = _objectSpread({}, _this.props, {\n x1: x,\n y1: entry,\n x2: x + width,\n y2: entry,\n key: \"line-\".concat(i),\n index: i\n });\n\n return _this.constructor.renderLineItem(horizontal, props);\n });\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\"g\", {\n className: \"recharts-cartesian-grid-horizontal\"\n }, items);\n }\n /**\n * Draw vertical grid lines\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical lines\n */\n\n }, {\n key: \"renderVertical\",\n value: function renderVertical(verticalPoints) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n y = _this$props2.y,\n height = _this$props2.height,\n vertical = _this$props2.vertical;\n\n if (!verticalPoints || !verticalPoints.length) {\n return null;\n }\n\n var items = verticalPoints.map(function (entry, i) {\n var props = _objectSpread({}, _this2.props, {\n x1: entry,\n y1: y,\n x2: entry,\n y2: y + height,\n key: \"line-\".concat(i),\n index: i\n });\n\n return _this2.constructor.renderLineItem(vertical, props);\n });\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\"g\", {\n className: \"recharts-cartesian-grid-vertical\"\n }, items);\n }\n /**\n * Draw vertical grid stripes filled by colors\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical stripes\n */\n\n }, {\n key: \"renderVerticalStripes\",\n value: function renderVerticalStripes(verticalPoints) {\n var verticalFill = this.props.verticalFill;\n\n if (!verticalFill || !verticalFill.length) {\n return null;\n }\n\n var _this$props3 = this.props,\n fillOpacity = _this$props3.fillOpacity,\n x = _this$props3.x,\n y = _this$props3.y,\n width = _this$props3.width,\n height = _this$props3.height;\n var verticalPointsUpdated = verticalPoints.slice().sort(function (a, b) {\n return a - b;\n });\n\n if (x !== verticalPointsUpdated[0]) {\n verticalPointsUpdated.unshift(0);\n }\n\n var items = verticalPointsUpdated.map(function (entry, i) {\n var lineWidth = verticalPointsUpdated[i + 1] ? verticalPointsUpdated[i + 1] - entry : x + width - entry;\n\n if (lineWidth <= 0) {\n return null;\n }\n\n var colorIndex = i % verticalFill.length;\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\"rect\", {\n key: \"react-\".concat(i),\n x: Math.round(entry + x - x),\n y: y,\n width: lineWidth,\n height: height,\n stroke: \"none\",\n fill: verticalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-vertical\"\n }, items);\n }\n /**\n * Draw horizontal grid stripes filled by colors\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal stripes\n */\n\n }, {\n key: \"renderHorizontalStripes\",\n value: function renderHorizontalStripes(horizontalPoints) {\n var horizontalFill = this.props.horizontalFill;\n\n if (!horizontalFill || !horizontalFill.length) {\n return null;\n }\n\n var _this$props4 = this.props,\n fillOpacity = _this$props4.fillOpacity,\n x = _this$props4.x,\n y = _this$props4.y,\n width = _this$props4.width,\n height = _this$props4.height;\n var horizontalPointsUpdated = horizontalPoints.slice().sort(function (a, b) {\n return a - b;\n });\n\n if (y !== horizontalPointsUpdated[0]) {\n horizontalPointsUpdated.unshift(0);\n }\n\n var items = horizontalPointsUpdated.map(function (entry, i) {\n var lineHeight = horizontalPointsUpdated[i + 1] ? horizontalPointsUpdated[i + 1] - entry : y + height - entry;\n\n if (lineHeight <= 0) {\n return null;\n }\n\n var colorIndex = i % horizontalFill.length;\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\"rect\", {\n key: \"react-\".concat(i),\n y: Math.round(entry + y - y),\n x: x,\n height: lineHeight,\n width: width,\n stroke: \"none\",\n fill: horizontalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-horizontal\"\n }, items);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var fill = this.props.fill;\n\n if (!fill || fill === 'none') {\n return null;\n }\n\n var _this$props5 = this.props,\n fillOpacity = _this$props5.fillOpacity,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height;\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n stroke: \"none\",\n fill: fill,\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n horizontal = _this$props6.horizontal,\n vertical = _this$props6.vertical,\n horizontalCoordinatesGenerator = _this$props6.horizontalCoordinatesGenerator,\n verticalCoordinatesGenerator = _this$props6.verticalCoordinatesGenerator,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n offset = _this$props6.offset,\n chartWidth = _this$props6.chartWidth,\n chartHeight = _this$props6.chartHeight;\n\n if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_DataUtils__[\"a\" /* isNumber */])(width) || width <= 0 || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_DataUtils__[\"a\" /* isNumber */])(height) || height <= 0 || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_DataUtils__[\"a\" /* isNumber */])(x) || x !== +x || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_DataUtils__[\"a\" /* isNumber */])(y) || y !== +y) {\n return null;\n }\n\n var _this$props7 = this.props,\n horizontalPoints = _this$props7.horizontalPoints,\n verticalPoints = _this$props7.verticalPoints; // No horizontal points are specified\n\n if ((!horizontalPoints || !horizontalPoints.length) && __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default()(horizontalCoordinatesGenerator)) {\n horizontalPoints = horizontalCoordinatesGenerator({\n yAxis: yAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n } // No vertical points are specified\n\n\n if ((!verticalPoints || !verticalPoints.length) && __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default()(verticalCoordinatesGenerator)) {\n verticalPoints = verticalCoordinatesGenerator({\n xAxis: xAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n }\n\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\"g\", {\n className: \"recharts-cartesian-grid\"\n }, this.renderBackground(), horizontal && this.renderHorizontal(horizontalPoints), vertical && this.renderVertical(verticalPoints), horizontal && this.renderHorizontalStripes(horizontalPoints), vertical && this.renderVerticalStripes(verticalPoints));\n }\n }], [{\n key: \"renderLineItem\",\n value: function renderLineItem(option, props) {\n var lineItem;\n\n if (__WEBPACK_IMPORTED_MODULE_1_react___default.a.isValidElement(option)) {\n lineItem = __WEBPACK_IMPORTED_MODULE_1_react___default.a.cloneElement(option, props);\n } else if (__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default()(option)) {\n lineItem = option(props);\n } else {\n var x1 = props.x1,\n y1 = props.y1,\n x2 = props.x2,\n y2 = props.y2,\n key = props.key,\n others = _objectWithoutProperties(props, [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"]);\n\n lineItem = __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\"line\", _extends({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(others), {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n fill: \"none\",\n key: key\n }));\n }\n\n return lineItem;\n }\n }]);\n\n return CartesianGrid;\n}(__WEBPACK_IMPORTED_MODULE_1_react__[\"Component\"]), _class2.displayName = 'CartesianGrid', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], {\n x: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n y: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n width: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n horizontal: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool]),\n vertical: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool]),\n horizontalPoints: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number),\n verticalPoints: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number),\n horizontalCoordinatesGenerator: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,\n verticalCoordinatesGenerator: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,\n xAxis: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object,\n yAxis: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object,\n offset: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object,\n chartWidth: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n chartHeight: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n verticalFill: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string),\n horizontalFill: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string)\n}), _class2.defaultProps = {\n horizontal: true,\n vertical: true,\n // The ordinates of horizontal grid lines\n horizontalPoints: [],\n // The abscissas of vertical grid lines\n verticalPoints: [],\n stroke: '#ccc',\n fill: 'none',\n // The fill of colors of grid lines\n verticalFill: [],\n horizontalFill: []\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (CartesianGrid);\n\n/***/ }),\n/* 869 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__generateCategoricalChart__ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__cartesian_Area__ = __webpack_require__(225);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__cartesian_XAxis__ = __webpack_require__(71);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cartesian_YAxis__ = __webpack_require__(72);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_CartesianUtils__ = __webpack_require__(45);\n/**\n * @fileOverview Area Chart\n */\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__generateCategoricalChart__[\"a\" /* default */])({\n chartName: 'AreaChart',\n GraphicalChild: __WEBPACK_IMPORTED_MODULE_1__cartesian_Area__[\"a\" /* default */],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: __WEBPACK_IMPORTED_MODULE_2__cartesian_XAxis__[\"a\" /* default */]\n }, {\n axisType: 'yAxis',\n AxisComp: __WEBPACK_IMPORTED_MODULE_3__cartesian_YAxis__[\"a\" /* default */]\n }],\n formatAxisMap: __WEBPACK_IMPORTED_MODULE_4__util_CartesianUtils__[\"a\" /* formatAxisMap */]\n}));\n\n/***/ }),\n/* 870 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__generateCategoricalChart__ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__cartesian_Bar__ = __webpack_require__(226);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__cartesian_XAxis__ = __webpack_require__(71);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cartesian_YAxis__ = __webpack_require__(72);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_CartesianUtils__ = __webpack_require__(45);\n/**\n * @fileOverview Bar Chart\n */\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__generateCategoricalChart__[\"a\" /* default */])({\n chartName: 'BarChart',\n GraphicalChild: __WEBPACK_IMPORTED_MODULE_1__cartesian_Bar__[\"a\" /* default */],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: __WEBPACK_IMPORTED_MODULE_2__cartesian_XAxis__[\"a\" /* default */]\n }, {\n axisType: 'yAxis',\n AxisComp: __WEBPACK_IMPORTED_MODULE_3__cartesian_YAxis__[\"a\" /* default */]\n }],\n formatAxisMap: __WEBPACK_IMPORTED_MODULE_4__util_CartesianUtils__[\"a\" /* formatAxisMap */]\n}));\n\n/***/ }),\n/* 871 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__generateCategoricalChart__ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__cartesian_Area__ = __webpack_require__(225);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__cartesian_Bar__ = __webpack_require__(226);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cartesian_Line__ = __webpack_require__(227);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__cartesian_Scatter__ = __webpack_require__(228);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__cartesian_XAxis__ = __webpack_require__(71);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__cartesian_YAxis__ = __webpack_require__(72);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__cartesian_ZAxis__ = __webpack_require__(139);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__util_CartesianUtils__ = __webpack_require__(45);\n/**\n * @fileOverview Composed Chart\n */\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__generateCategoricalChart__[\"a\" /* default */])({\n chartName: 'ComposedChart',\n GraphicalChild: [__WEBPACK_IMPORTED_MODULE_3__cartesian_Line__[\"a\" /* default */], __WEBPACK_IMPORTED_MODULE_1__cartesian_Area__[\"a\" /* default */], __WEBPACK_IMPORTED_MODULE_2__cartesian_Bar__[\"a\" /* default */], __WEBPACK_IMPORTED_MODULE_4__cartesian_Scatter__[\"a\" /* default */]],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: __WEBPACK_IMPORTED_MODULE_5__cartesian_XAxis__[\"a\" /* default */]\n }, {\n axisType: 'yAxis',\n AxisComp: __WEBPACK_IMPORTED_MODULE_6__cartesian_YAxis__[\"a\" /* default */]\n }, {\n axisType: 'zAxis',\n AxisComp: __WEBPACK_IMPORTED_MODULE_7__cartesian_ZAxis__[\"a\" /* default */]\n }],\n formatAxisMap: __WEBPACK_IMPORTED_MODULE_8__util_CartesianUtils__[\"a\" /* formatAxisMap */]\n}));\n\n/***/ }),\n/* 872 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__generateCategoricalChart__ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__numberAxis_Funnel__ = __webpack_require__(408);\n/**\n * @fileOverview Funnel Chart\n */\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__generateCategoricalChart__[\"a\" /* default */])({\n chartName: 'FunnelChart',\n GraphicalChild: __WEBPACK_IMPORTED_MODULE_2__numberAxis_Funnel__[\"a\" /* default */],\n eventType: 'item',\n axisComponents: [],\n defaultProps: {\n layout: 'centric'\n },\n propTypes: {\n layout: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOf(['centric'])\n }\n}));\n\n/***/ }),\n/* 873 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__generateCategoricalChart__ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__cartesian_Line__ = __webpack_require__(227);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__cartesian_XAxis__ = __webpack_require__(71);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cartesian_YAxis__ = __webpack_require__(72);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_CartesianUtils__ = __webpack_require__(45);\n/**\n * @fileOverview Line Chart\n */\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__generateCategoricalChart__[\"a\" /* default */])({\n chartName: 'LineChart',\n GraphicalChild: __WEBPACK_IMPORTED_MODULE_1__cartesian_Line__[\"a\" /* default */],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: __WEBPACK_IMPORTED_MODULE_2__cartesian_XAxis__[\"a\" /* default */]\n }, {\n axisType: 'yAxis',\n AxisComp: __WEBPACK_IMPORTED_MODULE_3__cartesian_YAxis__[\"a\" /* default */]\n }],\n formatAxisMap: __WEBPACK_IMPORTED_MODULE_4__util_CartesianUtils__[\"a\" /* formatAxisMap */]\n}));\n\n/***/ }),\n/* 874 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__generateCategoricalChart__ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__polar_PolarAngleAxis__ = __webpack_require__(141);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__polar_PolarRadiusAxis__ = __webpack_require__(142);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_PolarUtils__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__polar_Pie__ = __webpack_require__(409);\n/**\n * @fileOverview Pie Chart\n */\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__generateCategoricalChart__[\"a\" /* default */])({\n chartName: 'PieChart',\n GraphicalChild: __WEBPACK_IMPORTED_MODULE_5__polar_Pie__[\"a\" /* default */],\n eventType: 'item',\n legendContent: 'children',\n axisComponents: [{\n axisType: 'angleAxis',\n AxisComp: __WEBPACK_IMPORTED_MODULE_2__polar_PolarAngleAxis__[\"a\" /* default */]\n }, {\n axisType: 'radiusAxis',\n AxisComp: __WEBPACK_IMPORTED_MODULE_3__polar_PolarRadiusAxis__[\"a\" /* default */]\n }],\n formatAxisMap: __WEBPACK_IMPORTED_MODULE_4__util_PolarUtils__[\"c\" /* formatAxisMap */],\n defaultProps: {\n layout: 'centric',\n startAngle: 0,\n endAngle: 360,\n cx: '50%',\n cy: '50%',\n innerRadius: 0,\n outerRadius: '80%'\n },\n propTypes: {\n layout: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOf(['centric']),\n startAngle: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number,\n endAngle: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number,\n cx: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string]),\n cy: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string]),\n innerRadius: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string]),\n outerRadius: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string])\n }\n}));\n\n/***/ }),\n/* 875 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__generateCategoricalChart__ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__polar_Radar__ = __webpack_require__(410);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__polar_PolarAngleAxis__ = __webpack_require__(141);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__polar_PolarRadiusAxis__ = __webpack_require__(142);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_PolarUtils__ = __webpack_require__(30);\n/**\n * @fileOverview Radar Chart\n */\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__generateCategoricalChart__[\"a\" /* default */])({\n chartName: 'RadarChart',\n GraphicalChild: __WEBPACK_IMPORTED_MODULE_2__polar_Radar__[\"a\" /* default */],\n axisComponents: [{\n axisType: 'angleAxis',\n AxisComp: __WEBPACK_IMPORTED_MODULE_3__polar_PolarAngleAxis__[\"a\" /* default */]\n }, {\n axisType: 'radiusAxis',\n AxisComp: __WEBPACK_IMPORTED_MODULE_4__polar_PolarRadiusAxis__[\"a\" /* default */]\n }],\n formatAxisMap: __WEBPACK_IMPORTED_MODULE_5__util_PolarUtils__[\"c\" /* formatAxisMap */],\n defaultProps: {\n layout: 'centric',\n startAngle: 90,\n endAngle: -270,\n cx: '50%',\n cy: '50%',\n innerRadius: 0,\n outerRadius: '80%'\n },\n propTypes: {\n layout: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOf(['centric']),\n startAngle: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number,\n endAngle: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number,\n cx: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string]),\n cy: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string]),\n innerRadius: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string]),\n outerRadius: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string])\n }\n}));\n\n/***/ }),\n/* 876 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__generateCategoricalChart__ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__polar_PolarAngleAxis__ = __webpack_require__(141);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__polar_PolarRadiusAxis__ = __webpack_require__(142);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_PolarUtils__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__polar_RadialBar__ = __webpack_require__(411);\n/**\n * @fileOverview Radar Bar Chart\n */\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__generateCategoricalChart__[\"a\" /* default */])({\n chartName: 'RadialBarChart',\n GraphicalChild: __WEBPACK_IMPORTED_MODULE_5__polar_RadialBar__[\"a\" /* default */],\n legendContent: 'children',\n axisComponents: [{\n axisType: 'angleAxis',\n AxisComp: __WEBPACK_IMPORTED_MODULE_2__polar_PolarAngleAxis__[\"a\" /* default */]\n }, {\n axisType: 'radiusAxis',\n AxisComp: __WEBPACK_IMPORTED_MODULE_3__polar_PolarRadiusAxis__[\"a\" /* default */]\n }],\n formatAxisMap: __WEBPACK_IMPORTED_MODULE_4__util_PolarUtils__[\"c\" /* formatAxisMap */],\n defaultProps: {\n layout: 'radial',\n startAngle: 0,\n endAngle: 360,\n cx: '50%',\n cy: '50%',\n innerRadius: 0,\n outerRadius: '80%'\n },\n propTypes: {\n layout: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOf(['radial']),\n startAngle: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number,\n endAngle: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number,\n cx: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string]),\n cy: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string]),\n innerRadius: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string]),\n outerRadius: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string])\n }\n}));\n\n/***/ }),\n/* 877 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_sumBy__ = __webpack_require__(780);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_sumBy___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_sumBy__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_min__ = __webpack_require__(376);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_min___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_min__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_maxBy__ = __webpack_require__(375);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_maxBy___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_lodash_maxBy__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__container_Surface__ = __webpack_require__(97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__component_Tooltip__ = __webpack_require__(140);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__shape_Rectangle__ = __webpack_require__(75);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__util_ChartUtils__ = __webpack_require__(16);\n\n\n\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * @file TreemapChart\n */\n\n\n\n\n\n\n\n\n\n\nvar defaultCoordinateOfTooltip = {\n x: 0,\n y: 0\n};\n\nvar interpolationGenerator = function interpolationGenerator(a, b) {\n var ka = +a;\n var kb = b - ka;\n return function (t) {\n return ka + kb * t;\n };\n};\n\nvar centerY = function centerY(node) {\n return node.y + node.dy / 2;\n};\n\nvar getValue = function getValue(entry) {\n return entry && entry.value || 0;\n};\n\nvar getSumOfIds = function getSumOfIds(links, ids) {\n return ids.reduce(function (result, id) {\n return result + getValue(links[id]);\n }, 0);\n};\n\nvar getSumWithWeightedSource = function getSumWithWeightedSource(tree, links, ids) {\n return ids.reduce(function (result, id) {\n var link = links[id];\n var sourceNode = tree[link.source];\n return result + centerY(sourceNode) * getValue(links[id]);\n }, 0);\n};\n\nvar getSumWithWeightedTarget = function getSumWithWeightedTarget(tree, links, ids) {\n return ids.reduce(function (result, id) {\n var link = links[id];\n var targetNode = tree[link.target];\n return result + centerY(targetNode) * getValue(links[id]);\n }, 0);\n};\n\nvar ascendingY = function ascendingY(a, b) {\n return a.y - b.y;\n};\n\nvar searchTargetsAndSources = function searchTargetsAndSources(links, id) {\n var sourceNodes = [];\n var sourceLinks = [];\n var targetNodes = [];\n var targetLinks = [];\n\n for (var i = 0, len = links.length; i < len; i++) {\n var link = links[i];\n\n if (link.source === id) {\n targetNodes.push(link.target);\n targetLinks.push(i);\n }\n\n if (link.target === id) {\n sourceNodes.push(link.source);\n sourceLinks.push(i);\n }\n }\n\n return {\n sourceNodes: sourceNodes,\n sourceLinks: sourceLinks,\n targetLinks: targetLinks,\n targetNodes: targetNodes\n };\n};\n\nvar updateDepthOfTargets = function updateDepthOfTargets(tree, curNode) {\n var targetNodes = curNode.targetNodes;\n\n for (var i = 0, len = targetNodes.length; i < len; i++) {\n var target = tree[targetNodes[i]];\n\n if (target) {\n target.depth = Math.max(curNode.depth + 1, target.depth);\n updateDepthOfTargets(tree, target);\n }\n }\n};\n\nvar getNodesTree = function getNodesTree(_ref, width, nodeWidth) {\n var nodes = _ref.nodes,\n links = _ref.links;\n var tree = nodes.map(function (entry, index) {\n var result = searchTargetsAndSources(links, index);\n return _objectSpread({}, entry, result, {\n value: Math.max(getSumOfIds(links, result.sourceLinks), getSumOfIds(links, result.targetLinks)),\n depth: 0\n });\n });\n\n for (var i = 0, len = tree.length; i < len; i++) {\n var node = tree[i];\n\n if (!node.sourceNodes.length) {\n updateDepthOfTargets(tree, node);\n }\n }\n\n var maxDepth = __WEBPACK_IMPORTED_MODULE_3_lodash_maxBy___default()(tree, function (entry) {\n return entry.depth;\n }).depth;\n\n if (maxDepth >= 1) {\n var childWidth = (width - nodeWidth) / maxDepth;\n\n for (var _i = 0, _len = tree.length; _i < _len; _i++) {\n var _node = tree[_i];\n\n if (!_node.targetNodes.length) {\n _node.depth = maxDepth;\n }\n\n _node.x = _node.depth * childWidth;\n _node.dx = nodeWidth;\n }\n }\n\n return {\n tree: tree,\n maxDepth: maxDepth\n };\n};\n\nvar getDepthTree = function getDepthTree(tree) {\n var result = [];\n\n for (var i = 0, len = tree.length; i < len; i++) {\n var node = tree[i];\n\n if (!result[node.depth]) {\n result[node.depth] = [];\n }\n\n result[node.depth].push(node);\n }\n\n return result;\n};\n\nvar updateYOfTree = function updateYOfTree(depthTree, height, nodePadding, links) {\n var yRatio = __WEBPACK_IMPORTED_MODULE_2_lodash_min___default()(depthTree.map(function (nodes) {\n return (height - (nodes.length - 1) * nodePadding) / __WEBPACK_IMPORTED_MODULE_1_lodash_sumBy___default()(nodes, getValue);\n }));\n\n for (var d = 0, maxDepth = depthTree.length; d < maxDepth; d++) {\n for (var i = 0, len = depthTree[d].length; i < len; i++) {\n var node = depthTree[d][i];\n node.y = i;\n node.dy = node.value * yRatio;\n }\n }\n\n return links.map(function (link) {\n return _objectSpread({}, link, {\n dy: getValue(link) * yRatio\n });\n });\n};\n\nvar resolveCollisions = function resolveCollisions(depthTree, height, nodePadding) {\n for (var i = 0, len = depthTree.length; i < len; i++) {\n var nodes = depthTree[i];\n var n = nodes.length; // Sort by the value of y\n\n nodes.sort(ascendingY);\n var y0 = 0;\n\n for (var j = 0; j < n; j++) {\n var node = nodes[j];\n var dy = y0 - node.y;\n\n if (dy > 0) {\n node.y += dy;\n }\n\n y0 = node.y + node.dy + nodePadding;\n }\n\n y0 = height + nodePadding;\n\n for (var _j = n - 1; _j >= 0; _j--) {\n var _node2 = nodes[_j];\n\n var _dy = _node2.y + _node2.dy + nodePadding - y0;\n\n if (_dy > 0) {\n _node2.y -= _dy;\n y0 = _node2.y;\n } else {\n break;\n }\n }\n }\n};\n\nvar relaxLeftToRight = function relaxLeftToRight(tree, depthTree, links, alpha) {\n for (var i = 0, maxDepth = depthTree.length; i < maxDepth; i++) {\n var nodes = depthTree[i];\n\n for (var j = 0, len = nodes.length; j < len; j++) {\n var node = nodes[j];\n\n if (node.sourceLinks.length) {\n var sourceSum = getSumOfIds(links, node.sourceLinks);\n var weightedSum = getSumWithWeightedSource(tree, links, node.sourceLinks);\n var y = weightedSum / sourceSum;\n node.y += (y - centerY(node)) * alpha;\n }\n }\n }\n};\n\nvar relaxRightToLeft = function relaxRightToLeft(tree, depthTree, links, alpha) {\n for (var i = depthTree.length - 1; i >= 0; i--) {\n var nodes = depthTree[i];\n\n for (var j = 0, len = nodes.length; j < len; j++) {\n var node = nodes[j];\n\n if (node.targetLinks.length) {\n var targetSum = getSumOfIds(links, node.targetLinks);\n var weightedSum = getSumWithWeightedTarget(tree, links, node.targetLinks);\n var y = weightedSum / targetSum;\n node.y += (y - centerY(node)) * alpha;\n }\n }\n }\n};\n\nvar updateYOfLinks = function updateYOfLinks(tree, links) {\n for (var i = 0, len = tree.length; i < len; i++) {\n var node = tree[i];\n var sy = 0;\n var ty = 0;\n node.targetLinks.sort(function (a, b) {\n return tree[links[a].target].y - tree[links[b].target].y;\n });\n node.sourceLinks.sort(function (a, b) {\n return tree[links[a].source].y - tree[links[b].source].y;\n });\n\n for (var j = 0, tLen = node.targetLinks.length; j < tLen; j++) {\n var link = links[node.targetLinks[j]];\n\n if (link) {\n link.sy = sy;\n sy += link.dy;\n }\n }\n\n for (var _j2 = 0, sLen = node.sourceLinks.length; _j2 < sLen; _j2++) {\n var _link = links[node.sourceLinks[_j2]];\n\n if (_link) {\n _link.ty = ty;\n ty += _link.dy;\n }\n }\n }\n};\n\nvar computeData = function computeData(_ref2) {\n var data = _ref2.data,\n width = _ref2.width,\n height = _ref2.height,\n iterations = _ref2.iterations,\n nodeWidth = _ref2.nodeWidth,\n nodePadding = _ref2.nodePadding;\n var links = data.links;\n\n var _getNodesTree = getNodesTree(data, width, nodeWidth),\n tree = _getNodesTree.tree;\n\n var depthTree = getDepthTree(tree);\n var newLinks = updateYOfTree(depthTree, height, nodePadding, links);\n resolveCollisions(depthTree, height, nodePadding);\n var alpha = 1;\n\n for (var i = 1; i <= iterations; i++) {\n relaxRightToLeft(tree, depthTree, newLinks, alpha *= 0.99);\n resolveCollisions(depthTree, height, nodePadding);\n relaxLeftToRight(tree, depthTree, newLinks, alpha);\n resolveCollisions(depthTree, height, nodePadding);\n }\n\n updateYOfLinks(tree, newLinks);\n return {\n nodes: tree,\n links: newLinks\n };\n};\n\nvar getCoordinateOfTooltip = function getCoordinateOfTooltip(el, type) {\n if (type === 'node') {\n return {\n x: el.x + el.width / 2,\n y: el.y + el.height / 2\n };\n }\n\n return {\n x: (el.sourceX + el.targetX) / 2,\n y: (el.sourceY + el.targetY) / 2\n };\n};\n\nvar getPayloadOfTooltip = function getPayloadOfTooltip(el, type, nameKey) {\n var payload = el.payload;\n\n if (type === 'node') {\n return [{\n payload: el,\n name: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__util_ChartUtils__[\"o\" /* getValueByDataKey */])(payload, nameKey, ''),\n value: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__util_ChartUtils__[\"o\" /* getValueByDataKey */])(payload, 'value')\n }];\n }\n\n if (payload.source && payload.target) {\n var sourceName = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__util_ChartUtils__[\"o\" /* getValueByDataKey */])(payload.source, nameKey, '');\n var targetName = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__util_ChartUtils__[\"o\" /* getValueByDataKey */])(payload.target, nameKey, '');\n return [{\n payload: el,\n name: \"\".concat(sourceName, \" - \").concat(targetName),\n value: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__util_ChartUtils__[\"o\" /* getValueByDataKey */])(payload, 'value')\n }];\n }\n\n return [];\n};\n\nvar Sankey = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Sankey, _Component);\n\n function Sankey(props) {\n var _this;\n\n _classCallCheck(this, Sankey);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Sankey).call(this, props));\n _this.state = _this.constructor.createDefaultState(props);\n return _this;\n }\n\n _createClass(Sankey, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n data = _this$props.data,\n width = _this$props.width,\n height = _this$props.height,\n margin = _this$props.margin,\n iterations = _this$props.iterations,\n nodeWidth = _this$props.nodeWidth,\n nodePadding = _this$props.nodePadding,\n nameKey = _this$props.nameKey;\n\n if (nextProps.data !== data || nextProps.width !== width || nextProps.height !== height || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__util_PureRender__[\"b\" /* shallowEqual */])(nextProps.margin, margin) || nextProps.iterations !== iterations || nextProps.nodeWidth !== nodeWidth || nextProps.nodePadding !== nodePadding || nextProps.nameKey !== nameKey) {\n this.setState(this.constructor.createDefaultState(nextProps));\n }\n }\n /**\n * Returns default, reset state for the sankey chart.\n * @param {Object} props The latest props\n * @return {Object} Whole new state\n */\n\n }, {\n key: \"handleMouseEnter\",\n value: function handleMouseEnter(el, type, e) {\n var _this$props2 = this.props,\n onMouseEnter = _this$props2.onMouseEnter,\n children = _this$props2.children;\n var tooltipItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_12__util_ReactUtils__[\"f\" /* findChildByType */])(children, __WEBPACK_IMPORTED_MODULE_9__component_Tooltip__[\"a\" /* default */]);\n\n if (tooltipItem) {\n this.setState({\n activeElement: el,\n activeElementType: type,\n isTooltipActive: true\n }, function () {\n if (onMouseEnter) {\n onMouseEnter(el, type, e);\n }\n });\n } else if (onMouseEnter) {\n onMouseEnter(el, type, e);\n }\n }\n }, {\n key: \"handleMouseLeave\",\n value: function handleMouseLeave(el, type, e) {\n var _this$props3 = this.props,\n onMouseLeave = _this$props3.onMouseLeave,\n children = _this$props3.children;\n var tooltipItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_12__util_ReactUtils__[\"f\" /* findChildByType */])(children, __WEBPACK_IMPORTED_MODULE_9__component_Tooltip__[\"a\" /* default */]);\n\n if (tooltipItem) {\n this.setState({\n isTooltipActive: false\n }, function () {\n if (onMouseLeave) {\n onMouseLeave(el, type, e);\n }\n });\n } else if (onMouseLeave) {\n onMouseLeave(el, type, e);\n }\n }\n }, {\n key: \"renderLinks\",\n value: function renderLinks(links, nodes) {\n var _this2 = this;\n\n var _this$props4 = this.props,\n linkCurvature = _this$props4.linkCurvature,\n linkContent = _this$props4.link,\n margin = _this$props4.margin;\n var top = margin.top || 0;\n var left = margin.left || 0;\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], {\n className: \"recharts-sankey-links\",\n key: \"recharts-sankey-links\"\n }, links.map(function (link, i) {\n var sourceRelativeY = link.sy,\n targetRelativeY = link.ty,\n linkWidth = link.dy;\n var source = nodes[link.source];\n var target = nodes[link.target];\n var sourceX = source.x + source.dx + left;\n var targetX = target.x + left;\n var interpolationFunc = interpolationGenerator(sourceX, targetX);\n var sourceControlX = interpolationFunc(linkCurvature);\n var targetControlX = interpolationFunc(1 - linkCurvature);\n var sourceY = source.y + sourceRelativeY + linkWidth / 2 + top;\n var targetY = target.y + targetRelativeY + linkWidth / 2 + top;\n\n var linkProps = _objectSpread({\n sourceX: sourceX,\n targetX: targetX,\n sourceY: sourceY,\n targetY: targetY,\n sourceControlX: sourceControlX,\n targetControlX: targetControlX,\n sourceRelativeY: sourceRelativeY,\n targetRelativeY: targetRelativeY,\n linkWidth: linkWidth,\n index: i,\n payload: _objectSpread({}, link, {\n source: source,\n target: target\n })\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_12__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(linkContent));\n\n var events = {\n onMouseEnter: _this2.handleMouseEnter.bind(_this2, linkProps, 'link'),\n onMouseLeave: _this2.handleMouseLeave.bind(_this2, linkProps, 'link')\n };\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], _extends({\n key: \"link\".concat(i)\n }, events), _this2.constructor.renderLinkItem(linkContent, linkProps));\n }));\n }\n }, {\n key: \"renderNodes\",\n value: function renderNodes(nodes) {\n var _this3 = this;\n\n var _this$props5 = this.props,\n nodeContent = _this$props5.node,\n margin = _this$props5.margin;\n var top = margin.top || 0;\n var left = margin.left || 0;\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], {\n className: \"recharts-sankey-nodes\",\n key: \"recharts-sankey-nodes\"\n }, nodes.map(function (node, i) {\n var x = node.x,\n y = node.y,\n dx = node.dx,\n dy = node.dy;\n\n var nodeProps = _objectSpread({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_12__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(nodeContent), {\n x: x + left,\n y: y + top,\n width: dx,\n height: dy,\n index: i,\n payload: node\n });\n\n var events = {\n onMouseEnter: _this3.handleMouseEnter.bind(_this3, nodeProps, 'node'),\n onMouseLeave: _this3.handleMouseLeave.bind(_this3, nodeProps, 'node')\n };\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Layer__[\"a\" /* default */], _extends({\n key: \"node\".concat(i)\n }, events), _this3.constructor.renderNodeItem(nodeContent, nodeProps));\n }));\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n var _this$props6 = this.props,\n children = _this$props6.children,\n width = _this$props6.width,\n height = _this$props6.height,\n nameKey = _this$props6.nameKey;\n var tooltipItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_12__util_ReactUtils__[\"f\" /* findChildByType */])(children, __WEBPACK_IMPORTED_MODULE_9__component_Tooltip__[\"a\" /* default */]);\n\n if (!tooltipItem) {\n return null;\n }\n\n var _this$state = this.state,\n isTooltipActive = _this$state.isTooltipActive,\n activeElement = _this$state.activeElement,\n activeElementType = _this$state.activeElementType;\n var viewBox = {\n x: 0,\n y: 0,\n width: width,\n height: height\n };\n var coordinate = activeElement ? getCoordinateOfTooltip(activeElement, activeElementType) : defaultCoordinateOfTooltip;\n var payload = activeElement ? getPayloadOfTooltip(activeElement, activeElementType, nameKey) : [];\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.cloneElement(tooltipItem, {\n viewBox: viewBox,\n active: isTooltipActive,\n coordinate: coordinate,\n label: '',\n payload: payload\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_12__util_ReactUtils__[\"j\" /* validateWidthHeight */])(this)) {\n return null;\n }\n\n var _this$props7 = this.props,\n width = _this$props7.width,\n height = _this$props7.height,\n className = _this$props7.className,\n style = _this$props7.style,\n children = _this$props7.children,\n others = _objectWithoutProperties(_this$props7, [\"width\", \"height\", \"className\", \"style\", \"children\"]);\n\n var _this$state2 = this.state,\n links = _this$state2.links,\n nodes = _this$state2.nodes;\n var attrs = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_12__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(others);\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\"div\", {\n className: __WEBPACK_IMPORTED_MODULE_6_classnames___default()('recharts-wrapper', className),\n style: _objectSpread({}, style, {\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n })\n }, __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__container_Surface__[\"a\" /* default */], _extends({}, attrs, {\n width: width,\n height: height\n }), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_12__util_ReactUtils__[\"q\" /* filterSvgElements */])(children), this.renderLinks(links, nodes), this.renderNodes(nodes)), this.renderTooltip());\n }\n }], [{\n key: \"createDefaultState\",\n value: function createDefaultState(props) {\n var data = props.data,\n width = props.width,\n height = props.height,\n margin = props.margin,\n iterations = props.iterations,\n nodeWidth = props.nodeWidth,\n nodePadding = props.nodePadding;\n var contentWidth = width - (margin && margin.left || 0) - (margin && margin.right || 0);\n var contentHeight = height - (margin && margin.top || 0) - (margin && margin.bottom || 0);\n\n var _computeData = computeData({\n data: data,\n width: contentWidth,\n height: contentHeight,\n iterations: iterations,\n nodeWidth: nodeWidth,\n nodePadding: nodePadding\n }),\n links = _computeData.links,\n nodes = _computeData.nodes;\n\n return {\n activeElement: null,\n activeElementType: null,\n isTooltipActive: false,\n nodes: nodes,\n links: links\n };\n }\n }, {\n key: \"renderLinkItem\",\n value: function renderLinkItem(option, props) {\n if (__WEBPACK_IMPORTED_MODULE_4_react___default.a.isValidElement(option)) {\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.cloneElement(option, props);\n }\n\n if (__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default()(option)) {\n return option(props);\n }\n\n var sourceX = props.sourceX,\n sourceY = props.sourceY,\n sourceControlX = props.sourceControlX,\n targetX = props.targetX,\n targetY = props.targetY,\n targetControlX = props.targetControlX,\n linkWidth = props.linkWidth,\n others = _objectWithoutProperties(props, [\"sourceX\", \"sourceY\", \"sourceControlX\", \"targetX\", \"targetY\", \"targetControlX\", \"linkWidth\"]);\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\"path\", _extends({\n className: \"recharts-sankey-link\",\n d: \"\\n M\".concat(sourceX, \",\").concat(sourceY, \"\\n C\").concat(sourceControlX, \",\").concat(sourceY, \" \").concat(targetControlX, \",\").concat(targetY, \" \").concat(targetX, \",\").concat(targetY, \"\\n \"),\n fill: \"none\",\n stroke: \"#333\",\n strokeWidth: linkWidth,\n strokeOpacity: \"0.2\"\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_12__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(others)));\n }\n }, {\n key: \"renderNodeItem\",\n value: function renderNodeItem(option, props) {\n if (__WEBPACK_IMPORTED_MODULE_4_react___default.a.isValidElement(option)) {\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.cloneElement(option, props);\n }\n\n if (__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default()(option)) {\n return option(props);\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__shape_Rectangle__[\"a\" /* default */], _extends({\n className: \"recharts-sankey-node\",\n fill: \"#0088fe\",\n fillOpacity: \"0.8\"\n }, props));\n }\n }]);\n\n return Sankey;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]), _class2.displayName = 'Sankey', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_12__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], __WEBPACK_IMPORTED_MODULE_12__util_ReactUtils__[\"d\" /* EVENT_ATTRIBUTES */], {\n nameKey: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func]),\n dataKey: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func]),\n width: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n data: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.shape({\n nodes: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.array,\n links: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.shape({\n target: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n source: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n value: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number\n }))\n }),\n nodePadding: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n nodeWidth: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n linkCurvature: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n iterations: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n node: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func]),\n link: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func]),\n style: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object,\n className: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n children: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.node), __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.node]),\n margin: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.shape({\n top: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n right: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n bottom: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n left: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number\n })\n}), _class2.defaultProps = {\n nodePadding: 10,\n nodeWidth: 10,\n nameKey: 'name',\n dataKey: 'value',\n linkCurvature: 0.5,\n iterations: 32,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n }\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Sankey);\n\n/***/ }),\n/* 878 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__generateCategoricalChart__ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__cartesian_Scatter__ = __webpack_require__(228);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__cartesian_XAxis__ = __webpack_require__(71);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cartesian_YAxis__ = __webpack_require__(72);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__cartesian_ZAxis__ = __webpack_require__(139);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_CartesianUtils__ = __webpack_require__(45);\n/**\n * @fileOverview Scatter Chart\n */\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__generateCategoricalChart__[\"a\" /* default */])({\n chartName: 'ScatterChart',\n GraphicalChild: __WEBPACK_IMPORTED_MODULE_1__cartesian_Scatter__[\"a\" /* default */],\n eventType: 'single',\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: __WEBPACK_IMPORTED_MODULE_2__cartesian_XAxis__[\"a\" /* default */]\n }, {\n axisType: 'yAxis',\n AxisComp: __WEBPACK_IMPORTED_MODULE_3__cartesian_YAxis__[\"a\" /* default */]\n }, {\n axisType: 'zAxis',\n AxisComp: __WEBPACK_IMPORTED_MODULE_4__cartesian_ZAxis__[\"a\" /* default */]\n }],\n formatAxisMap: __WEBPACK_IMPORTED_MODULE_5__util_CartesianUtils__[\"a\" /* formatAxisMap */]\n}));\n\n/***/ }),\n/* 879 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_get__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_get___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_get__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_omit__ = __webpack_require__(136);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_omit___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_omit__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_isNaN__ = __webpack_require__(131);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_isNaN___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_lodash_isNaN__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_smooth__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__container_Surface__ = __webpack_require__(97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__shape_Rectangle__ = __webpack_require__(75);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__util_ReactUtils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__component_Tooltip__ = __webpack_require__(140);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__shape_Polygon__ = __webpack_require__(143);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__util_ChartUtils__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__util_Constants__ = __webpack_require__(887);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__util_DOMUtils__ = __webpack_require__(145);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__util_DataUtils__ = __webpack_require__(11);\n\n\n\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n\n/**\n * @fileOverview TreemapChart\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar computeNode = function computeNode(_ref) {\n var depth = _ref.depth,\n node = _ref.node,\n index = _ref.index,\n valueKey = _ref.valueKey;\n var children = node.children;\n var childDepth = depth + 1;\n var computedChildren = children && children.length ? children.map(function (child, i) {\n return computeNode({\n depth: childDepth,\n node: child,\n index: i,\n valueKey: valueKey\n });\n }) : null;\n var value;\n\n if (children && children.length) {\n value = computedChildren.reduce(function (result, child) {\n return result + child.value;\n }, 0);\n } else {\n value = __WEBPACK_IMPORTED_MODULE_3_lodash_isNaN___default()(node[valueKey]) || node[valueKey] <= 0 ? 0 : node[valueKey];\n }\n\n return _objectSpread({}, node, {\n children: computedChildren,\n value: value,\n depth: depth,\n index: index\n });\n};\n\nvar filterRect = function filterRect(node) {\n return {\n x: node.x,\n y: node.y,\n width: node.width,\n height: node.height\n };\n}; // Compute the area for each child based on value & scale.\n\n\nvar getAreaOfChildren = function getAreaOfChildren(children, areaValueRatio) {\n var ratio = areaValueRatio < 0 ? 0 : areaValueRatio;\n return children.map(function (child) {\n var area = child.value * ratio;\n return _objectSpread({}, child, {\n area: __WEBPACK_IMPORTED_MODULE_3_lodash_isNaN___default()(area) || area <= 0 ? 0 : area\n });\n });\n}; // Computes the score for the specified row, as the worst aspect ratio.\n\n\nvar getWorstScore = function getWorstScore(row, parentSize, aspectRatio) {\n var parentArea = parentSize * parentSize;\n var rowArea = row.area * row.area;\n\n var _row$reduce = row.reduce(function (result, child) {\n return {\n min: Math.min(result.min, child.area),\n max: Math.max(result.max, child.area)\n };\n }, {\n min: Infinity,\n max: 0\n }),\n min = _row$reduce.min,\n max = _row$reduce.max;\n\n return rowArea ? Math.max(parentArea * max * aspectRatio / rowArea, rowArea / (parentArea * min * aspectRatio)) : Infinity;\n};\n\nvar horizontalPosition = function horizontalPosition(row, parentSize, parentRect, isFlush) {\n var rowHeight = parentSize ? Math.round(row.area / parentSize) : 0;\n\n if (isFlush || rowHeight > parentRect.height) {\n rowHeight = parentRect.height;\n }\n\n var curX = parentRect.x;\n var child;\n\n for (var i = 0, len = row.length; i < len; i++) {\n child = row[i];\n child.x = curX;\n child.y = parentRect.y;\n child.height = rowHeight;\n child.width = Math.min(rowHeight ? Math.round(child.area / rowHeight) : 0, parentRect.x + parentRect.width - curX);\n curX += child.width;\n } // what's z\n\n\n child.z = true; // add the remain x to the last one of row\n\n child.width += parentRect.x + parentRect.width - curX;\n return _objectSpread({}, parentRect, {\n y: parentRect.y + rowHeight,\n height: parentRect.height - rowHeight\n });\n};\n\nvar verticalPosition = function verticalPosition(row, parentSize, parentRect, isFlush) {\n var rowWidth = parentSize ? Math.round(row.area / parentSize) : 0;\n\n if (isFlush || rowWidth > parentRect.width) {\n rowWidth = parentRect.width;\n }\n\n var curY = parentRect.y;\n var child;\n\n for (var i = 0, len = row.length; i < len; i++) {\n child = row[i];\n child.x = parentRect.x;\n child.y = curY;\n child.width = rowWidth;\n child.height = Math.min(rowWidth ? Math.round(child.area / rowWidth) : 0, parentRect.y + parentRect.height - curY);\n curY += child.height;\n }\n\n child.z = false;\n child.height += parentRect.y + parentRect.height - curY;\n return _objectSpread({}, parentRect, {\n x: parentRect.x + rowWidth,\n width: parentRect.width - rowWidth\n });\n};\n\nvar position = function position(row, parentSize, parentRect, isFlush) {\n if (parentSize === parentRect.width) {\n return horizontalPosition(row, parentSize, parentRect, isFlush);\n }\n\n return verticalPosition(row, parentSize, parentRect, isFlush);\n}; // Recursively arranges the specified node's children into squarified rows.\n\n\nvar squarify = function squarify(node, aspectRatio) {\n var children = node.children;\n\n if (children && children.length) {\n var rect = filterRect(node);\n var row = [];\n var best = Infinity; // the best row score so far\n\n var child, score; // the current row score\n\n var size = Math.min(rect.width, rect.height); // initial orientation\n\n var scaleChildren = getAreaOfChildren(children, rect.width * rect.height / node.value);\n var tempChildren = scaleChildren.slice();\n row.area = 0;\n\n while (tempChildren.length > 0) {\n // row first\n // eslint-disable-next-line prefer-destructuring\n row.push(child = tempChildren[0]);\n row.area += child.area;\n score = getWorstScore(row, size, aspectRatio);\n\n if (score <= best) {\n // continue with this orientation\n tempChildren.shift();\n best = score;\n } else {\n // abort, and try a different orientation\n row.area -= row.pop().area;\n rect = position(row, size, rect, false);\n size = Math.min(rect.width, rect.height);\n row.length = row.area = 0;\n best = Infinity;\n }\n }\n\n if (row.length) {\n rect = position(row, size, rect, true);\n row.length = row.area = 0;\n }\n\n return _objectSpread({}, node, {\n children: scaleChildren.map(function (c) {\n return squarify(c, aspectRatio);\n })\n });\n }\n\n return node;\n};\n\nvar Treemap = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Treemap, _Component);\n\n function Treemap() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Treemap);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Treemap)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = _this.constructor.createDefaultState();\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (__WEBPACK_IMPORTED_MODULE_2_lodash_isFunction___default()(onAnimationEnd)) {\n onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n var onAnimationStart = _this.props.onAnimationStart;\n\n _this.setState({\n isAnimationFinished: false\n });\n\n if (__WEBPACK_IMPORTED_MODULE_2_lodash_isFunction___default()(onAnimationStart)) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Treemap, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props = this.props,\n type = _this$props.type,\n width = _this$props.width,\n height = _this$props.height,\n data = _this$props.data,\n dataKey = _this$props.dataKey,\n aspectRatio = _this$props.aspectRatio;\n\n var _this$computeRoot = this.computeRoot({\n type: type,\n width: width,\n height: height,\n data: data,\n dataKey: dataKey,\n aspectRatio: aspectRatio\n }),\n formatRoot = _this$computeRoot.formatRoot,\n currentRoot = _this$computeRoot.currentRoot,\n nestIndex = _this$computeRoot.nestIndex;\n\n this.setState({\n formatRoot: formatRoot,\n currentRoot: currentRoot,\n nestIndex: nestIndex\n });\n }\n }, {\n key: \"computeRoot\",\n value: function computeRoot(_ref2) {\n var type = _ref2.type,\n width = _ref2.width,\n height = _ref2.height,\n data = _ref2.data,\n dataKey = _ref2.dataKey,\n aspectRatio = _ref2.aspectRatio;\n var root = computeNode({\n depth: 0,\n node: {\n children: data,\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n index: 0,\n valueKey: dataKey\n });\n var formatRoot = squarify(root, aspectRatio);\n var nestIndex = this.state.nestIndex;\n\n if (type === 'nest') {\n nestIndex.push(root);\n }\n\n return {\n formatRoot: formatRoot,\n currentRoot: root,\n nestIndex: nestIndex\n };\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var type = nextProps.type,\n width = nextProps.width,\n height = nextProps.height,\n data = nextProps.data,\n dataKey = nextProps.dataKey,\n aspectRatio = nextProps.aspectRatio;\n\n if (data !== this.props.data || type !== this.props.type || width !== this.props.width || height !== this.props.height || dataKey !== this.props.dataKey || aspectRatio !== this.props.aspectRatio) {\n var nextRoot = this.computeRoot({\n type: type,\n width: width,\n height: height,\n data: data,\n dataKey: dataKey,\n aspectRatio: aspectRatio\n });\n this.setState(_objectSpread({}, this.constructor.createDefaultState(), nextRoot, {\n nestIndex: [nextRoot.currentRoot]\n }));\n }\n }\n /**\n * Returns default, reset state for the treemap chart.\n * @return {Object} Whole new state\n */\n\n }, {\n key: \"handleMouseEnter\",\n value: function handleMouseEnter(node, e) {\n var _this$props2 = this.props,\n onMouseEnter = _this$props2.onMouseEnter,\n children = _this$props2.children;\n var tooltipItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__util_ReactUtils__[\"f\" /* findChildByType */])(children, __WEBPACK_IMPORTED_MODULE_12__component_Tooltip__[\"a\" /* default */]);\n\n if (tooltipItem) {\n this.setState({\n isTooltipActive: true,\n activeNode: node\n }, function () {\n if (onMouseEnter) {\n onMouseEnter(node, e);\n }\n });\n } else if (onMouseEnter) {\n onMouseEnter(node, e);\n }\n }\n }, {\n key: \"handleMouseLeave\",\n value: function handleMouseLeave(node, e) {\n var _this$props3 = this.props,\n onMouseLeave = _this$props3.onMouseLeave,\n children = _this$props3.children;\n var tooltipItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__util_ReactUtils__[\"f\" /* findChildByType */])(children, __WEBPACK_IMPORTED_MODULE_12__component_Tooltip__[\"a\" /* default */]);\n\n if (tooltipItem) {\n this.setState({\n isTooltipActive: false,\n activeNode: null\n }, function () {\n if (onMouseLeave) {\n onMouseLeave(node, e);\n }\n });\n } else if (onMouseLeave) {\n onMouseLeave(node, e);\n }\n }\n }, {\n key: \"handleClick\",\n value: function handleClick(node) {\n var _this$props4 = this.props,\n onClick = _this$props4.onClick,\n type = _this$props4.type;\n\n if (type === 'nest' && node.children) {\n var _this$props5 = this.props,\n width = _this$props5.width,\n height = _this$props5.height,\n dataKey = _this$props5.dataKey,\n aspectRatio = _this$props5.aspectRatio;\n var root = computeNode({\n depth: 0,\n node: _objectSpread({}, node, {\n x: 0,\n y: 0,\n width: width,\n height: height\n }),\n index: 0,\n valueKey: dataKey\n });\n var formatRoot = squarify(root, aspectRatio);\n var nestIndex = this.state.nestIndex;\n nestIndex.push(node);\n this.setState({\n formatRoot: formatRoot,\n currentRoot: root,\n nestIndex: nestIndex\n });\n }\n\n if (onClick) {\n onClick(node);\n }\n }\n }, {\n key: \"handleNestIndex\",\n value: function handleNestIndex(node, i) {\n var nestIndex = this.state.nestIndex;\n var _this$props6 = this.props,\n width = _this$props6.width,\n height = _this$props6.height,\n dataKey = _this$props6.dataKey,\n aspectRatio = _this$props6.aspectRatio;\n var root = computeNode({\n depth: 0,\n node: _objectSpread({}, node, {\n x: 0,\n y: 0,\n width: width,\n height: height\n }),\n index: 0,\n valueKey: dataKey\n });\n var formatRoot = squarify(root, aspectRatio);\n nestIndex = nestIndex.slice(0, i + 1);\n this.setState({\n formatRoot: formatRoot,\n currentRoot: node,\n nestIndex: nestIndex\n });\n }\n }, {\n key: \"renderItem\",\n value: function renderItem(content, nodeProps, isLeaf) {\n var _this2 = this;\n\n var _this$props7 = this.props,\n isAnimationActive = _this$props7.isAnimationActive,\n animationBegin = _this$props7.animationBegin,\n animationDuration = _this$props7.animationDuration,\n animationEasing = _this$props7.animationEasing,\n isUpdateAnimationActive = _this$props7.isUpdateAnimationActive,\n type = _this$props7.type,\n animationId = _this$props7.animationId,\n colorPanel = _this$props7.colorPanel;\n var isAnimationFinished = this.state.isAnimationFinished;\n var width = nodeProps.width,\n height = nodeProps.height,\n x = nodeProps.x,\n y = nodeProps.y,\n depth = nodeProps.depth;\n var translateX = parseInt((Math.random() * 2 - 1) * width, 10);\n var event = {};\n\n if (isLeaf || type === 'nest') {\n event = {\n onMouseEnter: this.handleMouseEnter.bind(this, nodeProps),\n onMouseLeave: this.handleMouseLeave.bind(this, nodeProps),\n onClick: this.handleClick.bind(this, nodeProps)\n };\n }\n\n if (!isAnimationActive) {\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__container_Layer__[\"a\" /* default */], event, this.constructor.renderContentItem(content, _objectSpread({}, nodeProps, {\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n width: width,\n height: height,\n x: x,\n y: y\n }), type, colorPanel));\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6_react_smooth__[\"a\" /* default */], {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n key: \"treemap-\".concat(animationId),\n from: {\n x: x,\n y: y,\n width: width,\n height: height\n },\n to: {\n x: x,\n y: y,\n width: width,\n height: height\n },\n onAnimationStart: this.handleAnimationStart,\n onAnimationEnd: this.handleAnimationEnd\n }, function (_ref3) {\n var currX = _ref3.x,\n currY = _ref3.y,\n currWidth = _ref3.width,\n currHeight = _ref3.height;\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6_react_smooth__[\"a\" /* default */], {\n from: \"translate(\".concat(translateX, \"px, \").concat(translateX, \"px)\"),\n to: \"translate(0, 0)\",\n attributeName: \"transform\",\n begin: animationBegin,\n easing: animationEasing,\n isActive: isAnimationActive,\n duration: animationDuration\n }, __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__container_Layer__[\"a\" /* default */], event, function () {\n // when animation Duration , only render depth=1 nodes\n if (depth > 2 && !isAnimationFinished) {\n return null;\n }\n\n return _this2.constructor.renderContentItem(content, _objectSpread({}, nodeProps, {\n isAnimationActive: isAnimationActive,\n isUpdateAnimationActive: !isUpdateAnimationActive,\n width: currWidth,\n height: currHeight,\n x: currX,\n y: currY\n }), type, colorPanel);\n }()));\n });\n }\n }, {\n key: \"renderNode\",\n value: function renderNode(root, node, i) {\n var _this3 = this;\n\n var _this$props8 = this.props,\n content = _this$props8.content,\n type = _this$props8.type;\n\n var nodeProps = _objectSpread({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), node, {\n root: root\n });\n\n var isLeaf = !node.children || !node.children.length;\n var currentRoot = this.state.currentRoot;\n var isCurrentRootChild = (currentRoot.children || []).filter(function (item) {\n return item.depth === node.depth && item.name === node.name;\n });\n\n if (!isCurrentRootChild.length && root.depth && type === 'nest') {\n return null;\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__container_Layer__[\"a\" /* default */], {\n key: \"recharts-treemap-node-\".concat(i),\n className: \"recharts-treemap-depth-\".concat(node.depth)\n }, this.renderItem(content, nodeProps, isLeaf), node.children && node.children.length ? node.children.map(function (child, index) {\n return _this3.renderNode(node, child, index);\n }) : null);\n }\n }, {\n key: \"renderAllNodes\",\n value: function renderAllNodes() {\n var formatRoot = this.state.formatRoot;\n\n if (!formatRoot) {\n return null;\n }\n\n return this.renderNode(formatRoot, formatRoot, 0);\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n var _this$props9 = this.props,\n children = _this$props9.children,\n nameKey = _this$props9.nameKey;\n var tooltipItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__util_ReactUtils__[\"f\" /* findChildByType */])(children, __WEBPACK_IMPORTED_MODULE_12__component_Tooltip__[\"a\" /* default */]);\n\n if (!tooltipItem) {\n return null;\n }\n\n var _this$props10 = this.props,\n width = _this$props10.width,\n height = _this$props10.height,\n dataKey = _this$props10.dataKey;\n var _this$state = this.state,\n isTooltipActive = _this$state.isTooltipActive,\n activeNode = _this$state.activeNode;\n var viewBox = {\n x: 0,\n y: 0,\n width: width,\n height: height\n };\n var coordinate = activeNode ? {\n x: activeNode.x + activeNode.width / 2,\n y: activeNode.y + activeNode.height / 2\n } : null;\n var payload = isTooltipActive && activeNode ? [{\n payload: activeNode,\n name: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util_ChartUtils__[\"o\" /* getValueByDataKey */])(activeNode, nameKey, ''),\n value: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util_ChartUtils__[\"o\" /* getValueByDataKey */])(activeNode, dataKey)\n }] : [];\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.cloneElement(tooltipItem, {\n viewBox: viewBox,\n active: isTooltipActive,\n coordinate: coordinate,\n label: '',\n payload: payload\n });\n } // render nest treemap\n\n }, {\n key: \"renderNestIndex\",\n value: function renderNestIndex() {\n var _this4 = this;\n\n var _this$props11 = this.props,\n nameKey = _this$props11.nameKey,\n nestIndexContent = _this$props11.nestIndexContent;\n var nestIndex = this.state.nestIndex;\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\"div\", {\n className: \"recharts-treemap-nest-index-wrapper\",\n style: {\n marginTop: '8px',\n textAlign: 'center'\n }\n }, nestIndex.map(function (item, i) {\n var name = __WEBPACK_IMPORTED_MODULE_0_lodash_get___default()(item, nameKey, 'root');\n\n var content = null;\n\n if (__WEBPACK_IMPORTED_MODULE_4_react___default.a.isValidElement(nestIndexContent)) {\n content = __WEBPACK_IMPORTED_MODULE_4_react___default.a.cloneElement(nestIndexContent, item, i);\n }\n\n if (__WEBPACK_IMPORTED_MODULE_2_lodash_isFunction___default()(nestIndexContent)) {\n content = nestIndexContent(item, i);\n } else {\n content = name;\n }\n\n return (// eslint-disable-next-line jsx-a11y/click-events-have-key-events\n __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\"div\", {\n onClick: _this4.handleNestIndex.bind(_this4, item, i),\n key: \"nest-index-\".concat(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_18__util_DataUtils__[\"d\" /* uniqueId */])()),\n className: \"recharts-treemap-nest-index-box\",\n style: {\n cursor: 'pointer',\n display: 'inline-block',\n padding: '0 7px',\n background: '#000',\n color: '#fff',\n marginRight: '3px'\n }\n }, content)\n );\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__util_ReactUtils__[\"j\" /* validateWidthHeight */])(this)) {\n return null;\n }\n\n var _this$props12 = this.props,\n width = _this$props12.width,\n height = _this$props12.height,\n className = _this$props12.className,\n style = _this$props12.style,\n children = _this$props12.children,\n type = _this$props12.type,\n others = _objectWithoutProperties(_this$props12, [\"width\", \"height\", \"className\", \"style\", \"children\", \"type\"]);\n\n var attrs = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(others);\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\"div\", {\n className: __WEBPACK_IMPORTED_MODULE_7_classnames___default()('recharts-wrapper', className),\n style: _objectSpread({}, style, {\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n })\n }, __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__container_Surface__[\"a\" /* default */], _extends({}, attrs, {\n width: width,\n height: type === 'nest' ? height - 30 : height\n }), this.renderAllNodes(), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__util_ReactUtils__[\"q\" /* filterSvgElements */])(children)), this.renderTooltip(), type === 'nest' && this.renderNestIndex());\n }\n }], [{\n key: \"createDefaultState\",\n value: function createDefaultState() {\n return {\n isTooltipActive: false,\n isAnimationFinished: false,\n activeNode: null,\n currentRoot: null,\n formatRoot: null,\n nestIndex: []\n };\n }\n }, {\n key: \"renderContentItem\",\n value: function renderContentItem(content, nodeProps, type, colorPanel) {\n if (__WEBPACK_IMPORTED_MODULE_4_react___default.a.isValidElement(content)) {\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.cloneElement(content, nodeProps);\n }\n\n if (__WEBPACK_IMPORTED_MODULE_2_lodash_isFunction___default()(content)) {\n return content(nodeProps);\n } // optimize default shape\n\n\n var x = nodeProps.x,\n y = nodeProps.y,\n width = nodeProps.width,\n height = nodeProps.height,\n index = nodeProps.index;\n var arrow = null;\n\n if (width > 10 && height > 10 && nodeProps.children && type === 'nest') {\n arrow = __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_13__shape_Polygon__[\"a\" /* default */], {\n points: [{\n x: x + 2,\n y: y + height / 2\n }, {\n x: x + 6,\n y: y + height / 2 + 3\n }, {\n x: x + 2,\n y: y + height / 2 + 6\n }]\n });\n }\n\n var text = null;\n var nameSize = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_17__util_DOMUtils__[\"c\" /* getStringSize */])(nodeProps.name);\n\n if (width > 20 && height > 20 && nameSize.width < width && nameSize.height < height) {\n text = __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\"text\", {\n x: x + 8,\n y: y + height / 2 + 7,\n fontSize: 14\n }, nodeProps.name);\n }\n\n var colors = colorPanel || __WEBPACK_IMPORTED_MODULE_16__util_Constants__[\"a\" /* COLOR_PANEL */];\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\"g\", null, __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__shape_Rectangle__[\"a\" /* default */], _extends({\n fill: nodeProps.depth < 2 ? colors[index % colors.length] : 'rgba(255,255,255,0)',\n stroke: \"#fff\"\n }, __WEBPACK_IMPORTED_MODULE_1_lodash_omit___default()(nodeProps, 'children'))), arrow, text);\n }\n }]);\n\n return Treemap;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]), _class2.displayName = 'Treemap', _class2.propTypes = {\n width: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n height: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n data: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.array,\n style: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object,\n aspectRatio: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n content: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func]),\n fill: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n stroke: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n className: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n nameKey: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func]),\n dataKey: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func]),\n children: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.node), __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.node]),\n // optional values flat/nest, flat show whole treemap, nest only show depth=1 node\n type: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOf(['flat', 'nest']),\n colorPanel: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.array,\n // customize nest index content\n nestIndexContent: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func]),\n onMouseEnter: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func,\n onMouseLeave: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func,\n onClick: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func,\n isAnimationActive: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n isUpdateAnimationActive: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n animationBegin: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n animationDuration: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n animationEasing: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear'])\n}, _class2.defaultProps = {\n dataKey: 'value',\n aspectRatio: 0.5 * (1 + Math.sqrt(5)),\n isAnimationActive: !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__util_ReactUtils__[\"m\" /* isSsr */])(),\n isUpdateAnimationActive: !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__util_ReactUtils__[\"m\" /* isSsr */])(),\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'linear',\n type: 'flat'\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Treemap);\n\n/***/ }),\n/* 880 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = Customized;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__container_Layer__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_LogUtils__ = __webpack_require__(76);\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Customized\n */\n\n\n\n\n/**\n * custom svg elements by rechart instance props and state.\n * @returns {Object} svg elements\n */\n\nfunction Customized(_ref) {\n var component = _ref.component,\n props = _objectWithoutProperties(_ref, [\"component\"]);\n\n var child;\n\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_react__[\"isValidElement\"])(component)) {\n child = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_react__[\"cloneElement\"])(component, props);\n } else if (__WEBPACK_IMPORTED_MODULE_0_lodash_isFunction___default()(component)) {\n child = component(props);\n } else {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_LogUtils__[\"a\" /* warn */])(false, 'Customized\\'s props `component` must be React.element or Function, but got %s.', _typeof(component));\n }\n\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__container_Layer__[\"a\" /* default */], {\n className: \"recharts-customized-wrapper\"\n }, child);\n}\nCustomized.displayName = 'Customized';\nCustomized.propTypes = {\n component: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.element, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func]).isRequired\n};\n\n/***/ }),\n/* 881 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__container_Surface__ = __webpack_require__(97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__shape_Symbols__ = __webpack_require__(230);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__util_ReactUtils__ = __webpack_require__(2);\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Default Legend Content\n */\n\n\n\n\n\n\n\nvar SIZE = 32;\nvar ICON_TYPES = __WEBPACK_IMPORTED_MODULE_6__util_ReactUtils__[\"o\" /* LEGEND_TYPES */].filter(function (type) {\n return type !== 'none';\n});\n\nvar DefaultLegendContent = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(DefaultLegendContent, _Component);\n\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(DefaultLegendContent).apply(this, arguments));\n }\n\n _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n value: function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n\n if (data.type === 'plainline') {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'line') {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'rect') {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__shape_Symbols__[\"a\" /* default */], {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var _classNames;\n\n var finalFormatter = entry.formatter || formatter;\n var className = __WEBPACK_IMPORTED_MODULE_2_classnames___default()((_classNames = {\n 'recharts-legend-item': true\n }, _defineProperty(_classNames, \"legend-item-\".concat(i), true), _defineProperty(_classNames, \"inactive\", entry.inactive), _classNames));\n\n if (entry.type === 'none') {\n return null;\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"li\", _extends({\n className: className,\n style: itemStyle,\n key: \"legend-item-\".concat(i)\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_ReactUtils__[\"n\" /* filterEventsOfChild */])(_this.props, entry, i)), __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__container_Surface__[\"a\" /* default */], {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"span\", {\n className: \"recharts-legend-item-text\"\n }, finalFormatter ? finalFormatter(entry.value, entry, i) : entry.value));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n\n if (!payload || !payload.length) {\n return null;\n }\n\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n\n return DefaultLegendContent;\n}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]), _class2.displayName = 'Legend', _class2.propTypes = {\n content: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.element,\n iconSize: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n iconType: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(ICON_TYPES),\n layout: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['horizontal', 'vertical']),\n align: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['center', 'left', 'right']),\n verticalAlign: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['top', 'bottom', 'middle']),\n payload: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n value: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.any,\n id: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.any,\n type: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(__WEBPACK_IMPORTED_MODULE_6__util_ReactUtils__[\"o\" /* LEGEND_TYPES */])\n })),\n inactiveColor: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n formatter: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,\n onMouseEnter: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,\n onMouseLeave: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,\n onClick: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func\n}, _class2.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (DefaultLegendContent);\n\n/***/ }),\n/* 882 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_sortBy__ = __webpack_require__(211);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_sortBy___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_sortBy__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isArray__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_isArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_isArray__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__util_DataUtils__ = __webpack_require__(11);\n\n\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\nvar defaultFormatter = function defaultFormatter(value) {\n return __WEBPACK_IMPORTED_MODULE_1_lodash_isArray___default()(value) && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_DataUtils__[\"f\" /* isNumOrStr */])(value[0]) && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_DataUtils__[\"f\" /* isNumOrStr */])(value[1]) ? value.join(' ~ ') : value;\n};\n\nvar DefaultTooltipContent = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(DefaultTooltipContent, _Component);\n\n function DefaultTooltipContent() {\n _classCallCheck(this, DefaultTooltipContent);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(DefaultTooltipContent).apply(this, arguments));\n }\n\n _createClass(DefaultTooltipContent, [{\n key: \"renderContent\",\n value: function renderContent() {\n var _this$props = this.props,\n payload = _this$props.payload,\n separator = _this$props.separator,\n formatter = _this$props.formatter,\n itemStyle = _this$props.itemStyle,\n itemSorter = _this$props.itemSorter;\n\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? __WEBPACK_IMPORTED_MODULE_0_lodash_sortBy___default()(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var name = entry.name,\n value = entry.value;\n\n if (finalFormatter) {\n var formatted = finalFormatter(value, name, entry, i);\n\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n\n value = _formatted[0];\n name = _formatted[1];\n } else {\n value = formatted;\n }\n }\n\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_DataUtils__[\"f\" /* isNumOrStr */])(name) ? __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, name) : null, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_DataUtils__[\"f\" /* isNumOrStr */])(name) ? __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, value), __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''));\n });\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n wrapperClassName = _this$props2.wrapperClassName,\n contentStyle = _this$props2.contentStyle,\n labelClassName = _this$props2.labelClassName,\n labelStyle = _this$props2.labelStyle,\n label = _this$props2.label,\n labelFormatter = _this$props2.labelFormatter;\n\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n\n var hasLabel = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_DataUtils__[\"f\" /* isNumOrStr */])(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = __WEBPACK_IMPORTED_MODULE_4_classnames___default()('recharts-default-tooltip', wrapperClassName);\n var labelCN = __WEBPACK_IMPORTED_MODULE_4_classnames___default()('recharts-tooltip-label', labelClassName);\n\n if (hasLabel && labelFormatter) {\n finalLabel = labelFormatter(label);\n }\n\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"div\", {\n className: wrapperCN,\n style: finalStyle\n }, __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, finalLabel), this.renderContent());\n }\n }]);\n\n return DefaultTooltipContent;\n}(__WEBPACK_IMPORTED_MODULE_2_react__[\"Component\"]), _class2.displayName = 'DefaultTooltipContent', _class2.propTypes = {\n separator: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n wrapperClassName: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n labelClassName: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n formatter: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n contentStyle: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n itemStyle: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n labelStyle: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n labelFormatter: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n label: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.any,\n payload: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.shape({\n name: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.any,\n value: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.array]),\n unit: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.any\n })),\n itemSorter: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func\n}, _class2.defaultProps = {\n separator: ' : ',\n contentStyle: {},\n itemStyle: {},\n labelStyle: {}\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (DefaultTooltipContent);\n\n/***/ }),\n/* 883 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_debounce__ = __webpack_require__(369);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_debounce___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_debounce__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_resize_detector__ = __webpack_require__(798);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_resize_detector___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react_resize_detector__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_DataUtils__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__util_LogUtils__ = __webpack_require__(76);\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Wrapper component to make charts adapt to the size of parent * DOM\n */\n\n\n\n\n\n\n\nvar ResponsiveContainer =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ResponsiveContainer, _Component);\n\n function ResponsiveContainer(props) {\n var _this;\n\n _classCallCheck(this, ResponsiveContainer);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ResponsiveContainer).call(this, props));\n\n _this.updateDimensionsImmediate = function () {\n if (!_this.mounted) {\n return;\n }\n\n var newSize = _this.getContainerSize();\n\n if (newSize) {\n var _this$state = _this.state,\n oldWidth = _this$state.containerWidth,\n oldHeight = _this$state.containerHeight;\n var containerWidth = newSize.containerWidth,\n containerHeight = newSize.containerHeight;\n\n if (containerWidth !== oldWidth || containerHeight !== oldHeight) {\n _this.setState({\n containerWidth: containerWidth,\n containerHeight: containerHeight\n });\n }\n }\n };\n\n _this.state = {\n containerWidth: -1,\n containerHeight: -1\n };\n _this.handleResize = props.debounce > 0 ? __WEBPACK_IMPORTED_MODULE_0_lodash_debounce___default()(_this.updateDimensionsImmediate, props.debounce) : _this.updateDimensionsImmediate;\n return _this;\n }\n /* eslint-disable react/no-did-mount-set-state */\n\n\n _createClass(ResponsiveContainer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true;\n var size = this.getContainerSize();\n\n if (size) {\n this.setState(size);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n }\n }, {\n key: \"getContainerSize\",\n value: function getContainerSize() {\n if (!this.container) {\n return null;\n }\n\n return {\n containerWidth: this.container.clientWidth,\n containerHeight: this.container.clientHeight\n };\n }\n }, {\n key: \"renderChart\",\n value: function renderChart() {\n var _this$state2 = this.state,\n containerWidth = _this$state2.containerWidth,\n containerHeight = _this$state2.containerHeight;\n\n if (containerWidth < 0 || containerHeight < 0) {\n return null;\n }\n\n var _this$props = this.props,\n aspect = _this$props.aspect,\n width = _this$props.width,\n height = _this$props.height,\n minWidth = _this$props.minWidth,\n minHeight = _this$props.minHeight,\n maxHeight = _this$props.maxHeight,\n children = _this$props.children;\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_LogUtils__[\"a\" /* warn */])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_DataUtils__[\"k\" /* isPercent */])(width) || __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_DataUtils__[\"k\" /* isPercent */])(height), \"The width(%s) and height(%s) are both fixed numbers,\\n maybe you don't need to use a ResponsiveContainer.\", width, height);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_LogUtils__[\"a\" /* warn */])(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var calculatedWidth = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_DataUtils__[\"k\" /* isPercent */])(width) ? containerWidth : width;\n var calculatedHeight = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__util_DataUtils__[\"k\" /* isPercent */])(height) ? containerHeight : height;\n\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n } // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n\n\n if (maxHeight && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_LogUtils__[\"a\" /* warn */])(calculatedWidth > 0 || calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.cloneElement(children, {\n width: calculatedWidth,\n height: calculatedHeight\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n minWidth = _this$props2.minWidth,\n minHeight = _this$props2.minHeight,\n width = _this$props2.width,\n height = _this$props2.height,\n maxHeight = _this$props2.maxHeight,\n id = _this$props2.id,\n className = _this$props2.className;\n var style = {\n width: width,\n height: height,\n minWidth: minWidth,\n minHeight: minHeight,\n maxHeight: maxHeight\n };\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\"div\", {\n id: id,\n className: __WEBPACK_IMPORTED_MODULE_3_classnames___default()('recharts-responsive-container', className),\n style: style,\n ref: function ref(node) {\n _this2.container = node;\n }\n }, this.renderChart(), __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4_react_resize_detector___default.a, {\n handleWidth: true,\n handleHeight: true,\n onResize: this.handleResize\n }));\n }\n }]);\n\n return ResponsiveContainer;\n}(__WEBPACK_IMPORTED_MODULE_1_react__[\"Component\"]);\n\nResponsiveContainer.displayName = 'ResponsiveContainer';\nResponsiveContainer.propTypes = {\n aspect: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n width: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number]),\n height: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number]),\n minHeight: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number]),\n minWidth: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number]),\n maxHeight: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number]),\n children: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.node.isRequired,\n debounce: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n id: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number]),\n className: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number])\n};\nResponsiveContainer.defaultProps = {\n width: '100%',\n height: '100%',\n debounce: 0\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = (ResponsiveContainer);\n\n/***/ }),\n/* 884 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__polyfill__ = __webpack_require__(886);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__container_Surface__ = __webpack_require__(97);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Surface\", function() { return __WEBPACK_IMPORTED_MODULE_1__container_Surface__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__container_Layer__ = __webpack_require__(13);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Layer\", function() { return __WEBPACK_IMPORTED_MODULE_2__container_Layer__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__component_Legend__ = __webpack_require__(229);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Legend\", function() { return __WEBPACK_IMPORTED_MODULE_3__component_Legend__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__component_Tooltip__ = __webpack_require__(140);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Tooltip\", function() { return __WEBPACK_IMPORTED_MODULE_4__component_Tooltip__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__component_ResponsiveContainer__ = __webpack_require__(883);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"ResponsiveContainer\", function() { return __WEBPACK_IMPORTED_MODULE_5__component_ResponsiveContainer__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__component_Cell__ = __webpack_require__(73);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Cell\", function() { return __WEBPACK_IMPORTED_MODULE_6__component_Cell__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__component_Text__ = __webpack_require__(55);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Text\", function() { return __WEBPACK_IMPORTED_MODULE_7__component_Text__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__component_Label__ = __webpack_require__(44);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Label\", function() { return __WEBPACK_IMPORTED_MODULE_8__component_Label__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__component_LabelList__ = __webpack_require__(38);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"LabelList\", function() { return __WEBPACK_IMPORTED_MODULE_9__component_LabelList__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__component_Customized__ = __webpack_require__(880);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Customized\", function() { return __WEBPACK_IMPORTED_MODULE_10__component_Customized__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__shape_Sector__ = __webpack_require__(144);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Sector\", function() { return __WEBPACK_IMPORTED_MODULE_11__shape_Sector__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__shape_Curve__ = __webpack_require__(74);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Curve\", function() { return __WEBPACK_IMPORTED_MODULE_12__shape_Curve__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__shape_Rectangle__ = __webpack_require__(75);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Rectangle\", function() { return __WEBPACK_IMPORTED_MODULE_13__shape_Rectangle__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__shape_Polygon__ = __webpack_require__(143);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Polygon\", function() { return __WEBPACK_IMPORTED_MODULE_14__shape_Polygon__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__shape_Dot__ = __webpack_require__(56);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Dot\", function() { return __WEBPACK_IMPORTED_MODULE_15__shape_Dot__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__shape_Cross__ = __webpack_require__(412);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Cross\", function() { return __WEBPACK_IMPORTED_MODULE_16__shape_Cross__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__shape_Symbols__ = __webpack_require__(230);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Symbols\", function() { return __WEBPACK_IMPORTED_MODULE_17__shape_Symbols__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__polar_PolarGrid__ = __webpack_require__(885);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"PolarGrid\", function() { return __WEBPACK_IMPORTED_MODULE_18__polar_PolarGrid__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__polar_PolarRadiusAxis__ = __webpack_require__(142);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"PolarRadiusAxis\", function() { return __WEBPACK_IMPORTED_MODULE_19__polar_PolarRadiusAxis__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__polar_PolarAngleAxis__ = __webpack_require__(141);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"PolarAngleAxis\", function() { return __WEBPACK_IMPORTED_MODULE_20__polar_PolarAngleAxis__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__polar_Pie__ = __webpack_require__(409);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Pie\", function() { return __WEBPACK_IMPORTED_MODULE_21__polar_Pie__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__polar_Radar__ = __webpack_require__(410);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Radar\", function() { return __WEBPACK_IMPORTED_MODULE_22__polar_Radar__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__polar_RadialBar__ = __webpack_require__(411);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"RadialBar\", function() { return __WEBPACK_IMPORTED_MODULE_23__polar_RadialBar__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__cartesian_Brush__ = __webpack_require__(403);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Brush\", function() { return __WEBPACK_IMPORTED_MODULE_24__cartesian_Brush__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__cartesian_ReferenceLine__ = __webpack_require__(407);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"ReferenceLine\", function() { return __WEBPACK_IMPORTED_MODULE_25__cartesian_ReferenceLine__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__cartesian_ReferenceDot__ = __webpack_require__(406);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"ReferenceDot\", function() { return __WEBPACK_IMPORTED_MODULE_26__cartesian_ReferenceDot__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__cartesian_ReferenceArea__ = __webpack_require__(405);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"ReferenceArea\", function() { return __WEBPACK_IMPORTED_MODULE_27__cartesian_ReferenceArea__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__cartesian_CartesianAxis__ = __webpack_require__(404);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"CartesianAxis\", function() { return __WEBPACK_IMPORTED_MODULE_28__cartesian_CartesianAxis__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__cartesian_CartesianGrid__ = __webpack_require__(868);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"CartesianGrid\", function() { return __WEBPACK_IMPORTED_MODULE_29__cartesian_CartesianGrid__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__cartesian_Line__ = __webpack_require__(227);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Line\", function() { return __WEBPACK_IMPORTED_MODULE_30__cartesian_Line__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__cartesian_Area__ = __webpack_require__(225);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Area\", function() { return __WEBPACK_IMPORTED_MODULE_31__cartesian_Area__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__cartesian_Bar__ = __webpack_require__(226);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Bar\", function() { return __WEBPACK_IMPORTED_MODULE_32__cartesian_Bar__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_33__cartesian_Scatter__ = __webpack_require__(228);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Scatter\", function() { return __WEBPACK_IMPORTED_MODULE_33__cartesian_Scatter__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_34__cartesian_XAxis__ = __webpack_require__(71);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"XAxis\", function() { return __WEBPACK_IMPORTED_MODULE_34__cartesian_XAxis__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_35__cartesian_YAxis__ = __webpack_require__(72);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"YAxis\", function() { return __WEBPACK_IMPORTED_MODULE_35__cartesian_YAxis__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_36__cartesian_ZAxis__ = __webpack_require__(139);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"ZAxis\", function() { return __WEBPACK_IMPORTED_MODULE_36__cartesian_ZAxis__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_37__cartesian_ErrorBar__ = __webpack_require__(96);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"ErrorBar\", function() { return __WEBPACK_IMPORTED_MODULE_37__cartesian_ErrorBar__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_38__chart_LineChart__ = __webpack_require__(873);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"LineChart\", function() { return __WEBPACK_IMPORTED_MODULE_38__chart_LineChart__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_39__chart_BarChart__ = __webpack_require__(870);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"BarChart\", function() { return __WEBPACK_IMPORTED_MODULE_39__chart_BarChart__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_40__chart_PieChart__ = __webpack_require__(874);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"PieChart\", function() { return __WEBPACK_IMPORTED_MODULE_40__chart_PieChart__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_41__chart_Treemap__ = __webpack_require__(879);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Treemap\", function() { return __WEBPACK_IMPORTED_MODULE_41__chart_Treemap__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_42__chart_Sankey__ = __webpack_require__(877);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Sankey\", function() { return __WEBPACK_IMPORTED_MODULE_42__chart_Sankey__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_43__chart_RadarChart__ = __webpack_require__(875);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"RadarChart\", function() { return __WEBPACK_IMPORTED_MODULE_43__chart_RadarChart__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_44__chart_ScatterChart__ = __webpack_require__(878);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"ScatterChart\", function() { return __WEBPACK_IMPORTED_MODULE_44__chart_ScatterChart__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_45__chart_AreaChart__ = __webpack_require__(869);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"AreaChart\", function() { return __WEBPACK_IMPORTED_MODULE_45__chart_AreaChart__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_46__chart_RadialBarChart__ = __webpack_require__(876);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"RadialBarChart\", function() { return __WEBPACK_IMPORTED_MODULE_46__chart_RadialBarChart__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_47__chart_ComposedChart__ = __webpack_require__(871);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"ComposedChart\", function() { return __WEBPACK_IMPORTED_MODULE_47__chart_ComposedChart__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_48__numberAxis_Funnel__ = __webpack_require__(408);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Funnel\", function() { return __WEBPACK_IMPORTED_MODULE_48__numberAxis_Funnel__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_49__chart_FunnelChart__ = __webpack_require__(872);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"FunnelChart\", function() { return __WEBPACK_IMPORTED_MODULE_49__chart_FunnelChart__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_50__shape_Trapezoid__ = __webpack_require__(413);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Trapezoid\", function() { return __WEBPACK_IMPORTED_MODULE_50__shape_Trapezoid__[\"a\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 885 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util_PureRender__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util_PolarUtils__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__ = __webpack_require__(2);\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Polar Grid\n */\n\n\n\n\n\n\nvar PolarGrid = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util_PureRender__[\"a\" /* default */])(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(PolarGrid, _Component);\n\n function PolarGrid() {\n _classCallCheck(this, PolarGrid);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(PolarGrid).apply(this, arguments));\n }\n\n _createClass(PolarGrid, [{\n key: \"getPolygonPath\",\n value: function getPolygonPath(radius) {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n polarAngles = _this$props.polarAngles;\n var path = '';\n polarAngles.forEach(function (angle, i) {\n var point = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, radius, angle);\n\n if (i) {\n path += \"L \".concat(point.x, \",\").concat(point.y);\n } else {\n path += \"M \".concat(point.x, \",\").concat(point.y);\n }\n });\n path += 'Z';\n return path;\n }\n /**\n * Draw axis of radial line\n * @return {[type]} The lines\n */\n\n }, {\n key: \"renderPolarAngles\",\n value: function renderPolarAngles() {\n var _this$props2 = this.props,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n innerRadius = _this$props2.innerRadius,\n outerRadius = _this$props2.outerRadius,\n polarAngles = _this$props2.polarAngles;\n\n if (!polarAngles || !polarAngles.length) {\n return null;\n }\n\n var props = _objectSpread({\n stroke: '#ccc'\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props));\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"g\", {\n className: \"recharts-polar-grid-angle\"\n }, polarAngles.map(function (entry, i) {\n var start = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, innerRadius, entry);\n var end = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__util_PolarUtils__[\"a\" /* polarToCartesian */])(cx, cy, outerRadius, entry);\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"line\", _extends({}, props, {\n key: \"line-\".concat(i),\n x1: start.x,\n y1: start.y,\n x2: end.x,\n y2: end.y\n }));\n }));\n }\n /**\n * Draw concentric circles\n * @param {Number} radius The radius of circle\n * @param {Number} index The index of circle\n * @param {Object} extraProps Extra props\n * @return {ReactElement} circle\n */\n\n }, {\n key: \"renderConcentricCircle\",\n value: function renderConcentricCircle(radius, index, extraProps) {\n var _this$props3 = this.props,\n cx = _this$props3.cx,\n cy = _this$props3.cy;\n\n var props = _objectSpread({\n stroke: '#ccc'\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), {\n fill: 'none'\n }, extraProps);\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"circle\", _extends({}, props, {\n className: \"recharts-polar-grid-concentric-circle\",\n key: \"circle-\".concat(index),\n cx: cx,\n cy: cy,\n r: radius\n }));\n }\n /**\n * Draw concentric polygons\n * @param {Number} radius The radius of polygon\n * @param {Number} index The index of polygon\n * @param {Object} extraProps Extra props\n * @return {ReactElement} polygon\n */\n\n }, {\n key: \"renderConcentricPolygon\",\n value: function renderConcentricPolygon(radius, index, extraProps) {\n var props = _objectSpread({\n stroke: '#ccc'\n }, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__[\"a\" /* getPresentationAttributes */])(this.props), {\n fill: 'none'\n }, extraProps);\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"path\", _extends({}, props, {\n className: \"recharts-polar-grid-concentric-polygon\",\n key: \"path-\".concat(index),\n d: this.getPolygonPath(radius)\n }));\n }\n /**\n * Draw concentric axis\n * @return {ReactElement} Concentric axis\n * @todo Optimize the name\n */\n\n }, {\n key: \"renderConcentricPath\",\n value: function renderConcentricPath() {\n var _this = this;\n\n var _this$props4 = this.props,\n polarRadius = _this$props4.polarRadius,\n gridType = _this$props4.gridType;\n\n if (!polarRadius || !polarRadius.length) {\n return null;\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"g\", {\n className: \"recharts-polar-grid-concentric\"\n }, polarRadius.map(function (entry, i) {\n return gridType === 'circle' ? _this.renderConcentricCircle(entry, i) : _this.renderConcentricPolygon(entry, i);\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var outerRadius = this.props.outerRadius;\n\n if (outerRadius <= 0) {\n return null;\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"g\", {\n className: \"recharts-polar-grid\"\n }, this.renderPolarAngles(), this.renderConcentricPath());\n }\n }]);\n\n return PolarGrid;\n}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]), _class2.displayName = 'PolarGrid', _class2.propTypes = _objectSpread({}, __WEBPACK_IMPORTED_MODULE_4__util_ReactUtils__[\"c\" /* PRESENTATION_ATTRIBUTES */], {\n cx: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n cy: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n innerRadius: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n outerRadius: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number,\n polarAngles: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number),\n polarRadius: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number),\n gridType: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['polygon', 'circle'])\n}), _class2.defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n gridType: 'polygon'\n}, _temp)) || _class;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (PolarGrid);\n\n/***/ }),\n/* 886 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_es6_math__ = __webpack_require__(890);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_es6_math___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_core_js_es6_math__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_es6_number__ = __webpack_require__(891);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_es6_number___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_core_js_es6_number__);\n\n\n/* eslint no-proto: 0 */\n\nvar testObject = {};\n\nif (!(Object.setPrototypeOf || testObject.__proto__)) {\n var nativeGetPrototypeOf = Object.getPrototypeOf;\n\n Object.getPrototypeOf = function (object) {\n if (object.__proto__) {\n return object.__proto__;\n }\n\n return nativeGetPrototypeOf.call(Object, object);\n };\n}\n\n/***/ }),\n/* 887 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return COLOR_PANEL; });\nvar COLOR_PANEL = ['#1890FF', '#66B5FF', '#41D9C7', '#2FC25B', '#6EDB8F', '#9AE65C', '#FACC14', '#E6965C', '#57AD71', '#223273', '#738AE6', '#7564CC', '#8543E0', '#A877ED', '#5C8EE6', '#13C2C2', '#70E0E0', '#5CA3E6', '#3436C7', '#8082FF', '#DD81E6', '#F04864', '#FA7D92', '#D598D9'];\n\n/***/ }),\n/* 888 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return generatePrefixStyle; });\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nvar generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread({}, res, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};\n\n/***/ }),\n/* 889 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return eventCenter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return SYNC_EVENT; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_events__ = __webpack_require__(642);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_events___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_events__);\n\nvar eventCenter = new __WEBPACK_IMPORTED_MODULE_0_events___default.a();\n\nif (eventCenter.setMaxListeners) {\n eventCenter.setMaxListeners(10);\n}\n\n\nvar SYNC_EVENT = 'recharts.syncMouseEvents';\n\n/***/ }),\n/* 890 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(911);\n__webpack_require__(912);\n__webpack_require__(913);\n__webpack_require__(914);\n__webpack_require__(915);\n__webpack_require__(916);\n__webpack_require__(917);\n__webpack_require__(918);\n__webpack_require__(919);\n__webpack_require__(920);\n__webpack_require__(921);\n__webpack_require__(922);\n__webpack_require__(923);\n__webpack_require__(924);\n__webpack_require__(925);\n__webpack_require__(926);\n__webpack_require__(927);\nmodule.exports = __webpack_require__(98).Math;\n\n\n/***/ }),\n/* 891 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(928);\n__webpack_require__(938);\n__webpack_require__(939);\n__webpack_require__(929);\n__webpack_require__(930);\n__webpack_require__(931);\n__webpack_require__(932);\n__webpack_require__(933);\n__webpack_require__(934);\n__webpack_require__(935);\n__webpack_require__(936);\n__webpack_require__(937);\nmodule.exports = __webpack_require__(98).Number;\n\n\n/***/ }),\n/* 892 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n/* 893 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(239);\nvar toLength = __webpack_require__(910);\nvar toAbsoluteIndex = __webpack_require__(909);\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n/* 894 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(426)('native-function-to-string', Function.toString);\n\n\n/***/ }),\n/* 895 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(39).document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n/* 896 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(78);\nvar setPrototypeOf = __webpack_require__(907).set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n\n\n/***/ }),\n/* 897 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(231);\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n/* 898 */\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n/* 899 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.16 Math.fround(x)\nvar sign = __webpack_require__(235);\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n\n\n/***/ }),\n/* 900 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(146);\nvar dPs = __webpack_require__(901);\nvar enumBugKeys = __webpack_require__(233);\nvar IE_PROTO = __webpack_require__(425)('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(416)('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(895).appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n/* 901 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(236);\nvar anObject = __webpack_require__(146);\nvar getKeys = __webpack_require__(903);\n\nmodule.exports = __webpack_require__(77) ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n/* 902 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = __webpack_require__(422);\nvar hiddenKeys = __webpack_require__(233).concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n\n/***/ }),\n/* 903 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(422);\nvar enumBugKeys = __webpack_require__(233);\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n/* 904 */\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n/* 905 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $parseFloat = __webpack_require__(39).parseFloat;\nvar $trim = __webpack_require__(237).trim;\n\nmodule.exports = 1 / $parseFloat(__webpack_require__(238) + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n\n\n/***/ }),\n/* 906 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $parseInt = __webpack_require__(39).parseInt;\nvar $trim = __webpack_require__(237).trim;\nvar ws = __webpack_require__(238);\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n\n\n/***/ }),\n/* 907 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = __webpack_require__(78);\nvar anObject = __webpack_require__(146);\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 = __webpack_require__(415)(Function.call, __webpack_require__(421).f(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/* 908 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toInteger = __webpack_require__(148);\nvar defined = __webpack_require__(232);\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n\n\n/***/ }),\n/* 909 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(148);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n/* 910 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(148);\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n/* 911 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.3 Math.acosh(x)\nvar $export = __webpack_require__(10);\nvar log1p = __webpack_require__(420);\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n\n\n/***/ }),\n/* 912 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.5 Math.asinh(x)\nvar $export = __webpack_require__(10);\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n\n\n/***/ }),\n/* 913 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.7 Math.atanh(x)\nvar $export = __webpack_require__(10);\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n\n\n/***/ }),\n/* 914 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.9 Math.cbrt(x)\nvar $export = __webpack_require__(10);\nvar sign = __webpack_require__(235);\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n\n\n/***/ }),\n/* 915 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.11 Math.clz32(x)\nvar $export = __webpack_require__(10);\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n\n\n/***/ }),\n/* 916 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.12 Math.cosh(x)\nvar $export = __webpack_require__(10);\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n\n\n/***/ }),\n/* 917 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.14 Math.expm1(x)\nvar $export = __webpack_require__(10);\nvar $expm1 = __webpack_require__(234);\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n\n\n/***/ }),\n/* 918 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.16 Math.fround(x)\nvar $export = __webpack_require__(10);\n\n$export($export.S, 'Math', { fround: __webpack_require__(899) });\n\n\n/***/ }),\n/* 919 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = __webpack_require__(10);\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n\n\n/***/ }),\n/* 920 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.18 Math.imul(x, y)\nvar $export = __webpack_require__(10);\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * __webpack_require__(46)(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n\n\n/***/ }),\n/* 921 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.21 Math.log10(x)\nvar $export = __webpack_require__(10);\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n\n\n/***/ }),\n/* 922 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.20 Math.log1p(x)\nvar $export = __webpack_require__(10);\n\n$export($export.S, 'Math', { log1p: __webpack_require__(420) });\n\n\n/***/ }),\n/* 923 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.22 Math.log2(x)\nvar $export = __webpack_require__(10);\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n\n\n/***/ }),\n/* 924 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.28 Math.sign(x)\nvar $export = __webpack_require__(10);\n\n$export($export.S, 'Math', { sign: __webpack_require__(235) });\n\n\n/***/ }),\n/* 925 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.30 Math.sinh(x)\nvar $export = __webpack_require__(10);\nvar expm1 = __webpack_require__(234);\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * __webpack_require__(46)(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n\n\n/***/ }),\n/* 926 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.33 Math.tanh(x)\nvar $export = __webpack_require__(10);\nvar expm1 = __webpack_require__(234);\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n\n\n/***/ }),\n/* 927 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.34 Math.trunc(x)\nvar $export = __webpack_require__(10);\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n\n\n/***/ }),\n/* 928 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(39);\nvar has = __webpack_require__(147);\nvar cof = __webpack_require__(231);\nvar inheritIfRequired = __webpack_require__(896);\nvar toPrimitive = __webpack_require__(240);\nvar fails = __webpack_require__(46);\nvar gOPN = __webpack_require__(902).f;\nvar gOPD = __webpack_require__(421).f;\nvar dP = __webpack_require__(236).f;\nvar $trim = __webpack_require__(237).trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(__webpack_require__(900)(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = __webpack_require__(77) ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n __webpack_require__(424)(global, NUMBER, $Number);\n}\n\n\n/***/ }),\n/* 929 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.1 Number.EPSILON\nvar $export = __webpack_require__(10);\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n\n\n/***/ }),\n/* 930 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.2 Number.isFinite(number)\nvar $export = __webpack_require__(10);\nvar _isFinite = __webpack_require__(39).isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n\n\n/***/ }),\n/* 931 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.3 Number.isInteger(number)\nvar $export = __webpack_require__(10);\n\n$export($export.S, 'Number', { isInteger: __webpack_require__(419) });\n\n\n/***/ }),\n/* 932 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.4 Number.isNaN(number)\nvar $export = __webpack_require__(10);\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n\n\n/***/ }),\n/* 933 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = __webpack_require__(10);\nvar isInteger = __webpack_require__(419);\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n\n\n/***/ }),\n/* 934 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = __webpack_require__(10);\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n\n\n/***/ }),\n/* 935 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = __webpack_require__(10);\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n\n\n/***/ }),\n/* 936 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(10);\nvar $parseFloat = __webpack_require__(905);\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n\n\n/***/ }),\n/* 937 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(10);\nvar $parseInt = __webpack_require__(906);\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n\n\n/***/ }),\n/* 938 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(10);\nvar toInteger = __webpack_require__(148);\nvar aNumberValue = __webpack_require__(414);\nvar repeat = __webpack_require__(908);\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !__webpack_require__(46)(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n\n\n/***/ }),\n/* 939 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(10);\nvar $fails = __webpack_require__(46);\nvar aNumberValue = __webpack_require__(414);\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n\n\n/***/ }),\n/* 940 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = __webpack_require__(241);\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 941 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = __webpack_require__(241);\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n/***/ }),\n/* 942 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactIs = __webpack_require__(33);\nvar assign = __webpack_require__(94);\n\nvar ReactPropTypesSecret = __webpack_require__(241);\nvar checkPropTypes = __webpack_require__(940);\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))\n\n/***/ }),\n/* 943 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Module dependencies\n */\nvar balanced = __webpack_require__(944)\nvar reduceFunctionCall = __webpack_require__(945)\nvar mexp = __webpack_require__(784)\n\n/**\n * Constantes\n */\nvar MAX_STACK = 100 // should be enough for a single calc()...\nvar NESTED_CALC_RE = /(\\+|\\-|\\*|\\\\|[^a-z]|)(\\s*)(\\()/g\n\n/**\n * Global variables\n */\nvar stack\n\n/**\n * Expose reduceCSSCalc plugin\n *\n * @type {Function}\n */\nmodule.exports = reduceCSSCalc\n\n/**\n * Reduce CSS calc() in a string, whenever it's possible\n *\n * @param {String} value css input\n */\nfunction reduceCSSCalc(value, decimalPrecision) {\n stack = 0\n decimalPrecision = Math.pow(10, decimalPrecision === undefined ? 5 : decimalPrecision)\n\n // Allow calc() on multiple lines\n value = value.replace(/\\n+/g, \" \")\n\n /**\n * Evaluates an expression\n *\n * @param {String} expression\n * @returns {String}\n */\n function evaluateExpression (expression, functionIdentifier, call) {\n if (stack++ > MAX_STACK) {\n stack = 0\n throw new Error(\"Call stack overflow for \" + call)\n }\n\n if (expression === \"\") {\n throw new Error(functionIdentifier + \"(): '\" + call + \"' must contain a non-whitespace string\")\n }\n\n expression = evaluateNestedExpression(expression, call)\n\n var units = getUnitsInExpression(expression)\n\n // If the expression contains multiple units or CSS variables,\n // then let the expression be (i.e. browser calc())\n if (units.length > 1 || expression.indexOf(\"var(\") > -1) {\n return functionIdentifier + \"(\" + expression + \")\"\n }\n\n var unit = units[0] || \"\"\n\n if (unit === \"%\") {\n // Convert percentages to numbers, to handle expressions like: 50% * 50% (will become: 25%):\n // console.log(expression)\n expression = expression.replace(/\\b[0-9\\.]+%/g, function(percent) {\n return parseFloat(percent.slice(0, -1)) * 0.01\n })\n }\n\n // Remove units in expression:\n var toEvaluate = expression.replace(new RegExp(unit, \"gi\"), \"\")\n var result\n\n try {\n result = mexp.eval(toEvaluate)\n }\n catch (e) {\n return functionIdentifier + \"(\" + expression + \")\"\n }\n\n // Transform back to a percentage result:\n if (unit === \"%\") {\n result *= 100\n }\n\n // adjust rounding shit\n // (0.1 * 0.2 === 0.020000000000000004)\n if (functionIdentifier.length || unit === \"%\") {\n result = Math.round(result * decimalPrecision) / decimalPrecision\n }\n\n // Add unit\n result += unit\n\n return result\n }\n\n /**\n * Evaluates nested expressions\n *\n * @param {String} expression\n * @returns {String}\n */\n function evaluateNestedExpression(expression, call) {\n // Remove the calc part from nested expressions to ensure\n // better browser compatibility\n expression = expression.replace(/((?:\\-[a-z]+\\-)?calc)/g, \"\")\n var evaluatedPart = \"\"\n var nonEvaluatedPart = expression\n var matches\n while ((matches = NESTED_CALC_RE.exec(nonEvaluatedPart))) {\n if (matches[0].index > 0) {\n evaluatedPart += nonEvaluatedPart.substring(0, matches[0].index)\n }\n\n var balancedExpr = balanced(\"(\", \")\", nonEvaluatedPart.substring([0].index))\n if (balancedExpr.body === \"\") {\n throw new Error(\"'\" + expression + \"' must contain a non-whitespace string\")\n }\n\n var evaluated = evaluateExpression(balancedExpr.body, \"\", call)\n\n evaluatedPart += balancedExpr.pre + evaluated\n nonEvaluatedPart = balancedExpr.post\n }\n\n return evaluatedPart + nonEvaluatedPart\n }\n\n return reduceFunctionCall(value, /((?:\\-[a-z]+\\-)?calc)\\(/, evaluateExpression)\n}\n\n/**\n * Checks what units are used in an expression\n *\n * @param {String} expression\n * @returns {Array}\n */\n\nfunction getUnitsInExpression(expression) {\n var uniqueUnits = []\n var uniqueLowerCaseUnits = []\n var unitRegEx = /[\\.0-9]([%a-z]+)/gi\n var matches = unitRegEx.exec(expression)\n\n while (matches) {\n if (!matches || !matches[1]) {\n continue\n }\n\n if (uniqueLowerCaseUnits.indexOf(matches[1].toLowerCase()) === -1) {\n uniqueUnits.push(matches[1])\n uniqueLowerCaseUnits.push(matches[1].toLowerCase())\n }\n\n matches = unitRegEx.exec(expression)\n }\n\n return uniqueUnits\n}\n\n\n/***/ }),\n/* 944 */\n/***/ (function(module, exports) {\n\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n\n\n/***/ }),\n/* 945 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n * Module dependencies\n */\nvar balanced = __webpack_require__(946)\n\n/**\n * Expose `reduceFunctionCall`\n *\n * @type {Function}\n */\nmodule.exports = reduceFunctionCall\n\n/**\n * Walkthrough all expressions, evaluate them and insert them into the declaration\n *\n * @param {Array} expressions\n * @param {Object} declaration\n */\n\nfunction reduceFunctionCall(string, functionRE, callback) {\n var call = string\n return getFunctionCalls(string, functionRE).reduce(function(string, obj) {\n return string.replace(obj.functionIdentifier + \"(\" + obj.matches.body + \")\", evalFunctionCall(obj.matches.body, obj.functionIdentifier, callback, call, functionRE))\n }, string)\n}\n\n/**\n * Parses expressions in a value\n *\n * @param {String} value\n * @returns {Array}\n * @api private\n */\n\nfunction getFunctionCalls(call, functionRE) {\n var expressions = []\n\n var fnRE = typeof functionRE === \"string\" ? new RegExp(\"\\\\b(\" + functionRE + \")\\\\(\") : functionRE\n do {\n var searchMatch = fnRE.exec(call)\n if (!searchMatch) {\n return expressions\n }\n if (searchMatch[1] === undefined) {\n throw new Error(\"Missing the first couple of parenthesis to get the function identifier in \" + functionRE)\n }\n var fn = searchMatch[1]\n var startIndex = searchMatch.index\n var matches = balanced(\"(\", \")\", call.substring(startIndex))\n\n if (!matches || matches.start !== searchMatch[0].length - 1) {\n throw new SyntaxError(fn + \"(): missing closing ')' in the value '\" + call + \"'\")\n }\n\n expressions.push({matches: matches, functionIdentifier: fn})\n call = matches.post\n }\n while (fnRE.test(call))\n\n return expressions\n}\n\n/**\n * Evaluates an expression\n *\n * @param {String} expression\n * @returns {String}\n * @api private\n */\n\nfunction evalFunctionCall (string, functionIdentifier, callback, call, functionRE) {\n // allow recursivity\n return callback(reduceFunctionCall(string, functionRE, callback), functionIdentifier, call)\n}\n\n\n/***/ }),\n/* 946 */\n/***/ (function(module, exports) {\n\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n\n\n/***/ }),\n/* 947 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* WEBPACK VAR INJECTION */(function(global) {/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (index);\n\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(47)))\n\n/***/ }),\n/* 948 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar fetchKeys = __webpack_require__(649);\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = fetchKeys(objA);\n var keysB = fetchKeys(objB);\n\n var len = keysA.length;\n if (len !== keysB.length) {\n return false;\n }\n\n compareContext = compareContext || null;\n\n // Test for A's keys different from B.\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n for (var i = 0; i < len; i++) {\n var key = keysA[i];\n if (!bHasOwnProperty(key)) {\n return false;\n }\n var valueA = objA[key];\n var valueB = objB[key];\n\n var _ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n if (_ret === false || _ret === void 0 && valueA !== valueB) {\n return false;\n }\n }\n\n return true;\n};\n\n/***/ }),\n/* 949 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! VelocityJS.org (1.5.2). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */\r\n\r\n/*************************\r\n Velocity jQuery Shim\r\n *************************/\r\n\r\n/*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */\r\n\r\n/* This file contains the jQuery functions that Velocity relies on, thereby removing Velocity's dependency on a full copy of jQuery, and allowing it to work in any environment. */\r\n/* These shimmed functions are only used if jQuery isn't present. If both this shim and jQuery are loaded, Velocity defaults to jQuery proper. */\r\n/* Browser support: Using this shim instead of jQuery proper removes support for IE8. */\r\n\r\n(function(window) {\r\n\t\"use strict\";\r\n\t/***************\r\n\t Setup\r\n\t ***************/\r\n\r\n\t/* If jQuery is already loaded, there's no point in loading this shim. */\r\n\tif (window.jQuery) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t/* jQuery base. */\r\n\tvar $ = function(selector, context) {\r\n\t\treturn new $.fn.init(selector, context);\r\n\t};\r\n\r\n\t/********************\r\n\t Private Methods\r\n\t ********************/\r\n\r\n\t/* jQuery */\r\n\t$.isWindow = function(obj) {\r\n\t\t/* jshint eqeqeq: false */\r\n\t\treturn obj && obj === obj.window;\r\n\t};\r\n\r\n\t/* jQuery */\r\n\t$.type = function(obj) {\r\n\t\tif (!obj) {\r\n\t\t\treturn obj + \"\";\r\n\t\t}\r\n\r\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\r\n\t\t\t\tclass2type[toString.call(obj)] || \"object\" :\r\n\t\t\t\ttypeof obj;\r\n\t};\r\n\r\n\t/* jQuery */\r\n\t$.isArray = Array.isArray || function(obj) {\r\n\t\treturn $.type(obj) === \"array\";\r\n\t};\r\n\r\n\t/* jQuery */\r\n\tfunction isArraylike(obj) {\r\n\t\tvar length = obj.length,\r\n\t\t\t\ttype = $.type(obj);\r\n\r\n\t\tif (type === \"function\" || $.isWindow(obj)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (obj.nodeType === 1 && length) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && (length - 1) in obj;\r\n\t}\r\n\r\n\t/***************\r\n\t $ Methods\r\n\t ***************/\r\n\r\n\t/* jQuery: Support removed for IE<9. */\r\n\t$.isPlainObject = function(obj) {\r\n\t\tvar key;\r\n\r\n\t\tif (!obj || $.type(obj) !== \"object\" || obj.nodeType || $.isWindow(obj)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tif (obj.constructor &&\r\n\t\t\t\t\t!hasOwn.call(obj, \"constructor\") &&\r\n\t\t\t\t\t!hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\")) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (key in obj) {\r\n\t\t}\r\n\r\n\t\treturn key === undefined || hasOwn.call(obj, key);\r\n\t};\r\n\r\n\t/* jQuery */\r\n\t$.each = function(obj, callback, args) {\r\n\t\tvar value,\r\n\t\t\t\ti = 0,\r\n\t\t\t\tlength = obj.length,\r\n\t\t\t\tisArray = isArraylike(obj);\r\n\r\n\t\tif (args) {\r\n\t\t\tif (isArray) {\r\n\t\t\t\tfor (; i < length; i++) {\r\n\t\t\t\t\tvalue = callback.apply(obj[i], args);\r\n\r\n\t\t\t\t\tif (value === false) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i in obj) {\r\n\t\t\t\t\tif (!obj.hasOwnProperty(i)) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvalue = callback.apply(obj[i], args);\r\n\r\n\t\t\t\t\tif (value === false) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\tif (isArray) {\r\n\t\t\t\tfor (; i < length; i++) {\r\n\t\t\t\t\tvalue = callback.call(obj[i], i, obj[i]);\r\n\r\n\t\t\t\t\tif (value === false) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i in obj) {\r\n\t\t\t\t\tif (!obj.hasOwnProperty(i)) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvalue = callback.call(obj[i], i, obj[i]);\r\n\r\n\t\t\t\t\tif (value === false) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn obj;\r\n\t};\r\n\r\n\t/* Custom */\r\n\t$.data = function(node, key, value) {\r\n\t\t/* $.getData() */\r\n\t\tif (value === undefined) {\r\n\t\t\tvar getId = node[$.expando],\r\n\t\t\t\t\tstore = getId && cache[getId];\r\n\r\n\t\t\tif (key === undefined) {\r\n\t\t\t\treturn store;\r\n\t\t\t} else if (store) {\r\n\t\t\t\tif (key in store) {\r\n\t\t\t\t\treturn store[key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t/* $.setData() */\r\n\t\t} else if (key !== undefined) {\r\n\t\t\tvar setId = node[$.expando] || (node[$.expando] = ++$.uuid);\r\n\r\n\t\t\tcache[setId] = cache[setId] || {};\r\n\t\t\tcache[setId][key] = value;\r\n\r\n\t\t\treturn value;\r\n\t\t}\r\n\t};\r\n\r\n\t/* Custom */\r\n\t$.removeData = function(node, keys) {\r\n\t\tvar id = node[$.expando],\r\n\t\t\t\tstore = id && cache[id];\r\n\r\n\t\tif (store) {\r\n\t\t\t// Cleanup the entire store if no keys are provided.\r\n\t\t\tif (!keys) {\r\n\t\t\t\tdelete cache[id];\r\n\t\t\t} else {\r\n\t\t\t\t$.each(keys, function(_, key) {\r\n\t\t\t\t\tdelete store[key];\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/* jQuery */\r\n\t$.extend = function() {\r\n\t\tvar src, copyIsArray, copy, name, options, clone,\r\n\t\t\t\ttarget = arguments[0] || {},\r\n\t\t\t\ti = 1,\r\n\t\t\t\tlength = arguments.length,\r\n\t\t\t\tdeep = false;\r\n\r\n\t\tif (typeof target === \"boolean\") {\r\n\t\t\tdeep = target;\r\n\r\n\t\t\ttarget = arguments[i] || {};\r\n\t\t\ti++;\r\n\t\t}\r\n\r\n\t\tif (typeof target !== \"object\" && $.type(target) !== \"function\") {\r\n\t\t\ttarget = {};\r\n\t\t}\r\n\r\n\t\tif (i === length) {\r\n\t\t\ttarget = this;\r\n\t\t\ti--;\r\n\t\t}\r\n\r\n\t\tfor (; i < length; i++) {\r\n\t\t\tif ((options = arguments[i])) {\r\n\t\t\t\tfor (name in options) {\r\n\t\t\t\t\tif (!options.hasOwnProperty(name)) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsrc = target[name];\r\n\t\t\t\t\tcopy = options[name];\r\n\r\n\t\t\t\t\tif (target === copy) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (deep && copy && ($.isPlainObject(copy) || (copyIsArray = $.isArray(copy)))) {\r\n\t\t\t\t\t\tif (copyIsArray) {\r\n\t\t\t\t\t\t\tcopyIsArray = false;\r\n\t\t\t\t\t\t\tclone = src && $.isArray(src) ? src : [];\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tclone = src && $.isPlainObject(src) ? src : {};\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttarget[name] = $.extend(deep, clone, copy);\r\n\r\n\t\t\t\t\t} else if (copy !== undefined) {\r\n\t\t\t\t\t\ttarget[name] = copy;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t};\r\n\r\n\t/* jQuery 1.4.3 */\r\n\t$.queue = function(elem, type, data) {\r\n\t\tfunction $makeArray(arr, results) {\r\n\t\t\tvar ret = results || [];\r\n\r\n\t\t\tif (arr) {\r\n\t\t\t\tif (isArraylike(Object(arr))) {\r\n\t\t\t\t\t/* $.merge */\r\n\t\t\t\t\t(function(first, second) {\r\n\t\t\t\t\t\tvar len = +second.length,\r\n\t\t\t\t\t\t\t\tj = 0,\r\n\t\t\t\t\t\t\t\ti = first.length;\r\n\r\n\t\t\t\t\t\twhile (j < len) {\r\n\t\t\t\t\t\t\tfirst[i++] = second[j++];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (len !== len) {\r\n\t\t\t\t\t\t\twhile (second[j] !== undefined) {\r\n\t\t\t\t\t\t\t\tfirst[i++] = second[j++];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfirst.length = i;\r\n\r\n\t\t\t\t\t\treturn first;\r\n\t\t\t\t\t})(ret, typeof arr === \"string\" ? [arr] : arr);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t[].push.call(ret, arr);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn ret;\r\n\t\t}\r\n\r\n\t\tif (!elem) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\ttype = (type || \"fx\") + \"queue\";\r\n\r\n\t\tvar q = $.data(elem, type);\r\n\r\n\t\tif (!data) {\r\n\t\t\treturn q || [];\r\n\t\t}\r\n\r\n\t\tif (!q || $.isArray(data)) {\r\n\t\t\tq = $.data(elem, type, $makeArray(data));\r\n\t\t} else {\r\n\t\t\tq.push(data);\r\n\t\t}\r\n\r\n\t\treturn q;\r\n\t};\r\n\r\n\t/* jQuery 1.4.3 */\r\n\t$.dequeue = function(elems, type) {\r\n\t\t/* Custom: Embed element iteration. */\r\n\t\t$.each(elems.nodeType ? [elems] : elems, function(i, elem) {\r\n\t\t\ttype = type || \"fx\";\r\n\r\n\t\t\tvar queue = $.queue(elem, type),\r\n\t\t\t\t\tfn = queue.shift();\r\n\r\n\t\t\tif (fn === \"inprogress\") {\r\n\t\t\t\tfn = queue.shift();\r\n\t\t\t}\r\n\r\n\t\t\tif (fn) {\r\n\t\t\t\tif (type === \"fx\") {\r\n\t\t\t\t\tqueue.unshift(\"inprogress\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfn.call(elem, function() {\r\n\t\t\t\t\t$.dequeue(elem, type);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\t/******************\r\n\t $.fn Methods\r\n\t ******************/\r\n\r\n\t/* jQuery */\r\n\t$.fn = $.prototype = {\r\n\t\tinit: function(selector) {\r\n\t\t\t/* Just return the element wrapped inside an array; don't proceed with the actual jQuery node wrapping process. */\r\n\t\t\tif (selector.nodeType) {\r\n\t\t\t\tthis[0] = selector;\r\n\r\n\t\t\t\treturn this;\r\n\t\t\t} else {\r\n\t\t\t\tthrow new Error(\"Not a DOM node.\");\r\n\t\t\t}\r\n\t\t},\r\n\t\toffset: function() {\r\n\t\t\t/* jQuery altered code: Dropped disconnected DOM node checking. */\r\n\t\t\tvar box = this[0].getBoundingClientRect ? this[0].getBoundingClientRect() : {top: 0, left: 0};\r\n\r\n\t\t\treturn {\r\n\t\t\t\ttop: box.top + (window.pageYOffset || document.scrollTop || 0) - (document.clientTop || 0),\r\n\t\t\t\tleft: box.left + (window.pageXOffset || document.scrollLeft || 0) - (document.clientLeft || 0)\r\n\t\t\t};\r\n\t\t},\r\n\t\tposition: function() {\r\n\t\t\t/* jQuery */\r\n\t\t\tfunction offsetParentFn(elem) {\r\n\t\t\t\tvar offsetParent = elem.offsetParent;\r\n\r\n\t\t\t\twhile (offsetParent && (offsetParent.nodeName.toLowerCase() !== \"html\" && offsetParent.style && offsetParent.style.position.toLowerCase() === \"static\")) {\r\n\t\t\t\t\toffsetParent = offsetParent.offsetParent;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn offsetParent || document;\r\n\t\t\t}\r\n\r\n\t\t\t/* Zepto */\r\n\t\t\tvar elem = this[0],\r\n\t\t\t\t\toffsetParent = offsetParentFn(elem),\r\n\t\t\t\t\toffset = this.offset(),\r\n\t\t\t\t\tparentOffset = /^(?:body|html)$/i.test(offsetParent.nodeName) ? {top: 0, left: 0} : $(offsetParent).offset();\r\n\r\n\t\t\toffset.top -= parseFloat(elem.style.marginTop) || 0;\r\n\t\t\toffset.left -= parseFloat(elem.style.marginLeft) || 0;\r\n\r\n\t\t\tif (offsetParent.style) {\r\n\t\t\t\tparentOffset.top += parseFloat(offsetParent.style.borderTopWidth) || 0;\r\n\t\t\t\tparentOffset.left += parseFloat(offsetParent.style.borderLeftWidth) || 0;\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\ttop: offset.top - parentOffset.top,\r\n\t\t\t\tleft: offset.left - parentOffset.left\r\n\t\t\t};\r\n\t\t}\r\n\t};\r\n\r\n\t/**********************\r\n\t Private Variables\r\n\t **********************/\r\n\r\n\t/* For $.data() */\r\n\tvar cache = {};\r\n\t$.expando = \"velocity\" + (new Date().getTime());\r\n\t$.uuid = 0;\r\n\r\n\t/* For $.queue() */\r\n\tvar class2type = {},\r\n\t\t\thasOwn = class2type.hasOwnProperty,\r\n\t\t\ttoString = class2type.toString;\r\n\r\n\tvar types = \"Boolean Number String Function Array Date RegExp Object Error\".split(\" \");\r\n\tfor (var i = 0; i < types.length; i++) {\r\n\t\tclass2type[\"[object \" + types[i] + \"]\"] = types[i].toLowerCase();\r\n\t}\r\n\r\n\t/* Makes $(node) possible, without having to call init. */\r\n\t$.fn.init.prototype = $.fn;\r\n\r\n\t/* Globalize Velocity onto the window, and assign its Utilities property. */\r\n\twindow.Velocity = {Utilities: $};\r\n})(window);\r\n\r\n/******************\r\n Velocity.js\r\n ******************/\r\n\r\n(function(factory) {\r\n\t\"use strict\";\r\n\t/* CommonJS module. */\r\n\tif (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n\t\tmodule.exports = factory();\r\n\t\t/* AMD module. */\r\n\t} else if (true) {\r\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t\t/* Browser globals. */\r\n\t} else {\r\n\t\tfactory();\r\n\t}\r\n}(function() {\r\n\t\"use strict\";\r\n\treturn function(global, window, document, undefined) {\r\n\r\n\t\t/***************\r\n\t\t Summary\r\n\t\t ***************/\r\n\r\n\t\t/*\r\n\t\t - CSS: CSS stack that works independently from the rest of Velocity.\r\n\t\t - animate(): Core animation method that iterates over the targeted elements and queues the incoming call onto each element individually.\r\n\t\t - Pre-Queueing: Prepare the element for animation by instantiating its data cache and processing the call's options.\r\n\t\t - Queueing: The logic that runs once the call has reached its point of execution in the element's $.queue() stack.\r\n\t\t Most logic is placed here to avoid risking it becoming stale (if the element's properties have changed).\r\n\t\t - Pushing: Consolidation of the tween data followed by its push onto the global in-progress calls container.\r\n\t\t - tick(): The single requestAnimationFrame loop responsible for tweening all in-progress calls.\r\n\t\t - completeCall(): Handles the cleanup process for each Velocity call.\r\n\t\t */\r\n\r\n\t\t/*********************\r\n\t\t Helper Functions\r\n\t\t *********************/\r\n\r\n\t\t/* IE detection. Gist: https://gist.github.com/julianshapiro/9098609 */\r\n\t\tvar IE = (function() {\r\n\t\t\tif (document.documentMode) {\r\n\t\t\t\treturn document.documentMode;\r\n\t\t\t} else {\r\n\t\t\t\tfor (var i = 7; i > 4; i--) {\r\n\t\t\t\t\tvar div = document.createElement(\"div\");\r\n\r\n\t\t\t\t\tdiv.innerHTML = \"\";\r\n\r\n\t\t\t\t\tif (div.getElementsByTagName(\"span\").length) {\r\n\t\t\t\t\t\tdiv = null;\r\n\r\n\t\t\t\t\t\treturn i;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn undefined;\r\n\t\t})();\r\n\r\n\t\t/* rAF shim. Gist: https://gist.github.com/julianshapiro/9497513 */\r\n\t\tvar rAFShim = (function() {\r\n\t\t\tvar timeLast = 0;\r\n\r\n\t\t\treturn window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(callback) {\r\n\t\t\t\tvar timeCurrent = (new Date()).getTime(),\r\n\t\t\t\t\t\ttimeDelta;\r\n\r\n\t\t\t\t/* Dynamically set delay on a per-tick basis to match 60fps. */\r\n\t\t\t\t/* Technique by Erik Moller. MIT license: https://gist.github.com/paulirish/1579671 */\r\n\t\t\t\ttimeDelta = Math.max(0, 16 - (timeCurrent - timeLast));\r\n\t\t\t\ttimeLast = timeCurrent + timeDelta;\r\n\r\n\t\t\t\treturn setTimeout(function() {\r\n\t\t\t\t\tcallback(timeCurrent + timeDelta);\r\n\t\t\t\t}, timeDelta);\r\n\t\t\t};\r\n\t\t})();\r\n\r\n\t\tvar performance = (function() {\r\n\t\t\tvar perf = window.performance || {};\r\n\r\n\t\t\tif (typeof perf.now !== \"function\") {\r\n\t\t\t\tvar nowOffset = perf.timing && perf.timing.navigationStart ? perf.timing.navigationStart : (new Date()).getTime();\r\n\r\n\t\t\t\tperf.now = function() {\r\n\t\t\t\t\treturn (new Date()).getTime() - nowOffset;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\treturn perf;\r\n\t\t})();\r\n\r\n\t\t/* Array compacting. Copyright Lo-Dash. MIT License: https://github.com/lodash/lodash/blob/master/LICENSE.txt */\r\n\t\tfunction compactSparseArray(array) {\r\n\t\t\tvar index = -1,\r\n\t\t\t\t\tlength = array ? array.length : 0,\r\n\t\t\t\t\tresult = [];\r\n\r\n\t\t\twhile (++index < length) {\r\n\t\t\t\tvar value = array[index];\r\n\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tresult.push(value);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Shim for \"fixing\" IE's lack of support (IE < 9) for applying slice\r\n\t\t * on host objects like NamedNodeMap, NodeList, and HTMLCollection\r\n\t\t * (technically, since host objects have been implementation-dependent,\r\n\t\t * at least before ES2015, IE hasn't needed to work this way).\r\n\t\t * Also works on strings, fixes IE < 9 to allow an explicit undefined\r\n\t\t * for the 2nd argument (as in Firefox), and prevents errors when\r\n\t\t * called on other DOM objects.\r\n\t\t */\r\n\t\tvar _slice = (function() {\r\n\t\t\tvar slice = Array.prototype.slice;\r\n\r\n\t\t\ttry {\r\n\t\t\t\t// Can't be used with DOM elements in IE < 9\r\n\t\t\t\tslice.call(document.documentElement);\r\n\t\t\t\treturn slice;\r\n\t\t\t} catch (e) { // Fails in IE < 9\r\n\r\n\t\t\t\t// This will work for genuine arrays, array-like objects, \r\n\t\t\t\t// NamedNodeMap (attributes, entities, notations),\r\n\t\t\t\t// NodeList (e.g., getElementsByTagName), HTMLCollection (e.g., childNodes),\r\n\t\t\t\t// and will not fail on other DOM objects (as do DOM elements in IE < 9)\r\n\t\t\t\treturn function(begin, end) {\r\n\t\t\t\t\tvar len = this.length;\r\n\r\n\t\t\t\t\tif (typeof begin !== \"number\") {\r\n\t\t\t\t\t\tbegin = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// IE < 9 gets unhappy with an undefined end argument\r\n\t\t\t\t\tif (typeof end !== \"number\") {\r\n\t\t\t\t\t\tend = len;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// For native Array objects, we use the native slice function\r\n\t\t\t\t\tif (this.slice) {\r\n\t\t\t\t\t\treturn slice.call(this, begin, end);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// For array like object we handle it ourselves.\r\n\t\t\t\t\tvar i,\r\n\t\t\t\t\t\t\tcloned = [],\r\n\t\t\t\t\t\t\t// Handle negative value for \"begin\"\r\n\t\t\t\t\t\t\tstart = (begin >= 0) ? begin : Math.max(0, len + begin),\r\n\t\t\t\t\t\t\t// Handle negative value for \"end\"\r\n\t\t\t\t\t\t\tupTo = end < 0 ? len + end : Math.min(end, len),\r\n\t\t\t\t\t\t\t// Actual expected size of the slice\r\n\t\t\t\t\t\t\tsize = upTo - start;\r\n\r\n\t\t\t\t\tif (size > 0) {\r\n\t\t\t\t\t\tcloned = new Array(size);\r\n\t\t\t\t\t\tif (this.charAt) {\r\n\t\t\t\t\t\t\tfor (i = 0; i < size; i++) {\r\n\t\t\t\t\t\t\t\tcloned[i] = this.charAt(start + i);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tfor (i = 0; i < size; i++) {\r\n\t\t\t\t\t\t\t\tcloned[i] = this[start + i];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn cloned;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t/* .indexOf doesn't exist in IE<9 */\r\n\t\tvar _inArray = (function() {\r\n\t\t\tif (Array.prototype.includes) {\r\n\t\t\t\treturn function(arr, val) {\r\n\t\t\t\t\treturn arr.includes(val);\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tif (Array.prototype.indexOf) {\r\n\t\t\t\treturn function(arr, val) {\r\n\t\t\t\t\treturn arr.indexOf(val) >= 0;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\treturn function(arr, val) {\r\n\t\t\t\tfor (var i = 0; i < arr.length; i++) {\r\n\t\t\t\t\tif (arr[i] === val) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tfunction sanitizeElements(elements) {\r\n\t\t\t/* Unwrap jQuery/Zepto objects. */\r\n\t\t\tif (Type.isWrapped(elements)) {\r\n\t\t\t\telements = _slice.call(elements);\r\n\t\t\t\t/* Wrap a single element in an array so that $.each() can iterate with the element instead of its node's children. */\r\n\t\t\t} else if (Type.isNode(elements)) {\r\n\t\t\t\telements = [elements];\r\n\t\t\t}\r\n\r\n\t\t\treturn elements;\r\n\t\t}\r\n\r\n\t\tvar Type = {\r\n\t\t\tisNumber: function(variable) {\r\n\t\t\t\treturn (typeof variable === \"number\");\r\n\t\t\t},\r\n\t\t\tisString: function(variable) {\r\n\t\t\t\treturn (typeof variable === \"string\");\r\n\t\t\t},\r\n\t\t\tisArray: Array.isArray || function(variable) {\r\n\t\t\t\treturn Object.prototype.toString.call(variable) === \"[object Array]\";\r\n\t\t\t},\r\n\t\t\tisFunction: function(variable) {\r\n\t\t\t\treturn Object.prototype.toString.call(variable) === \"[object Function]\";\r\n\t\t\t},\r\n\t\t\tisNode: function(variable) {\r\n\t\t\t\treturn variable && variable.nodeType;\r\n\t\t\t},\r\n\t\t\t/* Determine if variable is an array-like wrapped jQuery, Zepto or similar element, or even a NodeList etc. */\r\n\t\t\t/* NOTE: HTMLFormElements also have a length. */\r\n\t\t\tisWrapped: function(variable) {\r\n\t\t\t\treturn variable\r\n\t\t\t\t\t\t&& variable !== window\r\n\t\t\t\t\t\t&& Type.isNumber(variable.length)\r\n\t\t\t\t\t\t&& !Type.isString(variable)\r\n\t\t\t\t\t\t&& !Type.isFunction(variable)\r\n\t\t\t\t\t\t&& !Type.isNode(variable)\r\n\t\t\t\t\t\t&& (variable.length === 0 || Type.isNode(variable[0]));\r\n\t\t\t},\r\n\t\t\tisSVG: function(variable) {\r\n\t\t\t\treturn window.SVGElement && (variable instanceof window.SVGElement);\r\n\t\t\t},\r\n\t\t\tisEmptyObject: function(variable) {\r\n\t\t\t\tfor (var name in variable) {\r\n\t\t\t\t\tif (variable.hasOwnProperty(name)) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/*****************\r\n\t\t Dependencies\r\n\t\t *****************/\r\n\r\n\t\tvar $,\r\n\t\t\t\tisJQuery = false;\r\n\r\n\t\tif (global.fn && global.fn.jquery) {\r\n\t\t\t$ = global;\r\n\t\t\tisJQuery = true;\r\n\t\t} else {\r\n\t\t\t$ = window.Velocity.Utilities;\r\n\t\t}\r\n\r\n\t\tif (IE <= 8 && !isJQuery) {\r\n\t\t\tthrow new Error(\"Velocity: IE8 and below require jQuery to be loaded before Velocity.\");\r\n\t\t} else if (IE <= 7) {\r\n\t\t\t/* Revert to jQuery's $.animate(), and lose Velocity's extra features. */\r\n\t\t\tjQuery.fn.velocity = jQuery.fn.animate;\r\n\r\n\t\t\t/* Now that $.fn.velocity is aliased, abort this Velocity declaration. */\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t/*****************\r\n\t\t Constants\r\n\t\t *****************/\r\n\r\n\t\tvar DURATION_DEFAULT = 400,\r\n\t\t\t\tEASING_DEFAULT = \"swing\";\r\n\r\n\t\t/*************\r\n\t\t State\r\n\t\t *************/\r\n\r\n\t\tvar Velocity = {\r\n\t\t\t/* Container for page-wide Velocity state data. */\r\n\t\t\tState: {\r\n\t\t\t\t/* Detect mobile devices to determine if mobileHA should be turned on. */\r\n\t\t\t\tisMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent),\r\n\t\t\t\t/* The mobileHA option's behavior changes on older Android devices (Gingerbread, versions 2.3.3-2.3.7). */\r\n\t\t\t\tisAndroid: /Android/i.test(window.navigator.userAgent),\r\n\t\t\t\tisGingerbread: /Android 2\\.3\\.[3-7]/i.test(window.navigator.userAgent),\r\n\t\t\t\tisChrome: window.chrome,\r\n\t\t\t\tisFirefox: /Firefox/i.test(window.navigator.userAgent),\r\n\t\t\t\t/* Create a cached element for re-use when checking for CSS property prefixes. */\r\n\t\t\t\tprefixElement: document.createElement(\"div\"),\r\n\t\t\t\t/* Cache every prefix match to avoid repeating lookups. */\r\n\t\t\t\tprefixMatches: {},\r\n\t\t\t\t/* Cache the anchor used for animating window scrolling. */\r\n\t\t\t\tscrollAnchor: null,\r\n\t\t\t\t/* Cache the browser-specific property names associated with the scroll anchor. */\r\n\t\t\t\tscrollPropertyLeft: null,\r\n\t\t\t\tscrollPropertyTop: null,\r\n\t\t\t\t/* Keep track of whether our RAF tick is running. */\r\n\t\t\t\tisTicking: false,\r\n\t\t\t\t/* Container for every in-progress call to Velocity. */\r\n\t\t\t\tcalls: [],\r\n\t\t\t\tdelayedElements: {\r\n\t\t\t\t\tcount: 0\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/* Velocity's custom CSS stack. Made global for unit testing. */\r\n\t\t\tCSS: {/* Defined below. */},\r\n\t\t\t/* A shim of the jQuery utility functions used by Velocity -- provided by Velocity's optional jQuery shim. */\r\n\t\t\tUtilities: $,\r\n\t\t\t/* Container for the user's custom animation redirects that are referenced by name in place of the properties map argument. */\r\n\t\t\tRedirects: {/* Manually registered by the user. */},\r\n\t\t\tEasings: {/* Defined below. */},\r\n\t\t\t/* Attempt to use ES6 Promises by default. Users can override this with a third-party promises library. */\r\n\t\t\tPromise: window.Promise,\r\n\t\t\t/* Velocity option defaults, which can be overriden by the user. */\r\n\t\t\tdefaults: {\r\n\t\t\t\tqueue: \"\",\r\n\t\t\t\tduration: DURATION_DEFAULT,\r\n\t\t\t\teasing: EASING_DEFAULT,\r\n\t\t\t\tbegin: undefined,\r\n\t\t\t\tcomplete: undefined,\r\n\t\t\t\tprogress: undefined,\r\n\t\t\t\tdisplay: undefined,\r\n\t\t\t\tvisibility: undefined,\r\n\t\t\t\tloop: false,\r\n\t\t\t\tdelay: false,\r\n\t\t\t\tmobileHA: true,\r\n\t\t\t\t/* Advanced: Set to false to prevent property values from being cached between consecutive Velocity-initiated chain calls. */\r\n\t\t\t\t_cacheValues: true,\r\n\t\t\t\t/* Advanced: Set to false if the promise should always resolve on empty element lists. */\r\n\t\t\t\tpromiseRejectEmpty: true\r\n\t\t\t},\r\n\t\t\t/* A design goal of Velocity is to cache data wherever possible in order to avoid DOM requerying. Accordingly, each element has a data cache. */\r\n\t\t\tinit: function(element) {\r\n\t\t\t\t$.data(element, \"velocity\", {\r\n\t\t\t\t\t/* Store whether this is an SVG element, since its properties are retrieved and updated differently than standard HTML elements. */\r\n\t\t\t\t\tisSVG: Type.isSVG(element),\r\n\t\t\t\t\t/* Keep track of whether the element is currently being animated by Velocity.\r\n\t\t\t\t\t This is used to ensure that property values are not transferred between non-consecutive (stale) calls. */\r\n\t\t\t\t\tisAnimating: false,\r\n\t\t\t\t\t/* A reference to the element's live computedStyle object. Learn more here: https://developer.mozilla.org/en/docs/Web/API/window.getComputedStyle */\r\n\t\t\t\t\tcomputedStyle: null,\r\n\t\t\t\t\t/* Tween data is cached for each animation on the element so that data can be passed across calls --\r\n\t\t\t\t\t in particular, end values are used as subsequent start values in consecutive Velocity calls. */\r\n\t\t\t\t\ttweensContainer: null,\r\n\t\t\t\t\t/* The full root property values of each CSS hook being animated on this element are cached so that:\r\n\t\t\t\t\t 1) Concurrently-animating hooks sharing the same root can have their root values' merged into one while tweening.\r\n\t\t\t\t\t 2) Post-hook-injection root values can be transferred over to consecutively chained Velocity calls as starting root values. */\r\n\t\t\t\t\trootPropertyValueCache: {},\r\n\t\t\t\t\t/* A cache for transform updates, which must be manually flushed via CSS.flushTransformCache(). */\r\n\t\t\t\t\ttransformCache: {}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t/* A parallel to jQuery's $.css(), used for getting/setting Velocity's hooked CSS properties. */\r\n\t\t\thook: null, /* Defined below. */\r\n\t\t\t/* Velocity-wide animation time remapping for testing purposes. */\r\n\t\t\tmock: false,\r\n\t\t\tversion: {major: 1, minor: 5, patch: 2},\r\n\t\t\t/* Set to 1 or 2 (most verbose) to output debug info to console. */\r\n\t\t\tdebug: false,\r\n\t\t\t/* Use rAF high resolution timestamp when available */\r\n\t\t\ttimestamp: true,\r\n\t\t\t/* Pause all animations */\r\n\t\t\tpauseAll: function(queueName) {\r\n\t\t\t\tvar currentTime = (new Date()).getTime();\r\n\r\n\t\t\t\t$.each(Velocity.State.calls, function(i, activeCall) {\r\n\r\n\t\t\t\t\tif (activeCall) {\r\n\r\n\t\t\t\t\t\t/* If we have a queueName and this call is not on that queue, skip */\r\n\t\t\t\t\t\tif (queueName !== undefined && ((activeCall[2].queue !== queueName) || (activeCall[2].queue === false))) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Set call to paused */\r\n\t\t\t\t\t\tactiveCall[5] = {\r\n\t\t\t\t\t\t\tresume: false\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t/* Pause timers on any currently delayed calls */\r\n\t\t\t\t$.each(Velocity.State.delayedElements, function(k, element) {\r\n\t\t\t\t\tif (!element) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpauseDelayOnElement(element, currentTime);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t/* Resume all animations */\r\n\t\t\tresumeAll: function(queueName) {\r\n\t\t\t\tvar currentTime = (new Date()).getTime();\r\n\r\n\t\t\t\t$.each(Velocity.State.calls, function(i, activeCall) {\r\n\r\n\t\t\t\t\tif (activeCall) {\r\n\r\n\t\t\t\t\t\t/* If we have a queueName and this call is not on that queue, skip */\r\n\t\t\t\t\t\tif (queueName !== undefined && ((activeCall[2].queue !== queueName) || (activeCall[2].queue === false))) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Set call to resumed if it was paused */\r\n\t\t\t\t\t\tif (activeCall[5]) {\r\n\t\t\t\t\t\t\tactiveCall[5].resume = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t/* Resume timers on any currently delayed calls */\r\n\t\t\t\t$.each(Velocity.State.delayedElements, function(k, element) {\r\n\t\t\t\t\tif (!element) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tresumeDelayOnElement(element, currentTime);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/* Retrieve the appropriate scroll anchor and property name for the browser: https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY */\r\n\t\tif (window.pageYOffset !== undefined) {\r\n\t\t\tVelocity.State.scrollAnchor = window;\r\n\t\t\tVelocity.State.scrollPropertyLeft = \"pageXOffset\";\r\n\t\t\tVelocity.State.scrollPropertyTop = \"pageYOffset\";\r\n\t\t} else {\r\n\t\t\tVelocity.State.scrollAnchor = document.documentElement || document.body.parentNode || document.body;\r\n\t\t\tVelocity.State.scrollPropertyLeft = \"scrollLeft\";\r\n\t\t\tVelocity.State.scrollPropertyTop = \"scrollTop\";\r\n\t\t}\r\n\r\n\t\t/* Shorthand alias for jQuery's $.data() utility. */\r\n\t\tfunction Data(element) {\r\n\t\t\t/* Hardcode a reference to the plugin name. */\r\n\t\t\tvar response = $.data(element, \"velocity\");\r\n\r\n\t\t\t/* jQuery <=1.4.2 returns null instead of undefined when no match is found. We normalize this behavior. */\r\n\t\t\treturn response === null ? undefined : response;\r\n\t\t}\r\n\r\n\t\t/**************\r\n\t\t Delay Timer\r\n\t\t **************/\r\n\r\n\t\tfunction pauseDelayOnElement(element, currentTime) {\r\n\t\t\t/* Check for any delay timers, and pause the set timeouts (while preserving time data)\r\n\t\t\t to be resumed when the \"resume\" command is issued */\r\n\t\t\tvar data = Data(element);\r\n\t\t\tif (data && data.delayTimer && !data.delayPaused) {\r\n\t\t\t\tdata.delayRemaining = data.delay - currentTime + data.delayBegin;\r\n\t\t\t\tdata.delayPaused = true;\r\n\t\t\t\tclearTimeout(data.delayTimer.setTimeout);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction resumeDelayOnElement(element, currentTime) {\r\n\t\t\t/* Check for any paused timers and resume */\r\n\t\t\tvar data = Data(element);\r\n\t\t\tif (data && data.delayTimer && data.delayPaused) {\r\n\t\t\t\t/* If the element was mid-delay, re initiate the timeout with the remaining delay */\r\n\t\t\t\tdata.delayPaused = false;\r\n\t\t\t\tdata.delayTimer.setTimeout = setTimeout(data.delayTimer.next, data.delayRemaining);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\r\n\t\t/**************\r\n\t\t Easing\r\n\t\t **************/\r\n\r\n\t\t/* Step easing generator. */\r\n\t\tfunction generateStep(steps) {\r\n\t\t\treturn function(p) {\r\n\t\t\t\treturn Math.round(p * steps) * (1 / steps);\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/* Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */\r\n\t\tfunction generateBezier(mX1, mY1, mX2, mY2) {\r\n\t\t\tvar NEWTON_ITERATIONS = 4,\r\n\t\t\t\t\tNEWTON_MIN_SLOPE = 0.001,\r\n\t\t\t\t\tSUBDIVISION_PRECISION = 0.0000001,\r\n\t\t\t\t\tSUBDIVISION_MAX_ITERATIONS = 10,\r\n\t\t\t\t\tkSplineTableSize = 11,\r\n\t\t\t\t\tkSampleStepSize = 1.0 / (kSplineTableSize - 1.0),\r\n\t\t\t\t\tfloat32ArraySupported = \"Float32Array\" in window;\r\n\r\n\t\t\t/* Must contain four arguments. */\r\n\t\t\tif (arguments.length !== 4) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t/* Arguments must be numbers. */\r\n\t\t\tfor (var i = 0; i < 4; ++i) {\r\n\t\t\t\tif (typeof arguments[i] !== \"number\" || isNaN(arguments[i]) || !isFinite(arguments[i])) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/* X values must be in the [0, 1] range. */\r\n\t\t\tmX1 = Math.min(mX1, 1);\r\n\t\t\tmX2 = Math.min(mX2, 1);\r\n\t\t\tmX1 = Math.max(mX1, 0);\r\n\t\t\tmX2 = Math.max(mX2, 0);\r\n\r\n\t\t\tvar mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\r\n\r\n\t\t\tfunction A(aA1, aA2) {\r\n\t\t\t\treturn 1.0 - 3.0 * aA2 + 3.0 * aA1;\r\n\t\t\t}\r\n\t\t\tfunction B(aA1, aA2) {\r\n\t\t\t\treturn 3.0 * aA2 - 6.0 * aA1;\r\n\t\t\t}\r\n\t\t\tfunction C(aA1) {\r\n\t\t\t\treturn 3.0 * aA1;\r\n\t\t\t}\r\n\r\n\t\t\tfunction calcBezier(aT, aA1, aA2) {\r\n\t\t\t\treturn ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\r\n\t\t\t}\r\n\r\n\t\t\tfunction getSlope(aT, aA1, aA2) {\r\n\t\t\t\treturn 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\r\n\t\t\t}\r\n\r\n\t\t\tfunction newtonRaphsonIterate(aX, aGuessT) {\r\n\t\t\t\tfor (var i = 0; i < NEWTON_ITERATIONS; ++i) {\r\n\t\t\t\t\tvar currentSlope = getSlope(aGuessT, mX1, mX2);\r\n\r\n\t\t\t\t\tif (currentSlope === 0.0) {\r\n\t\t\t\t\t\treturn aGuessT;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar currentX = calcBezier(aGuessT, mX1, mX2) - aX;\r\n\t\t\t\t\taGuessT -= currentX / currentSlope;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn aGuessT;\r\n\t\t\t}\r\n\r\n\t\t\tfunction calcSampleValues() {\r\n\t\t\t\tfor (var i = 0; i < kSplineTableSize; ++i) {\r\n\t\t\t\t\tmSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction binarySubdivide(aX, aA, aB) {\r\n\t\t\t\tvar currentX, currentT, i = 0;\r\n\r\n\t\t\t\tdo {\r\n\t\t\t\t\tcurrentT = aA + (aB - aA) / 2.0;\r\n\t\t\t\t\tcurrentX = calcBezier(currentT, mX1, mX2) - aX;\r\n\t\t\t\t\tif (currentX > 0.0) {\r\n\t\t\t\t\t\taB = currentT;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\taA = currentT;\r\n\t\t\t\t\t}\r\n\t\t\t\t} while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\r\n\r\n\t\t\t\treturn currentT;\r\n\t\t\t}\r\n\r\n\t\t\tfunction getTForX(aX) {\r\n\t\t\t\tvar intervalStart = 0.0,\r\n\t\t\t\t\t\tcurrentSample = 1,\r\n\t\t\t\t\t\tlastSample = kSplineTableSize - 1;\r\n\r\n\t\t\t\tfor (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\r\n\t\t\t\t\tintervalStart += kSampleStepSize;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t--currentSample;\r\n\r\n\t\t\t\tvar dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]),\r\n\t\t\t\t\t\tguessForT = intervalStart + dist * kSampleStepSize,\r\n\t\t\t\t\t\tinitialSlope = getSlope(guessForT, mX1, mX2);\r\n\r\n\t\t\t\tif (initialSlope >= NEWTON_MIN_SLOPE) {\r\n\t\t\t\t\treturn newtonRaphsonIterate(aX, guessForT);\r\n\t\t\t\t} else if (initialSlope === 0.0) {\r\n\t\t\t\t\treturn guessForT;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar _precomputed = false;\r\n\r\n\t\t\tfunction precompute() {\r\n\t\t\t\t_precomputed = true;\r\n\t\t\t\tif (mX1 !== mY1 || mX2 !== mY2) {\r\n\t\t\t\t\tcalcSampleValues();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar f = function(aX) {\r\n\t\t\t\tif (!_precomputed) {\r\n\t\t\t\t\tprecompute();\r\n\t\t\t\t}\r\n\t\t\t\tif (mX1 === mY1 && mX2 === mY2) {\r\n\t\t\t\t\treturn aX;\r\n\t\t\t\t}\r\n\t\t\t\tif (aX === 0) {\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t\tif (aX === 1) {\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn calcBezier(getTForX(aX), mY1, mY2);\r\n\t\t\t};\r\n\r\n\t\t\tf.getControlPoints = function() {\r\n\t\t\t\treturn [{x: mX1, y: mY1}, {x: mX2, y: mY2}];\r\n\t\t\t};\r\n\r\n\t\t\tvar str = \"generateBezier(\" + [mX1, mY1, mX2, mY2] + \")\";\r\n\t\t\tf.toString = function() {\r\n\t\t\t\treturn str;\r\n\t\t\t};\r\n\r\n\t\t\treturn f;\r\n\t\t}\r\n\r\n\t\t/* Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */\r\n\t\t/* Given a tension, friction, and duration, a simulation at 60FPS will first run without a defined duration in order to calculate the full path. A second pass\r\n\t\t then adjusts the time delta -- using the relation between actual time and duration -- to calculate the path for the duration-constrained animation. */\r\n\t\tvar generateSpringRK4 = (function() {\r\n\t\t\tfunction springAccelerationForState(state) {\r\n\t\t\t\treturn (-state.tension * state.x) - (state.friction * state.v);\r\n\t\t\t}\r\n\r\n\t\t\tfunction springEvaluateStateWithDerivative(initialState, dt, derivative) {\r\n\t\t\t\tvar state = {\r\n\t\t\t\t\tx: initialState.x + derivative.dx * dt,\r\n\t\t\t\t\tv: initialState.v + derivative.dv * dt,\r\n\t\t\t\t\ttension: initialState.tension,\r\n\t\t\t\t\tfriction: initialState.friction\r\n\t\t\t\t};\r\n\r\n\t\t\t\treturn {dx: state.v, dv: springAccelerationForState(state)};\r\n\t\t\t}\r\n\r\n\t\t\tfunction springIntegrateState(state, dt) {\r\n\t\t\t\tvar a = {\r\n\t\t\t\t\tdx: state.v,\r\n\t\t\t\t\tdv: springAccelerationForState(state)\r\n\t\t\t\t},\r\n\t\t\t\t\t\tb = springEvaluateStateWithDerivative(state, dt * 0.5, a),\r\n\t\t\t\t\t\tc = springEvaluateStateWithDerivative(state, dt * 0.5, b),\r\n\t\t\t\t\t\td = springEvaluateStateWithDerivative(state, dt, c),\r\n\t\t\t\t\t\tdxdt = 1.0 / 6.0 * (a.dx + 2.0 * (b.dx + c.dx) + d.dx),\r\n\t\t\t\t\t\tdvdt = 1.0 / 6.0 * (a.dv + 2.0 * (b.dv + c.dv) + d.dv);\r\n\r\n\t\t\t\tstate.x = state.x + dxdt * dt;\r\n\t\t\t\tstate.v = state.v + dvdt * dt;\r\n\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\r\n\t\t\treturn function springRK4Factory(tension, friction, duration) {\r\n\r\n\t\t\t\tvar initState = {\r\n\t\t\t\t\tx: -1,\r\n\t\t\t\t\tv: 0,\r\n\t\t\t\t\ttension: null,\r\n\t\t\t\t\tfriction: null\r\n\t\t\t\t},\r\n\t\t\t\t\t\tpath = [0],\r\n\t\t\t\t\t\ttime_lapsed = 0,\r\n\t\t\t\t\t\ttolerance = 1 / 10000,\r\n\t\t\t\t\t\tDT = 16 / 1000,\r\n\t\t\t\t\t\thave_duration, dt, last_state;\r\n\r\n\t\t\t\ttension = parseFloat(tension) || 500;\r\n\t\t\t\tfriction = parseFloat(friction) || 20;\r\n\t\t\t\tduration = duration || null;\r\n\r\n\t\t\t\tinitState.tension = tension;\r\n\t\t\t\tinitState.friction = friction;\r\n\r\n\t\t\t\thave_duration = duration !== null;\r\n\r\n\t\t\t\t/* Calculate the actual time it takes for this animation to complete with the provided conditions. */\r\n\t\t\t\tif (have_duration) {\r\n\t\t\t\t\t/* Run the simulation without a duration. */\r\n\t\t\t\t\ttime_lapsed = springRK4Factory(tension, friction);\r\n\t\t\t\t\t/* Compute the adjusted time delta. */\r\n\t\t\t\t\tdt = time_lapsed / duration * DT;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdt = DT;\r\n\t\t\t\t}\r\n\r\n\t\t\t\twhile (true) {\r\n\t\t\t\t\t/* Next/step function .*/\r\n\t\t\t\t\tlast_state = springIntegrateState(last_state || initState, dt);\r\n\t\t\t\t\t/* Store the position. */\r\n\t\t\t\t\tpath.push(1 + last_state.x);\r\n\t\t\t\t\ttime_lapsed += 16;\r\n\t\t\t\t\t/* If the change threshold is reached, break. */\r\n\t\t\t\t\tif (!(Math.abs(last_state.x) > tolerance && Math.abs(last_state.v) > tolerance)) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* If duration is not defined, return the actual time required for completing this animation. Otherwise, return a closure that holds the\r\n\t\t\t\t computed path and returns a snapshot of the position according to a given percentComplete. */\r\n\t\t\t\treturn !have_duration ? time_lapsed : function(percentComplete) {\r\n\t\t\t\t\treturn path[ (percentComplete * (path.length - 1)) | 0 ];\r\n\t\t\t\t};\r\n\t\t\t};\r\n\t\t}());\r\n\r\n\t\t/* jQuery easings. */\r\n\t\tVelocity.Easings = {\r\n\t\t\tlinear: function(p) {\r\n\t\t\t\treturn p;\r\n\t\t\t},\r\n\t\t\tswing: function(p) {\r\n\t\t\t\treturn 0.5 - Math.cos(p * Math.PI) / 2;\r\n\t\t\t},\r\n\t\t\t/* Bonus \"spring\" easing, which is a less exaggerated version of easeInOutElastic. */\r\n\t\t\tspring: function(p) {\r\n\t\t\t\treturn 1 - (Math.cos(p * 4.5 * Math.PI) * Math.exp(-p * 6));\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/* CSS3 and Robert Penner easings. */\r\n\t\t$.each(\r\n\t\t\t\t[\r\n\t\t\t\t\t[\"ease\", [0.25, 0.1, 0.25, 1.0]],\r\n\t\t\t\t\t[\"ease-in\", [0.42, 0.0, 1.00, 1.0]],\r\n\t\t\t\t\t[\"ease-out\", [0.00, 0.0, 0.58, 1.0]],\r\n\t\t\t\t\t[\"ease-in-out\", [0.42, 0.0, 0.58, 1.0]],\r\n\t\t\t\t\t[\"easeInSine\", [0.47, 0, 0.745, 0.715]],\r\n\t\t\t\t\t[\"easeOutSine\", [0.39, 0.575, 0.565, 1]],\r\n\t\t\t\t\t[\"easeInOutSine\", [0.445, 0.05, 0.55, 0.95]],\r\n\t\t\t\t\t[\"easeInQuad\", [0.55, 0.085, 0.68, 0.53]],\r\n\t\t\t\t\t[\"easeOutQuad\", [0.25, 0.46, 0.45, 0.94]],\r\n\t\t\t\t\t[\"easeInOutQuad\", [0.455, 0.03, 0.515, 0.955]],\r\n\t\t\t\t\t[\"easeInCubic\", [0.55, 0.055, 0.675, 0.19]],\r\n\t\t\t\t\t[\"easeOutCubic\", [0.215, 0.61, 0.355, 1]],\r\n\t\t\t\t\t[\"easeInOutCubic\", [0.645, 0.045, 0.355, 1]],\r\n\t\t\t\t\t[\"easeInQuart\", [0.895, 0.03, 0.685, 0.22]],\r\n\t\t\t\t\t[\"easeOutQuart\", [0.165, 0.84, 0.44, 1]],\r\n\t\t\t\t\t[\"easeInOutQuart\", [0.77, 0, 0.175, 1]],\r\n\t\t\t\t\t[\"easeInQuint\", [0.755, 0.05, 0.855, 0.06]],\r\n\t\t\t\t\t[\"easeOutQuint\", [0.23, 1, 0.32, 1]],\r\n\t\t\t\t\t[\"easeInOutQuint\", [0.86, 0, 0.07, 1]],\r\n\t\t\t\t\t[\"easeInExpo\", [0.95, 0.05, 0.795, 0.035]],\r\n\t\t\t\t\t[\"easeOutExpo\", [0.19, 1, 0.22, 1]],\r\n\t\t\t\t\t[\"easeInOutExpo\", [1, 0, 0, 1]],\r\n\t\t\t\t\t[\"easeInCirc\", [0.6, 0.04, 0.98, 0.335]],\r\n\t\t\t\t\t[\"easeOutCirc\", [0.075, 0.82, 0.165, 1]],\r\n\t\t\t\t\t[\"easeInOutCirc\", [0.785, 0.135, 0.15, 0.86]]\r\n\t\t\t\t], function(i, easingArray) {\r\n\t\t\tVelocity.Easings[easingArray[0]] = generateBezier.apply(null, easingArray[1]);\r\n\t\t});\r\n\r\n\t\t/* Determine the appropriate easing type given an easing input. */\r\n\t\tfunction getEasing(value, duration) {\r\n\t\t\tvar easing = value;\r\n\r\n\t\t\t/* The easing option can either be a string that references a pre-registered easing,\r\n\t\t\t or it can be a two-/four-item array of integers to be converted into a bezier/spring function. */\r\n\t\t\tif (Type.isString(value)) {\r\n\t\t\t\t/* Ensure that the easing has been assigned to jQuery's Velocity.Easings object. */\r\n\t\t\t\tif (!Velocity.Easings[value]) {\r\n\t\t\t\t\teasing = false;\r\n\t\t\t\t}\r\n\t\t\t} else if (Type.isArray(value) && value.length === 1) {\r\n\t\t\t\teasing = generateStep.apply(null, value);\r\n\t\t\t} else if (Type.isArray(value) && value.length === 2) {\r\n\t\t\t\t/* springRK4 must be passed the animation's duration. */\r\n\t\t\t\t/* Note: If the springRK4 array contains non-numbers, generateSpringRK4() returns an easing\r\n\t\t\t\t function generated with default tension and friction values. */\r\n\t\t\t\teasing = generateSpringRK4.apply(null, value.concat([duration]));\r\n\t\t\t} else if (Type.isArray(value) && value.length === 4) {\r\n\t\t\t\t/* Note: If the bezier array contains non-numbers, generateBezier() returns false. */\r\n\t\t\t\teasing = generateBezier.apply(null, value);\r\n\t\t\t} else {\r\n\t\t\t\teasing = false;\r\n\t\t\t}\r\n\r\n\t\t\t/* Revert to the Velocity-wide default easing type, or fall back to \"swing\" (which is also jQuery's default)\r\n\t\t\t if the Velocity-wide default has been incorrectly modified. */\r\n\t\t\tif (easing === false) {\r\n\t\t\t\tif (Velocity.Easings[Velocity.defaults.easing]) {\r\n\t\t\t\t\teasing = Velocity.defaults.easing;\r\n\t\t\t\t} else {\r\n\t\t\t\t\teasing = EASING_DEFAULT;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn easing;\r\n\t\t}\r\n\r\n\t\t/*****************\r\n\t\t CSS Stack\r\n\t\t *****************/\r\n\r\n\t\t/* The CSS object is a highly condensed and performant CSS stack that fully replaces jQuery's.\r\n\t\t It handles the validation, getting, and setting of both standard CSS properties and CSS property hooks. */\r\n\t\t/* Note: A \"CSS\" shorthand is aliased so that our code is easier to read. */\r\n\t\tvar CSS = Velocity.CSS = {\r\n\t\t\t/*************\r\n\t\t\t RegEx\r\n\t\t\t *************/\r\n\r\n\t\t\tRegEx: {\r\n\t\t\t\tisHex: /^#([A-f\\d]{3}){1,2}$/i,\r\n\t\t\t\t/* Unwrap a property value's surrounding text, e.g. \"rgba(4, 3, 2, 1)\" ==> \"4, 3, 2, 1\" and \"rect(4px 3px 2px 1px)\" ==> \"4px 3px 2px 1px\". */\r\n\t\t\t\tvalueUnwrap: /^[A-z]+\\((.*)\\)$/i,\r\n\t\t\t\twrappedValueAlreadyExtracted: /[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,\r\n\t\t\t\t/* Split a multi-value property into an array of subvalues, e.g. \"rgba(4, 3, 2, 1) 4px 3px 2px 1px\" ==> [ \"rgba(4, 3, 2, 1)\", \"4px\", \"3px\", \"2px\", \"1px\" ]. */\r\n\t\t\t\tvalueSplit: /([A-z]+\\(.+\\))|(([A-z0-9#-.]+?)(?=\\s|$))/ig\r\n\t\t\t},\r\n\t\t\t/************\r\n\t\t\t Lists\r\n\t\t\t ************/\r\n\r\n\t\t\tLists: {\r\n\t\t\t\tcolors: [\"fill\", \"stroke\", \"stopColor\", \"color\", \"backgroundColor\", \"borderColor\", \"borderTopColor\", \"borderRightColor\", \"borderBottomColor\", \"borderLeftColor\", \"outlineColor\"],\r\n\t\t\t\ttransformsBase: [\"translateX\", \"translateY\", \"scale\", \"scaleX\", \"scaleY\", \"skewX\", \"skewY\", \"rotateZ\"],\r\n\t\t\t\ttransforms3D: [\"transformPerspective\", \"translateZ\", \"scaleZ\", \"rotateX\", \"rotateY\"],\r\n\t\t\t\tunits: [\r\n\t\t\t\t\t\"%\", // relative\r\n\t\t\t\t\t\"em\", \"ex\", \"ch\", \"rem\", // font relative\r\n\t\t\t\t\t\"vw\", \"vh\", \"vmin\", \"vmax\", // viewport relative\r\n\t\t\t\t\t\"cm\", \"mm\", \"Q\", \"in\", \"pc\", \"pt\", \"px\", // absolute lengths\r\n\t\t\t\t\t\"deg\", \"grad\", \"rad\", \"turn\", // angles\r\n\t\t\t\t\t\"s\", \"ms\" // time\r\n\t\t\t\t],\r\n\t\t\t\tcolorNames: {\r\n\t\t\t\t\t\"aliceblue\": \"240,248,255\",\r\n\t\t\t\t\t\"antiquewhite\": \"250,235,215\",\r\n\t\t\t\t\t\"aquamarine\": \"127,255,212\",\r\n\t\t\t\t\t\"aqua\": \"0,255,255\",\r\n\t\t\t\t\t\"azure\": \"240,255,255\",\r\n\t\t\t\t\t\"beige\": \"245,245,220\",\r\n\t\t\t\t\t\"bisque\": \"255,228,196\",\r\n\t\t\t\t\t\"black\": \"0,0,0\",\r\n\t\t\t\t\t\"blanchedalmond\": \"255,235,205\",\r\n\t\t\t\t\t\"blueviolet\": \"138,43,226\",\r\n\t\t\t\t\t\"blue\": \"0,0,255\",\r\n\t\t\t\t\t\"brown\": \"165,42,42\",\r\n\t\t\t\t\t\"burlywood\": \"222,184,135\",\r\n\t\t\t\t\t\"cadetblue\": \"95,158,160\",\r\n\t\t\t\t\t\"chartreuse\": \"127,255,0\",\r\n\t\t\t\t\t\"chocolate\": \"210,105,30\",\r\n\t\t\t\t\t\"coral\": \"255,127,80\",\r\n\t\t\t\t\t\"cornflowerblue\": \"100,149,237\",\r\n\t\t\t\t\t\"cornsilk\": \"255,248,220\",\r\n\t\t\t\t\t\"crimson\": \"220,20,60\",\r\n\t\t\t\t\t\"cyan\": \"0,255,255\",\r\n\t\t\t\t\t\"darkblue\": \"0,0,139\",\r\n\t\t\t\t\t\"darkcyan\": \"0,139,139\",\r\n\t\t\t\t\t\"darkgoldenrod\": \"184,134,11\",\r\n\t\t\t\t\t\"darkgray\": \"169,169,169\",\r\n\t\t\t\t\t\"darkgrey\": \"169,169,169\",\r\n\t\t\t\t\t\"darkgreen\": \"0,100,0\",\r\n\t\t\t\t\t\"darkkhaki\": \"189,183,107\",\r\n\t\t\t\t\t\"darkmagenta\": \"139,0,139\",\r\n\t\t\t\t\t\"darkolivegreen\": \"85,107,47\",\r\n\t\t\t\t\t\"darkorange\": \"255,140,0\",\r\n\t\t\t\t\t\"darkorchid\": \"153,50,204\",\r\n\t\t\t\t\t\"darkred\": \"139,0,0\",\r\n\t\t\t\t\t\"darksalmon\": \"233,150,122\",\r\n\t\t\t\t\t\"darkseagreen\": \"143,188,143\",\r\n\t\t\t\t\t\"darkslateblue\": \"72,61,139\",\r\n\t\t\t\t\t\"darkslategray\": \"47,79,79\",\r\n\t\t\t\t\t\"darkturquoise\": \"0,206,209\",\r\n\t\t\t\t\t\"darkviolet\": \"148,0,211\",\r\n\t\t\t\t\t\"deeppink\": \"255,20,147\",\r\n\t\t\t\t\t\"deepskyblue\": \"0,191,255\",\r\n\t\t\t\t\t\"dimgray\": \"105,105,105\",\r\n\t\t\t\t\t\"dimgrey\": \"105,105,105\",\r\n\t\t\t\t\t\"dodgerblue\": \"30,144,255\",\r\n\t\t\t\t\t\"firebrick\": \"178,34,34\",\r\n\t\t\t\t\t\"floralwhite\": \"255,250,240\",\r\n\t\t\t\t\t\"forestgreen\": \"34,139,34\",\r\n\t\t\t\t\t\"fuchsia\": \"255,0,255\",\r\n\t\t\t\t\t\"gainsboro\": \"220,220,220\",\r\n\t\t\t\t\t\"ghostwhite\": \"248,248,255\",\r\n\t\t\t\t\t\"gold\": \"255,215,0\",\r\n\t\t\t\t\t\"goldenrod\": \"218,165,32\",\r\n\t\t\t\t\t\"gray\": \"128,128,128\",\r\n\t\t\t\t\t\"grey\": \"128,128,128\",\r\n\t\t\t\t\t\"greenyellow\": \"173,255,47\",\r\n\t\t\t\t\t\"green\": \"0,128,0\",\r\n\t\t\t\t\t\"honeydew\": \"240,255,240\",\r\n\t\t\t\t\t\"hotpink\": \"255,105,180\",\r\n\t\t\t\t\t\"indianred\": \"205,92,92\",\r\n\t\t\t\t\t\"indigo\": \"75,0,130\",\r\n\t\t\t\t\t\"ivory\": \"255,255,240\",\r\n\t\t\t\t\t\"khaki\": \"240,230,140\",\r\n\t\t\t\t\t\"lavenderblush\": \"255,240,245\",\r\n\t\t\t\t\t\"lavender\": \"230,230,250\",\r\n\t\t\t\t\t\"lawngreen\": \"124,252,0\",\r\n\t\t\t\t\t\"lemonchiffon\": \"255,250,205\",\r\n\t\t\t\t\t\"lightblue\": \"173,216,230\",\r\n\t\t\t\t\t\"lightcoral\": \"240,128,128\",\r\n\t\t\t\t\t\"lightcyan\": \"224,255,255\",\r\n\t\t\t\t\t\"lightgoldenrodyellow\": \"250,250,210\",\r\n\t\t\t\t\t\"lightgray\": \"211,211,211\",\r\n\t\t\t\t\t\"lightgrey\": \"211,211,211\",\r\n\t\t\t\t\t\"lightgreen\": \"144,238,144\",\r\n\t\t\t\t\t\"lightpink\": \"255,182,193\",\r\n\t\t\t\t\t\"lightsalmon\": \"255,160,122\",\r\n\t\t\t\t\t\"lightseagreen\": \"32,178,170\",\r\n\t\t\t\t\t\"lightskyblue\": \"135,206,250\",\r\n\t\t\t\t\t\"lightslategray\": \"119,136,153\",\r\n\t\t\t\t\t\"lightsteelblue\": \"176,196,222\",\r\n\t\t\t\t\t\"lightyellow\": \"255,255,224\",\r\n\t\t\t\t\t\"limegreen\": \"50,205,50\",\r\n\t\t\t\t\t\"lime\": \"0,255,0\",\r\n\t\t\t\t\t\"linen\": \"250,240,230\",\r\n\t\t\t\t\t\"magenta\": \"255,0,255\",\r\n\t\t\t\t\t\"maroon\": \"128,0,0\",\r\n\t\t\t\t\t\"mediumaquamarine\": \"102,205,170\",\r\n\t\t\t\t\t\"mediumblue\": \"0,0,205\",\r\n\t\t\t\t\t\"mediumorchid\": \"186,85,211\",\r\n\t\t\t\t\t\"mediumpurple\": \"147,112,219\",\r\n\t\t\t\t\t\"mediumseagreen\": \"60,179,113\",\r\n\t\t\t\t\t\"mediumslateblue\": \"123,104,238\",\r\n\t\t\t\t\t\"mediumspringgreen\": \"0,250,154\",\r\n\t\t\t\t\t\"mediumturquoise\": \"72,209,204\",\r\n\t\t\t\t\t\"mediumvioletred\": \"199,21,133\",\r\n\t\t\t\t\t\"midnightblue\": \"25,25,112\",\r\n\t\t\t\t\t\"mintcream\": \"245,255,250\",\r\n\t\t\t\t\t\"mistyrose\": \"255,228,225\",\r\n\t\t\t\t\t\"moccasin\": \"255,228,181\",\r\n\t\t\t\t\t\"navajowhite\": \"255,222,173\",\r\n\t\t\t\t\t\"navy\": \"0,0,128\",\r\n\t\t\t\t\t\"oldlace\": \"253,245,230\",\r\n\t\t\t\t\t\"olivedrab\": \"107,142,35\",\r\n\t\t\t\t\t\"olive\": \"128,128,0\",\r\n\t\t\t\t\t\"orangered\": \"255,69,0\",\r\n\t\t\t\t\t\"orange\": \"255,165,0\",\r\n\t\t\t\t\t\"orchid\": \"218,112,214\",\r\n\t\t\t\t\t\"palegoldenrod\": \"238,232,170\",\r\n\t\t\t\t\t\"palegreen\": \"152,251,152\",\r\n\t\t\t\t\t\"paleturquoise\": \"175,238,238\",\r\n\t\t\t\t\t\"palevioletred\": \"219,112,147\",\r\n\t\t\t\t\t\"papayawhip\": \"255,239,213\",\r\n\t\t\t\t\t\"peachpuff\": \"255,218,185\",\r\n\t\t\t\t\t\"peru\": \"205,133,63\",\r\n\t\t\t\t\t\"pink\": \"255,192,203\",\r\n\t\t\t\t\t\"plum\": \"221,160,221\",\r\n\t\t\t\t\t\"powderblue\": \"176,224,230\",\r\n\t\t\t\t\t\"purple\": \"128,0,128\",\r\n\t\t\t\t\t\"red\": \"255,0,0\",\r\n\t\t\t\t\t\"rosybrown\": \"188,143,143\",\r\n\t\t\t\t\t\"royalblue\": \"65,105,225\",\r\n\t\t\t\t\t\"saddlebrown\": \"139,69,19\",\r\n\t\t\t\t\t\"salmon\": \"250,128,114\",\r\n\t\t\t\t\t\"sandybrown\": \"244,164,96\",\r\n\t\t\t\t\t\"seagreen\": \"46,139,87\",\r\n\t\t\t\t\t\"seashell\": \"255,245,238\",\r\n\t\t\t\t\t\"sienna\": \"160,82,45\",\r\n\t\t\t\t\t\"silver\": \"192,192,192\",\r\n\t\t\t\t\t\"skyblue\": \"135,206,235\",\r\n\t\t\t\t\t\"slateblue\": \"106,90,205\",\r\n\t\t\t\t\t\"slategray\": \"112,128,144\",\r\n\t\t\t\t\t\"snow\": \"255,250,250\",\r\n\t\t\t\t\t\"springgreen\": \"0,255,127\",\r\n\t\t\t\t\t\"steelblue\": \"70,130,180\",\r\n\t\t\t\t\t\"tan\": \"210,180,140\",\r\n\t\t\t\t\t\"teal\": \"0,128,128\",\r\n\t\t\t\t\t\"thistle\": \"216,191,216\",\r\n\t\t\t\t\t\"tomato\": \"255,99,71\",\r\n\t\t\t\t\t\"turquoise\": \"64,224,208\",\r\n\t\t\t\t\t\"violet\": \"238,130,238\",\r\n\t\t\t\t\t\"wheat\": \"245,222,179\",\r\n\t\t\t\t\t\"whitesmoke\": \"245,245,245\",\r\n\t\t\t\t\t\"white\": \"255,255,255\",\r\n\t\t\t\t\t\"yellowgreen\": \"154,205,50\",\r\n\t\t\t\t\t\"yellow\": \"255,255,0\"\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/************\r\n\t\t\t Hooks\r\n\t\t\t ************/\r\n\r\n\t\t\t/* Hooks allow a subproperty (e.g. \"boxShadowBlur\") of a compound-value CSS property\r\n\t\t\t (e.g. \"boxShadow: X Y Blur Spread Color\") to be animated as if it were a discrete property. */\r\n\t\t\t/* Note: Beyond enabling fine-grained property animation, hooking is necessary since Velocity only\r\n\t\t\t tweens properties with single numeric values; unlike CSS transitions, Velocity does not interpolate compound-values. */\r\n\t\t\tHooks: {\r\n\t\t\t\t/********************\r\n\t\t\t\t Registration\r\n\t\t\t\t ********************/\r\n\r\n\t\t\t\t/* Templates are a concise way of indicating which subproperties must be individually registered for each compound-value CSS property. */\r\n\t\t\t\t/* Each template consists of the compound-value's base name, its constituent subproperty names, and those subproperties' default values. */\r\n\t\t\t\ttemplates: {\r\n\t\t\t\t\t\"textShadow\": [\"Color X Y Blur\", \"black 0px 0px 0px\"],\r\n\t\t\t\t\t\"boxShadow\": [\"Color X Y Blur Spread\", \"black 0px 0px 0px 0px\"],\r\n\t\t\t\t\t\"clip\": [\"Top Right Bottom Left\", \"0px 0px 0px 0px\"],\r\n\t\t\t\t\t\"backgroundPosition\": [\"X Y\", \"0% 0%\"],\r\n\t\t\t\t\t\"transformOrigin\": [\"X Y Z\", \"50% 50% 0px\"],\r\n\t\t\t\t\t\"perspectiveOrigin\": [\"X Y\", \"50% 50%\"]\r\n\t\t\t\t},\r\n\t\t\t\t/* A \"registered\" hook is one that has been converted from its template form into a live,\r\n\t\t\t\t tweenable property. It contains data to associate it with its root property. */\r\n\t\t\t\tregistered: {\r\n\t\t\t\t\t/* Note: A registered hook looks like this ==> textShadowBlur: [ \"textShadow\", 3 ],\r\n\t\t\t\t\t which consists of the subproperty's name, the associated root property's name,\r\n\t\t\t\t\t and the subproperty's position in the root's value. */\r\n\t\t\t\t},\r\n\t\t\t\t/* Convert the templates into individual hooks then append them to the registered object above. */\r\n\t\t\t\tregister: function() {\r\n\t\t\t\t\t/* Color hooks registration: Colors are defaulted to white -- as opposed to black -- since colors that are\r\n\t\t\t\t\t currently set to \"transparent\" default to their respective template below when color-animated,\r\n\t\t\t\t\t and white is typically a closer match to transparent than black is. An exception is made for text (\"color\"),\r\n\t\t\t\t\t which is almost always set closer to black than white. */\r\n\t\t\t\t\tfor (var i = 0; i < CSS.Lists.colors.length; i++) {\r\n\t\t\t\t\t\tvar rgbComponents = (CSS.Lists.colors[i] === \"color\") ? \"0 0 0 1\" : \"255 255 255 1\";\r\n\t\t\t\t\t\tCSS.Hooks.templates[CSS.Lists.colors[i]] = [\"Red Green Blue Alpha\", rgbComponents];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar rootProperty,\r\n\t\t\t\t\t\t\thookTemplate,\r\n\t\t\t\t\t\t\thookNames;\r\n\r\n\t\t\t\t\t/* In IE, color values inside compound-value properties are positioned at the end the value instead of at the beginning.\r\n\t\t\t\t\t Thus, we re-arrange the templates accordingly. */\r\n\t\t\t\t\tif (IE) {\r\n\t\t\t\t\t\tfor (rootProperty in CSS.Hooks.templates) {\r\n\t\t\t\t\t\t\tif (!CSS.Hooks.templates.hasOwnProperty(rootProperty)) {\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\thookTemplate = CSS.Hooks.templates[rootProperty];\r\n\t\t\t\t\t\t\thookNames = hookTemplate[0].split(\" \");\r\n\r\n\t\t\t\t\t\t\tvar defaultValues = hookTemplate[1].match(CSS.RegEx.valueSplit);\r\n\r\n\t\t\t\t\t\t\tif (hookNames[0] === \"Color\") {\r\n\t\t\t\t\t\t\t\t/* Reposition both the hook's name and its default value to the end of their respective strings. */\r\n\t\t\t\t\t\t\t\thookNames.push(hookNames.shift());\r\n\t\t\t\t\t\t\t\tdefaultValues.push(defaultValues.shift());\r\n\r\n\t\t\t\t\t\t\t\t/* Replace the existing template for the hook's root property. */\r\n\t\t\t\t\t\t\t\tCSS.Hooks.templates[rootProperty] = [hookNames.join(\" \"), defaultValues.join(\" \")];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Hook registration. */\r\n\t\t\t\t\tfor (rootProperty in CSS.Hooks.templates) {\r\n\t\t\t\t\t\tif (!CSS.Hooks.templates.hasOwnProperty(rootProperty)) {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\thookTemplate = CSS.Hooks.templates[rootProperty];\r\n\t\t\t\t\t\thookNames = hookTemplate[0].split(\" \");\r\n\r\n\t\t\t\t\t\tfor (var j in hookNames) {\r\n\t\t\t\t\t\t\tif (!hookNames.hasOwnProperty(j)) {\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvar fullHookName = rootProperty + hookNames[j],\r\n\t\t\t\t\t\t\t\t\thookPosition = j;\r\n\r\n\t\t\t\t\t\t\t/* For each hook, register its full name (e.g. textShadowBlur) with its root property (e.g. textShadow)\r\n\t\t\t\t\t\t\t and the hook's position in its template's default value string. */\r\n\t\t\t\t\t\t\tCSS.Hooks.registered[fullHookName] = [rootProperty, hookPosition];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t/*****************************\r\n\t\t\t\t Injection and Extraction\r\n\t\t\t\t *****************************/\r\n\r\n\t\t\t\t/* Look up the root property associated with the hook (e.g. return \"textShadow\" for \"textShadowBlur\"). */\r\n\t\t\t\t/* Since a hook cannot be set directly (the browser won't recognize it), style updating for hooks is routed through the hook's root property. */\r\n\t\t\t\tgetRoot: function(property) {\r\n\t\t\t\t\tvar hookData = CSS.Hooks.registered[property];\r\n\r\n\t\t\t\t\tif (hookData) {\r\n\t\t\t\t\t\treturn hookData[0];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* If there was no hook match, return the property name untouched. */\r\n\t\t\t\t\t\treturn property;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tgetUnit: function(str, start) {\r\n\t\t\t\t\tvar unit = (str.substr(start || 0, 5).match(/^[a-z%]+/) || [])[0] || \"\";\r\n\r\n\t\t\t\t\tif (unit && _inArray(CSS.Lists.units, unit)) {\r\n\t\t\t\t\t\treturn unit;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn \"\";\r\n\t\t\t\t},\r\n\t\t\t\tfixColors: function(str) {\r\n\t\t\t\t\treturn str.replace(/(rgba?\\(\\s*)?(\\b[a-z]+\\b)/g, function($0, $1, $2) {\r\n\t\t\t\t\t\tif (CSS.Lists.colorNames.hasOwnProperty($2)) {\r\n\t\t\t\t\t\t\treturn ($1 ? $1 : \"rgba(\") + CSS.Lists.colorNames[$2] + ($1 ? \"\" : \",1)\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn $1 + $2;\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\t/* Convert any rootPropertyValue, null or otherwise, into a space-delimited list of hook values so that\r\n\t\t\t\t the targeted hook can be injected or extracted at its standard position. */\r\n\t\t\t\tcleanRootPropertyValue: function(rootProperty, rootPropertyValue) {\r\n\t\t\t\t\t/* If the rootPropertyValue is wrapped with \"rgb()\", \"clip()\", etc., remove the wrapping to normalize the value before manipulation. */\r\n\t\t\t\t\tif (CSS.RegEx.valueUnwrap.test(rootPropertyValue)) {\r\n\t\t\t\t\t\trootPropertyValue = rootPropertyValue.match(CSS.RegEx.valueUnwrap)[1];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* If rootPropertyValue is a CSS null-value (from which there's inherently no hook value to extract),\r\n\t\t\t\t\t default to the root's default value as defined in CSS.Hooks.templates. */\r\n\t\t\t\t\t/* Note: CSS null-values include \"none\", \"auto\", and \"transparent\". They must be converted into their\r\n\t\t\t\t\t zero-values (e.g. textShadow: \"none\" ==> textShadow: \"0px 0px 0px black\") for hook manipulation to proceed. */\r\n\t\t\t\t\tif (CSS.Values.isCSSNullValue(rootPropertyValue)) {\r\n\t\t\t\t\t\trootPropertyValue = CSS.Hooks.templates[rootProperty][1];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn rootPropertyValue;\r\n\t\t\t\t},\r\n\t\t\t\t/* Extracted the hook's value from its root property's value. This is used to get the starting value of an animating hook. */\r\n\t\t\t\textractValue: function(fullHookName, rootPropertyValue) {\r\n\t\t\t\t\tvar hookData = CSS.Hooks.registered[fullHookName];\r\n\r\n\t\t\t\t\tif (hookData) {\r\n\t\t\t\t\t\tvar hookRoot = hookData[0],\r\n\t\t\t\t\t\t\t\thookPosition = hookData[1];\r\n\r\n\t\t\t\t\t\trootPropertyValue = CSS.Hooks.cleanRootPropertyValue(hookRoot, rootPropertyValue);\r\n\r\n\t\t\t\t\t\t/* Split rootPropertyValue into its constituent hook values then grab the desired hook at its standard position. */\r\n\t\t\t\t\t\treturn rootPropertyValue.toString().match(CSS.RegEx.valueSplit)[hookPosition];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* If the provided fullHookName isn't a registered hook, return the rootPropertyValue that was passed in. */\r\n\t\t\t\t\t\treturn rootPropertyValue;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t/* Inject the hook's value into its root property's value. This is used to piece back together the root property\r\n\t\t\t\t once Velocity has updated one of its individually hooked values through tweening. */\r\n\t\t\t\tinjectValue: function(fullHookName, hookValue, rootPropertyValue) {\r\n\t\t\t\t\tvar hookData = CSS.Hooks.registered[fullHookName];\r\n\r\n\t\t\t\t\tif (hookData) {\r\n\t\t\t\t\t\tvar hookRoot = hookData[0],\r\n\t\t\t\t\t\t\t\thookPosition = hookData[1],\r\n\t\t\t\t\t\t\t\trootPropertyValueParts,\r\n\t\t\t\t\t\t\t\trootPropertyValueUpdated;\r\n\r\n\t\t\t\t\t\trootPropertyValue = CSS.Hooks.cleanRootPropertyValue(hookRoot, rootPropertyValue);\r\n\r\n\t\t\t\t\t\t/* Split rootPropertyValue into its individual hook values, replace the targeted value with hookValue,\r\n\t\t\t\t\t\t then reconstruct the rootPropertyValue string. */\r\n\t\t\t\t\t\trootPropertyValueParts = rootPropertyValue.toString().match(CSS.RegEx.valueSplit);\r\n\t\t\t\t\t\trootPropertyValueParts[hookPosition] = hookValue;\r\n\t\t\t\t\t\trootPropertyValueUpdated = rootPropertyValueParts.join(\" \");\r\n\r\n\t\t\t\t\t\treturn rootPropertyValueUpdated;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* If the provided fullHookName isn't a registered hook, return the rootPropertyValue that was passed in. */\r\n\t\t\t\t\t\treturn rootPropertyValue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/*******************\r\n\t\t\t Normalizations\r\n\t\t\t *******************/\r\n\r\n\t\t\t/* Normalizations standardize CSS property manipulation by pollyfilling browser-specific implementations (e.g. opacity)\r\n\t\t\t and reformatting special properties (e.g. clip, rgba) to look like standard ones. */\r\n\t\t\tNormalizations: {\r\n\t\t\t\t/* Normalizations are passed a normalization target (either the property's name, its extracted value, or its injected value),\r\n\t\t\t\t the targeted element (which may need to be queried), and the targeted property value. */\r\n\t\t\t\tregistered: {\r\n\t\t\t\t\tclip: function(type, element, propertyValue) {\r\n\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\treturn \"clip\";\r\n\t\t\t\t\t\t\t\t/* Clip needs to be unwrapped and stripped of its commas during extraction. */\r\n\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\tvar extracted;\r\n\r\n\t\t\t\t\t\t\t\t/* If Velocity also extracted this value, skip extraction. */\r\n\t\t\t\t\t\t\t\tif (CSS.RegEx.wrappedValueAlreadyExtracted.test(propertyValue)) {\r\n\t\t\t\t\t\t\t\t\textracted = propertyValue;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t/* Remove the \"rect()\" wrapper. */\r\n\t\t\t\t\t\t\t\t\textracted = propertyValue.toString().match(CSS.RegEx.valueUnwrap);\r\n\r\n\t\t\t\t\t\t\t\t\t/* Strip off commas. */\r\n\t\t\t\t\t\t\t\t\textracted = extracted ? extracted[1].replace(/,(\\s+)?/g, \" \") : propertyValue;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn extracted;\r\n\t\t\t\t\t\t\t\t/* Clip needs to be re-wrapped during injection. */\r\n\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\treturn \"rect(\" + propertyValue + \")\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tblur: function(type, element, propertyValue) {\r\n\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\treturn Velocity.State.isFirefox ? \"filter\" : \"-webkit-filter\";\r\n\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\tvar extracted = parseFloat(propertyValue);\r\n\r\n\t\t\t\t\t\t\t\t/* If extracted is NaN, meaning the value isn't already extracted. */\r\n\t\t\t\t\t\t\t\tif (!(extracted || extracted === 0)) {\r\n\t\t\t\t\t\t\t\t\tvar blurComponent = propertyValue.toString().match(/blur\\(([0-9]+[A-z]+)\\)/i);\r\n\r\n\t\t\t\t\t\t\t\t\t/* If the filter string had a blur component, return just the blur value and unit type. */\r\n\t\t\t\t\t\t\t\t\tif (blurComponent) {\r\n\t\t\t\t\t\t\t\t\t\textracted = blurComponent[1];\r\n\t\t\t\t\t\t\t\t\t\t/* If the component doesn't exist, default blur to 0. */\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\textracted = 0;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn extracted;\r\n\t\t\t\t\t\t\t\t/* Blur needs to be re-wrapped during injection. */\r\n\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\t/* For the blur effect to be fully de-applied, it needs to be set to \"none\" instead of 0. */\r\n\t\t\t\t\t\t\t\tif (!parseFloat(propertyValue)) {\r\n\t\t\t\t\t\t\t\t\treturn \"none\";\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\treturn \"blur(\" + propertyValue + \")\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\t/* <=IE8 do not support the standard opacity property. They use filter:alpha(opacity=INT) instead. */\r\n\t\t\t\t\topacity: function(type, element, propertyValue) {\r\n\t\t\t\t\t\tif (IE <= 8) {\r\n\t\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\t\treturn \"filter\";\r\n\t\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\t\t/* <=IE8 return a \"filter\" value of \"alpha(opacity=\\d{1,3})\".\r\n\t\t\t\t\t\t\t\t\t Extract the value and convert it to a decimal value to match the standard CSS opacity property's formatting. */\r\n\t\t\t\t\t\t\t\t\tvar extracted = propertyValue.toString().match(/alpha\\(opacity=(.*)\\)/i);\r\n\r\n\t\t\t\t\t\t\t\t\tif (extracted) {\r\n\t\t\t\t\t\t\t\t\t\t/* Convert to decimal value. */\r\n\t\t\t\t\t\t\t\t\t\tpropertyValue = extracted[1] / 100;\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t/* When extracting opacity, default to 1 since a null value means opacity hasn't been set. */\r\n\t\t\t\t\t\t\t\t\t\tpropertyValue = 1;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\treturn propertyValue;\r\n\t\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\t\t/* Opacified elements are required to have their zoom property set to a non-zero value. */\r\n\t\t\t\t\t\t\t\t\telement.style.zoom = 1;\r\n\r\n\t\t\t\t\t\t\t\t\t/* Setting the filter property on elements with certain font property combinations can result in a\r\n\t\t\t\t\t\t\t\t\t highly unappealing ultra-bolding effect. There's no way to remedy this throughout a tween, but dropping the\r\n\t\t\t\t\t\t\t\t\t value altogether (when opacity hits 1) at leasts ensures that the glitch is gone post-tweening. */\r\n\t\t\t\t\t\t\t\t\tif (parseFloat(propertyValue) >= 1) {\r\n\t\t\t\t\t\t\t\t\t\treturn \"\";\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t/* As per the filter property's spec, convert the decimal value to a whole number and wrap the value. */\r\n\t\t\t\t\t\t\t\t\t\treturn \"alpha(opacity=\" + parseInt(parseFloat(propertyValue) * 100, 10) + \")\";\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t/* With all other browsers, normalization is not required; return the same values that were passed in. */\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\t\treturn \"opacity\";\r\n\t\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\t\treturn propertyValue;\r\n\t\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\t\treturn propertyValue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t/*****************************\r\n\t\t\t\t Batched Registrations\r\n\t\t\t\t *****************************/\r\n\r\n\t\t\t\t/* Note: Batched normalizations extend the CSS.Normalizations.registered object. */\r\n\t\t\t\tregister: function() {\r\n\r\n\t\t\t\t\t/*****************\r\n\t\t\t\t\t Transforms\r\n\t\t\t\t\t *****************/\r\n\r\n\t\t\t\t\t/* Transforms are the subproperties contained by the CSS \"transform\" property. Transforms must undergo normalization\r\n\t\t\t\t\t so that they can be referenced in a properties map by their individual names. */\r\n\t\t\t\t\t/* Note: When transforms are \"set\", they are actually assigned to a per-element transformCache. When all transform\r\n\t\t\t\t\t setting is complete complete, CSS.flushTransformCache() must be manually called to flush the values to the DOM.\r\n\t\t\t\t\t Transform setting is batched in this way to improve performance: the transform style only needs to be updated\r\n\t\t\t\t\t once when multiple transform subproperties are being animated simultaneously. */\r\n\t\t\t\t\t/* Note: IE9 and Android Gingerbread have support for 2D -- but not 3D -- transforms. Since animating unsupported\r\n\t\t\t\t\t transform properties results in the browser ignoring the *entire* transform string, we prevent these 3D values\r\n\t\t\t\t\t from being normalized for these browsers so that tweening skips these properties altogether\r\n\t\t\t\t\t (since it will ignore them as being unsupported by the browser.) */\r\n\t\t\t\t\tif ((!IE || IE > 9) && !Velocity.State.isGingerbread) {\r\n\t\t\t\t\t\t/* Note: Since the standalone CSS \"perspective\" property and the CSS transform \"perspective\" subproperty\r\n\t\t\t\t\t\t share the same name, the latter is given a unique token within Velocity: \"transformPerspective\". */\r\n\t\t\t\t\t\tCSS.Lists.transformsBase = CSS.Lists.transformsBase.concat(CSS.Lists.transforms3D);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfor (var i = 0; i < CSS.Lists.transformsBase.length; i++) {\r\n\t\t\t\t\t\t/* Wrap the dynamically generated normalization function in a new scope so that transformName's value is\r\n\t\t\t\t\t\t paired with its respective function. (Otherwise, all functions would take the final for loop's transformName.) */\r\n\t\t\t\t\t\t(function() {\r\n\t\t\t\t\t\t\tvar transformName = CSS.Lists.transformsBase[i];\r\n\r\n\t\t\t\t\t\t\tCSS.Normalizations.registered[transformName] = function(type, element, propertyValue) {\r\n\t\t\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\t\t\t/* The normalized property name is the parent \"transform\" property -- the property that is actually set in CSS. */\r\n\t\t\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\t\t\treturn \"transform\";\r\n\t\t\t\t\t\t\t\t\t\t/* Transform values are cached onto a per-element transformCache object. */\r\n\t\t\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\t\t\t/* If this transform has yet to be assigned a value, return its null value. */\r\n\t\t\t\t\t\t\t\t\t\tif (Data(element) === undefined || Data(element).transformCache[transformName] === undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t/* Scale CSS.Lists.transformsBase default to 1 whereas all other transform properties default to 0. */\r\n\t\t\t\t\t\t\t\t\t\t\treturn /^scale/i.test(transformName) ? 1 : 0;\r\n\t\t\t\t\t\t\t\t\t\t\t/* When transform values are set, they are wrapped in parentheses as per the CSS spec.\r\n\t\t\t\t\t\t\t\t\t\t\t Thus, when extracting their values (for tween calculations), we strip off the parentheses. */\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn Data(element).transformCache[transformName].replace(/[()]/g, \"\");\r\n\t\t\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\t\t\tvar invalid = false;\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* If an individual transform property contains an unsupported unit type, the browser ignores the *entire* transform property.\r\n\t\t\t\t\t\t\t\t\t\t Thus, protect users from themselves by skipping setting for transform values supplied with invalid unit types. */\r\n\t\t\t\t\t\t\t\t\t\t/* Switch on the base transform type; ignore the axis by removing the last letter from the transform's name. */\r\n\t\t\t\t\t\t\t\t\t\tswitch (transformName.substr(0, transformName.length - 1)) {\r\n\t\t\t\t\t\t\t\t\t\t\t/* Whitelist unit types for each transform. */\r\n\t\t\t\t\t\t\t\t\t\t\tcase \"translate\":\r\n\t\t\t\t\t\t\t\t\t\t\t\tinvalid = !/(%|px|em|rem|vw|vh|\\d)$/i.test(propertyValue);\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\t/* Since an axis-free \"scale\" property is supported as well, a little hack is used here to detect it by chopping off its last letter. */\r\n\t\t\t\t\t\t\t\t\t\t\tcase \"scal\":\r\n\t\t\t\t\t\t\t\t\t\t\tcase \"scale\":\r\n\t\t\t\t\t\t\t\t\t\t\t\t/* Chrome on Android has a bug in which scaled elements blur if their initial scale\r\n\t\t\t\t\t\t\t\t\t\t\t\t value is below 1 (which can happen with forcefeeding). Thus, we detect a yet-unset scale property\r\n\t\t\t\t\t\t\t\t\t\t\t\t and ensure that its first value is always 1. More info: http://stackoverflow.com/questions/10417890/css3-animations-with-transform-causes-blurred-elements-on-webkit/10417962#10417962 */\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (Velocity.State.isAndroid && Data(element).transformCache[transformName] === undefined && propertyValue < 1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpropertyValue = 1;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tinvalid = !/(\\d)$/i.test(propertyValue);\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\tcase \"skew\":\r\n\t\t\t\t\t\t\t\t\t\t\t\tinvalid = !/(deg|\\d)$/i.test(propertyValue);\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\tcase \"rotate\":\r\n\t\t\t\t\t\t\t\t\t\t\t\tinvalid = !/(deg|\\d)$/i.test(propertyValue);\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (!invalid) {\r\n\t\t\t\t\t\t\t\t\t\t\t/* As per the CSS spec, wrap the value in parentheses. */\r\n\t\t\t\t\t\t\t\t\t\t\tData(element).transformCache[transformName] = \"(\" + propertyValue + \")\";\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* Although the value is set on the transformCache object, return the newly-updated value for the calling code to process as normal. */\r\n\t\t\t\t\t\t\t\t\t\treturn Data(element).transformCache[transformName];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t})();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*************\r\n\t\t\t\t\t Colors\r\n\t\t\t\t\t *************/\r\n\r\n\t\t\t\t\t/* Since Velocity only animates a single numeric value per property, color animation is achieved by hooking the individual RGBA components of CSS color properties.\r\n\t\t\t\t\t Accordingly, color values must be normalized (e.g. \"#ff0000\", \"red\", and \"rgb(255, 0, 0)\" ==> \"255 0 0 1\") so that their components can be injected/extracted by CSS.Hooks logic. */\r\n\t\t\t\t\tfor (var j = 0; j < CSS.Lists.colors.length; j++) {\r\n\t\t\t\t\t\t/* Wrap the dynamically generated normalization function in a new scope so that colorName's value is paired with its respective function.\r\n\t\t\t\t\t\t (Otherwise, all functions would take the final for loop's colorName.) */\r\n\t\t\t\t\t\t(function() {\r\n\t\t\t\t\t\t\tvar colorName = CSS.Lists.colors[j];\r\n\r\n\t\t\t\t\t\t\t/* Note: In IE<=8, which support rgb but not rgba, color properties are reverted to rgb by stripping off the alpha component. */\r\n\t\t\t\t\t\t\tCSS.Normalizations.registered[colorName] = function(type, element, propertyValue) {\r\n\t\t\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\t\t\treturn colorName;\r\n\t\t\t\t\t\t\t\t\t\t/* Convert all color values into the rgb format. (Old IE can return hex values and color names instead of rgb/rgba.) */\r\n\t\t\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\t\t\tvar extracted;\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* If the color is already in its hookable form (e.g. \"255 255 255 1\") due to having been previously extracted, skip extraction. */\r\n\t\t\t\t\t\t\t\t\t\tif (CSS.RegEx.wrappedValueAlreadyExtracted.test(propertyValue)) {\r\n\t\t\t\t\t\t\t\t\t\t\textracted = propertyValue;\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tvar converted,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolorNames = {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tblack: \"rgb(0, 0, 0)\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tblue: \"rgb(0, 0, 255)\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgray: \"rgb(128, 128, 128)\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgreen: \"rgb(0, 128, 0)\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tred: \"rgb(255, 0, 0)\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twhite: \"rgb(255, 255, 255)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t/* Convert color names to rgb. */\r\n\t\t\t\t\t\t\t\t\t\t\tif (/^[A-z]+$/i.test(propertyValue)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (colorNames[propertyValue] !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tconverted = colorNames[propertyValue];\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/* If an unmatched color name is provided, default to black. */\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tconverted = colorNames.black;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/* Convert hex values to rgb. */\r\n\t\t\t\t\t\t\t\t\t\t\t} else if (CSS.RegEx.isHex.test(propertyValue)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tconverted = \"rgb(\" + CSS.Values.hexToRgb(propertyValue).join(\" \") + \")\";\r\n\t\t\t\t\t\t\t\t\t\t\t\t/* If the provided color doesn't match any of the accepted color formats, default to black. */\r\n\t\t\t\t\t\t\t\t\t\t\t} else if (!(/^rgba?\\(/i.test(propertyValue))) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tconverted = colorNames.black;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t/* Remove the surrounding \"rgb/rgba()\" string then replace commas with spaces and strip\r\n\t\t\t\t\t\t\t\t\t\t\t repeated spaces (in case the value included spaces to begin with). */\r\n\t\t\t\t\t\t\t\t\t\t\textracted = (converted || propertyValue).toString().match(CSS.RegEx.valueUnwrap)[1].replace(/,(\\s+)?/g, \" \");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* So long as this isn't <=IE8, add a fourth (alpha) component if it's missing and default it to 1 (visible). */\r\n\t\t\t\t\t\t\t\t\t\tif ((!IE || IE > 8) && extracted.split(\" \").length === 3) {\r\n\t\t\t\t\t\t\t\t\t\t\textracted += \" 1\";\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn extracted;\r\n\t\t\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\t\t\t/* If we have a pattern then it might already have the right values */\r\n\t\t\t\t\t\t\t\t\t\tif (/^rgb/.test(propertyValue)) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn propertyValue;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* If this is IE<=8 and an alpha component exists, strip it off. */\r\n\t\t\t\t\t\t\t\t\t\tif (IE <= 8) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (propertyValue.split(\" \").length === 4) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tpropertyValue = propertyValue.split(/\\s+/).slice(0, 3).join(\" \");\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t/* Otherwise, add a fourth (alpha) component if it's missing and default it to 1 (visible). */\r\n\t\t\t\t\t\t\t\t\t\t} else if (propertyValue.split(\" \").length === 3) {\r\n\t\t\t\t\t\t\t\t\t\t\tpropertyValue += \" 1\";\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* Re-insert the browser-appropriate wrapper(\"rgb/rgba()\"), insert commas, and strip off decimal units\r\n\t\t\t\t\t\t\t\t\t\t on all values but the fourth (R, G, and B only accept whole numbers). */\r\n\t\t\t\t\t\t\t\t\t\treturn (IE <= 8 ? \"rgb\" : \"rgba\") + \"(\" + propertyValue.replace(/\\s+/g, \",\").replace(/\\.(\\d)+(?=,)/g, \"\") + \")\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t})();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**************\r\n\t\t\t\t\t Dimensions\r\n\t\t\t\t\t **************/\r\n\t\t\t\t\tfunction augmentDimension(name, element, wantInner) {\r\n\t\t\t\t\t\tvar isBorderBox = CSS.getPropertyValue(element, \"boxSizing\").toString().toLowerCase() === \"border-box\";\r\n\r\n\t\t\t\t\t\tif (isBorderBox === (wantInner || false)) {\r\n\t\t\t\t\t\t\t/* in box-sizing mode, the CSS width / height accessors already give the outerWidth / outerHeight. */\r\n\t\t\t\t\t\t\tvar i,\r\n\t\t\t\t\t\t\t\t\tvalue,\r\n\t\t\t\t\t\t\t\t\taugment = 0,\r\n\t\t\t\t\t\t\t\t\tsides = name === \"width\" ? [\"Left\", \"Right\"] : [\"Top\", \"Bottom\"],\r\n\t\t\t\t\t\t\t\t\tfields = [\"padding\" + sides[0], \"padding\" + sides[1], \"border\" + sides[0] + \"Width\", \"border\" + sides[1] + \"Width\"];\r\n\r\n\t\t\t\t\t\t\tfor (i = 0; i < fields.length; i++) {\r\n\t\t\t\t\t\t\t\tvalue = parseFloat(CSS.getPropertyValue(element, fields[i]));\r\n\t\t\t\t\t\t\t\tif (!isNaN(value)) {\r\n\t\t\t\t\t\t\t\t\taugment += value;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn wantInner ? -augment : augment;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfunction getDimension(name, wantInner) {\r\n\t\t\t\t\t\treturn function(type, element, propertyValue) {\r\n\t\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\t\treturn name;\r\n\t\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\t\treturn parseFloat(propertyValue) + augmentDimension(name, element, wantInner);\r\n\t\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\t\treturn (parseFloat(propertyValue) - augmentDimension(name, element, wantInner)) + \"px\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tCSS.Normalizations.registered.innerWidth = getDimension(\"width\", true);\r\n\t\t\t\t\tCSS.Normalizations.registered.innerHeight = getDimension(\"height\", true);\r\n\t\t\t\t\tCSS.Normalizations.registered.outerWidth = getDimension(\"width\");\r\n\t\t\t\t\tCSS.Normalizations.registered.outerHeight = getDimension(\"height\");\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/************************\r\n\t\t\t CSS Property Names\r\n\t\t\t ************************/\r\n\r\n\t\t\tNames: {\r\n\t\t\t\t/* Camelcase a property name into its JavaScript notation (e.g. \"background-color\" ==> \"backgroundColor\").\r\n\t\t\t\t Camelcasing is used to normalize property names between and across calls. */\r\n\t\t\t\tcamelCase: function(property) {\r\n\t\t\t\t\treturn property.replace(/-(\\w)/g, function(match, subMatch) {\r\n\t\t\t\t\t\treturn subMatch.toUpperCase();\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\t/* For SVG elements, some properties (namely, dimensional ones) are GET/SET via the element's HTML attributes (instead of via CSS styles). */\r\n\t\t\t\tSVGAttribute: function(property) {\r\n\t\t\t\t\tvar SVGAttributes = \"width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2\";\r\n\r\n\t\t\t\t\t/* Certain browsers require an SVG transform to be applied as an attribute. (Otherwise, application via CSS is preferable due to 3D support.) */\r\n\t\t\t\t\tif (IE || (Velocity.State.isAndroid && !Velocity.State.isChrome)) {\r\n\t\t\t\t\t\tSVGAttributes += \"|transform\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn new RegExp(\"^(\" + SVGAttributes + \")$\", \"i\").test(property);\r\n\t\t\t\t},\r\n\t\t\t\t/* Determine whether a property should be set with a vendor prefix. */\r\n\t\t\t\t/* If a prefixed version of the property exists, return it. Otherwise, return the original property name.\r\n\t\t\t\t If the property is not at all supported by the browser, return a false flag. */\r\n\t\t\t\tprefixCheck: function(property) {\r\n\t\t\t\t\t/* If this property has already been checked, return the cached value. */\r\n\t\t\t\t\tif (Velocity.State.prefixMatches[property]) {\r\n\t\t\t\t\t\treturn [Velocity.State.prefixMatches[property], true];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar vendors = [\"\", \"Webkit\", \"Moz\", \"ms\", \"O\"];\r\n\r\n\t\t\t\t\t\tfor (var i = 0, vendorsLength = vendors.length; i < vendorsLength; i++) {\r\n\t\t\t\t\t\t\tvar propertyPrefixed;\r\n\r\n\t\t\t\t\t\t\tif (i === 0) {\r\n\t\t\t\t\t\t\t\tpropertyPrefixed = property;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t/* Capitalize the first letter of the property to conform to JavaScript vendor prefix notation (e.g. webkitFilter). */\r\n\t\t\t\t\t\t\t\tpropertyPrefixed = vendors[i] + property.replace(/^\\w/, function(match) {\r\n\t\t\t\t\t\t\t\t\treturn match.toUpperCase();\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Check if the browser supports this property as prefixed. */\r\n\t\t\t\t\t\t\tif (Type.isString(Velocity.State.prefixElement.style[propertyPrefixed])) {\r\n\t\t\t\t\t\t\t\t/* Cache the match. */\r\n\t\t\t\t\t\t\t\tVelocity.State.prefixMatches[property] = propertyPrefixed;\r\n\r\n\t\t\t\t\t\t\t\treturn [propertyPrefixed, true];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* If the browser doesn't support this property in any form, include a false flag so that the caller can decide how to proceed. */\r\n\t\t\t\t\t\treturn [property, false];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/************************\r\n\t\t\t CSS Property Values\r\n\t\t\t ************************/\r\n\r\n\t\t\tValues: {\r\n\t\t\t\t/* Hex to RGB conversion. Copyright Tim Down: http://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb */\r\n\t\t\t\thexToRgb: function(hex) {\r\n\t\t\t\t\tvar shortformRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i,\r\n\t\t\t\t\t\t\tlongformRegex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i,\r\n\t\t\t\t\t\t\trgbParts;\r\n\r\n\t\t\t\t\thex = hex.replace(shortformRegex, function(m, r, g, b) {\r\n\t\t\t\t\t\treturn r + r + g + g + b + b;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\trgbParts = longformRegex.exec(hex);\r\n\r\n\t\t\t\t\treturn rgbParts ? [parseInt(rgbParts[1], 16), parseInt(rgbParts[2], 16), parseInt(rgbParts[3], 16)] : [0, 0, 0];\r\n\t\t\t\t},\r\n\t\t\t\tisCSSNullValue: function(value) {\r\n\t\t\t\t\t/* The browser defaults CSS values that have not been set to either 0 or one of several possible null-value strings.\r\n\t\t\t\t\t Thus, we check for both falsiness and these special strings. */\r\n\t\t\t\t\t/* Null-value checking is performed to default the special strings to 0 (for the sake of tweening) or their hook\r\n\t\t\t\t\t templates as defined as CSS.Hooks (for the sake of hook injection/extraction). */\r\n\t\t\t\t\t/* Note: Chrome returns \"rgba(0, 0, 0, 0)\" for an undefined color whereas IE returns \"transparent\". */\r\n\t\t\t\t\treturn (!value || /^(none|auto|transparent|(rgba\\(0, ?0, ?0, ?0\\)))$/i.test(value));\r\n\t\t\t\t},\r\n\t\t\t\t/* Retrieve a property's default unit type. Used for assigning a unit type when one is not supplied by the user. */\r\n\t\t\t\tgetUnitType: function(property) {\r\n\t\t\t\t\tif (/^(rotate|skew)/i.test(property)) {\r\n\t\t\t\t\t\treturn \"deg\";\r\n\t\t\t\t\t} else if (/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(property)) {\r\n\t\t\t\t\t\t/* The above properties are unitless. */\r\n\t\t\t\t\t\treturn \"\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* Default to px for all other properties. */\r\n\t\t\t\t\t\treturn \"px\";\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t/* HTML elements default to an associated display type when they're not set to display:none. */\r\n\t\t\t\t/* Note: This function is used for correctly setting the non-\"none\" display value in certain Velocity redirects, such as fadeIn/Out. */\r\n\t\t\t\tgetDisplayType: function(element) {\r\n\t\t\t\t\tvar tagName = element && element.tagName.toString().toLowerCase();\r\n\r\n\t\t\t\t\tif (/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(tagName)) {\r\n\t\t\t\t\t\treturn \"inline\";\r\n\t\t\t\t\t} else if (/^(li)$/i.test(tagName)) {\r\n\t\t\t\t\t\treturn \"list-item\";\r\n\t\t\t\t\t} else if (/^(tr)$/i.test(tagName)) {\r\n\t\t\t\t\t\treturn \"table-row\";\r\n\t\t\t\t\t} else if (/^(table)$/i.test(tagName)) {\r\n\t\t\t\t\t\treturn \"table\";\r\n\t\t\t\t\t} else if (/^(tbody)$/i.test(tagName)) {\r\n\t\t\t\t\t\treturn \"table-row-group\";\r\n\t\t\t\t\t\t/* Default to \"block\" when no match is found. */\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn \"block\";\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t/* The class add/remove functions are used to temporarily apply a \"velocity-animating\" class to elements while they're animating. */\r\n\t\t\t\taddClass: function(element, className) {\r\n\t\t\t\t\tif (element) {\r\n\t\t\t\t\t\tif (element.classList) {\r\n\t\t\t\t\t\t\telement.classList.add(className);\r\n\t\t\t\t\t\t} else if (Type.isString(element.className)) {\r\n\t\t\t\t\t\t\t// Element.className is around 15% faster then set/getAttribute\r\n\t\t\t\t\t\t\telement.className += (element.className.length ? \" \" : \"\") + className;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// Work around for IE strict mode animating SVG - and anything else that doesn't behave correctly - the same way jQuery does it\r\n\t\t\t\t\t\t\tvar currentClass = element.getAttribute(IE <= 7 ? \"className\" : \"class\") || \"\";\r\n\r\n\t\t\t\t\t\t\telement.setAttribute(\"class\", currentClass + (currentClass ? \" \" : \"\") + className);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tremoveClass: function(element, className) {\r\n\t\t\t\t\tif (element) {\r\n\t\t\t\t\t\tif (element.classList) {\r\n\t\t\t\t\t\t\telement.classList.remove(className);\r\n\t\t\t\t\t\t} else if (Type.isString(element.className)) {\r\n\t\t\t\t\t\t\t// Element.className is around 15% faster then set/getAttribute\r\n\t\t\t\t\t\t\t// TODO: Need some jsperf tests on performance - can we get rid of the regex and maybe use split / array manipulation?\r\n\t\t\t\t\t\t\telement.className = element.className.toString().replace(new RegExp(\"(^|\\\\s)\" + className.split(\" \").join(\"|\") + \"(\\\\s|$)\", \"gi\"), \" \");\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// Work around for IE strict mode animating SVG - and anything else that doesn't behave correctly - the same way jQuery does it\r\n\t\t\t\t\t\t\tvar currentClass = element.getAttribute(IE <= 7 ? \"className\" : \"class\") || \"\";\r\n\r\n\t\t\t\t\t\t\telement.setAttribute(\"class\", currentClass.replace(new RegExp(\"(^|\\s)\" + className.split(\" \").join(\"|\") + \"(\\s|$)\", \"gi\"), \" \"));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/****************************\r\n\t\t\t Style Getting & Setting\r\n\t\t\t ****************************/\r\n\r\n\t\t\t/* The singular getPropertyValue, which routes the logic for all normalizations, hooks, and standard CSS properties. */\r\n\t\t\tgetPropertyValue: function(element, property, rootPropertyValue, forceStyleLookup) {\r\n\t\t\t\t/* Get an element's computed property value. */\r\n\t\t\t\t/* Note: Retrieving the value of a CSS property cannot simply be performed by checking an element's\r\n\t\t\t\t style attribute (which only reflects user-defined values). Instead, the browser must be queried for a property's\r\n\t\t\t\t *computed* value. You can read more about getComputedStyle here: https://developer.mozilla.org/en/docs/Web/API/window.getComputedStyle */\r\n\t\t\t\tfunction computePropertyValue(element, property) {\r\n\t\t\t\t\t/* When box-sizing isn't set to border-box, height and width style values are incorrectly computed when an\r\n\t\t\t\t\t element's scrollbars are visible (which expands the element's dimensions). Thus, we defer to the more accurate\r\n\t\t\t\t\t offsetHeight/Width property, which includes the total dimensions for interior, border, padding, and scrollbar.\r\n\t\t\t\t\t We subtract border and padding to get the sum of interior + scrollbar. */\r\n\t\t\t\t\tvar computedValue = 0;\r\n\r\n\t\t\t\t\t/* IE<=8 doesn't support window.getComputedStyle, thus we defer to jQuery, which has an extensive array\r\n\t\t\t\t\t of hacks to accurately retrieve IE8 property values. Re-implementing that logic here is not worth bloating the\r\n\t\t\t\t\t codebase for a dying browser. The performance repercussions of using jQuery here are minimal since\r\n\t\t\t\t\t Velocity is optimized to rarely (and sometimes never) query the DOM. Further, the $.css() codepath isn't that slow. */\r\n\t\t\t\t\tif (IE <= 8) {\r\n\t\t\t\t\t\tcomputedValue = $.css(element, property); /* GET */\r\n\t\t\t\t\t\t/* All other browsers support getComputedStyle. The returned live object reference is cached onto its\r\n\t\t\t\t\t\t associated element so that it does not need to be refetched upon every GET. */\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* Browsers do not return height and width values for elements that are set to display:\"none\". Thus, we temporarily\r\n\t\t\t\t\t\t toggle display to the element type's default value. */\r\n\t\t\t\t\t\tvar toggleDisplay = false;\r\n\r\n\t\t\t\t\t\tif (/^(width|height)$/.test(property) && CSS.getPropertyValue(element, \"display\") === 0) {\r\n\t\t\t\t\t\t\ttoggleDisplay = true;\r\n\t\t\t\t\t\t\tCSS.setPropertyValue(element, \"display\", CSS.Values.getDisplayType(element));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar revertDisplay = function() {\r\n\t\t\t\t\t\t\tif (toggleDisplay) {\r\n\t\t\t\t\t\t\t\tCSS.setPropertyValue(element, \"display\", \"none\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tif (!forceStyleLookup) {\r\n\t\t\t\t\t\t\tif (property === \"height\" && CSS.getPropertyValue(element, \"boxSizing\").toString().toLowerCase() !== \"border-box\") {\r\n\t\t\t\t\t\t\t\tvar contentBoxHeight = element.offsetHeight - (parseFloat(CSS.getPropertyValue(element, \"borderTopWidth\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"borderBottomWidth\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"paddingTop\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"paddingBottom\")) || 0);\r\n\t\t\t\t\t\t\t\trevertDisplay();\r\n\r\n\t\t\t\t\t\t\t\treturn contentBoxHeight;\r\n\t\t\t\t\t\t\t} else if (property === \"width\" && CSS.getPropertyValue(element, \"boxSizing\").toString().toLowerCase() !== \"border-box\") {\r\n\t\t\t\t\t\t\t\tvar contentBoxWidth = element.offsetWidth - (parseFloat(CSS.getPropertyValue(element, \"borderLeftWidth\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"borderRightWidth\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"paddingLeft\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"paddingRight\")) || 0);\r\n\t\t\t\t\t\t\t\trevertDisplay();\r\n\r\n\t\t\t\t\t\t\t\treturn contentBoxWidth;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar computedStyle;\r\n\r\n\t\t\t\t\t\t/* For elements that Velocity hasn't been called on directly (e.g. when Velocity queries the DOM on behalf\r\n\t\t\t\t\t\t of a parent of an element its animating), perform a direct getComputedStyle lookup since the object isn't cached. */\r\n\t\t\t\t\t\tif (Data(element) === undefined) {\r\n\t\t\t\t\t\t\tcomputedStyle = window.getComputedStyle(element, null); /* GET */\r\n\t\t\t\t\t\t\t/* If the computedStyle object has yet to be cached, do so now. */\r\n\t\t\t\t\t\t} else if (!Data(element).computedStyle) {\r\n\t\t\t\t\t\t\tcomputedStyle = Data(element).computedStyle = window.getComputedStyle(element, null); /* GET */\r\n\t\t\t\t\t\t\t/* If computedStyle is cached, use it. */\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcomputedStyle = Data(element).computedStyle;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* IE and Firefox do not return a value for the generic borderColor -- they only return individual values for each border side's color.\r\n\t\t\t\t\t\t Also, in all browsers, when border colors aren't all the same, a compound value is returned that Velocity isn't setup to parse.\r\n\t\t\t\t\t\t So, as a polyfill for querying individual border side colors, we just return the top border's color and animate all borders from that value. */\r\n\t\t\t\t\t\tif (property === \"borderColor\") {\r\n\t\t\t\t\t\t\tproperty = \"borderTopColor\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* IE9 has a bug in which the \"filter\" property must be accessed from computedStyle using the getPropertyValue method\r\n\t\t\t\t\t\t instead of a direct property lookup. The getPropertyValue method is slower than a direct lookup, which is why we avoid it by default. */\r\n\t\t\t\t\t\tif (IE === 9 && property === \"filter\") {\r\n\t\t\t\t\t\t\tcomputedValue = computedStyle.getPropertyValue(property); /* GET */\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcomputedValue = computedStyle[property];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Fall back to the property's style value (if defined) when computedValue returns nothing,\r\n\t\t\t\t\t\t which can happen when the element hasn't been painted. */\r\n\t\t\t\t\t\tif (computedValue === \"\" || computedValue === null) {\r\n\t\t\t\t\t\t\tcomputedValue = element.style[property];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\trevertDisplay();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* For top, right, bottom, and left (TRBL) values that are set to \"auto\" on elements of \"fixed\" or \"absolute\" position,\r\n\t\t\t\t\t defer to jQuery for converting \"auto\" to a numeric value. (For elements with a \"static\" or \"relative\" position, \"auto\" has the same\r\n\t\t\t\t\t effect as being set to 0, so no conversion is necessary.) */\r\n\t\t\t\t\t/* An example of why numeric conversion is necessary: When an element with \"position:absolute\" has an untouched \"left\"\r\n\t\t\t\t\t property, which reverts to \"auto\", left's value is 0 relative to its parent element, but is often non-zero relative\r\n\t\t\t\t\t to its *containing* (not parent) element, which is the nearest \"position:relative\" ancestor or the viewport (and always the viewport in the case of \"position:fixed\"). */\r\n\t\t\t\t\tif (computedValue === \"auto\" && /^(top|right|bottom|left)$/i.test(property)) {\r\n\t\t\t\t\t\tvar position = computePropertyValue(element, \"position\"); /* GET */\r\n\r\n\t\t\t\t\t\t/* For absolute positioning, jQuery's $.position() only returns values for top and left;\r\n\t\t\t\t\t\t right and bottom will have their \"auto\" value reverted to 0. */\r\n\t\t\t\t\t\t/* Note: A jQuery object must be created here since jQuery doesn't have a low-level alias for $.position().\r\n\t\t\t\t\t\t Not a big deal since we're currently in a GET batch anyway. */\r\n\t\t\t\t\t\tif (position === \"fixed\" || (position === \"absolute\" && /top|left/i.test(property))) {\r\n\t\t\t\t\t\t\t/* Note: jQuery strips the pixel unit from its returned values; we re-add it here to conform with computePropertyValue's behavior. */\r\n\t\t\t\t\t\t\tcomputedValue = $(element).position()[property] + \"px\"; /* GET */\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn computedValue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar propertyValue;\r\n\r\n\t\t\t\t/* If this is a hooked property (e.g. \"clipLeft\" instead of the root property of \"clip\"),\r\n\t\t\t\t extract the hook's value from a normalized rootPropertyValue using CSS.Hooks.extractValue(). */\r\n\t\t\t\tif (CSS.Hooks.registered[property]) {\r\n\t\t\t\t\tvar hook = property,\r\n\t\t\t\t\t\t\thookRoot = CSS.Hooks.getRoot(hook);\r\n\r\n\t\t\t\t\t/* If a cached rootPropertyValue wasn't passed in (which Velocity always attempts to do in order to avoid requerying the DOM),\r\n\t\t\t\t\t query the DOM for the root property's value. */\r\n\t\t\t\t\tif (rootPropertyValue === undefined) {\r\n\t\t\t\t\t\t/* Since the browser is now being directly queried, use the official post-prefixing property name for this lookup. */\r\n\t\t\t\t\t\trootPropertyValue = CSS.getPropertyValue(element, CSS.Names.prefixCheck(hookRoot)[0]); /* GET */\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* If this root has a normalization registered, peform the associated normalization extraction. */\r\n\t\t\t\t\tif (CSS.Normalizations.registered[hookRoot]) {\r\n\t\t\t\t\t\trootPropertyValue = CSS.Normalizations.registered[hookRoot](\"extract\", element, rootPropertyValue);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Extract the hook's value. */\r\n\t\t\t\t\tpropertyValue = CSS.Hooks.extractValue(hook, rootPropertyValue);\r\n\r\n\t\t\t\t\t/* If this is a normalized property (e.g. \"opacity\" becomes \"filter\" in <=IE8) or \"translateX\" becomes \"transform\"),\r\n\t\t\t\t\t normalize the property's name and value, and handle the special case of transforms. */\r\n\t\t\t\t\t/* Note: Normalizing a property is mutually exclusive from hooking a property since hook-extracted values are strictly\r\n\t\t\t\t\t numerical and therefore do not require normalization extraction. */\r\n\t\t\t\t} else if (CSS.Normalizations.registered[property]) {\r\n\t\t\t\t\tvar normalizedPropertyName,\r\n\t\t\t\t\t\t\tnormalizedPropertyValue;\r\n\r\n\t\t\t\t\tnormalizedPropertyName = CSS.Normalizations.registered[property](\"name\", element);\r\n\r\n\t\t\t\t\t/* Transform values are calculated via normalization extraction (see below), which checks against the element's transformCache.\r\n\t\t\t\t\t At no point do transform GETs ever actually query the DOM; initial stylesheet values are never processed.\r\n\t\t\t\t\t This is because parsing 3D transform matrices is not always accurate and would bloat our codebase;\r\n\t\t\t\t\t thus, normalization extraction defaults initial transform values to their zero-values (e.g. 1 for scaleX and 0 for translateX). */\r\n\t\t\t\t\tif (normalizedPropertyName !== \"transform\") {\r\n\t\t\t\t\t\tnormalizedPropertyValue = computePropertyValue(element, CSS.Names.prefixCheck(normalizedPropertyName)[0]); /* GET */\r\n\r\n\t\t\t\t\t\t/* If the value is a CSS null-value and this property has a hook template, use that zero-value template so that hooks can be extracted from it. */\r\n\t\t\t\t\t\tif (CSS.Values.isCSSNullValue(normalizedPropertyValue) && CSS.Hooks.templates[property]) {\r\n\t\t\t\t\t\t\tnormalizedPropertyValue = CSS.Hooks.templates[property][1];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tpropertyValue = CSS.Normalizations.registered[property](\"extract\", element, normalizedPropertyValue);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* If a (numeric) value wasn't produced via hook extraction or normalization, query the DOM. */\r\n\t\t\t\tif (!/^[\\d-]/.test(propertyValue)) {\r\n\t\t\t\t\t/* For SVG elements, dimensional properties (which SVGAttribute() detects) are tweened via\r\n\t\t\t\t\t their HTML attribute values instead of their CSS style values. */\r\n\t\t\t\t\tvar data = Data(element);\r\n\r\n\t\t\t\t\tif (data && data.isSVG && CSS.Names.SVGAttribute(property)) {\r\n\t\t\t\t\t\t/* Since the height/width attribute values must be set manually, they don't reflect computed values.\r\n\t\t\t\t\t\t Thus, we use use getBBox() to ensure we always get values for elements with undefined height/width attributes. */\r\n\t\t\t\t\t\tif (/^(height|width)$/i.test(property)) {\r\n\t\t\t\t\t\t\t/* Firefox throws an error if .getBBox() is called on an SVG that isn't attached to the DOM. */\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tpropertyValue = element.getBBox()[property];\r\n\t\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\t\tpropertyValue = 0;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t/* Otherwise, access the attribute value directly. */\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tpropertyValue = element.getAttribute(property);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpropertyValue = computePropertyValue(element, CSS.Names.prefixCheck(property)[0]); /* GET */\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* Since property lookups are for animation purposes (which entails computing the numeric delta between start and end values),\r\n\t\t\t\t convert CSS null-values to an integer of value 0. */\r\n\t\t\t\tif (CSS.Values.isCSSNullValue(propertyValue)) {\r\n\t\t\t\t\tpropertyValue = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (Velocity.debug >= 2) {\r\n\t\t\t\t\tconsole.log(\"Get \" + property + \": \" + propertyValue);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn propertyValue;\r\n\t\t\t},\r\n\t\t\t/* The singular setPropertyValue, which routes the logic for all normalizations, hooks, and standard CSS properties. */\r\n\t\t\tsetPropertyValue: function(element, property, propertyValue, rootPropertyValue, scrollData) {\r\n\t\t\t\tvar propertyName = property;\r\n\r\n\t\t\t\t/* In order to be subjected to call options and element queueing, scroll animation is routed through Velocity as if it were a standard CSS property. */\r\n\t\t\t\tif (property === \"scroll\") {\r\n\t\t\t\t\t/* If a container option is present, scroll the container instead of the browser window. */\r\n\t\t\t\t\tif (scrollData.container) {\r\n\t\t\t\t\t\tscrollData.container[\"scroll\" + scrollData.direction] = propertyValue;\r\n\t\t\t\t\t\t/* Otherwise, Velocity defaults to scrolling the browser window. */\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (scrollData.direction === \"Left\") {\r\n\t\t\t\t\t\t\twindow.scrollTo(propertyValue, scrollData.alternateValue);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\twindow.scrollTo(scrollData.alternateValue, propertyValue);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t/* Transforms (translateX, rotateZ, etc.) are applied to a per-element transformCache object, which is manually flushed via flushTransformCache().\r\n\t\t\t\t\t Thus, for now, we merely cache transforms being SET. */\r\n\t\t\t\t\tif (CSS.Normalizations.registered[property] && CSS.Normalizations.registered[property](\"name\", element) === \"transform\") {\r\n\t\t\t\t\t\t/* Perform a normalization injection. */\r\n\t\t\t\t\t\t/* Note: The normalization logic handles the transformCache updating. */\r\n\t\t\t\t\t\tCSS.Normalizations.registered[property](\"inject\", element, propertyValue);\r\n\r\n\t\t\t\t\t\tpropertyName = \"transform\";\r\n\t\t\t\t\t\tpropertyValue = Data(element).transformCache[property];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* Inject hooks. */\r\n\t\t\t\t\t\tif (CSS.Hooks.registered[property]) {\r\n\t\t\t\t\t\t\tvar hookName = property,\r\n\t\t\t\t\t\t\t\t\thookRoot = CSS.Hooks.getRoot(property);\r\n\r\n\t\t\t\t\t\t\t/* If a cached rootPropertyValue was not provided, query the DOM for the hookRoot's current value. */\r\n\t\t\t\t\t\t\trootPropertyValue = rootPropertyValue || CSS.getPropertyValue(element, hookRoot); /* GET */\r\n\r\n\t\t\t\t\t\t\tpropertyValue = CSS.Hooks.injectValue(hookName, propertyValue, rootPropertyValue);\r\n\t\t\t\t\t\t\tproperty = hookRoot;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Normalize names and values. */\r\n\t\t\t\t\t\tif (CSS.Normalizations.registered[property]) {\r\n\t\t\t\t\t\t\tpropertyValue = CSS.Normalizations.registered[property](\"inject\", element, propertyValue);\r\n\t\t\t\t\t\t\tproperty = CSS.Normalizations.registered[property](\"name\", element);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Assign the appropriate vendor prefix before performing an official style update. */\r\n\t\t\t\t\t\tpropertyName = CSS.Names.prefixCheck(property)[0];\r\n\r\n\t\t\t\t\t\t/* A try/catch is used for IE<=8, which throws an error when \"invalid\" CSS values are set, e.g. a negative width.\r\n\t\t\t\t\t\t Try/catch is avoided for other browsers since it incurs a performance overhead. */\r\n\t\t\t\t\t\tif (IE <= 8) {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\telement.style[propertyName] = propertyValue;\r\n\t\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\t\t\tconsole.log(\"Browser does not support [\" + propertyValue + \"] for [\" + propertyName + \"]\");\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t/* SVG elements have their dimensional properties (width, height, x, y, cx, etc.) applied directly as attributes instead of as styles. */\r\n\t\t\t\t\t\t\t/* Note: IE8 does not support SVG elements, so it's okay that we skip it for SVG animation. */\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvar data = Data(element);\r\n\r\n\t\t\t\t\t\t\tif (data && data.isSVG && CSS.Names.SVGAttribute(property)) {\r\n\t\t\t\t\t\t\t\t/* Note: For SVG attributes, vendor-prefixed property names are never used. */\r\n\t\t\t\t\t\t\t\t/* Note: Not all CSS properties can be animated via attributes, but the browser won't throw an error for unsupported properties. */\r\n\t\t\t\t\t\t\t\telement.setAttribute(property, propertyValue);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\telement.style[propertyName] = propertyValue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (Velocity.debug >= 2) {\r\n\t\t\t\t\t\t\tconsole.log(\"Set \" + property + \" (\" + propertyName + \"): \" + propertyValue);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* Return the normalized property name and value in case the caller wants to know how these values were modified before being applied to the DOM. */\r\n\t\t\t\treturn [propertyName, propertyValue];\r\n\t\t\t},\r\n\t\t\t/* To increase performance by batching transform updates into a single SET, transforms are not directly applied to an element until flushTransformCache() is called. */\r\n\t\t\t/* Note: Velocity applies transform properties in the same order that they are chronogically introduced to the element's CSS styles. */\r\n\t\t\tflushTransformCache: function(element) {\r\n\t\t\t\tvar transformString = \"\",\r\n\t\t\t\t\t\tdata = Data(element);\r\n\r\n\t\t\t\t/* Certain browsers require that SVG transforms be applied as an attribute. However, the SVG transform attribute takes a modified version of CSS's transform string\r\n\t\t\t\t (units are dropped and, except for skewX/Y, subproperties are merged into their master property -- e.g. scaleX and scaleY are merged into scale(X Y). */\r\n\t\t\t\tif ((IE || (Velocity.State.isAndroid && !Velocity.State.isChrome)) && data && data.isSVG) {\r\n\t\t\t\t\t/* Since transform values are stored in their parentheses-wrapped form, we use a helper function to strip out their numeric values.\r\n\t\t\t\t\t Further, SVG transform properties only take unitless (representing pixels) values, so it's okay that parseFloat() strips the unit suffixed to the float value. */\r\n\t\t\t\t\tvar getTransformFloat = function(transformProperty) {\r\n\t\t\t\t\t\treturn parseFloat(CSS.getPropertyValue(element, transformProperty));\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/* Create an object to organize all the transforms that we'll apply to the SVG element. To keep the logic simple,\r\n\t\t\t\t\t we process *all* transform properties -- even those that may not be explicitly applied (since they default to their zero-values anyway). */\r\n\t\t\t\t\tvar SVGTransforms = {\r\n\t\t\t\t\t\ttranslate: [getTransformFloat(\"translateX\"), getTransformFloat(\"translateY\")],\r\n\t\t\t\t\t\tskewX: [getTransformFloat(\"skewX\")], skewY: [getTransformFloat(\"skewY\")],\r\n\t\t\t\t\t\t/* If the scale property is set (non-1), use that value for the scaleX and scaleY values\r\n\t\t\t\t\t\t (this behavior mimics the result of animating all these properties at once on HTML elements). */\r\n\t\t\t\t\t\tscale: getTransformFloat(\"scale\") !== 1 ? [getTransformFloat(\"scale\"), getTransformFloat(\"scale\")] : [getTransformFloat(\"scaleX\"), getTransformFloat(\"scaleY\")],\r\n\t\t\t\t\t\t/* Note: SVG's rotate transform takes three values: rotation degrees followed by the X and Y values\r\n\t\t\t\t\t\t defining the rotation's origin point. We ignore the origin values (default them to 0). */\r\n\t\t\t\t\t\trotate: [getTransformFloat(\"rotateZ\"), 0, 0]\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/* Iterate through the transform properties in the user-defined property map order.\r\n\t\t\t\t\t (This mimics the behavior of non-SVG transform animation.) */\r\n\t\t\t\t\t$.each(Data(element).transformCache, function(transformName) {\r\n\t\t\t\t\t\t/* Except for with skewX/Y, revert the axis-specific transform subproperties to their axis-free master\r\n\t\t\t\t\t\t properties so that they match up with SVG's accepted transform properties. */\r\n\t\t\t\t\t\tif (/^translate/i.test(transformName)) {\r\n\t\t\t\t\t\t\ttransformName = \"translate\";\r\n\t\t\t\t\t\t} else if (/^scale/i.test(transformName)) {\r\n\t\t\t\t\t\t\ttransformName = \"scale\";\r\n\t\t\t\t\t\t} else if (/^rotate/i.test(transformName)) {\r\n\t\t\t\t\t\t\ttransformName = \"rotate\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Check that we haven't yet deleted the property from the SVGTransforms container. */\r\n\t\t\t\t\t\tif (SVGTransforms[transformName]) {\r\n\t\t\t\t\t\t\t/* Append the transform property in the SVG-supported transform format. As per the spec, surround the space-delimited values in parentheses. */\r\n\t\t\t\t\t\t\ttransformString += transformName + \"(\" + SVGTransforms[transformName].join(\" \") + \")\" + \" \";\r\n\r\n\t\t\t\t\t\t\t/* After processing an SVG transform property, delete it from the SVGTransforms container so we don't\r\n\t\t\t\t\t\t\t re-insert the same master property if we encounter another one of its axis-specific properties. */\r\n\t\t\t\t\t\t\tdelete SVGTransforms[transformName];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar transformValue,\r\n\t\t\t\t\t\t\tperspective;\r\n\r\n\t\t\t\t\t/* Transform properties are stored as members of the transformCache object. Concatenate all the members into a string. */\r\n\t\t\t\t\t$.each(Data(element).transformCache, function(transformName) {\r\n\t\t\t\t\t\ttransformValue = Data(element).transformCache[transformName];\r\n\r\n\t\t\t\t\t\t/* Transform's perspective subproperty must be set first in order to take effect. Store it temporarily. */\r\n\t\t\t\t\t\tif (transformName === \"transformPerspective\") {\r\n\t\t\t\t\t\t\tperspective = transformValue;\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* IE9 only supports one rotation type, rotateZ, which it refers to as \"rotate\". */\r\n\t\t\t\t\t\tif (IE === 9 && transformName === \"rotateZ\") {\r\n\t\t\t\t\t\t\ttransformName = \"rotate\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttransformString += transformName + transformValue + \" \";\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* If present, set the perspective subproperty first. */\r\n\t\t\t\t\tif (perspective) {\r\n\t\t\t\t\t\ttransformString = \"perspective\" + perspective + \" \" + transformString;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tCSS.setPropertyValue(element, \"transform\", transformString);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/* Register hooks and normalizations. */\r\n\t\tCSS.Hooks.register();\r\n\t\tCSS.Normalizations.register();\r\n\r\n\t\t/* Allow hook setting in the same fashion as jQuery's $.css(). */\r\n\t\tVelocity.hook = function(elements, arg2, arg3) {\r\n\t\t\tvar value;\r\n\r\n\t\t\telements = sanitizeElements(elements);\r\n\r\n\t\t\t$.each(elements, function(i, element) {\r\n\t\t\t\t/* Initialize Velocity's per-element data cache if this element hasn't previously been animated. */\r\n\t\t\t\tif (Data(element) === undefined) {\r\n\t\t\t\t\tVelocity.init(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* Get property value. If an element set was passed in, only return the value for the first element. */\r\n\t\t\t\tif (arg3 === undefined) {\r\n\t\t\t\t\tif (value === undefined) {\r\n\t\t\t\t\t\tvalue = CSS.getPropertyValue(element, arg2);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t/* Set property value. */\r\n\t\t\t\t} else {\r\n\t\t\t\t\t/* sPV returns an array of the normalized propertyName/propertyValue pair used to update the DOM. */\r\n\t\t\t\t\tvar adjustedSet = CSS.setPropertyValue(element, arg2, arg3);\r\n\r\n\t\t\t\t\t/* Transform properties don't automatically set. They have to be flushed to the DOM. */\r\n\t\t\t\t\tif (adjustedSet[0] === \"transform\") {\r\n\t\t\t\t\t\tVelocity.CSS.flushTransformCache(element);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvalue = adjustedSet;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn value;\r\n\t\t};\r\n\r\n\t\t/*****************\r\n\t\t Animation\r\n\t\t *****************/\r\n\r\n\t\tvar animate = function() {\r\n\t\t\tvar opts;\r\n\r\n\t\t\t/******************\r\n\t\t\t Call Chain\r\n\t\t\t ******************/\r\n\r\n\t\t\t/* Logic for determining what to return to the call stack when exiting out of Velocity. */\r\n\t\t\tfunction getChain() {\r\n\t\t\t\t/* If we are using the utility function, attempt to return this call's promise. If no promise library was detected,\r\n\t\t\t\t default to null instead of returning the targeted elements so that utility function's return value is standardized. */\r\n\t\t\t\tif (isUtility) {\r\n\t\t\t\t\treturn promiseData.promise || null;\r\n\t\t\t\t\t/* Otherwise, if we're using $.fn, return the jQuery-/Zepto-wrapped element set. */\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn elementsWrapped;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/*************************\r\n\t\t\t Arguments Assignment\r\n\t\t\t *************************/\r\n\r\n\t\t\t/* To allow for expressive CoffeeScript code, Velocity supports an alternative syntax in which \"elements\" (or \"e\"), \"properties\" (or \"p\"), and \"options\" (or \"o\")\r\n\t\t\t objects are defined on a container object that's passed in as Velocity's sole argument. */\r\n\t\t\t/* Note: Some browsers automatically populate arguments with a \"properties\" object. We detect it by checking for its default \"names\" property. */\r\n\t\t\tvar syntacticSugar = (arguments[0] && (arguments[0].p || (($.isPlainObject(arguments[0].properties) && !arguments[0].properties.names) || Type.isString(arguments[0].properties)))),\r\n\t\t\t\t\t/* Whether Velocity was called via the utility function (as opposed to on a jQuery/Zepto object). */\r\n\t\t\t\t\tisUtility,\r\n\t\t\t\t\t/* When Velocity is called via the utility function ($.Velocity()/Velocity()), elements are explicitly\r\n\t\t\t\t\t passed in as the first parameter. Thus, argument positioning varies. We normalize them here. */\r\n\t\t\t\t\telementsWrapped,\r\n\t\t\t\t\targumentIndex;\r\n\r\n\t\t\tvar elements,\r\n\t\t\t\t\tpropertiesMap,\r\n\t\t\t\t\toptions;\r\n\r\n\t\t\t/* Detect jQuery/Zepto elements being animated via the $.fn method. */\r\n\t\t\tif (Type.isWrapped(this)) {\r\n\t\t\t\tisUtility = false;\r\n\r\n\t\t\t\targumentIndex = 0;\r\n\t\t\t\telements = this;\r\n\t\t\t\telementsWrapped = this;\r\n\t\t\t\t/* Otherwise, raw elements are being animated via the utility function. */\r\n\t\t\t} else {\r\n\t\t\t\tisUtility = true;\r\n\r\n\t\t\t\targumentIndex = 1;\r\n\t\t\t\telements = syntacticSugar ? (arguments[0].elements || arguments[0].e) : arguments[0];\r\n\t\t\t}\r\n\r\n\t\t\t/***************\r\n\t\t\t Promises\r\n\t\t\t ***************/\r\n\r\n\t\t\tvar promiseData = {\r\n\t\t\t\tpromise: null,\r\n\t\t\t\tresolver: null,\r\n\t\t\t\trejecter: null\r\n\t\t\t};\r\n\r\n\t\t\t/* If this call was made via the utility function (which is the default method of invocation when jQuery/Zepto are not being used), and if\r\n\t\t\t promise support was detected, create a promise object for this call and store references to its resolver and rejecter methods. The resolve\r\n\t\t\t method is used when a call completes naturally or is prematurely stopped by the user. In both cases, completeCall() handles the associated\r\n\t\t\t call cleanup and promise resolving logic. The reject method is used when an invalid set of arguments is passed into a Velocity call. */\r\n\t\t\t/* Note: Velocity employs a call-based queueing architecture, which means that stopping an animating element actually stops the full call that\r\n\t\t\t triggered it -- not that one element exclusively. Similarly, there is one promise per call, and all elements targeted by a Velocity call are\r\n\t\t\t grouped together for the purposes of resolving and rejecting a promise. */\r\n\t\t\tif (isUtility && Velocity.Promise) {\r\n\t\t\t\tpromiseData.promise = new Velocity.Promise(function(resolve, reject) {\r\n\t\t\t\t\tpromiseData.resolver = resolve;\r\n\t\t\t\t\tpromiseData.rejecter = reject;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (syntacticSugar) {\r\n\t\t\t\tpropertiesMap = arguments[0].properties || arguments[0].p;\r\n\t\t\t\toptions = arguments[0].options || arguments[0].o;\r\n\t\t\t} else {\r\n\t\t\t\tpropertiesMap = arguments[argumentIndex];\r\n\t\t\t\toptions = arguments[argumentIndex + 1];\r\n\t\t\t}\r\n\r\n\t\t\telements = sanitizeElements(elements);\r\n\r\n\t\t\tif (!elements) {\r\n\t\t\t\tif (promiseData.promise) {\r\n\t\t\t\t\tif (!propertiesMap || !options || options.promiseRejectEmpty !== false) {\r\n\t\t\t\t\t\tpromiseData.rejecter();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpromiseData.resolver();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t/* The length of the element set (in the form of a nodeList or an array of elements) is defaulted to 1 in case a\r\n\t\t\t single raw DOM element is passed in (which doesn't contain a length property). */\r\n\t\t\tvar elementsLength = elements.length,\r\n\t\t\t\t\telementsIndex = 0;\r\n\r\n\t\t\t/***************************\r\n\t\t\t Argument Overloading\r\n\t\t\t ***************************/\r\n\r\n\t\t\t/* Support is included for jQuery's argument overloading: $.animate(propertyMap [, duration] [, easing] [, complete]).\r\n\t\t\t Overloading is detected by checking for the absence of an object being passed into options. */\r\n\t\t\t/* Note: The stop/finish/pause/resume actions do not accept animation options, and are therefore excluded from this check. */\r\n\t\t\tif (!/^(stop|finish|finishAll|pause|resume)$/i.test(propertiesMap) && !$.isPlainObject(options)) {\r\n\t\t\t\t/* The utility function shifts all arguments one position to the right, so we adjust for that offset. */\r\n\t\t\t\tvar startingArgumentPosition = argumentIndex + 1;\r\n\r\n\t\t\t\toptions = {};\r\n\r\n\t\t\t\t/* Iterate through all options arguments */\r\n\t\t\t\tfor (var i = startingArgumentPosition; i < arguments.length; i++) {\r\n\t\t\t\t\t/* Treat a number as a duration. Parse it out. */\r\n\t\t\t\t\t/* Note: The following RegEx will return true if passed an array with a number as its first item.\r\n\t\t\t\t\t Thus, arrays are skipped from this check. */\r\n\t\t\t\t\tif (!Type.isArray(arguments[i]) && (/^(fast|normal|slow)$/i.test(arguments[i]) || /^\\d/.test(arguments[i]))) {\r\n\t\t\t\t\t\toptions.duration = arguments[i];\r\n\t\t\t\t\t\t/* Treat strings and arrays as easings. */\r\n\t\t\t\t\t} else if (Type.isString(arguments[i]) || Type.isArray(arguments[i])) {\r\n\t\t\t\t\t\toptions.easing = arguments[i];\r\n\t\t\t\t\t\t/* Treat a function as a complete callback. */\r\n\t\t\t\t\t} else if (Type.isFunction(arguments[i])) {\r\n\t\t\t\t\t\toptions.complete = arguments[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/*********************\r\n\t\t\t Action Detection\r\n\t\t\t *********************/\r\n\r\n\t\t\t/* Velocity's behavior is categorized into \"actions\": Elements can either be specially scrolled into view,\r\n\t\t\t or they can be started, stopped, paused, resumed, or reversed . If a literal or referenced properties map is passed in as Velocity's\r\n\t\t\t first argument, the associated action is \"start\". Alternatively, \"scroll\", \"reverse\", \"pause\", \"resume\" or \"stop\" can be passed in \r\n\t\t\t instead of a properties map. */\r\n\t\t\tvar action;\r\n\r\n\t\t\tswitch (propertiesMap) {\r\n\t\t\t\tcase \"scroll\":\r\n\t\t\t\t\taction = \"scroll\";\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"reverse\":\r\n\t\t\t\t\taction = \"reverse\";\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"pause\":\r\n\r\n\t\t\t\t\t/*******************\r\n\t\t\t\t\t Action: Pause\r\n\t\t\t\t\t *******************/\r\n\r\n\t\t\t\t\tvar currentTime = (new Date()).getTime();\r\n\r\n\t\t\t\t\t/* Handle delay timers */\r\n\t\t\t\t\t$.each(elements, function(i, element) {\r\n\t\t\t\t\t\tpauseDelayOnElement(element, currentTime);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* Pause and Resume are call-wide (not on a per element basis). Thus, calling pause or resume on a \r\n\t\t\t\t\t single element will cause any calls that containt tweens for that element to be paused/resumed\r\n\t\t\t\t\t as well. */\r\n\r\n\t\t\t\t\t/* Iterate through all calls and pause any that contain any of our elements */\r\n\t\t\t\t\t$.each(Velocity.State.calls, function(i, activeCall) {\r\n\r\n\t\t\t\t\t\tvar found = false;\r\n\t\t\t\t\t\t/* Inactive calls are set to false by the logic inside completeCall(). Skip them. */\r\n\t\t\t\t\t\tif (activeCall) {\r\n\t\t\t\t\t\t\t/* Iterate through the active call's targeted elements. */\r\n\t\t\t\t\t\t\t$.each(activeCall[1], function(k, activeElement) {\r\n\t\t\t\t\t\t\t\tvar queueName = (options === undefined) ? \"\" : options;\r\n\r\n\t\t\t\t\t\t\t\tif (queueName !== true && (activeCall[2].queue !== queueName) && !(options === undefined && activeCall[2].queue === false)) {\r\n\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* Iterate through the calls targeted by the stop command. */\r\n\t\t\t\t\t\t\t\t$.each(elements, function(l, element) {\r\n\t\t\t\t\t\t\t\t\t/* Check that this call was applied to the target element. */\r\n\t\t\t\t\t\t\t\t\tif (element === activeElement) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* Set call to paused */\r\n\t\t\t\t\t\t\t\t\t\tactiveCall[5] = {\r\n\t\t\t\t\t\t\t\t\t\t\tresume: false\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* Once we match an element, we can bounce out to the next call entirely */\r\n\t\t\t\t\t\t\t\t\t\tfound = true;\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t/* Proceed to check next call if we have already matched */\r\n\t\t\t\t\t\t\t\tif (found) {\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* Since pause creates no new tweens, exit out of Velocity. */\r\n\t\t\t\t\treturn getChain();\r\n\r\n\t\t\t\tcase \"resume\":\r\n\r\n\t\t\t\t\t/*******************\r\n\t\t\t\t\t Action: Resume\r\n\t\t\t\t\t *******************/\r\n\r\n\t\t\t\t\t/* Handle delay timers */\r\n\t\t\t\t\t$.each(elements, function(i, element) {\r\n\t\t\t\t\t\tresumeDelayOnElement(element, currentTime);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* Pause and Resume are call-wide (not on a per elemnt basis). Thus, calling pause or resume on a \r\n\t\t\t\t\t single element will cause any calls that containt tweens for that element to be paused/resumed\r\n\t\t\t\t\t as well. */\r\n\r\n\t\t\t\t\t/* Iterate through all calls and pause any that contain any of our elements */\r\n\t\t\t\t\t$.each(Velocity.State.calls, function(i, activeCall) {\r\n\t\t\t\t\t\tvar found = false;\r\n\t\t\t\t\t\t/* Inactive calls are set to false by the logic inside completeCall(). Skip them. */\r\n\t\t\t\t\t\tif (activeCall) {\r\n\t\t\t\t\t\t\t/* Iterate through the active call's targeted elements. */\r\n\t\t\t\t\t\t\t$.each(activeCall[1], function(k, activeElement) {\r\n\t\t\t\t\t\t\t\tvar queueName = (options === undefined) ? \"\" : options;\r\n\r\n\t\t\t\t\t\t\t\tif (queueName !== true && (activeCall[2].queue !== queueName) && !(options === undefined && activeCall[2].queue === false)) {\r\n\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* Skip any calls that have never been paused */\r\n\t\t\t\t\t\t\t\tif (!activeCall[5]) {\r\n\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* Iterate through the calls targeted by the stop command. */\r\n\t\t\t\t\t\t\t\t$.each(elements, function(l, element) {\r\n\t\t\t\t\t\t\t\t\t/* Check that this call was applied to the target element. */\r\n\t\t\t\t\t\t\t\t\tif (element === activeElement) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* Flag a pause object to be resumed, which will occur during the next tick. In\r\n\t\t\t\t\t\t\t\t\t\t addition, the pause object will at that time be deleted */\r\n\t\t\t\t\t\t\t\t\t\tactiveCall[5].resume = true;\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* Once we match an element, we can bounce out to the next call entirely */\r\n\t\t\t\t\t\t\t\t\t\tfound = true;\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t/* Proceed to check next call if we have already matched */\r\n\t\t\t\t\t\t\t\tif (found) {\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* Since resume creates no new tweens, exit out of Velocity. */\r\n\t\t\t\t\treturn getChain();\r\n\r\n\t\t\t\tcase \"finish\":\r\n\t\t\t\tcase \"finishAll\":\r\n\t\t\t\tcase \"stop\":\r\n\t\t\t\t\t/*******************\r\n\t\t\t\t\t Action: Stop\r\n\t\t\t\t\t *******************/\r\n\r\n\t\t\t\t\t/* Clear the currently-active delay on each targeted element. */\r\n\t\t\t\t\t$.each(elements, function(i, element) {\r\n\t\t\t\t\t\tif (Data(element) && Data(element).delayTimer) {\r\n\t\t\t\t\t\t\t/* Stop the timer from triggering its cached next() function. */\r\n\t\t\t\t\t\t\tclearTimeout(Data(element).delayTimer.setTimeout);\r\n\r\n\t\t\t\t\t\t\t/* Manually call the next() function so that the subsequent queue items can progress. */\r\n\t\t\t\t\t\t\tif (Data(element).delayTimer.next) {\r\n\t\t\t\t\t\t\t\tData(element).delayTimer.next();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tdelete Data(element).delayTimer;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* If we want to finish everything in the queue, we have to iterate through it\r\n\t\t\t\t\t\t and call each function. This will make them active calls below, which will\r\n\t\t\t\t\t\t cause them to be applied via the duration setting. */\r\n\t\t\t\t\t\tif (propertiesMap === \"finishAll\" && (options === true || Type.isString(options))) {\r\n\t\t\t\t\t\t\t/* Iterate through the items in the element's queue. */\r\n\t\t\t\t\t\t\t$.each($.queue(element, Type.isString(options) ? options : \"\"), function(_, item) {\r\n\t\t\t\t\t\t\t\t/* The queue array can contain an \"inprogress\" string, which we skip. */\r\n\t\t\t\t\t\t\t\tif (Type.isFunction(item)) {\r\n\t\t\t\t\t\t\t\t\titem();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t/* Clearing the $.queue() array is achieved by resetting it to []. */\r\n\t\t\t\t\t\t\t$.queue(element, Type.isString(options) ? options : \"\", []);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tvar callsToStop = [];\r\n\r\n\t\t\t\t\t/* When the stop action is triggered, the elements' currently active call is immediately stopped. The active call might have\r\n\t\t\t\t\t been applied to multiple elements, in which case all of the call's elements will be stopped. When an element\r\n\t\t\t\t\t is stopped, the next item in its animation queue is immediately triggered. */\r\n\t\t\t\t\t/* An additional argument may be passed in to clear an element's remaining queued calls. Either true (which defaults to the \"fx\" queue)\r\n\t\t\t\t\t or a custom queue string can be passed in. */\r\n\t\t\t\t\t/* Note: The stop command runs prior to Velocity's Queueing phase since its behavior is intended to take effect *immediately*,\r\n\t\t\t\t\t regardless of the element's current queue state. */\r\n\r\n\t\t\t\t\t/* Iterate through every active call. */\r\n\t\t\t\t\t$.each(Velocity.State.calls, function(i, activeCall) {\r\n\t\t\t\t\t\t/* Inactive calls are set to false by the logic inside completeCall(). Skip them. */\r\n\t\t\t\t\t\tif (activeCall) {\r\n\t\t\t\t\t\t\t/* Iterate through the active call's targeted elements. */\r\n\t\t\t\t\t\t\t$.each(activeCall[1], function(k, activeElement) {\r\n\t\t\t\t\t\t\t\t/* If true was passed in as a secondary argument, clear absolutely all calls on this element. Otherwise, only\r\n\t\t\t\t\t\t\t\t clear calls associated with the relevant queue. */\r\n\t\t\t\t\t\t\t\t/* Call stopping logic works as follows:\r\n\t\t\t\t\t\t\t\t - options === true --> stop current default queue calls (and queue:false calls), including remaining queued ones.\r\n\t\t\t\t\t\t\t\t - options === undefined --> stop current queue:\"\" call and all queue:false calls.\r\n\t\t\t\t\t\t\t\t - options === false --> stop only queue:false calls.\r\n\t\t\t\t\t\t\t\t - options === \"custom\" --> stop current queue:\"custom\" call, including remaining queued ones (there is no functionality to only clear the currently-running queue:\"custom\" call). */\r\n\t\t\t\t\t\t\t\tvar queueName = (options === undefined) ? \"\" : options;\r\n\r\n\t\t\t\t\t\t\t\tif (queueName !== true && (activeCall[2].queue !== queueName) && !(options === undefined && activeCall[2].queue === false)) {\r\n\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* Iterate through the calls targeted by the stop command. */\r\n\t\t\t\t\t\t\t\t$.each(elements, function(l, element) {\r\n\t\t\t\t\t\t\t\t\t/* Check that this call was applied to the target element. */\r\n\t\t\t\t\t\t\t\t\tif (element === activeElement) {\r\n\t\t\t\t\t\t\t\t\t\t/* Optionally clear the remaining queued calls. If we're doing \"finishAll\" this won't find anything,\r\n\t\t\t\t\t\t\t\t\t\t due to the queue-clearing above. */\r\n\t\t\t\t\t\t\t\t\t\tif (options === true || Type.isString(options)) {\r\n\t\t\t\t\t\t\t\t\t\t\t/* Iterate through the items in the element's queue. */\r\n\t\t\t\t\t\t\t\t\t\t\t$.each($.queue(element, Type.isString(options) ? options : \"\"), function(_, item) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t/* The queue array can contain an \"inprogress\" string, which we skip. */\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (Type.isFunction(item)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/* Pass the item's callback a flag indicating that we want to abort from the queue call.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t (Specifically, the queue will resolve the call's associated promise then abort.) */\r\n\t\t\t\t\t\t\t\t\t\t\t\t\titem(null, true);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t/* Clearing the $.queue() array is achieved by resetting it to []. */\r\n\t\t\t\t\t\t\t\t\t\t\t$.queue(element, Type.isString(options) ? options : \"\", []);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (propertiesMap === \"stop\") {\r\n\t\t\t\t\t\t\t\t\t\t\t/* Since \"reverse\" uses cached start values (the previous call's endValues), these values must be\r\n\t\t\t\t\t\t\t\t\t\t\t changed to reflect the final value that the elements were actually tweened to. */\r\n\t\t\t\t\t\t\t\t\t\t\t/* Note: If only queue:false/queue:\"custom\" animations are currently running on an element, it won't have a tweensContainer\r\n\t\t\t\t\t\t\t\t\t\t\t object. Also, queue:false/queue:\"custom\" animations can't be reversed. */\r\n\t\t\t\t\t\t\t\t\t\t\tvar data = Data(element);\r\n\t\t\t\t\t\t\t\t\t\t\tif (data && data.tweensContainer && (queueName === true || queueName === \"\")) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t$.each(data.tweensContainer, function(m, activeTween) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tactiveTween.endValue = activeTween.currentValue;\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tcallsToStop.push(i);\r\n\t\t\t\t\t\t\t\t\t\t} else if (propertiesMap === \"finish\" || propertiesMap === \"finishAll\") {\r\n\t\t\t\t\t\t\t\t\t\t\t/* To get active tweens to finish immediately, we forcefully shorten their durations to 1ms so that\r\n\t\t\t\t\t\t\t\t\t\t\t they finish upon the next rAf tick then proceed with normal call completion logic. */\r\n\t\t\t\t\t\t\t\t\t\t\tactiveCall[2].duration = 1;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* Prematurely call completeCall() on each matched active call. Pass an additional flag for \"stop\" to indicate\r\n\t\t\t\t\t that the complete callback and display:none setting should be skipped since we're completing prematurely. */\r\n\t\t\t\t\tif (propertiesMap === \"stop\") {\r\n\t\t\t\t\t\t$.each(callsToStop, function(i, j) {\r\n\t\t\t\t\t\t\tcompleteCall(j, true);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tif (promiseData.promise) {\r\n\t\t\t\t\t\t\t/* Immediately resolve the promise associated with this stop call since stop runs synchronously. */\r\n\t\t\t\t\t\t\tpromiseData.resolver(elements);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Since we're stopping, and not proceeding with queueing, exit out of Velocity. */\r\n\t\t\t\t\treturn getChain();\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t/* Treat a non-empty plain object as a literal properties map. */\r\n\t\t\t\t\tif ($.isPlainObject(propertiesMap) && !Type.isEmptyObject(propertiesMap)) {\r\n\t\t\t\t\t\taction = \"start\";\r\n\r\n\t\t\t\t\t\t/****************\r\n\t\t\t\t\t\t Redirects\r\n\t\t\t\t\t\t ****************/\r\n\r\n\t\t\t\t\t\t/* Check if a string matches a registered redirect (see Redirects above). */\r\n\t\t\t\t\t} else if (Type.isString(propertiesMap) && Velocity.Redirects[propertiesMap]) {\r\n\t\t\t\t\t\topts = $.extend({}, options);\r\n\r\n\t\t\t\t\t\tvar durationOriginal = opts.duration,\r\n\t\t\t\t\t\t\t\tdelayOriginal = opts.delay || 0;\r\n\r\n\t\t\t\t\t\t/* If the backwards option was passed in, reverse the element set so that elements animate from the last to the first. */\r\n\t\t\t\t\t\tif (opts.backwards === true) {\r\n\t\t\t\t\t\t\telements = $.extend(true, [], elements).reverse();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Individually trigger the redirect for each element in the set to prevent users from having to handle iteration logic in their redirect. */\r\n\t\t\t\t\t\t$.each(elements, function(elementIndex, element) {\r\n\t\t\t\t\t\t\t/* If the stagger option was passed in, successively delay each element by the stagger value (in ms). Retain the original delay value. */\r\n\t\t\t\t\t\t\tif (parseFloat(opts.stagger)) {\r\n\t\t\t\t\t\t\t\topts.delay = delayOriginal + (parseFloat(opts.stagger) * elementIndex);\r\n\t\t\t\t\t\t\t} else if (Type.isFunction(opts.stagger)) {\r\n\t\t\t\t\t\t\t\topts.delay = delayOriginal + opts.stagger.call(element, elementIndex, elementsLength);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* If the drag option was passed in, successively increase/decrease (depending on the presense of opts.backwards)\r\n\t\t\t\t\t\t\t the duration of each element's animation, using floors to prevent producing very short durations. */\r\n\t\t\t\t\t\t\tif (opts.drag) {\r\n\t\t\t\t\t\t\t\t/* Default the duration of UI pack effects (callouts and transitions) to 1000ms instead of the usual default duration of 400ms. */\r\n\t\t\t\t\t\t\t\topts.duration = parseFloat(durationOriginal) || (/^(callout|transition)/.test(propertiesMap) ? 1000 : DURATION_DEFAULT);\r\n\r\n\t\t\t\t\t\t\t\t/* For each element, take the greater duration of: A) animation completion percentage relative to the original duration,\r\n\t\t\t\t\t\t\t\t B) 75% of the original duration, or C) a 200ms fallback (in case duration is already set to a low value).\r\n\t\t\t\t\t\t\t\t The end result is a baseline of 75% of the redirect's duration that increases/decreases as the end of the element set is approached. */\r\n\t\t\t\t\t\t\t\topts.duration = Math.max(opts.duration * (opts.backwards ? 1 - elementIndex / elementsLength : (elementIndex + 1) / elementsLength), opts.duration * 0.75, 200);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Pass in the call's opts object so that the redirect can optionally extend it. It defaults to an empty object instead of null to\r\n\t\t\t\t\t\t\t reduce the opts checking logic required inside the redirect. */\r\n\t\t\t\t\t\t\tVelocity.Redirects[propertiesMap].call(element, element, opts || {}, elementIndex, elementsLength, elements, promiseData.promise ? promiseData : undefined);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t/* Since the animation logic resides within the redirect's own code, abort the remainder of this call.\r\n\t\t\t\t\t\t (The performance overhead up to this point is virtually non-existant.) */\r\n\t\t\t\t\t\t/* Note: The jQuery call chain is kept intact by returning the complete element set. */\r\n\t\t\t\t\t\treturn getChain();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar abortError = \"Velocity: First argument (\" + propertiesMap + \") was not a property map, a known action, or a registered redirect. Aborting.\";\r\n\r\n\t\t\t\t\t\tif (promiseData.promise) {\r\n\t\t\t\t\t\t\tpromiseData.rejecter(new Error(abortError));\r\n\t\t\t\t\t\t} else if (window.console) {\r\n\t\t\t\t\t\t\tconsole.log(abortError);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn getChain();\r\n\t\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/**************************\r\n\t\t\t Call-Wide Variables\r\n\t\t\t **************************/\r\n\r\n\t\t\t/* A container for CSS unit conversion ratios (e.g. %, rem, and em ==> px) that is used to cache ratios across all elements\r\n\t\t\t being animated in a single Velocity call. Calculating unit ratios necessitates DOM querying and updating, and is therefore\r\n\t\t\t avoided (via caching) wherever possible. This container is call-wide instead of page-wide to avoid the risk of using stale\r\n\t\t\t conversion metrics across Velocity animations that are not immediately consecutively chained. */\r\n\t\t\tvar callUnitConversionData = {\r\n\t\t\t\tlastParent: null,\r\n\t\t\t\tlastPosition: null,\r\n\t\t\t\tlastFontSize: null,\r\n\t\t\t\tlastPercentToPxWidth: null,\r\n\t\t\t\tlastPercentToPxHeight: null,\r\n\t\t\t\tlastEmToPx: null,\r\n\t\t\t\tremToPx: null,\r\n\t\t\t\tvwToPx: null,\r\n\t\t\t\tvhToPx: null\r\n\t\t\t};\r\n\r\n\t\t\t/* A container for all the ensuing tween data and metadata associated with this call. This container gets pushed to the page-wide\r\n\t\t\t Velocity.State.calls array that is processed during animation ticking. */\r\n\t\t\tvar call = [];\r\n\r\n\t\t\t/************************\r\n\t\t\t Element Processing\r\n\t\t\t ************************/\r\n\r\n\t\t\t/* Element processing consists of three parts -- data processing that cannot go stale and data processing that *can* go stale (i.e. third-party style modifications):\r\n\t\t\t 1) Pre-Queueing: Element-wide variables, including the element's data storage, are instantiated. Call options are prepared. If triggered, the Stop action is executed.\r\n\t\t\t 2) Queueing: The logic that runs once this call has reached its point of execution in the element's $.queue() stack. Most logic is placed here to avoid risking it becoming stale.\r\n\t\t\t 3) Pushing: Consolidation of the tween data followed by its push onto the global in-progress calls container.\r\n\t\t\t `elementArrayIndex` allows passing index of the element in the original array to value functions.\r\n\t\t\t If `elementsIndex` were used instead the index would be determined by the elements' per-element queue.\r\n\t\t\t */\r\n\t\t\tfunction processElement(element, elementArrayIndex) {\r\n\r\n\t\t\t\t/*************************\r\n\t\t\t\t Part I: Pre-Queueing\r\n\t\t\t\t *************************/\r\n\r\n\t\t\t\t/***************************\r\n\t\t\t\t Element-Wide Variables\r\n\t\t\t\t ***************************/\r\n\r\n\t\t\t\tvar /* The runtime opts object is the extension of the current call's options and Velocity's page-wide option defaults. */\r\n\t\t\t\t\t\topts = $.extend({}, Velocity.defaults, options),\r\n\t\t\t\t\t\t/* A container for the processed data associated with each property in the propertyMap.\r\n\t\t\t\t\t\t (Each property in the map produces its own \"tween\".) */\r\n\t\t\t\t\t\ttweensContainer = {},\r\n\t\t\t\t\t\telementUnitConversionData;\r\n\r\n\t\t\t\t/******************\r\n\t\t\t\t Element Init\r\n\t\t\t\t ******************/\r\n\r\n\t\t\t\tif (Data(element) === undefined) {\r\n\t\t\t\t\tVelocity.init(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/******************\r\n\t\t\t\t Option: Delay\r\n\t\t\t\t ******************/\r\n\r\n\t\t\t\t/* Since queue:false doesn't respect the item's existing queue, we avoid injecting its delay here (it's set later on). */\r\n\t\t\t\t/* Note: Velocity rolls its own delay function since jQuery doesn't have a utility alias for $.fn.delay()\r\n\t\t\t\t (and thus requires jQuery element creation, which we avoid since its overhead includes DOM querying). */\r\n\t\t\t\tif (parseFloat(opts.delay) && opts.queue !== false) {\r\n\t\t\t\t\t$.queue(element, opts.queue, function(next, clearQueue) {\r\n\t\t\t\t\t\tif (clearQueue === true) {\r\n\t\t\t\t\t\t\t/* Do not continue with animation queueing. */\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* This is a flag used to indicate to the upcoming completeCall() function that this queue entry was initiated by Velocity. See completeCall() for further details. */\r\n\t\t\t\t\t\tVelocity.velocityQueueEntryFlag = true;\r\n\r\n\t\t\t\t\t\t/* The ensuing queue item (which is assigned to the \"next\" argument that $.queue() automatically passes in) will be triggered after a setTimeout delay.\r\n\t\t\t\t\t\t The setTimeout is stored so that it can be subjected to clearTimeout() if this animation is prematurely stopped via Velocity's \"stop\" command, and\r\n\t\t\t\t\t\t delayBegin/delayTime is used to ensure we can \"pause\" and \"resume\" a tween that is still mid-delay. */\r\n\r\n\t\t\t\t\t\t/* Temporarily store delayed elements to facilite access for global pause/resume */\r\n\t\t\t\t\t\tvar callIndex = Velocity.State.delayedElements.count++;\r\n\t\t\t\t\t\tVelocity.State.delayedElements[callIndex] = element;\r\n\r\n\t\t\t\t\t\tvar delayComplete = (function(index) {\r\n\t\t\t\t\t\t\treturn function() {\r\n\t\t\t\t\t\t\t\t/* Clear the temporary element */\r\n\t\t\t\t\t\t\t\tVelocity.State.delayedElements[index] = false;\r\n\r\n\t\t\t\t\t\t\t\t/* Finally, issue the call */\r\n\t\t\t\t\t\t\t\tnext();\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t})(callIndex);\r\n\r\n\r\n\t\t\t\t\t\tData(element).delayBegin = (new Date()).getTime();\r\n\t\t\t\t\t\tData(element).delay = parseFloat(opts.delay);\r\n\t\t\t\t\t\tData(element).delayTimer = {\r\n\t\t\t\t\t\t\tsetTimeout: setTimeout(next, parseFloat(opts.delay)),\r\n\t\t\t\t\t\t\tnext: delayComplete\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*********************\r\n\t\t\t\t Option: Duration\r\n\t\t\t\t *********************/\r\n\r\n\t\t\t\t/* Support for jQuery's named durations. */\r\n\t\t\t\tswitch (opts.duration.toString().toLowerCase()) {\r\n\t\t\t\t\tcase \"fast\":\r\n\t\t\t\t\t\topts.duration = 200;\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"normal\":\r\n\t\t\t\t\t\topts.duration = DURATION_DEFAULT;\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"slow\":\r\n\t\t\t\t\t\topts.duration = 600;\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t/* Remove the potential \"ms\" suffix and default to 1 if the user is attempting to set a duration of 0 (in order to produce an immediate style change). */\r\n\t\t\t\t\t\topts.duration = parseFloat(opts.duration) || 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/************************\r\n\t\t\t\t Global Option: Mock\r\n\t\t\t\t ************************/\r\n\r\n\t\t\t\tif (Velocity.mock !== false) {\r\n\t\t\t\t\t/* In mock mode, all animations are forced to 1ms so that they occur immediately upon the next rAF tick.\r\n\t\t\t\t\t Alternatively, a multiplier can be passed in to time remap all delays and durations. */\r\n\t\t\t\t\tif (Velocity.mock === true) {\r\n\t\t\t\t\t\topts.duration = opts.delay = 1;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\topts.duration *= parseFloat(Velocity.mock) || 1;\r\n\t\t\t\t\t\topts.delay *= parseFloat(Velocity.mock) || 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*******************\r\n\t\t\t\t Option: Easing\r\n\t\t\t\t *******************/\r\n\r\n\t\t\t\topts.easing = getEasing(opts.easing, opts.duration);\r\n\r\n\t\t\t\t/**********************\r\n\t\t\t\t Option: Callbacks\r\n\t\t\t\t **********************/\r\n\r\n\t\t\t\t/* Callbacks must functions. Otherwise, default to null. */\r\n\t\t\t\tif (opts.begin && !Type.isFunction(opts.begin)) {\r\n\t\t\t\t\topts.begin = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (opts.progress && !Type.isFunction(opts.progress)) {\r\n\t\t\t\t\topts.progress = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (opts.complete && !Type.isFunction(opts.complete)) {\r\n\t\t\t\t\topts.complete = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*********************************\r\n\t\t\t\t Option: Display & Visibility\r\n\t\t\t\t *********************************/\r\n\r\n\t\t\t\t/* Refer to Velocity's documentation (VelocityJS.org/#displayAndVisibility) for a description of the display and visibility options' behavior. */\r\n\t\t\t\t/* Note: We strictly check for undefined instead of falsiness because display accepts an empty string value. */\r\n\t\t\t\tif (opts.display !== undefined && opts.display !== null) {\r\n\t\t\t\t\topts.display = opts.display.toString().toLowerCase();\r\n\r\n\t\t\t\t\t/* Users can pass in a special \"auto\" value to instruct Velocity to set the element to its default display value. */\r\n\t\t\t\t\tif (opts.display === \"auto\") {\r\n\t\t\t\t\t\topts.display = Velocity.CSS.Values.getDisplayType(element);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (opts.visibility !== undefined && opts.visibility !== null) {\r\n\t\t\t\t\topts.visibility = opts.visibility.toString().toLowerCase();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/**********************\r\n\t\t\t\t Option: mobileHA\r\n\t\t\t\t **********************/\r\n\r\n\t\t\t\t/* When set to true, and if this is a mobile device, mobileHA automatically enables hardware acceleration (via a null transform hack)\r\n\t\t\t\t on animating elements. HA is removed from the element at the completion of its animation. */\r\n\t\t\t\t/* Note: Android Gingerbread doesn't support HA. If a null transform hack (mobileHA) is in fact set, it will prevent other tranform subproperties from taking effect. */\r\n\t\t\t\t/* Note: You can read more about the use of mobileHA in Velocity's documentation: VelocityJS.org/#mobileHA. */\r\n\t\t\t\topts.mobileHA = (opts.mobileHA && Velocity.State.isMobile && !Velocity.State.isGingerbread);\r\n\r\n\t\t\t\t/***********************\r\n\t\t\t\t Part II: Queueing\r\n\t\t\t\t ***********************/\r\n\r\n\t\t\t\t/* When a set of elements is targeted by a Velocity call, the set is broken up and each element has the current Velocity call individually queued onto it.\r\n\t\t\t\t In this way, each element's existing queue is respected; some elements may already be animating and accordingly should not have this current Velocity call triggered immediately. */\r\n\t\t\t\t/* In each queue, tween data is processed for each animating property then pushed onto the call-wide calls array. When the last element in the set has had its tweens processed,\r\n\t\t\t\t the call array is pushed to Velocity.State.calls for live processing by the requestAnimationFrame tick. */\r\n\t\t\t\tfunction buildQueue(next) {\r\n\t\t\t\t\tvar data, lastTweensContainer;\r\n\r\n\t\t\t\t\t/*******************\r\n\t\t\t\t\t Option: Begin\r\n\t\t\t\t\t *******************/\r\n\r\n\t\t\t\t\t/* The begin callback is fired once per call -- not once per elemenet -- and is passed the full raw DOM element set as both its context and its first argument. */\r\n\t\t\t\t\tif (opts.begin && elementsIndex === 0) {\r\n\t\t\t\t\t\t/* We throw callbacks in a setTimeout so that thrown errors don't halt the execution of Velocity itself. */\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\topts.begin.call(elements, elements);\r\n\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t\t\tthrow error;\r\n\t\t\t\t\t\t\t}, 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*****************************************\r\n\t\t\t\t\t Tween Data Construction (for Scroll)\r\n\t\t\t\t\t *****************************************/\r\n\r\n\t\t\t\t\t/* Note: In order to be subjected to chaining and animation options, scroll's tweening is routed through Velocity as if it were a standard CSS property animation. */\r\n\t\t\t\t\tif (action === \"scroll\") {\r\n\t\t\t\t\t\t/* The scroll action uniquely takes an optional \"offset\" option -- specified in pixels -- that offsets the targeted scroll position. */\r\n\t\t\t\t\t\tvar scrollDirection = (/^x$/i.test(opts.axis) ? \"Left\" : \"Top\"),\r\n\t\t\t\t\t\t\t\tscrollOffset = parseFloat(opts.offset) || 0,\r\n\t\t\t\t\t\t\t\tscrollPositionCurrent,\r\n\t\t\t\t\t\t\t\tscrollPositionCurrentAlternate,\r\n\t\t\t\t\t\t\t\tscrollPositionEnd;\r\n\r\n\t\t\t\t\t\t/* Scroll also uniquely takes an optional \"container\" option, which indicates the parent element that should be scrolled --\r\n\t\t\t\t\t\t as opposed to the browser window itself. This is useful for scrolling toward an element that's inside an overflowing parent element. */\r\n\t\t\t\t\t\tif (opts.container) {\r\n\t\t\t\t\t\t\t/* Ensure that either a jQuery object or a raw DOM element was passed in. */\r\n\t\t\t\t\t\t\tif (Type.isWrapped(opts.container) || Type.isNode(opts.container)) {\r\n\t\t\t\t\t\t\t\t/* Extract the raw DOM element from the jQuery wrapper. */\r\n\t\t\t\t\t\t\t\topts.container = opts.container[0] || opts.container;\r\n\t\t\t\t\t\t\t\t/* Note: Unlike other properties in Velocity, the browser's scroll position is never cached since it so frequently changes\r\n\t\t\t\t\t\t\t\t (due to the user's natural interaction with the page). */\r\n\t\t\t\t\t\t\t\tscrollPositionCurrent = opts.container[\"scroll\" + scrollDirection]; /* GET */\r\n\r\n\t\t\t\t\t\t\t\t/* $.position() values are relative to the container's currently viewable area (without taking into account the container's true dimensions\r\n\t\t\t\t\t\t\t\t -- say, for example, if the container was not overflowing). Thus, the scroll end value is the sum of the child element's position *and*\r\n\t\t\t\t\t\t\t\t the scroll container's current scroll position. */\r\n\t\t\t\t\t\t\t\tscrollPositionEnd = (scrollPositionCurrent + $(element).position()[scrollDirection.toLowerCase()]) + scrollOffset; /* GET */\r\n\t\t\t\t\t\t\t\t/* If a value other than a jQuery object or a raw DOM element was passed in, default to null so that this option is ignored. */\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\topts.container = null;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t/* If the window itself is being scrolled -- not a containing element -- perform a live scroll position lookup using\r\n\t\t\t\t\t\t\t the appropriate cached property names (which differ based on browser type). */\r\n\t\t\t\t\t\t\tscrollPositionCurrent = Velocity.State.scrollAnchor[Velocity.State[\"scrollProperty\" + scrollDirection]]; /* GET */\r\n\t\t\t\t\t\t\t/* When scrolling the browser window, cache the alternate axis's current value since window.scrollTo() doesn't let us change only one value at a time. */\r\n\t\t\t\t\t\t\tscrollPositionCurrentAlternate = Velocity.State.scrollAnchor[Velocity.State[\"scrollProperty\" + (scrollDirection === \"Left\" ? \"Top\" : \"Left\")]]; /* GET */\r\n\r\n\t\t\t\t\t\t\t/* Unlike $.position(), $.offset() values are relative to the browser window's true dimensions -- not merely its currently viewable area --\r\n\t\t\t\t\t\t\t and therefore end values do not need to be compounded onto current values. */\r\n\t\t\t\t\t\t\tscrollPositionEnd = $(element).offset()[scrollDirection.toLowerCase()] + scrollOffset; /* GET */\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Since there's only one format that scroll's associated tweensContainer can take, we create it manually. */\r\n\t\t\t\t\t\ttweensContainer = {\r\n\t\t\t\t\t\t\tscroll: {\r\n\t\t\t\t\t\t\t\trootPropertyValue: false,\r\n\t\t\t\t\t\t\t\tstartValue: scrollPositionCurrent,\r\n\t\t\t\t\t\t\t\tcurrentValue: scrollPositionCurrent,\r\n\t\t\t\t\t\t\t\tendValue: scrollPositionEnd,\r\n\t\t\t\t\t\t\t\tunitType: \"\",\r\n\t\t\t\t\t\t\t\teasing: opts.easing,\r\n\t\t\t\t\t\t\t\tscrollData: {\r\n\t\t\t\t\t\t\t\t\tcontainer: opts.container,\r\n\t\t\t\t\t\t\t\t\tdirection: scrollDirection,\r\n\t\t\t\t\t\t\t\t\talternateValue: scrollPositionCurrentAlternate\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\telement: element\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\tconsole.log(\"tweensContainer (scroll): \", tweensContainer.scroll, element);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/******************************************\r\n\t\t\t\t\t\t Tween Data Construction (for Reverse)\r\n\t\t\t\t\t\t ******************************************/\r\n\r\n\t\t\t\t\t\t/* Reverse acts like a \"start\" action in that a property map is animated toward. The only difference is\r\n\t\t\t\t\t\t that the property map used for reverse is the inverse of the map used in the previous call. Thus, we manipulate\r\n\t\t\t\t\t\t the previous call to construct our new map: use the previous map's end values as our new map's start values. Copy over all other data. */\r\n\t\t\t\t\t\t/* Note: Reverse can be directly called via the \"reverse\" parameter, or it can be indirectly triggered via the loop option. (Loops are composed of multiple reverses.) */\r\n\t\t\t\t\t\t/* Note: Reverse calls do not need to be consecutively chained onto a currently-animating element in order to operate on cached values;\r\n\t\t\t\t\t\t there is no harm to reverse being called on a potentially stale data cache since reverse's behavior is simply defined\r\n\t\t\t\t\t\t as reverting to the element's values as they were prior to the previous *Velocity* call. */\r\n\t\t\t\t\t} else if (action === \"reverse\") {\r\n\t\t\t\t\t\tdata = Data(element);\r\n\r\n\t\t\t\t\t\t/* Abort if there is no prior animation data to reverse to. */\r\n\t\t\t\t\t\tif (!data) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!data.tweensContainer) {\r\n\t\t\t\t\t\t\t/* Dequeue the element so that this queue entry releases itself immediately, allowing subsequent queue entries to run. */\r\n\t\t\t\t\t\t\t$.dequeue(element, opts.queue);\r\n\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t/*********************\r\n\t\t\t\t\t\t\t Options Parsing\r\n\t\t\t\t\t\t\t *********************/\r\n\r\n\t\t\t\t\t\t\t/* If the element was hidden via the display option in the previous call,\r\n\t\t\t\t\t\t\t revert display to \"auto\" prior to reversal so that the element is visible again. */\r\n\t\t\t\t\t\t\tif (data.opts.display === \"none\") {\r\n\t\t\t\t\t\t\t\tdata.opts.display = \"auto\";\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (data.opts.visibility === \"hidden\") {\r\n\t\t\t\t\t\t\t\tdata.opts.visibility = \"visible\";\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* If the loop option was set in the previous call, disable it so that \"reverse\" calls aren't recursively generated.\r\n\t\t\t\t\t\t\t Further, remove the previous call's callback options; typically, users do not want these to be refired. */\r\n\t\t\t\t\t\t\tdata.opts.loop = false;\r\n\t\t\t\t\t\t\tdata.opts.begin = null;\r\n\t\t\t\t\t\t\tdata.opts.complete = null;\r\n\r\n\t\t\t\t\t\t\t/* Since we're extending an opts object that has already been extended with the defaults options object,\r\n\t\t\t\t\t\t\t we remove non-explicitly-defined properties that are auto-assigned values. */\r\n\t\t\t\t\t\t\tif (!options.easing) {\r\n\t\t\t\t\t\t\t\tdelete opts.easing;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!options.duration) {\r\n\t\t\t\t\t\t\t\tdelete opts.duration;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* The opts object used for reversal is an extension of the options object optionally passed into this\r\n\t\t\t\t\t\t\t reverse call plus the options used in the previous Velocity call. */\r\n\t\t\t\t\t\t\topts = $.extend({}, data.opts, opts);\r\n\r\n\t\t\t\t\t\t\t/*************************************\r\n\t\t\t\t\t\t\t Tweens Container Reconstruction\r\n\t\t\t\t\t\t\t *************************************/\r\n\r\n\t\t\t\t\t\t\t/* Create a deepy copy (indicated via the true flag) of the previous call's tweensContainer. */\r\n\t\t\t\t\t\t\tlastTweensContainer = $.extend(true, {}, data ? data.tweensContainer : null);\r\n\r\n\t\t\t\t\t\t\t/* Manipulate the previous tweensContainer by replacing its end values and currentValues with its start values. */\r\n\t\t\t\t\t\t\tfor (var lastTween in lastTweensContainer) {\r\n\t\t\t\t\t\t\t\t/* In addition to tween data, tweensContainers contain an element property that we ignore here. */\r\n\t\t\t\t\t\t\t\tif (lastTweensContainer.hasOwnProperty(lastTween) && lastTween !== \"element\") {\r\n\t\t\t\t\t\t\t\t\tvar lastStartValue = lastTweensContainer[lastTween].startValue;\r\n\r\n\t\t\t\t\t\t\t\t\tlastTweensContainer[lastTween].startValue = lastTweensContainer[lastTween].currentValue = lastTweensContainer[lastTween].endValue;\r\n\t\t\t\t\t\t\t\t\tlastTweensContainer[lastTween].endValue = lastStartValue;\r\n\r\n\t\t\t\t\t\t\t\t\t/* Easing is the only option that embeds into the individual tween data (since it can be defined on a per-property basis).\r\n\t\t\t\t\t\t\t\t\t Accordingly, every property's easing value must be updated when an options object is passed in with a reverse call.\r\n\t\t\t\t\t\t\t\t\t The side effect of this extensibility is that all per-property easing values are forcefully reset to the new value. */\r\n\t\t\t\t\t\t\t\t\tif (!Type.isEmptyObject(options)) {\r\n\t\t\t\t\t\t\t\t\t\tlastTweensContainer[lastTween].easing = opts.easing;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\t\t\t\tconsole.log(\"reverse tweensContainer (\" + lastTween + \"): \" + JSON.stringify(lastTweensContainer[lastTween]), element);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\ttweensContainer = lastTweensContainer;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/*****************************************\r\n\t\t\t\t\t\t Tween Data Construction (for Start)\r\n\t\t\t\t\t\t *****************************************/\r\n\r\n\t\t\t\t\t} else if (action === \"start\") {\r\n\r\n\t\t\t\t\t\t/*************************\r\n\t\t\t\t\t\t Value Transferring\r\n\t\t\t\t\t\t *************************/\r\n\r\n\t\t\t\t\t\t/* If this queue entry follows a previous Velocity-initiated queue entry *and* if this entry was created\r\n\t\t\t\t\t\t while the element was in the process of being animated by Velocity, then this current call is safe to use\r\n\t\t\t\t\t\t the end values from the prior call as its start values. Velocity attempts to perform this value transfer\r\n\t\t\t\t\t\t process whenever possible in order to avoid requerying the DOM. */\r\n\t\t\t\t\t\t/* If values aren't transferred from a prior call and start values were not forcefed by the user (more on this below),\r\n\t\t\t\t\t\t then the DOM is queried for the element's current values as a last resort. */\r\n\t\t\t\t\t\t/* Note: Conversely, animation reversal (and looping) *always* perform inter-call value transfers; they never requery the DOM. */\r\n\r\n\t\t\t\t\t\tdata = Data(element);\r\n\r\n\t\t\t\t\t\t/* The per-element isAnimating flag is used to indicate whether it's safe (i.e. the data isn't stale)\r\n\t\t\t\t\t\t to transfer over end values to use as start values. If it's set to true and there is a previous\r\n\t\t\t\t\t\t Velocity call to pull values from, do so. */\r\n\t\t\t\t\t\tif (data && data.tweensContainer && data.isAnimating === true) {\r\n\t\t\t\t\t\t\tlastTweensContainer = data.tweensContainer;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/***************************\r\n\t\t\t\t\t\t Tween Data Calculation\r\n\t\t\t\t\t\t ***************************/\r\n\r\n\t\t\t\t\t\t/* This function parses property data and defaults endValue, easing, and startValue as appropriate. */\r\n\t\t\t\t\t\t/* Property map values can either take the form of 1) a single value representing the end value,\r\n\t\t\t\t\t\t or 2) an array in the form of [ endValue, [, easing] [, startValue] ].\r\n\t\t\t\t\t\t The optional third parameter is a forcefed startValue to be used instead of querying the DOM for\r\n\t\t\t\t\t\t the element's current value. Read Velocity's docmentation to learn more about forcefeeding: VelocityJS.org/#forcefeeding */\r\n\t\t\t\t\t\tvar parsePropertyValue = function(valueData, skipResolvingEasing) {\r\n\t\t\t\t\t\t\tvar endValue, easing, startValue;\r\n\r\n\t\t\t\t\t\t\t/* If we have a function as the main argument then resolve it first, in case it returns an array that needs to be split */\r\n\t\t\t\t\t\t\tif (Type.isFunction(valueData)) {\r\n\t\t\t\t\t\t\t\tvalueData = valueData.call(element, elementArrayIndex, elementsLength);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Handle the array format, which can be structured as one of three potential overloads:\r\n\t\t\t\t\t\t\t A) [ endValue, easing, startValue ], B) [ endValue, easing ], or C) [ endValue, startValue ] */\r\n\t\t\t\t\t\t\tif (Type.isArray(valueData)) {\r\n\t\t\t\t\t\t\t\t/* endValue is always the first item in the array. Don't bother validating endValue's value now\r\n\t\t\t\t\t\t\t\t since the ensuing property cycling logic does that. */\r\n\t\t\t\t\t\t\t\tendValue = valueData[0];\r\n\r\n\t\t\t\t\t\t\t\t/* Two-item array format: If the second item is a number, function, or hex string, treat it as a\r\n\t\t\t\t\t\t\t\t start value since easings can only be non-hex strings or arrays. */\r\n\t\t\t\t\t\t\t\tif ((!Type.isArray(valueData[1]) && /^[\\d-]/.test(valueData[1])) || Type.isFunction(valueData[1]) || CSS.RegEx.isHex.test(valueData[1])) {\r\n\t\t\t\t\t\t\t\t\tstartValue = valueData[1];\r\n\t\t\t\t\t\t\t\t\t/* Two or three-item array: If the second item is a non-hex string easing name or an array, treat it as an easing. */\r\n\t\t\t\t\t\t\t\t} else if ((Type.isString(valueData[1]) && !CSS.RegEx.isHex.test(valueData[1]) && Velocity.Easings[valueData[1]]) || Type.isArray(valueData[1])) {\r\n\t\t\t\t\t\t\t\t\teasing = skipResolvingEasing ? valueData[1] : getEasing(valueData[1], opts.duration);\r\n\r\n\t\t\t\t\t\t\t\t\t/* Don't bother validating startValue's value now since the ensuing property cycling logic inherently does that. */\r\n\t\t\t\t\t\t\t\t\tstartValue = valueData[2];\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tstartValue = valueData[1] || valueData[2];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/* Handle the single-value format. */\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tendValue = valueData;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Default to the call's easing if a per-property easing type was not defined. */\r\n\t\t\t\t\t\t\tif (!skipResolvingEasing) {\r\n\t\t\t\t\t\t\t\teasing = easing || opts.easing;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* If functions were passed in as values, pass the function the current element as its context,\r\n\t\t\t\t\t\t\t plus the element's index and the element set's size as arguments. Then, assign the returned value. */\r\n\t\t\t\t\t\t\tif (Type.isFunction(endValue)) {\r\n\t\t\t\t\t\t\t\tendValue = endValue.call(element, elementArrayIndex, elementsLength);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (Type.isFunction(startValue)) {\r\n\t\t\t\t\t\t\t\tstartValue = startValue.call(element, elementArrayIndex, elementsLength);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Allow startValue to be left as undefined to indicate to the ensuing code that its value was not forcefed. */\r\n\t\t\t\t\t\t\treturn [endValue || 0, easing, startValue];\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tvar fixPropertyValue = function(property, valueData) {\r\n\t\t\t\t\t\t\t/* In case this property is a hook, there are circumstances where we will intend to work on the hook's root property and not the hooked subproperty. */\r\n\t\t\t\t\t\t\tvar rootProperty = CSS.Hooks.getRoot(property),\r\n\t\t\t\t\t\t\t\t\trootPropertyValue = false,\r\n\t\t\t\t\t\t\t\t\t/* Parse out endValue, easing, and startValue from the property's data. */\r\n\t\t\t\t\t\t\t\t\tendValue = valueData[0],\r\n\t\t\t\t\t\t\t\t\teasing = valueData[1],\r\n\t\t\t\t\t\t\t\t\tstartValue = valueData[2],\r\n\t\t\t\t\t\t\t\t\tpattern;\r\n\r\n\t\t\t\t\t\t\t/**************************\r\n\t\t\t\t\t\t\t Start Value Sourcing\r\n\t\t\t\t\t\t\t **************************/\r\n\r\n\t\t\t\t\t\t\t/* Other than for the dummy tween property, properties that are not supported by the browser (and do not have an associated normalization) will\r\n\t\t\t\t\t\t\t inherently produce no style changes when set, so they are skipped in order to decrease animation tick overhead.\r\n\t\t\t\t\t\t\t Property support is determined via prefixCheck(), which returns a false flag when no supported is detected. */\r\n\t\t\t\t\t\t\t/* Note: Since SVG elements have some of their properties directly applied as HTML attributes,\r\n\t\t\t\t\t\t\t there is no way to check for their explicit browser support, and so we skip skip this check for them. */\r\n\t\t\t\t\t\t\tif ((!data || !data.isSVG) && rootProperty !== \"tween\" && CSS.Names.prefixCheck(rootProperty)[1] === false && CSS.Normalizations.registered[rootProperty] === undefined) {\r\n\t\t\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\t\t\tconsole.log(\"Skipping [\" + rootProperty + \"] due to a lack of browser support.\");\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* If the display option is being set to a non-\"none\" (e.g. \"block\") and opacity (filter on IE<=8) is being\r\n\t\t\t\t\t\t\t animated to an endValue of non-zero, the user's intention is to fade in from invisible, thus we forcefeed opacity\r\n\t\t\t\t\t\t\t a startValue of 0 if its startValue hasn't already been sourced by value transferring or prior forcefeeding. */\r\n\t\t\t\t\t\t\tif (((opts.display !== undefined && opts.display !== null && opts.display !== \"none\") || (opts.visibility !== undefined && opts.visibility !== \"hidden\")) && /opacity|filter/.test(property) && !startValue && endValue !== 0) {\r\n\t\t\t\t\t\t\t\tstartValue = 0;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* If values have been transferred from the previous Velocity call, extract the endValue and rootPropertyValue\r\n\t\t\t\t\t\t\t for all of the current call's properties that were *also* animated in the previous call. */\r\n\t\t\t\t\t\t\t/* Note: Value transferring can optionally be disabled by the user via the _cacheValues option. */\r\n\t\t\t\t\t\t\tif (opts._cacheValues && lastTweensContainer && lastTweensContainer[property]) {\r\n\t\t\t\t\t\t\t\tif (startValue === undefined) {\r\n\t\t\t\t\t\t\t\t\tstartValue = lastTweensContainer[property].endValue + lastTweensContainer[property].unitType;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* The previous call's rootPropertyValue is extracted from the element's data cache since that's the\r\n\t\t\t\t\t\t\t\t instance of rootPropertyValue that gets freshly updated by the tweening process, whereas the rootPropertyValue\r\n\t\t\t\t\t\t\t\t attached to the incoming lastTweensContainer is equal to the root property's value prior to any tweening. */\r\n\t\t\t\t\t\t\t\trootPropertyValue = data.rootPropertyValueCache[rootProperty];\r\n\t\t\t\t\t\t\t\t/* If values were not transferred from a previous Velocity call, query the DOM as needed. */\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t/* Handle hooked properties. */\r\n\t\t\t\t\t\t\t\tif (CSS.Hooks.registered[property]) {\r\n\t\t\t\t\t\t\t\t\tif (startValue === undefined) {\r\n\t\t\t\t\t\t\t\t\t\trootPropertyValue = CSS.getPropertyValue(element, rootProperty); /* GET */\r\n\t\t\t\t\t\t\t\t\t\t/* Note: The following getPropertyValue() call does not actually trigger a DOM query;\r\n\t\t\t\t\t\t\t\t\t\t getPropertyValue() will extract the hook from rootPropertyValue. */\r\n\t\t\t\t\t\t\t\t\t\tstartValue = CSS.getPropertyValue(element, property, rootPropertyValue);\r\n\t\t\t\t\t\t\t\t\t\t/* If startValue is already defined via forcefeeding, do not query the DOM for the root property's value;\r\n\t\t\t\t\t\t\t\t\t\t just grab rootProperty's zero-value template from CSS.Hooks. This overwrites the element's actual\r\n\t\t\t\t\t\t\t\t\t\t root property value (if one is set), but this is acceptable since the primary reason users forcefeed is\r\n\t\t\t\t\t\t\t\t\t\t to avoid DOM queries, and thus we likewise avoid querying the DOM for the root property's value. */\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t/* Grab this hook's zero-value template, e.g. \"0px 0px 0px black\". */\r\n\t\t\t\t\t\t\t\t\t\trootPropertyValue = CSS.Hooks.templates[rootProperty][1];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t/* Handle non-hooked properties that haven't already been defined via forcefeeding. */\r\n\t\t\t\t\t\t\t\t} else if (startValue === undefined) {\r\n\t\t\t\t\t\t\t\t\tstartValue = CSS.getPropertyValue(element, property); /* GET */\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/**************************\r\n\t\t\t\t\t\t\t Value Data Extraction\r\n\t\t\t\t\t\t\t **************************/\r\n\r\n\t\t\t\t\t\t\tvar separatedValue,\r\n\t\t\t\t\t\t\t\t\tendValueUnitType,\r\n\t\t\t\t\t\t\t\t\tstartValueUnitType,\r\n\t\t\t\t\t\t\t\t\toperator = false;\r\n\r\n\t\t\t\t\t\t\t/* Separates a property value into its numeric value and its unit type. */\r\n\t\t\t\t\t\t\tvar separateValue = function(property, value) {\r\n\t\t\t\t\t\t\t\tvar unitType,\r\n\t\t\t\t\t\t\t\t\t\tnumericValue;\r\n\r\n\t\t\t\t\t\t\t\tnumericValue = (value || \"0\")\r\n\t\t\t\t\t\t\t\t\t\t.toString()\r\n\t\t\t\t\t\t\t\t\t\t.toLowerCase()\r\n\t\t\t\t\t\t\t\t\t\t/* Match the unit type at the end of the value. */\r\n\t\t\t\t\t\t\t\t\t\t.replace(/[%A-z]+$/, function(match) {\r\n\t\t\t\t\t\t\t\t\t\t\t/* Grab the unit type. */\r\n\t\t\t\t\t\t\t\t\t\t\tunitType = match;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t/* Strip the unit type off of value. */\r\n\t\t\t\t\t\t\t\t\t\t\treturn \"\";\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t/* If no unit type was supplied, assign one that is appropriate for this property (e.g. \"deg\" for rotateZ or \"px\" for width). */\r\n\t\t\t\t\t\t\t\tif (!unitType) {\r\n\t\t\t\t\t\t\t\t\tunitType = CSS.Values.getUnitType(property);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn [numericValue, unitType];\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tif (startValue !== endValue && Type.isString(startValue) && Type.isString(endValue)) {\r\n\t\t\t\t\t\t\t\tpattern = \"\";\r\n\t\t\t\t\t\t\t\tvar iStart = 0, // index in startValue\r\n\t\t\t\t\t\t\t\t\t\tiEnd = 0, // index in endValue\r\n\t\t\t\t\t\t\t\t\t\taStart = [], // array of startValue numbers\r\n\t\t\t\t\t\t\t\t\t\taEnd = [], // array of endValue numbers\r\n\t\t\t\t\t\t\t\t\t\tinCalc = 0, // Keep track of being inside a \"calc()\" so we don't duplicate it\r\n\t\t\t\t\t\t\t\t\t\tinRGB = 0, // Keep track of being inside an RGB as we can't use fractional values\r\n\t\t\t\t\t\t\t\t\t\tinRGBA = 0; // Keep track of being inside an RGBA as we must pass fractional for the alpha channel\r\n\r\n\t\t\t\t\t\t\t\tstartValue = CSS.Hooks.fixColors(startValue);\r\n\t\t\t\t\t\t\t\tendValue = CSS.Hooks.fixColors(endValue);\r\n\t\t\t\t\t\t\t\twhile (iStart < startValue.length && iEnd < endValue.length) {\r\n\t\t\t\t\t\t\t\t\tvar cStart = startValue[iStart],\r\n\t\t\t\t\t\t\t\t\t\t\tcEnd = endValue[iEnd];\r\n\r\n\t\t\t\t\t\t\t\t\tif (/[\\d\\.-]/.test(cStart) && /[\\d\\.-]/.test(cEnd)) {\r\n\t\t\t\t\t\t\t\t\t\tvar tStart = cStart, // temporary character buffer\r\n\t\t\t\t\t\t\t\t\t\t\t\ttEnd = cEnd, // temporary character buffer\r\n\t\t\t\t\t\t\t\t\t\t\t\tdotStart = \".\", // Make sure we can only ever match a single dot in a decimal\r\n\t\t\t\t\t\t\t\t\t\t\t\tdotEnd = \".\"; // Make sure we can only ever match a single dot in a decimal\r\n\r\n\t\t\t\t\t\t\t\t\t\twhile (++iStart < startValue.length) {\r\n\t\t\t\t\t\t\t\t\t\t\tcStart = startValue[iStart];\r\n\t\t\t\t\t\t\t\t\t\t\tif (cStart === dotStart) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tdotStart = \"..\"; // Can never match two characters\r\n\t\t\t\t\t\t\t\t\t\t\t} else if (!/\\d/.test(cStart)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\ttStart += cStart;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\twhile (++iEnd < endValue.length) {\r\n\t\t\t\t\t\t\t\t\t\t\tcEnd = endValue[iEnd];\r\n\t\t\t\t\t\t\t\t\t\t\tif (cEnd === dotEnd) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tdotEnd = \"..\"; // Can never match two characters\r\n\t\t\t\t\t\t\t\t\t\t\t} else if (!/\\d/.test(cEnd)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\ttEnd += cEnd;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tvar uStart = CSS.Hooks.getUnit(startValue, iStart), // temporary unit type\r\n\t\t\t\t\t\t\t\t\t\t\t\tuEnd = CSS.Hooks.getUnit(endValue, iEnd); // temporary unit type\r\n\r\n\t\t\t\t\t\t\t\t\t\tiStart += uStart.length;\r\n\t\t\t\t\t\t\t\t\t\tiEnd += uEnd.length;\r\n\t\t\t\t\t\t\t\t\t\tif (uStart === uEnd) {\r\n\t\t\t\t\t\t\t\t\t\t\t// Same units\r\n\t\t\t\t\t\t\t\t\t\t\tif (tStart === tEnd) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Same numbers, so just copy over\r\n\t\t\t\t\t\t\t\t\t\t\t\tpattern += tStart + uStart;\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Different numbers, so store them\r\n\t\t\t\t\t\t\t\t\t\t\t\tpattern += \"{\" + aStart.length + (inRGB ? \"!\" : \"\") + \"}\" + uStart;\r\n\t\t\t\t\t\t\t\t\t\t\t\taStart.push(parseFloat(tStart));\r\n\t\t\t\t\t\t\t\t\t\t\t\taEnd.push(parseFloat(tEnd));\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t// Different units, so put into a \"calc(from + to)\" and animate each side to/from zero\r\n\t\t\t\t\t\t\t\t\t\t\tvar nStart = parseFloat(tStart),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnEnd = parseFloat(tEnd);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tpattern += (inCalc < 5 ? \"calc\" : \"\") + \"(\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t+ (nStart ? \"{\" + aStart.length + (inRGB ? \"!\" : \"\") + \"}\" : \"0\") + uStart\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t+ \" + \"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t+ (nEnd ? \"{\" + (aStart.length + (nStart ? 1 : 0)) + (inRGB ? \"!\" : \"\") + \"}\" : \"0\") + uEnd\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t+ \")\";\r\n\t\t\t\t\t\t\t\t\t\t\tif (nStart) {\r\n\t\t\t\t\t\t\t\t\t\t\t\taStart.push(nStart);\r\n\t\t\t\t\t\t\t\t\t\t\t\taEnd.push(0);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tif (nEnd) {\r\n\t\t\t\t\t\t\t\t\t\t\t\taStart.push(0);\r\n\t\t\t\t\t\t\t\t\t\t\t\taEnd.push(nEnd);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t} else if (cStart === cEnd) {\r\n\t\t\t\t\t\t\t\t\t\tpattern += cStart;\r\n\t\t\t\t\t\t\t\t\t\tiStart++;\r\n\t\t\t\t\t\t\t\t\t\tiEnd++;\r\n\t\t\t\t\t\t\t\t\t\t// Keep track of being inside a calc()\r\n\t\t\t\t\t\t\t\t\t\tif (inCalc === 0 && cStart === \"c\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inCalc === 1 && cStart === \"a\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inCalc === 2 && cStart === \"l\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inCalc === 3 && cStart === \"c\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inCalc >= 4 && cStart === \"(\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\tinCalc++;\r\n\t\t\t\t\t\t\t\t\t\t} else if ((inCalc && inCalc < 5)\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inCalc >= 4 && cStart === \")\" && --inCalc < 5) {\r\n\t\t\t\t\t\t\t\t\t\t\tinCalc = 0;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t// Keep track of being inside an rgb() / rgba()\r\n\t\t\t\t\t\t\t\t\t\tif (inRGB === 0 && cStart === \"r\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inRGB === 1 && cStart === \"g\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inRGB === 2 && cStart === \"b\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inRGB === 3 && cStart === \"a\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inRGB >= 3 && cStart === \"(\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (inRGB === 3 && cStart === \"a\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\tinRGBA = 1;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tinRGB++;\r\n\t\t\t\t\t\t\t\t\t\t} else if (inRGBA && cStart === \",\") {\r\n\t\t\t\t\t\t\t\t\t\t\tif (++inRGBA > 3) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tinRGB = inRGBA = 0;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t} else if ((inRGBA && inRGB < (inRGBA ? 5 : 4))\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inRGB >= (inRGBA ? 4 : 3) && cStart === \")\" && --inRGB < (inRGBA ? 5 : 4)) {\r\n\t\t\t\t\t\t\t\t\t\t\tinRGB = inRGBA = 0;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tinCalc = 0;\r\n\t\t\t\t\t\t\t\t\t\t// TODO: changing units, fixing colours\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (iStart !== startValue.length || iEnd !== endValue.length) {\r\n\t\t\t\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\t\t\t\tconsole.error(\"Trying to pattern match mis-matched strings [\\\"\" + endValue + \"\\\", \\\"\" + startValue + \"\\\"]\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tpattern = undefined;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (pattern) {\r\n\t\t\t\t\t\t\t\t\tif (aStart.length) {\r\n\t\t\t\t\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Pattern found \\\"\" + pattern + \"\\\" -> \", aStart, aEnd, \"[\" + startValue + \",\" + endValue + \"]\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tstartValue = aStart;\r\n\t\t\t\t\t\t\t\t\t\tendValue = aEnd;\r\n\t\t\t\t\t\t\t\t\t\tendValueUnitType = startValueUnitType = \"\";\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tpattern = undefined;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!pattern) {\r\n\t\t\t\t\t\t\t\t/* Separate startValue. */\r\n\t\t\t\t\t\t\t\tseparatedValue = separateValue(property, startValue);\r\n\t\t\t\t\t\t\t\tstartValue = separatedValue[0];\r\n\t\t\t\t\t\t\t\tstartValueUnitType = separatedValue[1];\r\n\r\n\t\t\t\t\t\t\t\t/* Separate endValue, and extract a value operator (e.g. \"+=\", \"-=\") if one exists. */\r\n\t\t\t\t\t\t\t\tseparatedValue = separateValue(property, endValue);\r\n\t\t\t\t\t\t\t\tendValue = separatedValue[0].replace(/^([+-\\/*])=/, function(match, subMatch) {\r\n\t\t\t\t\t\t\t\t\toperator = subMatch;\r\n\r\n\t\t\t\t\t\t\t\t\t/* Strip the operator off of the value. */\r\n\t\t\t\t\t\t\t\t\treturn \"\";\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tendValueUnitType = separatedValue[1];\r\n\r\n\t\t\t\t\t\t\t\t/* Parse float values from endValue and startValue. Default to 0 if NaN is returned. */\r\n\t\t\t\t\t\t\t\tstartValue = parseFloat(startValue) || 0;\r\n\t\t\t\t\t\t\t\tendValue = parseFloat(endValue) || 0;\r\n\r\n\t\t\t\t\t\t\t\t/***************************************\r\n\t\t\t\t\t\t\t\t Property-Specific Value Conversion\r\n\t\t\t\t\t\t\t\t ***************************************/\r\n\r\n\t\t\t\t\t\t\t\t/* Custom support for properties that don't actually accept the % unit type, but where pollyfilling is trivial and relatively foolproof. */\r\n\t\t\t\t\t\t\t\tif (endValueUnitType === \"%\") {\r\n\t\t\t\t\t\t\t\t\t/* A %-value fontSize/lineHeight is relative to the parent's fontSize (as opposed to the parent's dimensions),\r\n\t\t\t\t\t\t\t\t\t which is identical to the em unit's behavior, so we piggyback off of that. */\r\n\t\t\t\t\t\t\t\t\tif (/^(fontSize|lineHeight)$/.test(property)) {\r\n\t\t\t\t\t\t\t\t\t\t/* Convert % into an em decimal value. */\r\n\t\t\t\t\t\t\t\t\t\tendValue = endValue / 100;\r\n\t\t\t\t\t\t\t\t\t\tendValueUnitType = \"em\";\r\n\t\t\t\t\t\t\t\t\t\t/* For scaleX and scaleY, convert the value into its decimal format and strip off the unit type. */\r\n\t\t\t\t\t\t\t\t\t} else if (/^scale/.test(property)) {\r\n\t\t\t\t\t\t\t\t\t\tendValue = endValue / 100;\r\n\t\t\t\t\t\t\t\t\t\tendValueUnitType = \"\";\r\n\t\t\t\t\t\t\t\t\t\t/* For RGB components, take the defined percentage of 255 and strip off the unit type. */\r\n\t\t\t\t\t\t\t\t\t} else if (/(Red|Green|Blue)$/i.test(property)) {\r\n\t\t\t\t\t\t\t\t\t\tendValue = (endValue / 100) * 255;\r\n\t\t\t\t\t\t\t\t\t\tendValueUnitType = \"\";\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/***************************\r\n\t\t\t\t\t\t\t Unit Ratio Calculation\r\n\t\t\t\t\t\t\t ***************************/\r\n\r\n\t\t\t\t\t\t\t/* When queried, the browser returns (most) CSS property values in pixels. Therefore, if an endValue with a unit type of\r\n\t\t\t\t\t\t\t %, em, or rem is animated toward, startValue must be converted from pixels into the same unit type as endValue in order\r\n\t\t\t\t\t\t\t for value manipulation logic (increment/decrement) to proceed. Further, if the startValue was forcefed or transferred\r\n\t\t\t\t\t\t\t from a previous call, startValue may also not be in pixels. Unit conversion logic therefore consists of two steps:\r\n\t\t\t\t\t\t\t 1) Calculating the ratio of %/em/rem/vh/vw relative to pixels\r\n\t\t\t\t\t\t\t 2) Converting startValue into the same unit of measurement as endValue based on these ratios. */\r\n\t\t\t\t\t\t\t/* Unit conversion ratios are calculated by inserting a sibling node next to the target node, copying over its position property,\r\n\t\t\t\t\t\t\t setting values with the target unit type then comparing the returned pixel value. */\r\n\t\t\t\t\t\t\t/* Note: Even if only one of these unit types is being animated, all unit ratios are calculated at once since the overhead\r\n\t\t\t\t\t\t\t of batching the SETs and GETs together upfront outweights the potential overhead\r\n\t\t\t\t\t\t\t of layout thrashing caused by re-querying for uncalculated ratios for subsequently-processed properties. */\r\n\t\t\t\t\t\t\t/* Todo: Shift this logic into the calls' first tick instance so that it's synced with RAF. */\r\n\t\t\t\t\t\t\tvar calculateUnitRatios = function() {\r\n\r\n\t\t\t\t\t\t\t\t/************************\r\n\t\t\t\t\t\t\t\t Same Ratio Checks\r\n\t\t\t\t\t\t\t\t ************************/\r\n\r\n\t\t\t\t\t\t\t\t/* The properties below are used to determine whether the element differs sufficiently from this call's\r\n\t\t\t\t\t\t\t\t previously iterated element to also differ in its unit conversion ratios. If the properties match up with those\r\n\t\t\t\t\t\t\t\t of the prior element, the prior element's conversion ratios are used. Like most optimizations in Velocity,\r\n\t\t\t\t\t\t\t\t this is done to minimize DOM querying. */\r\n\t\t\t\t\t\t\t\tvar sameRatioIndicators = {\r\n\t\t\t\t\t\t\t\t\tmyParent: element.parentNode || document.body, /* GET */\r\n\t\t\t\t\t\t\t\t\tposition: CSS.getPropertyValue(element, \"position\"), /* GET */\r\n\t\t\t\t\t\t\t\t\tfontSize: CSS.getPropertyValue(element, \"fontSize\") /* GET */\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t/* Determine if the same % ratio can be used. % is based on the element's position value and its parent's width and height dimensions. */\r\n\t\t\t\t\t\t\t\t\t\tsamePercentRatio = ((sameRatioIndicators.position === callUnitConversionData.lastPosition) && (sameRatioIndicators.myParent === callUnitConversionData.lastParent)),\r\n\t\t\t\t\t\t\t\t\t\t/* Determine if the same em ratio can be used. em is relative to the element's fontSize. */\r\n\t\t\t\t\t\t\t\t\t\tsameEmRatio = (sameRatioIndicators.fontSize === callUnitConversionData.lastFontSize);\r\n\r\n\t\t\t\t\t\t\t\t/* Store these ratio indicators call-wide for the next element to compare against. */\r\n\t\t\t\t\t\t\t\tcallUnitConversionData.lastParent = sameRatioIndicators.myParent;\r\n\t\t\t\t\t\t\t\tcallUnitConversionData.lastPosition = sameRatioIndicators.position;\r\n\t\t\t\t\t\t\t\tcallUnitConversionData.lastFontSize = sameRatioIndicators.fontSize;\r\n\r\n\t\t\t\t\t\t\t\t/***************************\r\n\t\t\t\t\t\t\t\t Element-Specific Units\r\n\t\t\t\t\t\t\t\t ***************************/\r\n\r\n\t\t\t\t\t\t\t\t/* Note: IE8 rounds to the nearest pixel when returning CSS values, thus we perform conversions using a measurement\r\n\t\t\t\t\t\t\t\t of 100 (instead of 1) to give our ratios a precision of at least 2 decimal values. */\r\n\t\t\t\t\t\t\t\tvar measurement = 100,\r\n\t\t\t\t\t\t\t\t\t\tunitRatios = {};\r\n\r\n\t\t\t\t\t\t\t\tif (!sameEmRatio || !samePercentRatio) {\r\n\t\t\t\t\t\t\t\t\tvar dummy = data && data.isSVG ? document.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\") : document.createElement(\"div\");\r\n\r\n\t\t\t\t\t\t\t\t\tVelocity.init(dummy);\r\n\t\t\t\t\t\t\t\t\tsameRatioIndicators.myParent.appendChild(dummy);\r\n\r\n\t\t\t\t\t\t\t\t\t/* To accurately and consistently calculate conversion ratios, the element's cascaded overflow and box-sizing are stripped.\r\n\t\t\t\t\t\t\t\t\t Similarly, since width/height can be artificially constrained by their min-/max- equivalents, these are controlled for as well. */\r\n\t\t\t\t\t\t\t\t\t/* Note: Overflow must be also be controlled for per-axis since the overflow property overwrites its per-axis values. */\r\n\t\t\t\t\t\t\t\t\t$.each([\"overflow\", \"overflowX\", \"overflowY\"], function(i, property) {\r\n\t\t\t\t\t\t\t\t\t\tVelocity.CSS.setPropertyValue(dummy, property, \"hidden\");\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tVelocity.CSS.setPropertyValue(dummy, \"position\", sameRatioIndicators.position);\r\n\t\t\t\t\t\t\t\t\tVelocity.CSS.setPropertyValue(dummy, \"fontSize\", sameRatioIndicators.fontSize);\r\n\t\t\t\t\t\t\t\t\tVelocity.CSS.setPropertyValue(dummy, \"boxSizing\", \"content-box\");\r\n\r\n\t\t\t\t\t\t\t\t\t/* width and height act as our proxy properties for measuring the horizontal and vertical % ratios. */\r\n\t\t\t\t\t\t\t\t\t$.each([\"minWidth\", \"maxWidth\", \"width\", \"minHeight\", \"maxHeight\", \"height\"], function(i, property) {\r\n\t\t\t\t\t\t\t\t\t\tVelocity.CSS.setPropertyValue(dummy, property, measurement + \"%\");\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t/* paddingLeft arbitrarily acts as our proxy property for the em ratio. */\r\n\t\t\t\t\t\t\t\t\tVelocity.CSS.setPropertyValue(dummy, \"paddingLeft\", measurement + \"em\");\r\n\r\n\t\t\t\t\t\t\t\t\t/* Divide the returned value by the measurement to get the ratio between 1% and 1px. Default to 1 since working with 0 can produce Infinite. */\r\n\t\t\t\t\t\t\t\t\tunitRatios.percentToPxWidth = callUnitConversionData.lastPercentToPxWidth = (parseFloat(CSS.getPropertyValue(dummy, \"width\", null, true)) || 1) / measurement; /* GET */\r\n\t\t\t\t\t\t\t\t\tunitRatios.percentToPxHeight = callUnitConversionData.lastPercentToPxHeight = (parseFloat(CSS.getPropertyValue(dummy, \"height\", null, true)) || 1) / measurement; /* GET */\r\n\t\t\t\t\t\t\t\t\tunitRatios.emToPx = callUnitConversionData.lastEmToPx = (parseFloat(CSS.getPropertyValue(dummy, \"paddingLeft\")) || 1) / measurement; /* GET */\r\n\r\n\t\t\t\t\t\t\t\t\tsameRatioIndicators.myParent.removeChild(dummy);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tunitRatios.emToPx = callUnitConversionData.lastEmToPx;\r\n\t\t\t\t\t\t\t\t\tunitRatios.percentToPxWidth = callUnitConversionData.lastPercentToPxWidth;\r\n\t\t\t\t\t\t\t\t\tunitRatios.percentToPxHeight = callUnitConversionData.lastPercentToPxHeight;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/***************************\r\n\t\t\t\t\t\t\t\t Element-Agnostic Units\r\n\t\t\t\t\t\t\t\t ***************************/\r\n\r\n\t\t\t\t\t\t\t\t/* Whereas % and em ratios are determined on a per-element basis, the rem unit only needs to be checked\r\n\t\t\t\t\t\t\t\t once per call since it's exclusively dependant upon document.body's fontSize. If this is the first time\r\n\t\t\t\t\t\t\t\t that calculateUnitRatios() is being run during this call, remToPx will still be set to its default value of null,\r\n\t\t\t\t\t\t\t\t so we calculate it now. */\r\n\t\t\t\t\t\t\t\tif (callUnitConversionData.remToPx === null) {\r\n\t\t\t\t\t\t\t\t\t/* Default to browsers' default fontSize of 16px in the case of 0. */\r\n\t\t\t\t\t\t\t\t\tcallUnitConversionData.remToPx = parseFloat(CSS.getPropertyValue(document.body, \"fontSize\")) || 16; /* GET */\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* Similarly, viewport units are %-relative to the window's inner dimensions. */\r\n\t\t\t\t\t\t\t\tif (callUnitConversionData.vwToPx === null) {\r\n\t\t\t\t\t\t\t\t\tcallUnitConversionData.vwToPx = parseFloat(window.innerWidth) / 100; /* GET */\r\n\t\t\t\t\t\t\t\t\tcallUnitConversionData.vhToPx = parseFloat(window.innerHeight) / 100; /* GET */\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tunitRatios.remToPx = callUnitConversionData.remToPx;\r\n\t\t\t\t\t\t\t\tunitRatios.vwToPx = callUnitConversionData.vwToPx;\r\n\t\t\t\t\t\t\t\tunitRatios.vhToPx = callUnitConversionData.vhToPx;\r\n\r\n\t\t\t\t\t\t\t\tif (Velocity.debug >= 1) {\r\n\t\t\t\t\t\t\t\t\tconsole.log(\"Unit ratios: \" + JSON.stringify(unitRatios), element);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn unitRatios;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t/********************\r\n\t\t\t\t\t\t\t Unit Conversion\r\n\t\t\t\t\t\t\t ********************/\r\n\r\n\t\t\t\t\t\t\t/* The * and / operators, which are not passed in with an associated unit, inherently use startValue's unit. Skip value and unit conversion. */\r\n\t\t\t\t\t\t\tif (/[\\/*]/.test(operator)) {\r\n\t\t\t\t\t\t\t\tendValueUnitType = startValueUnitType;\r\n\t\t\t\t\t\t\t\t/* If startValue and endValue differ in unit type, convert startValue into the same unit type as endValue so that if endValueUnitType\r\n\t\t\t\t\t\t\t\t is a relative unit (%, em, rem), the values set during tweening will continue to be accurately relative even if the metrics they depend\r\n\t\t\t\t\t\t\t\t on are dynamically changing during the course of the animation. Conversely, if we always normalized into px and used px for setting values, the px ratio\r\n\t\t\t\t\t\t\t\t would become stale if the original unit being animated toward was relative and the underlying metrics change during the animation. */\r\n\t\t\t\t\t\t\t\t/* Since 0 is 0 in any unit type, no conversion is necessary when startValue is 0 -- we just start at 0 with endValueUnitType. */\r\n\t\t\t\t\t\t\t} else if ((startValueUnitType !== endValueUnitType) && startValue !== 0) {\r\n\t\t\t\t\t\t\t\t/* Unit conversion is also skipped when endValue is 0, but *startValueUnitType* must be used for tween values to remain accurate. */\r\n\t\t\t\t\t\t\t\t/* Note: Skipping unit conversion here means that if endValueUnitType was originally a relative unit, the animation won't relatively\r\n\t\t\t\t\t\t\t\t match the underlying metrics if they change, but this is acceptable since we're animating toward invisibility instead of toward visibility,\r\n\t\t\t\t\t\t\t\t which remains past the point of the animation's completion. */\r\n\t\t\t\t\t\t\t\tif (endValue === 0) {\r\n\t\t\t\t\t\t\t\t\tendValueUnitType = startValueUnitType;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t/* By this point, we cannot avoid unit conversion (it's undesirable since it causes layout thrashing).\r\n\t\t\t\t\t\t\t\t\t If we haven't already, we trigger calculateUnitRatios(), which runs once per element per call. */\r\n\t\t\t\t\t\t\t\t\telementUnitConversionData = elementUnitConversionData || calculateUnitRatios();\r\n\r\n\t\t\t\t\t\t\t\t\t/* The following RegEx matches CSS properties that have their % values measured relative to the x-axis. */\r\n\t\t\t\t\t\t\t\t\t/* Note: W3C spec mandates that all of margin and padding's properties (even top and bottom) are %-relative to the *width* of the parent element. */\r\n\t\t\t\t\t\t\t\t\tvar axis = (/margin|padding|left|right|width|text|word|letter/i.test(property) || /X$/.test(property) || property === \"x\") ? \"x\" : \"y\";\r\n\r\n\t\t\t\t\t\t\t\t\t/* In order to avoid generating n^2 bespoke conversion functions, unit conversion is a two-step process:\r\n\t\t\t\t\t\t\t\t\t 1) Convert startValue into pixels. 2) Convert this new pixel value into endValue's unit type. */\r\n\t\t\t\t\t\t\t\t\tswitch (startValueUnitType) {\r\n\t\t\t\t\t\t\t\t\t\tcase \"%\":\r\n\t\t\t\t\t\t\t\t\t\t\t/* Note: translateX and translateY are the only properties that are %-relative to an element's own dimensions -- not its parent's dimensions.\r\n\t\t\t\t\t\t\t\t\t\t\t Velocity does not include a special conversion process to account for this behavior. Therefore, animating translateX/Y from a % value\r\n\t\t\t\t\t\t\t\t\t\t\t to a non-% value will produce an incorrect start value. Fortunately, this sort of cross-unit conversion is rarely done by users in practice. */\r\n\t\t\t\t\t\t\t\t\t\t\tstartValue *= (axis === \"x\" ? elementUnitConversionData.percentToPxWidth : elementUnitConversionData.percentToPxHeight);\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\t\t\tcase \"px\":\r\n\t\t\t\t\t\t\t\t\t\t\t/* px acts as our midpoint in the unit conversion process; do nothing. */\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t\t\t\tstartValue *= elementUnitConversionData[startValueUnitType + \"ToPx\"];\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t/* Invert the px ratios to convert into to the target unit. */\r\n\t\t\t\t\t\t\t\t\tswitch (endValueUnitType) {\r\n\t\t\t\t\t\t\t\t\t\tcase \"%\":\r\n\t\t\t\t\t\t\t\t\t\t\tstartValue *= 1 / (axis === \"x\" ? elementUnitConversionData.percentToPxWidth : elementUnitConversionData.percentToPxHeight);\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\t\t\tcase \"px\":\r\n\t\t\t\t\t\t\t\t\t\t\t/* startValue is already in px, do nothing; we're done. */\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t\t\t\tstartValue *= 1 / elementUnitConversionData[endValueUnitType + \"ToPx\"];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/*********************\r\n\t\t\t\t\t\t\t Relative Values\r\n\t\t\t\t\t\t\t *********************/\r\n\r\n\t\t\t\t\t\t\t/* Operator logic must be performed last since it requires unit-normalized start and end values. */\r\n\t\t\t\t\t\t\t/* Note: Relative *percent values* do not behave how most people think; while one would expect \"+=50%\"\r\n\t\t\t\t\t\t\t to increase the property 1.5x its current value, it in fact increases the percent units in absolute terms:\r\n\t\t\t\t\t\t\t 50 points is added on top of the current % value. */\r\n\t\t\t\t\t\t\tswitch (operator) {\r\n\t\t\t\t\t\t\t\tcase \"+\":\r\n\t\t\t\t\t\t\t\t\tendValue = startValue + endValue;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase \"-\":\r\n\t\t\t\t\t\t\t\t\tendValue = startValue - endValue;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase \"*\":\r\n\t\t\t\t\t\t\t\t\tendValue = startValue * endValue;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase \"/\":\r\n\t\t\t\t\t\t\t\t\tendValue = startValue / endValue;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/**************************\r\n\t\t\t\t\t\t\t tweensContainer Push\r\n\t\t\t\t\t\t\t **************************/\r\n\r\n\t\t\t\t\t\t\t/* Construct the per-property tween object, and push it to the element's tweensContainer. */\r\n\t\t\t\t\t\t\ttweensContainer[property] = {\r\n\t\t\t\t\t\t\t\trootPropertyValue: rootPropertyValue,\r\n\t\t\t\t\t\t\t\tstartValue: startValue,\r\n\t\t\t\t\t\t\t\tcurrentValue: startValue,\r\n\t\t\t\t\t\t\t\tendValue: endValue,\r\n\t\t\t\t\t\t\t\tunitType: endValueUnitType,\r\n\t\t\t\t\t\t\t\teasing: easing\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\tif (pattern) {\r\n\t\t\t\t\t\t\t\ttweensContainer[property].pattern = pattern;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\t\tconsole.log(\"tweensContainer (\" + property + \"): \" + JSON.stringify(tweensContainer[property]), element);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t/* Create a tween out of each property, and append its associated data to tweensContainer. */\r\n\t\t\t\t\t\tfor (var property in propertiesMap) {\r\n\r\n\t\t\t\t\t\t\tif (!propertiesMap.hasOwnProperty(property)) {\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t/* The original property name's format must be used for the parsePropertyValue() lookup,\r\n\t\t\t\t\t\t\t but we then use its camelCase styling to normalize it for manipulation. */\r\n\t\t\t\t\t\t\tvar propertyName = CSS.Names.camelCase(property),\r\n\t\t\t\t\t\t\t\t\tvalueData = parsePropertyValue(propertiesMap[property]);\r\n\r\n\t\t\t\t\t\t\t/* Find shorthand color properties that have been passed a hex string. */\r\n\t\t\t\t\t\t\t/* Would be quicker to use CSS.Lists.colors.includes() if possible */\r\n\t\t\t\t\t\t\tif (_inArray(CSS.Lists.colors, propertyName)) {\r\n\t\t\t\t\t\t\t\t/* Parse the value data for each shorthand. */\r\n\t\t\t\t\t\t\t\tvar endValue = valueData[0],\r\n\t\t\t\t\t\t\t\t\t\teasing = valueData[1],\r\n\t\t\t\t\t\t\t\t\t\tstartValue = valueData[2];\r\n\r\n\t\t\t\t\t\t\t\tif (CSS.RegEx.isHex.test(endValue)) {\r\n\t\t\t\t\t\t\t\t\t/* Convert the hex strings into their RGB component arrays. */\r\n\t\t\t\t\t\t\t\t\tvar colorComponents = [\"Red\", \"Green\", \"Blue\"],\r\n\t\t\t\t\t\t\t\t\t\t\tendValueRGB = CSS.Values.hexToRgb(endValue),\r\n\t\t\t\t\t\t\t\t\t\t\tstartValueRGB = startValue ? CSS.Values.hexToRgb(startValue) : undefined;\r\n\r\n\t\t\t\t\t\t\t\t\t/* Inject the RGB component tweens into propertiesMap. */\r\n\t\t\t\t\t\t\t\t\tfor (var i = 0; i < colorComponents.length; i++) {\r\n\t\t\t\t\t\t\t\t\t\tvar dataArray = [endValueRGB[i]];\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (easing) {\r\n\t\t\t\t\t\t\t\t\t\t\tdataArray.push(easing);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (startValueRGB !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\tdataArray.push(startValueRGB[i]);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tfixPropertyValue(propertyName + colorComponents[i], dataArray);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t/* If we have replaced a shortcut color value then don't update the standard property name */\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tfixPropertyValue(propertyName, valueData);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Along with its property data, store a reference to the element itself onto tweensContainer. */\r\n\t\t\t\t\t\ttweensContainer.element = element;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*****************\r\n\t\t\t\t\t Call Push\r\n\t\t\t\t\t *****************/\r\n\r\n\t\t\t\t\t/* Note: tweensContainer can be empty if all of the properties in this call's property map were skipped due to not\r\n\t\t\t\t\t being supported by the browser. The element property is used for checking that the tweensContainer has been appended to. */\r\n\t\t\t\t\tif (tweensContainer.element) {\r\n\t\t\t\t\t\t/* Apply the \"velocity-animating\" indicator class. */\r\n\t\t\t\t\t\tCSS.Values.addClass(element, \"velocity-animating\");\r\n\r\n\t\t\t\t\t\t/* The call array houses the tweensContainers for each element being animated in the current call. */\r\n\t\t\t\t\t\tcall.push(tweensContainer);\r\n\r\n\t\t\t\t\t\tdata = Data(element);\r\n\r\n\t\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\t\t/* Store the tweensContainer and options if we're working on the default effects queue, so that they can be used by the reverse command. */\r\n\t\t\t\t\t\t\tif (opts.queue === \"\") {\r\n\r\n\t\t\t\t\t\t\t\tdata.tweensContainer = tweensContainer;\r\n\t\t\t\t\t\t\t\tdata.opts = opts;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Switch on the element's animating flag. */\r\n\t\t\t\t\t\t\tdata.isAnimating = true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Once the final element in this call's element set has been processed, push the call array onto\r\n\t\t\t\t\t\t Velocity.State.calls for the animation tick to immediately begin processing. */\r\n\t\t\t\t\t\tif (elementsIndex === elementsLength - 1) {\r\n\t\t\t\t\t\t\t/* Add the current call plus its associated metadata (the element set and the call's options) onto the global call container.\r\n\t\t\t\t\t\t\t Anything on this call container is subjected to tick() processing. */\r\n\t\t\t\t\t\t\tVelocity.State.calls.push([call, elements, opts, null, promiseData.resolver, null, 0]);\r\n\r\n\t\t\t\t\t\t\t/* If the animation tick isn't running, start it. (Velocity shuts it off when there are no active calls to process.) */\r\n\t\t\t\t\t\t\tif (Velocity.State.isTicking === false) {\r\n\t\t\t\t\t\t\t\tVelocity.State.isTicking = true;\r\n\r\n\t\t\t\t\t\t\t\t/* Start the tick loop. */\r\n\t\t\t\t\t\t\t\ttick();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\telementsIndex++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* When the queue option is set to false, the call skips the element's queue and fires immediately. */\r\n\t\t\t\tif (opts.queue === false) {\r\n\t\t\t\t\t/* Since this buildQueue call doesn't respect the element's existing queue (which is where a delay option would have been appended),\r\n\t\t\t\t\t we manually inject the delay property here with an explicit setTimeout. */\r\n\t\t\t\t\tif (opts.delay) {\r\n\r\n\t\t\t\t\t\t/* Temporarily store delayed elements to facilitate access for global pause/resume */\r\n\t\t\t\t\t\tvar callIndex = Velocity.State.delayedElements.count++;\r\n\t\t\t\t\t\tVelocity.State.delayedElements[callIndex] = element;\r\n\r\n\t\t\t\t\t\tvar delayComplete = (function(index) {\r\n\t\t\t\t\t\t\treturn function() {\r\n\t\t\t\t\t\t\t\t/* Clear the temporary element */\r\n\t\t\t\t\t\t\t\tVelocity.State.delayedElements[index] = false;\r\n\r\n\t\t\t\t\t\t\t\t/* Finally, issue the call */\r\n\t\t\t\t\t\t\t\tbuildQueue();\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t})(callIndex);\r\n\r\n\t\t\t\t\t\tData(element).delayBegin = (new Date()).getTime();\r\n\t\t\t\t\t\tData(element).delay = parseFloat(opts.delay);\r\n\t\t\t\t\t\tData(element).delayTimer = {\r\n\t\t\t\t\t\t\tsetTimeout: setTimeout(buildQueue, parseFloat(opts.delay)),\r\n\t\t\t\t\t\t\tnext: delayComplete\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tbuildQueue();\r\n\t\t\t\t\t}\r\n\t\t\t\t\t/* Otherwise, the call undergoes element queueing as normal. */\r\n\t\t\t\t\t/* Note: To interoperate with jQuery, Velocity uses jQuery's own $.queue() stack for queuing logic. */\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$.queue(element, opts.queue, function(next, clearQueue) {\r\n\t\t\t\t\t\t/* If the clearQueue flag was passed in by the stop command, resolve this call's promise. (Promises can only be resolved once,\r\n\t\t\t\t\t\t so it's fine if this is repeatedly triggered for each element in the associated call.) */\r\n\t\t\t\t\t\tif (clearQueue === true) {\r\n\t\t\t\t\t\t\tif (promiseData.promise) {\r\n\t\t\t\t\t\t\t\tpromiseData.resolver(elements);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Do not continue with animation queueing. */\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* This flag indicates to the upcoming completeCall() function that this queue entry was initiated by Velocity.\r\n\t\t\t\t\t\t See completeCall() for further details. */\r\n\t\t\t\t\t\tVelocity.velocityQueueEntryFlag = true;\r\n\r\n\t\t\t\t\t\tbuildQueue(next);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*********************\r\n\t\t\t\t Auto-Dequeuing\r\n\t\t\t\t *********************/\r\n\r\n\t\t\t\t/* As per jQuery's $.queue() behavior, to fire the first non-custom-queue entry on an element, the element\r\n\t\t\t\t must be dequeued if its queue stack consists *solely* of the current call. (This can be determined by checking\r\n\t\t\t\t for the \"inprogress\" item that jQuery prepends to active queue stack arrays.) Regardless, whenever the element's\r\n\t\t\t\t queue is further appended with additional items -- including $.delay()'s or even $.animate() calls, the queue's\r\n\t\t\t\t first entry is automatically fired. This behavior contrasts that of custom queues, which never auto-fire. */\r\n\t\t\t\t/* Note: When an element set is being subjected to a non-parallel Velocity call, the animation will not begin until\r\n\t\t\t\t each one of the elements in the set has reached the end of its individually pre-existing queue chain. */\r\n\t\t\t\t/* Note: Unfortunately, most people don't fully grasp jQuery's powerful, yet quirky, $.queue() function.\r\n\t\t\t\t Lean more here: http://stackoverflow.com/questions/1058158/can-somebody-explain-jquery-queue-to-me */\r\n\t\t\t\tif ((opts.queue === \"\" || opts.queue === \"fx\") && $.queue(element)[0] !== \"inprogress\") {\r\n\t\t\t\t\t$.dequeue(element);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/**************************\r\n\t\t\t Element Set Iteration\r\n\t\t\t **************************/\r\n\r\n\t\t\t/* If the \"nodeType\" property exists on the elements variable, we're animating a single element.\r\n\t\t\t Place it in an array so that $.each() can iterate over it. */\r\n\t\t\t$.each(elements, function(i, element) {\r\n\t\t\t\t/* Ensure each element in a set has a nodeType (is a real element) to avoid throwing errors. */\r\n\t\t\t\tif (Type.isNode(element)) {\r\n\t\t\t\t\tprocessElement(element, i);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t/******************\r\n\t\t\t Option: Loop\r\n\t\t\t ******************/\r\n\r\n\t\t\t/* The loop option accepts an integer indicating how many times the element should loop between the values in the\r\n\t\t\t current call's properties map and the element's property values prior to this call. */\r\n\t\t\t/* Note: The loop option's logic is performed here -- after element processing -- because the current call needs\r\n\t\t\t to undergo its queue insertion prior to the loop option generating its series of constituent \"reverse\" calls,\r\n\t\t\t which chain after the current call. Two reverse calls (two \"alternations\") constitute one loop. */\r\n\t\t\topts = $.extend({}, Velocity.defaults, options);\r\n\t\t\topts.loop = parseInt(opts.loop, 10);\r\n\t\t\tvar reverseCallsCount = (opts.loop * 2) - 1;\r\n\r\n\t\t\tif (opts.loop) {\r\n\t\t\t\t/* Double the loop count to convert it into its appropriate number of \"reverse\" calls.\r\n\t\t\t\t Subtract 1 from the resulting value since the current call is included in the total alternation count. */\r\n\t\t\t\tfor (var x = 0; x < reverseCallsCount; x++) {\r\n\t\t\t\t\t/* Since the logic for the reverse action occurs inside Queueing and therefore this call's options object\r\n\t\t\t\t\t isn't parsed until then as well, the current call's delay option must be explicitly passed into the reverse\r\n\t\t\t\t\t call so that the delay logic that occurs inside *Pre-Queueing* can process it. */\r\n\t\t\t\t\tvar reverseOptions = {\r\n\t\t\t\t\t\tdelay: opts.delay,\r\n\t\t\t\t\t\tprogress: opts.progress\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/* If a complete callback was passed into this call, transfer it to the loop redirect's final \"reverse\" call\r\n\t\t\t\t\t so that it's triggered when the entire redirect is complete (and not when the very first animation is complete). */\r\n\t\t\t\t\tif (x === reverseCallsCount - 1) {\r\n\t\t\t\t\t\treverseOptions.display = opts.display;\r\n\t\t\t\t\t\treverseOptions.visibility = opts.visibility;\r\n\t\t\t\t\t\treverseOptions.complete = opts.complete;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tanimate(elements, \"reverse\", reverseOptions);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/***************\r\n\t\t\t Chaining\r\n\t\t\t ***************/\r\n\r\n\t\t\t/* Return the elements back to the call chain, with wrapped elements taking precedence in case Velocity was called via the $.fn. extension. */\r\n\t\t\treturn getChain();\r\n\t\t};\r\n\r\n\t\t/* Turn Velocity into the animation function, extended with the pre-existing Velocity object. */\r\n\t\tVelocity = $.extend(animate, Velocity);\r\n\t\t/* For legacy support, also expose the literal animate method. */\r\n\t\tVelocity.animate = animate;\r\n\r\n\t\t/**************\r\n\t\t Timing\r\n\t\t **************/\r\n\r\n\t\t/* Ticker function. */\r\n\t\tvar ticker = window.requestAnimationFrame || rAFShim;\r\n\r\n\t\t/* Inactive browser tabs pause rAF, which results in all active animations immediately sprinting to their completion states when the tab refocuses.\r\n\t\t To get around this, we dynamically switch rAF to setTimeout (which the browser *doesn't* pause) when the tab loses focus. We skip this for mobile\r\n\t\t devices to avoid wasting battery power on inactive tabs. */\r\n\t\t/* Note: Tab focus detection doesn't work on older versions of IE, but that's okay since they don't support rAF to begin with. */\r\n\t\tif (!Velocity.State.isMobile && document.hidden !== undefined) {\r\n\t\t\tvar updateTicker = function() {\r\n\t\t\t\t/* Reassign the rAF function (which the global tick() function uses) based on the tab's focus state. */\r\n\t\t\t\tif (document.hidden) {\r\n\t\t\t\t\tticker = function(callback) {\r\n\t\t\t\t\t\t/* The tick function needs a truthy first argument in order to pass its internal timestamp check. */\r\n\t\t\t\t\t\treturn setTimeout(function() {\r\n\t\t\t\t\t\t\tcallback(true);\r\n\t\t\t\t\t\t}, 16);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/* The rAF loop has been paused by the browser, so we manually restart the tick. */\r\n\t\t\t\t\ttick();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tticker = window.requestAnimationFrame || rAFShim;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\t/* Page could be sitting in the background at this time (i.e. opened as new tab) so making sure we use correct ticker from the start */\r\n\t\t\tupdateTicker();\r\n\r\n\t\t\t/* And then run check again every time visibility changes */\r\n\t\t\tdocument.addEventListener(\"visibilitychange\", updateTicker);\r\n\t\t}\r\n\r\n\t\t/************\r\n\t\t Tick\r\n\t\t ************/\r\n\r\n\t\t/* Note: All calls to Velocity are pushed to the Velocity.State.calls array, which is fully iterated through upon each tick. */\r\n\t\tfunction tick(timestamp) {\r\n\t\t\t/* An empty timestamp argument indicates that this is the first tick occurence since ticking was turned on.\r\n\t\t\t We leverage this metadata to fully ignore the first tick pass since RAF's initial pass is fired whenever\r\n\t\t\t the browser's next tick sync time occurs, which results in the first elements subjected to Velocity\r\n\t\t\t calls being animated out of sync with any elements animated immediately thereafter. In short, we ignore\r\n\t\t\t the first RAF tick pass so that elements being immediately consecutively animated -- instead of simultaneously animated\r\n\t\t\t by the same Velocity call -- are properly batched into the same initial RAF tick and consequently remain in sync thereafter. */\r\n\t\t\tif (timestamp) {\r\n\t\t\t\t/* We normally use RAF's high resolution timestamp but as it can be significantly offset when the browser is\r\n\t\t\t\t under high stress we give the option for choppiness over allowing the browser to drop huge chunks of frames.\r\n\t\t\t\t We use performance.now() and shim it if it doesn't exist for when the tab is hidden. */\r\n\t\t\t\tvar timeCurrent = Velocity.timestamp && timestamp !== true ? timestamp : performance.now();\r\n\r\n\t\t\t\t/********************\r\n\t\t\t\t Call Iteration\r\n\t\t\t\t ********************/\r\n\r\n\t\t\t\tvar callsLength = Velocity.State.calls.length;\r\n\r\n\t\t\t\t/* To speed up iterating over this array, it is compacted (falsey items -- calls that have completed -- are removed)\r\n\t\t\t\t when its length has ballooned to a point that can impact tick performance. This only becomes necessary when animation\r\n\t\t\t\t has been continuous with many elements over a long period of time; whenever all active calls are completed, completeCall() clears Velocity.State.calls. */\r\n\t\t\t\tif (callsLength > 10000) {\r\n\t\t\t\t\tVelocity.State.calls = compactSparseArray(Velocity.State.calls);\r\n\t\t\t\t\tcallsLength = Velocity.State.calls.length;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* Iterate through each active call. */\r\n\t\t\t\tfor (var i = 0; i < callsLength; i++) {\r\n\t\t\t\t\t/* When a Velocity call is completed, its Velocity.State.calls entry is set to false. Continue on to the next call. */\r\n\t\t\t\t\tif (!Velocity.State.calls[i]) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/************************\r\n\t\t\t\t\t Call-Wide Variables\r\n\t\t\t\t\t ************************/\r\n\r\n\t\t\t\t\tvar callContainer = Velocity.State.calls[i],\r\n\t\t\t\t\t\t\tcall = callContainer[0],\r\n\t\t\t\t\t\t\topts = callContainer[2],\r\n\t\t\t\t\t\t\ttimeStart = callContainer[3],\r\n\t\t\t\t\t\t\tfirstTick = !timeStart,\r\n\t\t\t\t\t\t\ttweenDummyValue = null,\r\n\t\t\t\t\t\t\tpauseObject = callContainer[5],\r\n\t\t\t\t\t\t\tmillisecondsEllapsed = callContainer[6];\r\n\r\n\r\n\r\n\t\t\t\t\t/* If timeStart is undefined, then this is the first time that this call has been processed by tick().\r\n\t\t\t\t\t We assign timeStart now so that its value is as close to the real animation start time as possible.\r\n\t\t\t\t\t (Conversely, had timeStart been defined when this call was added to Velocity.State.calls, the delay\r\n\t\t\t\t\t between that time and now would cause the first few frames of the tween to be skipped since\r\n\t\t\t\t\t percentComplete is calculated relative to timeStart.) */\r\n\t\t\t\t\t/* Further, subtract 16ms (the approximate resolution of RAF) from the current time value so that the\r\n\t\t\t\t\t first tick iteration isn't wasted by animating at 0% tween completion, which would produce the\r\n\t\t\t\t\t same style value as the element's current value. */\r\n\t\t\t\t\tif (!timeStart) {\r\n\t\t\t\t\t\ttimeStart = Velocity.State.calls[i][3] = timeCurrent - 16;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* If a pause object is present, skip processing unless it has been set to resume */\r\n\t\t\t\t\tif (pauseObject) {\r\n\t\t\t\t\t\tif (pauseObject.resume === true) {\r\n\t\t\t\t\t\t\t/* Update the time start to accomodate the paused completion amount */\r\n\t\t\t\t\t\t\ttimeStart = callContainer[3] = Math.round(timeCurrent - millisecondsEllapsed - 16);\r\n\r\n\t\t\t\t\t\t\t/* Remove pause object after processing */\r\n\t\t\t\t\t\t\tcallContainer[5] = null;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tmillisecondsEllapsed = callContainer[6] = timeCurrent - timeStart;\r\n\r\n\t\t\t\t\t/* The tween's completion percentage is relative to the tween's start time, not the tween's start value\r\n\t\t\t\t\t (which would result in unpredictable tween durations since JavaScript's timers are not particularly accurate).\r\n\t\t\t\t\t Accordingly, we ensure that percentComplete does not exceed 1. */\r\n\t\t\t\t\tvar percentComplete = Math.min((millisecondsEllapsed) / opts.duration, 1);\r\n\r\n\t\t\t\t\t/**********************\r\n\t\t\t\t\t Element Iteration\r\n\t\t\t\t\t **********************/\r\n\r\n\t\t\t\t\t/* For every call, iterate through each of the elements in its set. */\r\n\t\t\t\t\tfor (var j = 0, callLength = call.length; j < callLength; j++) {\r\n\t\t\t\t\t\tvar tweensContainer = call[j],\r\n\t\t\t\t\t\t\t\telement = tweensContainer.element;\r\n\r\n\t\t\t\t\t\t/* Check to see if this element has been deleted midway through the animation by checking for the\r\n\t\t\t\t\t\t continued existence of its data cache. If it's gone, or the element is currently paused, skip animating this element. */\r\n\t\t\t\t\t\tif (!Data(element)) {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar transformPropertyExists = false;\r\n\r\n\t\t\t\t\t\t/**********************************\r\n\t\t\t\t\t\t Display & Visibility Toggling\r\n\t\t\t\t\t\t **********************************/\r\n\r\n\t\t\t\t\t\t/* If the display option is set to non-\"none\", set it upfront so that the element can become visible before tweening begins.\r\n\t\t\t\t\t\t (Otherwise, display's \"none\" value is set in completeCall() once the animation has completed.) */\r\n\t\t\t\t\t\tif (opts.display !== undefined && opts.display !== null && opts.display !== \"none\") {\r\n\t\t\t\t\t\t\tif (opts.display === \"flex\") {\r\n\t\t\t\t\t\t\t\tvar flexValues = [\"-webkit-box\", \"-moz-box\", \"-ms-flexbox\", \"-webkit-flex\"];\r\n\r\n\t\t\t\t\t\t\t\t$.each(flexValues, function(i, flexValue) {\r\n\t\t\t\t\t\t\t\t\tCSS.setPropertyValue(element, \"display\", flexValue);\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tCSS.setPropertyValue(element, \"display\", opts.display);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Same goes with the visibility option, but its \"none\" equivalent is \"hidden\". */\r\n\t\t\t\t\t\tif (opts.visibility !== undefined && opts.visibility !== \"hidden\") {\r\n\t\t\t\t\t\t\tCSS.setPropertyValue(element, \"visibility\", opts.visibility);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/************************\r\n\t\t\t\t\t\t Property Iteration\r\n\t\t\t\t\t\t ************************/\r\n\r\n\t\t\t\t\t\t/* For every element, iterate through each property. */\r\n\t\t\t\t\t\tfor (var property in tweensContainer) {\r\n\t\t\t\t\t\t\t/* Note: In addition to property tween data, tweensContainer contains a reference to its associated element. */\r\n\t\t\t\t\t\t\tif (tweensContainer.hasOwnProperty(property) && property !== \"element\") {\r\n\t\t\t\t\t\t\t\tvar tween = tweensContainer[property],\r\n\t\t\t\t\t\t\t\t\t\tcurrentValue,\r\n\t\t\t\t\t\t\t\t\t\t/* Easing can either be a pre-genereated function or a string that references a pre-registered easing\r\n\t\t\t\t\t\t\t\t\t\t on the Velocity.Easings object. In either case, return the appropriate easing *function*. */\r\n\t\t\t\t\t\t\t\t\t\teasing = Type.isString(tween.easing) ? Velocity.Easings[tween.easing] : tween.easing;\r\n\r\n\t\t\t\t\t\t\t\t/******************************\r\n\t\t\t\t\t\t\t\t Current Value Calculation\r\n\t\t\t\t\t\t\t\t ******************************/\r\n\r\n\t\t\t\t\t\t\t\tif (Type.isString(tween.pattern)) {\r\n\t\t\t\t\t\t\t\t\tvar patternReplace = percentComplete === 1 ?\r\n\t\t\t\t\t\t\t\t\t\t\tfunction($0, index, round) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvar result = tween.endValue[index];\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn round ? Math.round(result) : result;\r\n\t\t\t\t\t\t\t\t\t\t\t} :\r\n\t\t\t\t\t\t\t\t\t\t\tfunction($0, index, round) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvar startValue = tween.startValue[index],\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttweenDelta = tween.endValue[index] - startValue,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult = startValue + (tweenDelta * easing(percentComplete, opts, tweenDelta));\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn round ? Math.round(result) : result;\r\n\t\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t\tcurrentValue = tween.pattern.replace(/{(\\d+)(!)?}/g, patternReplace);\r\n\t\t\t\t\t\t\t\t} else if (percentComplete === 1) {\r\n\t\t\t\t\t\t\t\t\t/* If this is the last tick pass (if we've reached 100% completion for this tween),\r\n\t\t\t\t\t\t\t\t\t ensure that currentValue is explicitly set to its target endValue so that it's not subjected to any rounding. */\r\n\t\t\t\t\t\t\t\t\tcurrentValue = tween.endValue;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t/* Otherwise, calculate currentValue based on the current delta from startValue. */\r\n\t\t\t\t\t\t\t\t\tvar tweenDelta = tween.endValue - tween.startValue;\r\n\r\n\t\t\t\t\t\t\t\t\tcurrentValue = tween.startValue + (tweenDelta * easing(percentComplete, opts, tweenDelta));\r\n\t\t\t\t\t\t\t\t\t/* If no value change is occurring, don't proceed with DOM updating. */\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (!firstTick && (currentValue === tween.currentValue)) {\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\ttween.currentValue = currentValue;\r\n\r\n\t\t\t\t\t\t\t\t/* If we're tweening a fake 'tween' property in order to log transition values, update the one-per-call variable so that\r\n\t\t\t\t\t\t\t\t it can be passed into the progress callback. */\r\n\t\t\t\t\t\t\t\tif (property === \"tween\") {\r\n\t\t\t\t\t\t\t\t\ttweenDummyValue = currentValue;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t/******************\r\n\t\t\t\t\t\t\t\t\t Hooks: Part I\r\n\t\t\t\t\t\t\t\t\t ******************/\r\n\t\t\t\t\t\t\t\t\tvar hookRoot;\r\n\r\n\t\t\t\t\t\t\t\t\t/* For hooked properties, the newly-updated rootPropertyValueCache is cached onto the element so that it can be used\r\n\t\t\t\t\t\t\t\t\t for subsequent hooks in this call that are associated with the same root property. If we didn't cache the updated\r\n\t\t\t\t\t\t\t\t\t rootPropertyValue, each subsequent update to the root property in this tick pass would reset the previous hook's\r\n\t\t\t\t\t\t\t\t\t updates to rootPropertyValue prior to injection. A nice performance byproduct of rootPropertyValue caching is that\r\n\t\t\t\t\t\t\t\t\t subsequently chained animations using the same hookRoot but a different hook can use this cached rootPropertyValue. */\r\n\t\t\t\t\t\t\t\t\tif (CSS.Hooks.registered[property]) {\r\n\t\t\t\t\t\t\t\t\t\thookRoot = CSS.Hooks.getRoot(property);\r\n\r\n\t\t\t\t\t\t\t\t\t\tvar rootPropertyValueCache = Data(element).rootPropertyValueCache[hookRoot];\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (rootPropertyValueCache) {\r\n\t\t\t\t\t\t\t\t\t\t\ttween.rootPropertyValue = rootPropertyValueCache;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t/*****************\r\n\t\t\t\t\t\t\t\t\t DOM Update\r\n\t\t\t\t\t\t\t\t\t *****************/\r\n\r\n\t\t\t\t\t\t\t\t\t/* setPropertyValue() returns an array of the property name and property value post any normalization that may have been performed. */\r\n\t\t\t\t\t\t\t\t\t/* Note: To solve an IE<=8 positioning bug, the unit type is dropped when setting a property value of 0. */\r\n\t\t\t\t\t\t\t\t\tvar adjustedSetData = CSS.setPropertyValue(element, /* SET */\r\n\t\t\t\t\t\t\t\t\t\t\tproperty,\r\n\t\t\t\t\t\t\t\t\t\t\ttween.currentValue + (IE < 9 && parseFloat(currentValue) === 0 ? \"\" : tween.unitType),\r\n\t\t\t\t\t\t\t\t\t\t\ttween.rootPropertyValue,\r\n\t\t\t\t\t\t\t\t\t\t\ttween.scrollData);\r\n\r\n\t\t\t\t\t\t\t\t\t/*******************\r\n\t\t\t\t\t\t\t\t\t Hooks: Part II\r\n\t\t\t\t\t\t\t\t\t *******************/\r\n\r\n\t\t\t\t\t\t\t\t\t/* Now that we have the hook's updated rootPropertyValue (the post-processed value provided by adjustedSetData), cache it onto the element. */\r\n\t\t\t\t\t\t\t\t\tif (CSS.Hooks.registered[property]) {\r\n\t\t\t\t\t\t\t\t\t\t/* Since adjustedSetData contains normalized data ready for DOM updating, the rootPropertyValue needs to be re-extracted from its normalized form. ?? */\r\n\t\t\t\t\t\t\t\t\t\tif (CSS.Normalizations.registered[hookRoot]) {\r\n\t\t\t\t\t\t\t\t\t\t\tData(element).rootPropertyValueCache[hookRoot] = CSS.Normalizations.registered[hookRoot](\"extract\", null, adjustedSetData[1]);\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tData(element).rootPropertyValueCache[hookRoot] = adjustedSetData[1];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t/***************\r\n\t\t\t\t\t\t\t\t\t Transforms\r\n\t\t\t\t\t\t\t\t\t ***************/\r\n\r\n\t\t\t\t\t\t\t\t\t/* Flag whether a transform property is being animated so that flushTransformCache() can be triggered once this tick pass is complete. */\r\n\t\t\t\t\t\t\t\t\tif (adjustedSetData[0] === \"transform\") {\r\n\t\t\t\t\t\t\t\t\t\ttransformPropertyExists = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/****************\r\n\t\t\t\t\t\t mobileHA\r\n\t\t\t\t\t\t ****************/\r\n\r\n\t\t\t\t\t\t/* If mobileHA is enabled, set the translate3d transform to null to force hardware acceleration.\r\n\t\t\t\t\t\t It's safe to override this property since Velocity doesn't actually support its animation (hooks are used in its place). */\r\n\t\t\t\t\t\tif (opts.mobileHA) {\r\n\t\t\t\t\t\t\t/* Don't set the null transform hack if we've already done so. */\r\n\t\t\t\t\t\t\tif (Data(element).transformCache.translate3d === undefined) {\r\n\t\t\t\t\t\t\t\t/* All entries on the transformCache object are later concatenated into a single transform string via flushTransformCache(). */\r\n\t\t\t\t\t\t\t\tData(element).transformCache.translate3d = \"(0px, 0px, 0px)\";\r\n\r\n\t\t\t\t\t\t\t\ttransformPropertyExists = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (transformPropertyExists) {\r\n\t\t\t\t\t\t\tCSS.flushTransformCache(element);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* The non-\"none\" display value is only applied to an element once -- when its associated call is first ticked through.\r\n\t\t\t\t\t Accordingly, it's set to false so that it isn't re-processed by this call in the next tick. */\r\n\t\t\t\t\tif (opts.display !== undefined && opts.display !== \"none\") {\r\n\t\t\t\t\t\tVelocity.State.calls[i][2].display = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (opts.visibility !== undefined && opts.visibility !== \"hidden\") {\r\n\t\t\t\t\t\tVelocity.State.calls[i][2].visibility = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Pass the elements and the timing data (percentComplete, msRemaining, timeStart, tweenDummyValue) into the progress callback. */\r\n\t\t\t\t\tif (opts.progress) {\r\n\t\t\t\t\t\topts.progress.call(callContainer[1],\r\n\t\t\t\t\t\t\t\tcallContainer[1],\r\n\t\t\t\t\t\t\t\tpercentComplete,\r\n\t\t\t\t\t\t\t\tMath.max(0, (timeStart + opts.duration) - timeCurrent),\r\n\t\t\t\t\t\t\t\ttimeStart,\r\n\t\t\t\t\t\t\t\ttweenDummyValue);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* If this call has finished tweening, pass its index to completeCall() to handle call cleanup. */\r\n\t\t\t\t\tif (percentComplete === 1) {\r\n\t\t\t\t\t\tcompleteCall(i);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/* Note: completeCall() sets the isTicking flag to false when the last call on Velocity.State.calls has completed. */\r\n\t\t\tif (Velocity.State.isTicking) {\r\n\t\t\t\tticker(tick);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**********************\r\n\t\t Call Completion\r\n\t\t **********************/\r\n\r\n\t\t/* Note: Unlike tick(), which processes all active calls at once, call completion is handled on a per-call basis. */\r\n\t\tfunction completeCall(callIndex, isStopped) {\r\n\t\t\t/* Ensure the call exists. */\r\n\t\t\tif (!Velocity.State.calls[callIndex]) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t/* Pull the metadata from the call. */\r\n\t\t\tvar call = Velocity.State.calls[callIndex][0],\r\n\t\t\t\t\telements = Velocity.State.calls[callIndex][1],\r\n\t\t\t\t\topts = Velocity.State.calls[callIndex][2],\r\n\t\t\t\t\tresolver = Velocity.State.calls[callIndex][4];\r\n\r\n\t\t\tvar remainingCallsExist = false;\r\n\r\n\t\t\t/*************************\r\n\t\t\t Element Finalization\r\n\t\t\t *************************/\r\n\r\n\t\t\tfor (var i = 0, callLength = call.length; i < callLength; i++) {\r\n\t\t\t\tvar element = call[i].element;\r\n\r\n\t\t\t\t/* If the user set display to \"none\" (intending to hide the element), set it now that the animation has completed. */\r\n\t\t\t\t/* Note: display:none isn't set when calls are manually stopped (via Velocity(\"stop\"). */\r\n\t\t\t\t/* Note: Display gets ignored with \"reverse\" calls and infinite loops, since this behavior would be undesirable. */\r\n\t\t\t\tif (!isStopped && !opts.loop) {\r\n\t\t\t\t\tif (opts.display === \"none\") {\r\n\t\t\t\t\t\tCSS.setPropertyValue(element, \"display\", opts.display);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (opts.visibility === \"hidden\") {\r\n\t\t\t\t\t\tCSS.setPropertyValue(element, \"visibility\", opts.visibility);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* If the element's queue is empty (if only the \"inprogress\" item is left at position 0) or if its queue is about to run\r\n\t\t\t\t a non-Velocity-initiated entry, turn off the isAnimating flag. A non-Velocity-initiatied queue entry's logic might alter\r\n\t\t\t\t an element's CSS values and thereby cause Velocity's cached value data to go stale. To detect if a queue entry was initiated by Velocity,\r\n\t\t\t\t we check for the existence of our special Velocity.queueEntryFlag declaration, which minifiers won't rename since the flag\r\n\t\t\t\t is assigned to jQuery's global $ object and thus exists out of Velocity's own scope. */\r\n\t\t\t\tvar data = Data(element);\r\n\r\n\t\t\t\tif (opts.loop !== true && ($.queue(element)[1] === undefined || !/\\.velocityQueueEntryFlag/i.test($.queue(element)[1]))) {\r\n\t\t\t\t\t/* The element may have been deleted. Ensure that its data cache still exists before acting on it. */\r\n\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\tdata.isAnimating = false;\r\n\t\t\t\t\t\t/* Clear the element's rootPropertyValueCache, which will become stale. */\r\n\t\t\t\t\t\tdata.rootPropertyValueCache = {};\r\n\r\n\t\t\t\t\t\tvar transformHAPropertyExists = false;\r\n\t\t\t\t\t\t/* If any 3D transform subproperty is at its default value (regardless of unit type), remove it. */\r\n\t\t\t\t\t\t$.each(CSS.Lists.transforms3D, function(i, transformName) {\r\n\t\t\t\t\t\t\tvar defaultValue = /^scale/.test(transformName) ? 1 : 0,\r\n\t\t\t\t\t\t\t\t\tcurrentValue = data.transformCache[transformName];\r\n\r\n\t\t\t\t\t\t\tif (data.transformCache[transformName] !== undefined && new RegExp(\"^\\\\(\" + defaultValue + \"[^.]\").test(currentValue)) {\r\n\t\t\t\t\t\t\t\ttransformHAPropertyExists = true;\r\n\r\n\t\t\t\t\t\t\t\tdelete data.transformCache[transformName];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t/* Mobile devices have hardware acceleration removed at the end of the animation in order to avoid hogging the GPU's memory. */\r\n\t\t\t\t\t\tif (opts.mobileHA) {\r\n\t\t\t\t\t\t\ttransformHAPropertyExists = true;\r\n\t\t\t\t\t\t\tdelete data.transformCache.translate3d;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Flush the subproperty removals to the DOM. */\r\n\t\t\t\t\t\tif (transformHAPropertyExists) {\r\n\t\t\t\t\t\t\tCSS.flushTransformCache(element);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Remove the \"velocity-animating\" indicator class. */\r\n\t\t\t\t\t\tCSS.Values.removeClass(element, \"velocity-animating\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*********************\r\n\t\t\t\t Option: Complete\r\n\t\t\t\t *********************/\r\n\r\n\t\t\t\t/* Complete is fired once per call (not once per element) and is passed the full raw DOM element set as both its context and its first argument. */\r\n\t\t\t\t/* Note: Callbacks aren't fired when calls are manually stopped (via Velocity(\"stop\"). */\r\n\t\t\t\tif (!isStopped && opts.complete && !opts.loop && (i === callLength - 1)) {\r\n\t\t\t\t\t/* We throw callbacks in a setTimeout so that thrown errors don't halt the execution of Velocity itself. */\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\topts.complete.call(elements, elements);\r\n\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t\tthrow error;\r\n\t\t\t\t\t\t}, 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/**********************\r\n\t\t\t\t Promise Resolving\r\n\t\t\t\t **********************/\r\n\r\n\t\t\t\t/* Note: Infinite loops don't return promises. */\r\n\t\t\t\tif (resolver && opts.loop !== true) {\r\n\t\t\t\t\tresolver(elements);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/****************************\r\n\t\t\t\t Option: Loop (Infinite)\r\n\t\t\t\t ****************************/\r\n\r\n\t\t\t\tif (data && opts.loop === true && !isStopped) {\r\n\t\t\t\t\t/* If a rotateX/Y/Z property is being animated by 360 deg with loop:true, swap tween start/end values to enable\r\n\t\t\t\t\t continuous iterative rotation looping. (Otherise, the element would just rotate back and forth.) */\r\n\t\t\t\t\t$.each(data.tweensContainer, function(propertyName, tweenContainer) {\r\n\t\t\t\t\t\tif (/^rotate/.test(propertyName) && ((parseFloat(tweenContainer.startValue) - parseFloat(tweenContainer.endValue)) % 360 === 0)) {\r\n\t\t\t\t\t\t\tvar oldStartValue = tweenContainer.startValue;\r\n\r\n\t\t\t\t\t\t\ttweenContainer.startValue = tweenContainer.endValue;\r\n\t\t\t\t\t\t\ttweenContainer.endValue = oldStartValue;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (/^backgroundPosition/.test(propertyName) && parseFloat(tweenContainer.endValue) === 100 && tweenContainer.unitType === \"%\") {\r\n\t\t\t\t\t\t\ttweenContainer.endValue = 0;\r\n\t\t\t\t\t\t\ttweenContainer.startValue = 100;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tVelocity(element, \"reverse\", {loop: true, delay: opts.delay});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/***************\r\n\t\t\t\t Dequeueing\r\n\t\t\t\t ***************/\r\n\r\n\t\t\t\t/* Fire the next call in the queue so long as this call's queue wasn't set to false (to trigger a parallel animation),\r\n\t\t\t\t which would have already caused the next call to fire. Note: Even if the end of the animation queue has been reached,\r\n\t\t\t\t $.dequeue() must still be called in order to completely clear jQuery's animation queue. */\r\n\t\t\t\tif (opts.queue !== false) {\r\n\t\t\t\t\t$.dequeue(element, opts.queue);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/************************\r\n\t\t\t Calls Array Cleanup\r\n\t\t\t ************************/\r\n\r\n\t\t\t/* Since this call is complete, set it to false so that the rAF tick skips it. This array is later compacted via compactSparseArray().\r\n\t\t\t (For performance reasons, the call is set to false instead of being deleted from the array: http://www.html5rocks.com/en/tutorials/speed/v8/) */\r\n\t\t\tVelocity.State.calls[callIndex] = false;\r\n\r\n\t\t\t/* Iterate through the calls array to determine if this was the final in-progress animation.\r\n\t\t\t If so, set a flag to end ticking and clear the calls array. */\r\n\t\t\tfor (var j = 0, callsLength = Velocity.State.calls.length; j < callsLength; j++) {\r\n\t\t\t\tif (Velocity.State.calls[j] !== false) {\r\n\t\t\t\t\tremainingCallsExist = true;\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (remainingCallsExist === false) {\r\n\t\t\t\t/* tick() will detect this flag upon its next iteration and subsequently turn itself off. */\r\n\t\t\t\tVelocity.State.isTicking = false;\r\n\r\n\t\t\t\t/* Clear the calls array so that its length is reset. */\r\n\t\t\t\tdelete Velocity.State.calls;\r\n\t\t\t\tVelocity.State.calls = [];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/******************\r\n\t\t Frameworks\r\n\t\t ******************/\r\n\r\n\t\t/* Both jQuery and Zepto allow their $.fn object to be extended to allow wrapped elements to be subjected to plugin calls.\r\n\t\t If either framework is loaded, register a \"velocity\" extension pointing to Velocity's core animate() method. Velocity\r\n\t\t also registers itself onto a global container (window.jQuery || window.Zepto || window) so that certain features are\r\n\t\t accessible beyond just a per-element scope. This master object contains an .animate() method, which is later assigned to $.fn\r\n\t\t (if jQuery or Zepto are present). Accordingly, Velocity can both act on wrapped DOM elements and stand alone for targeting raw DOM elements. */\r\n\t\tglobal.Velocity = Velocity;\r\n\r\n\t\tif (global !== window) {\r\n\t\t\t/* Assign the element function to Velocity's core animate() method. */\r\n\t\t\tglobal.fn.velocity = animate;\r\n\t\t\t/* Assign the object function's defaults to Velocity's global defaults object. */\r\n\t\t\tglobal.fn.velocity.defaults = Velocity.defaults;\r\n\t\t}\r\n\r\n\t\t/***********************\r\n\t\t Packaged Redirects\r\n\t\t ***********************/\r\n\r\n\t\t/* slideUp, slideDown */\r\n\t\t$.each([\"Down\", \"Up\"], function(i, direction) {\r\n\t\t\tVelocity.Redirects[\"slide\" + direction] = function(element, options, elementsIndex, elementsSize, elements, promiseData) {\r\n\t\t\t\tvar opts = $.extend({}, options),\r\n\t\t\t\t\t\tbegin = opts.begin,\r\n\t\t\t\t\t\tcomplete = opts.complete,\r\n\t\t\t\t\t\tinlineValues = {},\r\n\t\t\t\t\t\tcomputedValues = {height: \"\", marginTop: \"\", marginBottom: \"\", paddingTop: \"\", paddingBottom: \"\"};\r\n\r\n\t\t\t\tif (opts.display === undefined) {\r\n\t\t\t\t\t/* Show the element before slideDown begins and hide the element after slideUp completes. */\r\n\t\t\t\t\t/* Note: Inline elements cannot have dimensions animated, so they're reverted to inline-block. */\r\n\t\t\t\t\topts.display = (direction === \"Down\" ? (Velocity.CSS.Values.getDisplayType(element) === \"inline\" ? \"inline-block\" : \"block\") : \"none\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\topts.begin = function() {\r\n\t\t\t\t\t/* If the user passed in a begin callback, fire it now. */\r\n\t\t\t\t\tif (elementsIndex === 0 && begin) {\r\n\t\t\t\t\t\tbegin.call(elements, elements);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Cache the elements' original vertical dimensional property values so that we can animate back to them. */\r\n\t\t\t\t\tfor (var property in computedValues) {\r\n\t\t\t\t\t\tif (!computedValues.hasOwnProperty(property)) {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tinlineValues[property] = element.style[property];\r\n\r\n\t\t\t\t\t\t/* For slideDown, use forcefeeding to animate all vertical properties from 0. For slideUp,\r\n\t\t\t\t\t\t use forcefeeding to start from computed values and animate down to 0. */\r\n\t\t\t\t\t\tvar propertyValue = CSS.getPropertyValue(element, property);\r\n\t\t\t\t\t\tcomputedValues[property] = (direction === \"Down\") ? [propertyValue, 0] : [0, propertyValue];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Force vertical overflow content to clip so that sliding works as expected. */\r\n\t\t\t\t\tinlineValues.overflow = element.style.overflow;\r\n\t\t\t\t\telement.style.overflow = \"hidden\";\r\n\t\t\t\t};\r\n\r\n\t\t\t\topts.complete = function() {\r\n\t\t\t\t\t/* Reset element to its pre-slide inline values once its slide animation is complete. */\r\n\t\t\t\t\tfor (var property in inlineValues) {\r\n\t\t\t\t\t\tif (inlineValues.hasOwnProperty(property)) {\r\n\t\t\t\t\t\t\telement.style[property] = inlineValues[property];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* If the user passed in a complete callback, fire it now. */\r\n\t\t\t\t\tif (elementsIndex === elementsSize - 1) {\r\n\t\t\t\t\t\tif (complete) {\r\n\t\t\t\t\t\t\tcomplete.call(elements, elements);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (promiseData) {\r\n\t\t\t\t\t\t\tpromiseData.resolver(elements);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tVelocity(element, computedValues, opts);\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\t/* fadeIn, fadeOut */\r\n\t\t$.each([\"In\", \"Out\"], function(i, direction) {\r\n\t\t\tVelocity.Redirects[\"fade\" + direction] = function(element, options, elementsIndex, elementsSize, elements, promiseData) {\r\n\t\t\t\tvar opts = $.extend({}, options),\r\n\t\t\t\t\t\tcomplete = opts.complete,\r\n\t\t\t\t\t\tpropertiesMap = {opacity: (direction === \"In\") ? 1 : 0};\r\n\r\n\t\t\t\t/* Since redirects are triggered individually for each element in the animated set, avoid repeatedly triggering\r\n\t\t\t\t callbacks by firing them only when the final element has been reached. */\r\n\t\t\t\tif (elementsIndex !== 0) {\r\n\t\t\t\t\topts.begin = null;\r\n\t\t\t\t}\r\n\t\t\t\tif (elementsIndex !== elementsSize - 1) {\r\n\t\t\t\t\topts.complete = null;\r\n\t\t\t\t} else {\r\n\t\t\t\t\topts.complete = function() {\r\n\t\t\t\t\t\tif (complete) {\r\n\t\t\t\t\t\t\tcomplete.call(elements, elements);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (promiseData) {\r\n\t\t\t\t\t\t\tpromiseData.resolver(elements);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* If a display was passed in, use it. Otherwise, default to \"none\" for fadeOut or the element-specific default for fadeIn. */\r\n\t\t\t\t/* Note: We allow users to pass in \"null\" to skip display setting altogether. */\r\n\t\t\t\tif (opts.display === undefined) {\r\n\t\t\t\t\topts.display = (direction === \"In\" ? \"auto\" : \"none\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tVelocity(this, propertiesMap, opts);\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\treturn Velocity;\r\n\t}((window.jQuery || window.Zepto || window), window, (window ? window.document : undefined));\r\n}));\r\n\r\n/******************\r\n Known Issues\r\n ******************/\r\n\r\n/* The CSS spec mandates that the translateX/Y/Z transforms are %-relative to the element itself -- not its parent.\r\n Velocity, however, doesn't make this distinction. Thus, converting to or from the % unit with these subproperties\r\n will produce an inaccurate conversion value. The same issue exists with the cx/cy attributes of SVG circles and ellipses. */\r\n\n\n/***/ }),\n/* 950 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*\nCopyright (c) 2015 Twitter, Inc. and other contributors\n\nComponent to add Velocity animations to one or more children. Wraps a single child without adding\nadditional DOM nodes.\n\nThe API attempts to be as declarative as possible. A single animation property declares what\nanimation the child should have. If that property changes, this component applies the new animation\nto the child on the next tick.\n\nBy default, the animation is not run when the component is mounted. Instead, Velocity's \"finish\"\ncommand is used to jump to the animation's end state. For a component that animates out of and\nback in to a default state, this allows the parent to specify the \"animate into\" animation as\nthe default, and therefore not have to distinguish between the initial state and the state to\nreturn to after animating away.\n\nProperties:\n animation: Either an animation key or hash defining the animation. See Velocity's documentation\n for what this can be. (It is passed to Velocity exactly.)\n runOnMount: If true, runs the animation even when the component is first mounted.\n targetQuerySelector: By default, this component's single child is animated. If targetQuerySelector\n is provided, it is used to select descendants to apply the animation to. Use with caution, only\n when you're confident that React's reconciliation will preserve these nodes during animation.\n Also note querySelectorAll's silly behavior w.r.t. pruning results when being called on a node.\n A special value of \"children\" will use the direct children of the node, since there isn't a\n great way to specify that to querySelectorAll.\n interruptBehavior: Sets how the previous animation should behave when the \"animation\" prop is\n changed before it’s done. Default is \"stop\", which halts the animation where it is. \"finish\"\n will jump the animation to its completed appearance. \"queue\" will run the new animation after\n the previous one has finished.\n\nUnrecognized properties are passed as options to Velocity (e.g. \"duration\", \"delay\", \"loop\").\n\nMethods:\n runAnimation: Triggers the animation immediately. Useful for when you want an animation that\n corresponds to an event but not a particular model state change (e.g. a \"bump\" when a click\n occurs).\n*/\n/* eslint react/no-find-dom-node: 0 */\n\nvar _ = {\n forEach: __webpack_require__(207),\n isEqual: __webpack_require__(22),\n keys: __webpack_require__(43),\n omit: __webpack_require__(136)\n};\n\nvar React = __webpack_require__(0);\nvar ReactDOM = __webpack_require__(5);\nvar PropTypes = __webpack_require__(212);\nvar Velocity = __webpack_require__(242);\n\nvar VelocityComponent = function (_React$Component) {\n _inherits(VelocityComponent, _React$Component);\n\n function VelocityComponent(props) {\n _classCallCheck(this, VelocityComponent);\n\n var _this = _possibleConstructorReturn(this, (VelocityComponent.__proto__ || Object.getPrototypeOf(VelocityComponent)).call(this, props));\n\n _this._animationTimeout = null;\n\n // This public method is kept as self-bound to maintain compatibility with the React.createClass\n // version of the component.\n _this.runAnimation = _this.runAnimation.bind(_this);\n return _this;\n }\n\n _createClass(VelocityComponent, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.runAnimation();\n\n // Jump to the end so that the component has the visual appearance of the animation having\n // been run to completion.\n if (this.props.runOnMount !== true) {\n this._finishAnimation();\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(oldProps) {\n if (!_.isEqual(oldProps.animation, this.props.animation)) {\n if (this.props.interruptBehavior === 'stop') {\n this._stopAnimation();\n } else if (this.props.interruptBehavior === 'finish') {\n this._finishAnimation();\n }\n\n this._scheduleAnimation();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this._stopAnimation();\n this._clearVelocityCache(this._getDOMTarget());\n\n if (this._animationTimeout) {\n clearTimeout(this._animationTimeout);\n }\n }\n\n // It's ok to call this externally! By default the animation will be queued up. Pass stop: true in\n // to stop the current animation before running. Pass finish: true to finish the current animation\n // before running.\n\n }, {\n key: 'runAnimation',\n value: function runAnimation(config) {\n config = config || {};\n\n this._animationTimeout = null;\n\n if (this.props.animation == null) {\n return;\n }\n\n if (config.stop) {\n Velocity(this._getDOMTarget(), 'stop', true);\n } else if (config.finish) {\n Velocity(this._getDOMTarget(), 'finishAll', true);\n }\n\n // Delegate all props except for the ones that we have specified as our own via propTypes.\n var opts = _.omit(this.props, _.keys(VelocityComponent.propTypes));\n Velocity(this._getDOMTarget(), this.props.animation, opts);\n }\n\n // We trigger animations on a new tick because of a Velocity bug where adding a\n // multi-step animation from within a complete callback causes the first 2 animations to run\n // simultaneously.\n\n }, {\n key: '_scheduleAnimation',\n value: function _scheduleAnimation() {\n if (this._animationTimeout) {\n return;\n }\n\n this._animationTimeout = setTimeout(this.runAnimation, 0);\n }\n\n // Returns one or more DOM nodes to apply the animation to. This is checked every time we start\n // or stop an animation, which means that if an animation is proceeding but the element is removed\n // from the page, it will run its course rather than ever being stopped. (We go this route\n // because of difficulty in tracking what animations are currently being animated, due to both\n // chained animations and the need to be able to \"stop\" an animation before it begins.)\n\n }, {\n key: '_getDOMTarget',\n value: function _getDOMTarget() {\n var node = ReactDOM.findDOMNode(this);\n\n if (this.props.targetQuerySelector === 'children') {\n return node.children;\n } else if (this.props.targetQuerySelector != null) {\n return node.querySelectorAll(this.props.targetQuerySelector);\n } else {\n return node;\n }\n }\n }, {\n key: '_finishAnimation',\n value: function _finishAnimation() {\n Velocity(this._getDOMTarget(), 'finishAll', true);\n }\n }, {\n key: '_stopAnimation',\n value: function _stopAnimation() {\n Velocity(this._getDOMTarget(), 'stop', true);\n }\n\n // Velocity keeps extensive caches for all animated elements to minimize layout thrashing.\n // This can cause a serious memory leak, keeping references to unmounted elements as well\n // completion handlers and associated react objects. This crudely clears these references.\n\n }, {\n key: '_clearVelocityCache',\n value: function _clearVelocityCache(target) {\n if (target.length) {\n _.forEach(target, this._clearVelocityCache);\n } else {\n Velocity.Utilities.removeData(target, ['velocity', 'fxqueue']);\n }\n }\n\n // This component does not include any DOM footprint of its own, so instead we return our\n // child out of render(). (Render must only return a single element, which restricts us to\n // one child. If you want to animate multiple children, provide your own wrapper element and\n // use the \"targetQuerySelector\" prop to target its children.)\n\n }, {\n key: 'render',\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return VelocityComponent;\n}(React.Component);\n\nVelocityComponent.propTypes = {\n animation: PropTypes.any,\n children: PropTypes.element.isRequired,\n runOnMount: PropTypes.bool,\n targetQuerySelector: PropTypes.string,\n interruptBehavior: PropTypes.string\n // Any additional properties will be sent as options to Velocity\n};\n\nVelocityComponent.defaultProps = {\n animation: null,\n runOnMount: false,\n targetQuerySelector: null,\n interruptBehavior: 'stop'\n};\n\nmodule.exports = VelocityComponent;\n\n/***/ }),\n/* 951 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Copyright (c) 2015 Twitter, Inc. and other contributors\n\nvar _ = {\n isObject: __webpack_require__(21)\n};\nvar Velocity = __webpack_require__(242);\n\nvar effectCounter = 0;\n\n// Takes a Velocity \"UI pack effect\" definition and registers it with a unique key, returning that\n// key (to later pass as a value for the \"animation\" property). Takes an optional suffix, which can\n// be \"In\" or \"Out\" to modify UI Pack's behavior.\n//\n// Unlike what you get from passing a style hash to VelocityComponent's \"animation\" property,\n// Velocity \"UI pack effects\" can have chained animation calls and specify a \"defaultDuration\", and\n// also can take advantage of \"stagger\" and \"reverse\" options on the VelocityComponent.\n//\n// You will need to manually register the UI Pack with the global Velocity in your application with:\n//\n// require('velocity');\n// require('velocity-animate/velocity.ui');\n//\n// See: http://julian.com/research/velocity/#uiPack\n//\n// Typical usage:\n//\n// var Animations = {\n// down: VelocityHelpers.registerEffect({\n// defaultDuration: 1100,\n// calls: [\n// [{\n// transformOriginX: [ '50%', '50%' ],\n// transformOriginY: [ 0, 0 ],\n// rotateX: [0, 'spring'],\n// }, 1, {\n// delay: 100,\n// easing: 'ease-in',\n// }]\n// ],\n// }),\n//\n// up: VelocityHelpers.registerEffect({\n// defaultDuration: 200,\n// calls: [\n// [{\n// transformOriginX: [ '50%', '50%' ],\n// transformOriginY: [ 0, 0 ],\n// rotateX: 160,\n// }]\n// ],\n// }),\n// };\n// ...\n// \n// ...\n// \nfunction registerEffect(suffix, animation) {\n if (_.isObject(suffix)) {\n animation = suffix;\n suffix = '';\n }\n\n var key = 'VelocityHelper.animation.' + effectCounter++ + suffix;\n\n // No-op on the server for now.\n if (Velocity.velocityReactServerShim) {\n return key;\n }\n\n if (Velocity.RegisterEffect === undefined) {\n throw \"Velocity.RegisterEffect not found. You need to require 'velocity-animate/velocity.ui' at a top level for UI Pack.\";\n }\n\n Velocity.RegisterEffect(key, animation);\n return key;\n}\n\nmodule.exports = {\n registerEffect: registerEffect\n};\n\n/***/ }),\n/* 952 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*\nCopyright (c) 2015 Twitter, Inc. and other contributors\n\nComponent to add Velocity animations around React transitions. Delegates to the React TransitionGroup\naddon.\n\nProperties\n enter: Animation to run on a child component being added\n leave: Animation to run on a child component leaving\n runOnMount: if true, runs the \"enter\" animation on the elements that exist as children when this\n component is mounted.\n enterHideStyle/enterShowStyle: see below.\n\nAny additional properties (e.g. \"className\", \"component\") will be passed to the internal\nTransitionGroup.\n\n\"enter\" and \"leave\" should either be a string naming an animation, or a hash with an\n\"animation\" key that can either be a string itself, or a hash of style attributes to animate (this\nvalue is passed to Velocity its the first arg).\n\nIf \"enter\" or \"leave\" is a hash, it can additionally have a \"style\" value that is applied the tick\nbefore the Velocity animation starts. Use this for non-animating properties (like \"position\") that\nare prerequisites for correct animation. The style value is applied using Velocity's JS -> CSS\nroutines, which may differ from React's.\n\nAny hash entries beyond \"animation\" and \"style\" are passed in an options hash to Velocity. Use this\nfor options like \"stagger\", \"reverse\", &tc.\n\nBy default, this component will immediately hide all entering children with display: 'none', and\nunhide them one tick later with display: ''. This is done so that we can coalesce multiple enters\ninto a single animation, and we want to avoid any popping of elements in while they're collected. If\nyou prefer a different way of hiding these elements so that e.g. geometry can be immediately\ncalculated, use the enterHideStyle and enterShowStyle props to provide alternate style hashes for\nhiding and revealing entering elements.\n\nStatics\n disabledForTest: Set this to true globally to turn off all custom animation logic. Instead, this\n component will behave like a vanilla TransitionGroup.\n\nInspired by https://gist.github.com/tkafka/0d94c6ec94297bb67091\n*/\n/* eslint react/no-find-dom-node: 0 */\n\nvar _ = {\n each: __webpack_require__(760),\n extend: __webpack_require__(761),\n forEach: __webpack_require__(207),\n isEqual: __webpack_require__(22),\n keys: __webpack_require__(43),\n omit: __webpack_require__(136),\n map: __webpack_require__(373)\n};\nvar React = __webpack_require__(0);\nvar ReactDOM = __webpack_require__(5);\nvar PropTypes = __webpack_require__(212);\nvar TransitionGroup = __webpack_require__(218);\nvar Transition = __webpack_require__(217).default;\nvar Velocity = __webpack_require__(242);\n\n// Shim requestAnimationFrame for browsers that don't support it, in particular IE 9.\nvar shimRequestAnimationFrame = typeof window !== 'undefined' && (window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (callback) {\n window.setTimeout(callback, 0);\n});\n\n// Fix 'Invalid calling object' error in IE\nshimRequestAnimationFrame = typeof window !== 'undefined' && shimRequestAnimationFrame.bind(window);\n\nvar shimCancelAnimationFrame = typeof window !== 'undefined' && (window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function (timeout) {\n window.clearTimeout(timeout);\n});\n\nshimCancelAnimationFrame = typeof window !== 'undefined' && shimCancelAnimationFrame.bind(window);\n\n// Internal wrapper for the transitioned elements. Delegates all child lifecycle events to the\n// parent VelocityTransitionGroup so that it can co-ordinate animating all of the elements at once.\n\nvar VelocityTransitionGroupChild = function (_React$Component) {\n _inherits(VelocityTransitionGroupChild, _React$Component);\n\n function VelocityTransitionGroupChild() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, VelocityTransitionGroupChild);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = VelocityTransitionGroupChild.__proto__ || Object.getPrototypeOf(VelocityTransitionGroupChild)).call.apply(_ref, [this].concat(args))), _this), _this.lastState = 'appear', _this.componentWillEnter = function (node, appearing) {\n _this.lastState = appearing ? 'appear' : 'enter';\n }, _this.componentWillExit = function () {\n _this.lastState = 'exit';\n }, _this.endListener = function (node, done) {\n switch (_this.lastState) {\n case 'appear':\n _this.props.willAppearFunc(node, done);\n break;\n case 'enter':\n _this.props.willEnterFunc(node, done);\n break;\n case 'exit':\n _this.props.willLeaveFunc(node, done);\n break;\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n // We trigger our transitions out of endListener because that gives us access to the done callback\n // we can use to tell the Transition that the animation has completed.\n\n\n _createClass(VelocityTransitionGroupChild, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n // Clear references from velocity cache.\n Velocity.Utilities.removeData(ReactDOM.findDOMNode(this), ['velocity', 'fxqueue']);\n }\n }, {\n key: 'render',\n value: function render() {\n var transitionProps = _.omit(this.props, _.keys(VelocityTransitionGroupChild.propTypes));\n\n return React.createElement(Transition, _extends({}, transitionProps, {\n timeout: null,\n addEndListener: this.endListener,\n appear: true,\n onEnter: this.componentWillEnter,\n onExit: this.componentWillExit\n }), this.props.children);\n }\n }]);\n\n return VelocityTransitionGroupChild;\n}(React.Component);\n\nVelocityTransitionGroupChild.propTypes = {\n children: PropTypes.element.isRequired,\n willAppearFunc: PropTypes.func.isRequired,\n willEnterFunc: PropTypes.func.isRequired,\n willLeaveFunc: PropTypes.func.isRequired\n};\n\nvar VelocityTransitionGroup = function (_React$Component2) {\n _inherits(VelocityTransitionGroup, _React$Component2);\n\n function VelocityTransitionGroup(props) {\n _classCallCheck(this, VelocityTransitionGroup);\n\n var _this2 = _possibleConstructorReturn(this, (VelocityTransitionGroup.__proto__ || Object.getPrototypeOf(VelocityTransitionGroup)).call(this, props));\n\n _this2._scheduledAnimationFrame = null;\n _this2._scheduledAnimationRunFrames = [];\n _this2._entering = [];\n _this2._leaving = [];\n\n _this2._timers = [];\n _this2._unmounted = false;\n\n _this2.childWillAppear = _this2.childWillAppear.bind(_this2);\n _this2.childWillEnter = _this2.childWillEnter.bind(_this2);\n _this2.childWillLeave = _this2.childWillLeave.bind(_this2);\n\n _this2._runAnimations = _this2._runAnimations.bind(_this2);\n _this2._wrapChild = _this2._wrapChild.bind(_this2);\n return _this2;\n }\n\n _createClass(VelocityTransitionGroup, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this._scheduledAnimationFrame) {\n shimCancelAnimationFrame(this._scheduledAnimationFrame);\n }\n\n _.forEach(this._timers, function (timer) {\n clearTimeout(timer);\n });\n\n _.forEach(this._scheduledAnimationRunFrames, function (frame) {\n shimCancelAnimationFrame(frame);\n });\n\n // We don't cancel all the in-process animations, so we use this to know if the component\n // is gone when an animation is over.\n this._unmounted = true;\n }\n }, {\n key: 'render',\n value: function render() {\n // Pass any props that are not our own on into the TransitionGroup delegate.\n var transitionGroupProps = _.omit(this.props, _.keys(VelocityTransitionGroup.propTypes));\n\n return React.createElement(TransitionGroup, transitionGroupProps, !this.constructor.disabledForTest && !Velocity.velocityReactServerShim ? React.Children.map(this.props.children, this._wrapChild) : React.Children.map(this.props.children,\n // Wrapping in a no-op Transition to consume the props that\n // TransitionGroup gives its children. Fixes react-dom warnings\n // in test for those props appearing on divs and such.\n function (child) {\n return child && React.createElement(Transition, { timeout: 0 }, child);\n }));\n }\n }, {\n key: 'childWillAppear',\n value: function childWillAppear(node, doneFn) {\n var _this3 = this;\n\n if (this.props.runOnMount) {\n this.childWillEnter(node, doneFn);\n } else {\n this._finishAnimation(node, this.props.enter);\n\n // Important to tick over so that any callbacks due to finishing the animation complete first.\n //\n // Using setTimeout so that doneFn gets called even when the tab is hidden.\n var t = setTimeout(function () {\n var idx = _this3._timers.indexOf(t);\n if (idx >= 0) {\n _this3._timers.splice(idx, 1);\n }\n\n doneFn();\n }, 0);\n this._timers.push(t);\n }\n }\n }, {\n key: 'childWillEnter',\n value: function childWillEnter(node, doneFn) {\n if (this._shortCircuitAnimation(this.props.enter, doneFn)) return;\n\n // By finishing a \"leave\" on the element, we put it in the right state to be animated in. Useful\n // if \"leave\" includes a rotation or something that we'd like to have as our starting point, for\n // symmetry.\n // We use overrideOpts to prevent any \"begin\" or \"complete\" callback from triggering in this case, since\n // it doesn't make a ton of sense.\n this._finishAnimation(node, this.props.leave, {\n begin: undefined,\n complete: undefined\n });\n\n // We're not going to start the animation for a tick, so set the node's display to none (or any\n // custom \"hide\" style provided) so that it doesn't flash in.\n _.forEach(this.props.enterHideStyle, function (val, key) {\n Velocity.CSS.setPropertyValue(node, key, val);\n });\n\n this._entering.push({\n node: node,\n doneFn: doneFn\n });\n\n this._schedule();\n }\n }, {\n key: 'childWillLeave',\n value: function childWillLeave(node, doneFn) {\n if (this._shortCircuitAnimation(this.props.leave, doneFn)) return;\n\n this._leaving.push({\n node: node,\n doneFn: doneFn\n });\n\n this._schedule();\n }\n\n // document.hidden check is there because animation completion callbacks won't fire (due to\n // chaining off of rAF), which would prevent entering / leaving DOM nodes from being cleaned up\n // while the tab is hidden.\n //\n // Returns true if this did short circuit, false if lifecycle methods should continue with\n // their animations.\n\n }, {\n key: '_shortCircuitAnimation',\n value: function _shortCircuitAnimation(animationProp, doneFn) {\n if (document.hidden || this._parseAnimationProp(animationProp).animation == null) {\n doneFn();\n\n return true;\n } else {\n return false;\n }\n }\n }, {\n key: '_schedule',\n value: function _schedule() {\n if (this._scheduledAnimationFrame) {\n return;\n }\n\n // Need rAF to make sure we're in the same event queue as Velocity from here out. Important\n // for avoiding getting wrong interleaving with Velocity callbacks.\n this._scheduledAnimationFrame = shimRequestAnimationFrame(this._runAnimations);\n }\n\n // arrow function because this is used as an rAF callback\n\n }, {\n key: '_runAnimations',\n value: function _runAnimations() {\n this._scheduledAnimationFrame = null;\n\n this._runAnimation(true, this._entering, this.props.enter);\n this._runAnimation(false, this._leaving, this.props.leave);\n\n this._entering = [];\n this._leaving = [];\n }\n\n // Used to parse out the 'enter' and 'leave' properties. Handles cases where they are omitted\n // as well as when they are just strings and not hashes of animation and options.\n\n }, {\n key: '_parseAnimationProp',\n value: function _parseAnimationProp(animationProp) {\n var animation, opts, style;\n\n if (typeof animationProp === 'string') {\n animation = animationProp;\n style = null;\n opts = {};\n } else {\n animation = animationProp != null ? animationProp.animation : null;\n style = animationProp != null ? animationProp.style : null;\n opts = _.omit(animationProp, 'animation', 'style');\n }\n\n return {\n animation: animation,\n style: style,\n opts: opts\n };\n }\n }, {\n key: '_runAnimation',\n value: function _runAnimation(entering, queue, animationProp) {\n var _this4 = this;\n\n if (queue.length === 0) {\n return;\n }\n\n var nodes = _.map(queue, 'node');\n var doneFns = _.map(queue, 'doneFn');\n\n var parsedAnimation = this._parseAnimationProp(animationProp);\n var animation = parsedAnimation.animation;\n var style = parsedAnimation.style;\n var opts = parsedAnimation.opts;\n\n // Clearing display reverses the behavior from childWillAppear where all elements are added with\n // display: none to prevent them from flashing in before the animation starts. We don't do this\n // for the fade/slide animations or any animation that ends in \"In,\" since Velocity will handle\n // it for us.\n //\n // If a custom \"enterShowStyle\" prop is passed, (i.e. not one that just reverses display: none)\n // we always run it, regardless of the animation, since it's probably doing something around\n // opacity or positioning that Velocity will not necessarily reset.\n if (entering) {\n if (!_.isEqual(this.props.enterShowStyle, { display: '' }) || !(/^(fade|slide)/.test(animation) || /In$/.test(animation))) {\n style = _.extend({}, this.props.enterShowStyle, style);\n }\n }\n\n // Because Safari can synchronously repaint when CSS \"display\" is reset, we set styles for all\n // browsers before the rAF tick below that starts the animation. This way you know in all\n // cases that you need to support your static styles being visible on the element before\n // the animation begins.\n if (style != null) {\n _.each(style, function (value, key) {\n Velocity.hook(nodes, key, value);\n });\n }\n\n var doneFn = function doneFn() {\n // calling doneFns after the parent has unmounted leads to errors\n if (_this4._unmounted) {\n return;\n }\n\n doneFns.map(function (doneFn) {\n doneFn();\n });\n };\n\n // For nodes that are entering, we tell the TransitionGroup that we're done with them\n // immediately. That way, they can be removed later before their entering animations complete.\n // If we're leaving, we stop current animations (which may be partially-completed enter\n // animations) so that we can then animate out. Velocity typically makes these transitions\n // very smooth, correctly animating from whatever state the element is currently in.\n if (entering) {\n doneFn();\n doneFn = null;\n } else {\n Velocity(nodes, 'stop');\n }\n\n var combinedCompleteFn;\n if (doneFn && opts.complete) {\n var optsCompleteFn = opts.complete;\n combinedCompleteFn = function combinedCompleteFn() {\n doneFn();\n // preserve this / args from Velocity so the complete function has context for what completed\n optsCompleteFn.apply(this, arguments);\n };\n } else {\n // One or the other or neither.\n combinedCompleteFn = doneFn || opts.complete;\n }\n\n // Bit of a hack. Without this rAF, sometimes an enter animation doesn't start running, or is\n // stopped before getting anywhere. This should get us on the other side of both completeFn and\n // any _finishAnimation that's happening.\n var t = shimRequestAnimationFrame(function () {\n var idx = _this4._scheduledAnimationRunFrames.indexOf(t);\n if (idx >= 0) {\n _this4._scheduledAnimationRunFrames.splice(idx, 1);\n }\n\n Velocity(nodes, animation, _.extend({}, opts, {\n complete: combinedCompleteFn\n }));\n });\n\n this._scheduledAnimationRunFrames.push(t);\n }\n }, {\n key: '_finishAnimation',\n value: function _finishAnimation(node, animationProp, overrideOpts) {\n var parsedAnimation = this._parseAnimationProp(animationProp);\n var animation = parsedAnimation.animation;\n var style = parsedAnimation.style;\n var opts = _.extend({}, parsedAnimation.opts, overrideOpts);\n\n if (style != null) {\n _.each(style, function (value, key) {\n Velocity.hook(node, key, value);\n });\n }\n\n if (animation != null) {\n // Opts are relevant even though we're immediately finishing, since things like \"display\"\n // can affect the animation outcome.\n\n Velocity(node, animation, opts);\n Velocity(node, 'finishAll', true);\n }\n }\n }, {\n key: '_wrapChild',\n value: function _wrapChild(child) {\n // Need to guard against falsey children, which React will sometimes pass\n // in.\n if (!child) {\n return null;\n }\n\n return React.createElement(VelocityTransitionGroupChild, {\n key: child.key,\n willAppearFunc: this.childWillAppear,\n willEnterFunc: this.childWillEnter,\n willLeaveFunc: this.childWillLeave\n }, child);\n }\n }]);\n\n return VelocityTransitionGroup;\n}(React.Component);\n\nVelocityTransitionGroup.disabledForTest = false; // global, mutable, for disabling animations during test\n\nVelocityTransitionGroup.propTypes = {\n runOnMount: PropTypes.bool,\n enter: PropTypes.any,\n leave: PropTypes.any,\n children: PropTypes.any,\n enterHideStyle: PropTypes.object,\n enterShowStyle: PropTypes.object\n};\n\nVelocityTransitionGroup.defaultProps = {\n runOnMount: false,\n enter: null,\n leave: null,\n enterHideStyle: {\n display: 'none'\n },\n enterShowStyle: {\n display: ''\n }\n};\n\nmodule.exports = VelocityTransitionGroup;\n\n/***/ }),\n/* 953 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {module.exports = get_blob()\n\nfunction get_blob() {\n if(global.Blob) {\n try {\n new Blob(['asdf'], {type: 'text/plain'})\n return Blob\n } catch(err) {}\n }\n\n var Builder = global.WebKitBlobBuilder ||\n global.MozBlobBuilder ||\n global.MSBlobBuilder\n\n return function(parts, bag) {\n var builder = new Builder\n , endings = bag.endings\n , type = bag.type\n\n if(endings) for(var i = 0, len = parts.length; i < len; ++i) {\n builder.append(parts[i], endings)\n } else for(var i = 0, len = parts.length; i < len; ++i) {\n builder.append(parts[i])\n }\n\n return type ? builder.getBlob(type) : builder.getBlob()\n }\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(47)))\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// Client/Generated/v4/all_370071ace459ca055ce8.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 462);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 370071ace459ca055ce8","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 0\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/prop-types/index.js\n// module id = 1\n// module chunks = 0","import _isNil from \"lodash/isNil\";\nimport _isString from \"lodash/isString\";\nimport _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './PureRender';\nexport var PRESENTATION_ATTRIBUTES = {\n 'aria-current': PropTypes.string,\n // state\n 'aria-details': PropTypes.any,\n 'aria-disabled': PropTypes.any,\n // state\n 'aria-hidden': PropTypes.any,\n // state\n 'aria-invalid': PropTypes.any,\n // state\n 'aria-keyshortcuts': PropTypes.any,\n 'aria-label': PropTypes.any,\n 'aria-roledescription': PropTypes.any,\n // Widget Attributes\n 'aria-autocomplete': PropTypes.any,\n 'aria-checked': PropTypes.any,\n 'aria-expanded': PropTypes.any,\n 'aria-haspopup': PropTypes.any,\n 'aria-level': PropTypes.any,\n 'aria-modal': PropTypes.any,\n 'aria-multiline': PropTypes.any,\n 'aria-multiselectable': PropTypes.any,\n 'aria-orientation': PropTypes.any,\n 'aria-placeholder': PropTypes.any,\n 'aria-pressed': PropTypes.any,\n 'aria-readonly': PropTypes.any,\n 'aria-required': PropTypes.any,\n 'aria-selected': PropTypes.any,\n 'aria-sort': PropTypes.any,\n 'aria-valuemax': PropTypes.any,\n 'aria-valuemin': PropTypes.any,\n 'aria-valuenow': PropTypes.any,\n 'aria-valuetext': PropTypes.any,\n // Live Region Attributes\n 'aria-atomic': PropTypes.any,\n 'aria-busy': PropTypes.any,\n 'aria-live': PropTypes.any,\n 'aria-relevant': PropTypes.any,\n // Drag-and-Drop Attributes\n 'aria-dropeffect': PropTypes.any,\n 'aria-grabbed': PropTypes.any,\n // Relationship Attributes\n 'aria-activedescendant': PropTypes.any,\n 'aria-colcount': PropTypes.any,\n 'aria-colindex': PropTypes.any,\n 'aria-colspan': PropTypes.any,\n 'aria-controls': PropTypes.any,\n 'aria-describedby': PropTypes.any,\n 'aria-errormessage': PropTypes.any,\n 'aria-flowto': PropTypes.any,\n 'aria-labelledby': PropTypes.any,\n 'aria-owns': PropTypes.any,\n 'aria-posinset': PropTypes.any,\n 'aria-rowcount': PropTypes.any,\n 'aria-rowindex': PropTypes.any,\n 'aria-rowspan': PropTypes.any,\n 'aria-setsize': PropTypes.any,\n alignmentBaseline: PropTypes.string,\n angle: PropTypes.number,\n baselineShift: PropTypes.string,\n clip: PropTypes.string,\n clipPath: PropTypes.string,\n clipRule: PropTypes.string,\n color: PropTypes.string,\n colorInterpolation: PropTypes.string,\n colorInterpolationFilters: PropTypes.string,\n colorProfile: PropTypes.string,\n colorRendering: PropTypes.string,\n cursor: PropTypes.string,\n direction: PropTypes.oneOf(['ltr', 'rtl', 'inherit']),\n display: PropTypes.string,\n dominantBaseline: PropTypes.string,\n enableBackground: PropTypes.string,\n fill: PropTypes.string,\n fillOpacity: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n fillRule: PropTypes.oneOf(['nonzero', 'evenodd', 'inherit']),\n filter: PropTypes.string,\n floodColor: PropTypes.string,\n floodOpacity: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n font: PropTypes.string,\n fontFamily: PropTypes.string,\n fontSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n fontSizeAdjust: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n fontStretch: PropTypes.oneOf(['normal', 'wider', 'narrower', 'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', 'inherit']),\n fontStyle: PropTypes.oneOf(['normal', 'italic', 'oblique', 'inherit']),\n fontVariant: PropTypes.oneOf(['normal', 'small-caps', 'inherit']),\n fontWeight: PropTypes.oneOf(['normal', 'bold', 'bolder', 'lighter', 100, 200, 300, 400, 500, 600, 700, 800, 900, 'inherit']),\n glyphOrientationHorizontal: PropTypes.string,\n glyphOrientationVertical: PropTypes.string,\n imageRendering: PropTypes.oneOf(['auto', 'optimizeSpeed', 'optimizeQuality', 'inherit']),\n kerning: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n letterSpacing: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n lightingColor: PropTypes.string,\n lineHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n markerEnd: PropTypes.string,\n markerMid: PropTypes.string,\n markerStart: PropTypes.string,\n mask: PropTypes.string,\n opacity: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n overflow: PropTypes.oneOf(['visible', 'hidden', 'scroll', 'auto', 'inherit']),\n pointerEvents: PropTypes.oneOf(['visiblePainted', 'visibleFill', 'visibleStroke', 'visible', 'painted', 'fill', 'stroke', 'all', 'none', 'inherit']),\n shapeRendering: PropTypes.oneOf(['auto', 'optimizeSpeed', 'crispEdges', 'geometricPrecision', 'inherit']),\n stopColor: PropTypes.string,\n stopOpacity: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n stroke: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n strokeDasharray: PropTypes.string,\n strokeDashoffset: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n strokeLinecap: PropTypes.oneOf(['butt', 'round', 'square', 'inherit']),\n strokeLinejoin: PropTypes.oneOf(['miter', 'round', 'bevel', 'inherit']),\n strokeMiterlimit: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n strokeOpacity: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n strokeWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n textAnchor: PropTypes.oneOf(['start', 'middle', 'end', 'inherit']),\n textDecoration: PropTypes.oneOf(['none', 'underline', 'overline', 'line-through', 'blink', 'inherit']),\n textRendering: PropTypes.oneOf(['auto', 'optimizeSpeed', 'optimizeLegibility', 'geometricPrecision', 'inherit']),\n unicodeBidi: PropTypes.oneOf(['normal', 'embed', 'bidi-override', 'inherit']),\n visibility: PropTypes.oneOf(['visible', 'hidden', 'collapse', 'inherit']),\n wordSpacing: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n writingMode: PropTypes.oneOf(['lr-tb', 'rl-tb', 'tb-rl', 'lr', 'rl', 'tb', 'inherit']),\n transform: PropTypes.string,\n role: PropTypes.string,\n focusable: PropTypes.string,\n tabIndex: PropTypes.string,\n style: PropTypes.object,\n width: PropTypes.number,\n height: PropTypes.number,\n dx: PropTypes.number,\n dy: PropTypes.number,\n x: PropTypes.number,\n y: PropTypes.number,\n r: PropTypes.number,\n // The radius of Rectangle\n radius: PropTypes.oneOfType([PropTypes.number, PropTypes.array])\n};\nexport var EVENT_ATTRIBUTES = {\n onClick: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n onMouseOver: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseOut: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onTouchEnd: PropTypes.func,\n onTouchMove: PropTypes.func,\n onTouchStart: PropTypes.func,\n onTouchCancel: PropTypes.func\n};\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart'\n};\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nexport var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nexport var TOOLTIP_TYPES = ['none'];\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\n\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n\n if (!Comp) {\n return '';\n }\n\n return Comp.displayName || Comp.name || 'Component';\n};\n/*\n * Find and return all matched children by type. `type` can be a React element class or\n * string\n */\n\nexport var findAllByType = function findAllByType(children, type) {\n var result = [];\n var types = [];\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n React.Children.forEach(children, function (child) {\n var childType = child && child.type && (child.type.displayName || child.type.name);\n\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n};\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` can be a React element class or string.\n */\n\nexport var findChildByType = function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n};\n/*\n * Create a new array of children excluding the ones matched the type\n */\n\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n React.Children.forEach(children, function (child) {\n if (child && child.type && child.type.displayName && types.indexOf(child.type.displayName) !== -1) {\n return;\n }\n\n newChildren.push(child);\n });\n return newChildren;\n};\n/**\n * get all the presentation attribute of svg element\n * @param {Object} el A react element or the props of a react element\n * @return {Object} attributes or null\n */\n\nexport var getPresentationAttributes = function getPresentationAttributes(el) {\n if (!el || _isFunction(el)) {\n return null;\n }\n\n var props = React.isValidElement(el) ? el.props : el;\n\n if (!_isObject(props)) {\n return null;\n }\n\n var out = null; // eslint-disable-next-line no-restricted-syntax\n\n for (var i in props) {\n if ({}.hasOwnProperty.call(props, i) && PRESENTATION_ATTRIBUTES[i]) {\n if (!out) out = {};\n out[i] = props[i];\n }\n }\n\n return out;\n};\n\nvar getEventHandlerOfElement = function getEventHandlerOfElement(originalHandler, props) {\n return function (e) {\n originalHandler(props, e);\n return null;\n };\n};\n/**\n * get all the event attribute of svg element\n * @param {Object} el A react element or the props of a react element\n * @param {Function} newHandler New handler of event\n * @param {Boolean} wrapCallback Wrap callback and return more parameters or not\n * @return {Object} attributes or null\n */\n\n\nexport var filterEventAttributes = function filterEventAttributes(el, newHandler) {\n var wrapCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!el || _isFunction(el)) {\n return null;\n }\n\n var props = React.isValidElement(el) ? el.props : el;\n\n if (!_isObject(props)) {\n return null;\n }\n\n var out = null; // eslint-disable-next-line no-restricted-syntax\n\n for (var i in props) {\n if ({}.hasOwnProperty.call(props, i) && EVENT_ATTRIBUTES[i]) {\n if (!out) out = {};\n out[i] = newHandler || (wrapCallback ? getEventHandlerOfElement(props[i], props) : props[i]);\n }\n }\n\n return out;\n};\n\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\n\nexport var filterEventsOfChild = function filterEventsOfChild(props, data, index) {\n if (!_isObject(props)) {\n return null;\n }\n\n var out = null; // eslint-disable-next-line no-restricted-syntax\n\n for (var i in props) {\n if ({}.hasOwnProperty.call(props, i) && EVENT_ATTRIBUTES[i] && _isFunction(props[i])) {\n if (!out) out = {};\n out[i] = getEventHandlerOfChild(props[i], data, index);\n }\n }\n\n return out;\n};\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\n\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n\n return true;\n};\nexport var isSsr = function isSsr() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\n\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && _isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\n\n\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n React.Children.forEach(children, function (entry) {\n if (entry && entry.type && _isString(entry.type) && SVG_TAGS.indexOf(entry.type) >= 0) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (_isNil(nextChild) && _isNil(prevChild)) {\n return true;\n }\n\n if (!_isNil(nextChild) && !_isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, [\"children\"]);\n\n if (nextChildren && prevChildren) {\n // eslint-disable-next-line no-use-before-define\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n\n return false;\n }\n\n return false;\n};\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\n\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n\n if (Children.count(nextChildren) !== Children.count(prevChildren)) {\n return false;\n }\n\n var count = Children.count(nextChildren);\n\n if (count === 0) {\n return true;\n }\n\n if (count === 1) {\n return isSingleChildEqual(_isArray(nextChildren) ? nextChildren[0] : nextChildren, _isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n\n if (_isArray(nextChild) || _isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n }\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n\n return true;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n Children.forEach(children, function (child, index) {\n if (child && isSvgElement(child)) {\n elements.push(child);\n } else if (child && renderMap[getDisplayName(child.type)]) {\n var displayName = getDisplayName(child.type);\n var _renderMap$displayNam = renderMap[displayName],\n handler = _renderMap$displayNam.handler,\n once = _renderMap$displayNam.once;\n\n if (once && !record[displayName] || !once) {\n var results = handler(child, displayName, index);\n\n if (_isArray(results)) {\n elements = [elements].concat(_toConsumableArray(results));\n } else {\n elements.push(results);\n }\n\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n var result = -1;\n Children.forEach(children, function (entry, index) {\n if (entry === child) {\n result = index;\n }\n });\n return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/util/ReactUtils.js\n// module id = 2\n// module chunks = 0","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shouldComponentUpdate(props, state) {\n return !shallowEqual(props, this.props) || !shallowEqual(state, this.state);\n}\n\nexport default function pureRenderDecorator(component) {\n // eslint-disable-next-line no-param-reassign\n component.prototype.shouldComponentUpdate = shouldComponentUpdate;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/util/PureRender.js\n// module id = 3\n// module chunks = 0","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/classnames/index.js\n// module id = 4\n// module chunks = 0","module.exports = ReactDOM;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactDOM\"\n// module id = 5\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\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 = runTimeout(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 runClearTimeout(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 runTimeout(drainQueue);\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;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\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// ./~/process/browser.js\n// module id = 6\n// module chunks = 0","// This file was automatically generated from DevPortalLib.dll. Do not edit directly!\r\n\r\n// tslint:disable\r\nimport * as $ from \"jquery\";\r\ntype AjaxSettings = JQueryAjaxSettings;\r\ntype AjaxPromise = JQueryPromise;\r\nconst innerAjax = $.ajax;\r\nconst extend = $.extend;\r\n /** Optionally, set this variable to your network activity indicator function. */\r\n export var showNetworkIcon = (show: boolean) => { };\r\n\r\n /** Optionally, set this to your own ajax function. */\r\n export var ajax: (settings: AjaxSettings) => AjaxPromise = _ajax;\r\n\r\n /** Optionally, set this to a string that all urls should be prefixed with. */\r\n export var urlPrefix = '';\r\n\r\n /** Optionally, set this to additional header key/value pairs to send along with ajax requests. */\r\n export var ajaxHeaders: { [key: string]: any } = null;\r\n\r\n /** Wraps ajax function and adds network activity indicator. */\r\n function _ajax(settings_: AjaxSettings): AjaxPromise {\r\n var settings: AjaxSettings = extend({}, settings_, { url: urlPrefix + settings_.url });\r\n if (settings.data)\r\n settings.contentType = 'application/json';\r\n if (ajaxHeaders)\r\n settings.headers = ajaxHeaders;\r\n showNetworkIcon(true);\r\n return innerAjax(settings).always(() => showNetworkIcon(false));\r\n }\r\n\r\n /** Corresponds to Microsoft.Portal.Extensions.AzurePortalExtension1.Controllers.ConnectionSettingsController */\r\n export class ConnectionSettingsClient {\r\n /** Corresponds to GetServiceProviders(string botId) */\r\n public static getServiceProviders(botId: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/connectionsettings/GetServiceProviders' + '?' + $.param({ botId: botId }),\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to GetConnectionSettingItems(string botId) */\r\n public static getConnectionSettingItems(botId: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/connectionsettings/GetConnectionSettingItems' + '?' + $.param({ botId: botId }),\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to GetFullConnectionSettingEx(string id, string botId) */\r\n public static getFullConnectionSettingEx(id: string, botId: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/connectionsettings/GetFullConnectionSettingEx' + '?' + $.param({ id: id, botId: botId }),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to CheckConnectionSettingName(string botId, string name) */\r\n public static checkConnectionSettingName(botId: string, name: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/connectionsettings/CheckConnectionSettingName' + '?' + $.param({ botId: botId, name: name }),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to AddConnection(string botId, ConnectionSetting properties) */\r\n public static addConnection(botId: string, properties: _ConnectionSetting): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/connectionsettings/AddConnection' + '?' + $.param({ botId: botId }),\r\n data: JSON.stringify(properties),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to UpdateConnectionEx(string id, string botId, ConnectionSetting properties) */\r\n public static updateConnectionEx(id: string, botId: string, properties: _ConnectionSetting): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/connectionsettings/UpdateConnectionEx' + '?' + $.param({ id: id, botId: botId }),\r\n data: JSON.stringify(properties),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to DeleteConnectionEx(string id, string botId) */\r\n public static deleteConnectionEx(id: string, botId: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/connectionsettings/DeleteConnectionEx' + '?' + $.param({ id: id, botId: botId }),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to GetTestConnectionUrl(string botId, string connectionName) */\r\n public static getTestConnectionUrl(botId: string, connectionName: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/connectionsettings/GetTestConnectionUrl' + '?' + $.param({ botId: botId, connectionName: connectionName }),\r\n type: 'GET'\r\n });\r\n }\r\n }\r\n\r\n /** Corresponds to Intercom.BotDirectory.Server.Controllers.HomeController */\r\n export class HomeClient {\r\n /** Corresponds to Index() */\r\n public static index(): AjaxPromise {\r\n return ajax({\r\n url: '/Home',\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to WarmUp() */\r\n public static warmUp(): AjaxPromise {\r\n return ajax({\r\n url: '/Home/WarmUp',\r\n type: 'GET'\r\n });\r\n }\r\n }\r\n\r\n /** Corresponds to Intercom.DevPortal.Server.Controllers.AccountController */\r\n export class AccountClient {\r\n /** Corresponds to GetClientSettings() */\r\n public static getClientSettings(): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/Account/clientAppSettings',\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to Delete() */\r\n public static delete(): AjaxPromise {\r\n return ajax({\r\n url: '/api/Account',\r\n type: 'DELETE'\r\n });\r\n }\r\n\r\n /** Corresponds to AddUserToWaitlist() */\r\n public static addUserToWaitlist(): AjaxPromise {\r\n return ajax({\r\n url: '/api/Account/waitList',\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to ExchangeGraphToken(string tenantId) */\r\n public static exchangeGraphToken(tenantId: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/Account/exchangeGraphToken' + '?' + $.param({ tenantId: tenantId }),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to ExchangeArmToken(string tenantId) */\r\n public static exchangeArmToken(tenantId: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/Account/exchangeArmToken' + '?' + $.param({ tenantId: tenantId }),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to GetSignedInUser() */\r\n public static getSignedInUser(): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/Account',\r\n type: 'GET'\r\n });\r\n }\r\n }\r\n\r\n /** Corresponds to Intercom.DevPortal.Server.Controllers.AnnouncementsController */\r\n export class AnnouncementsClient {\r\n /** Corresponds to Announcements() */\r\n public static announcements(): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/announcements',\r\n type: 'GET'\r\n });\r\n }\r\n }\r\n\r\n /** Corresponds to Intercom.DevPortal.Server.Controllers.BotManagerController */\r\n export class BotManagerClient {\r\n /** Corresponds to GetPage(int pageSize, string continuationToken) */\r\n public static getPage(pageSize: number, continuationToken: string): AjaxPromise> {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/getPage' + '?' + $.param({ pageSize: pageSize, continuationToken: continuationToken }),\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to SearchBotsPage(string search, int pageSize, string continuationToken) */\r\n public static searchBotsPage(search: string, pageSize: number, continuationToken: string): AjaxPromise> {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/searchBotsPage' + '?' + $.param({ search: search, pageSize: pageSize, continuationToken: continuationToken }),\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to Get(string id) */\r\n public static getById(id: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/Bots' + '?' + $.param({ id: id }),\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to GetWebChatToken(string id) */\r\n public static getWebChatToken(id: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/BotManager/${id}/webChatToken`,\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to Create(BotService bot) */\r\n public static create(bot: _BotService): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager',\r\n data: JSON.stringify(bot),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to EnableChannelForBot(string botId, string channelId, Boolean enable) */\r\n public static enableChannelForBot(botId: string, channelId: string, enable: boolean): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/EnableChannelForBot' + '?' + $.param({ botId: botId, channelId: channelId, enable: enable }),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to ListChannelForBot(string botId, string channelId, Boolean listed) */\r\n public static listChannelForBot(botId: string, channelId: string, listed: boolean): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/ListChannelForBot' + '?' + $.param({ botId: botId, channelId: channelId, listed: listed }),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to Update(BotService bot, Boolean forPublishing) */\r\n public static update(bot: _BotService, forPublishing: boolean): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager' + '?' + $.param({ forPublishing: forPublishing }),\r\n data: JSON.stringify(bot),\r\n type: 'PUT'\r\n });\r\n }\r\n\r\n /** Corresponds to GetBotLogs(string botId) */\r\n public static getBotLogs(botId: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/BotManager/${botId}/log`,\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to DeleteBotLogs(string botId, string channelId) */\r\n public static deleteBotLogs(botId: string, channelId: string): AjaxPromise {\r\n return ajax({\r\n url: `/api/BotManager/${botId}/log/${channelId}`,\r\n type: 'DELETE'\r\n });\r\n }\r\n\r\n /** Corresponds to GetPublishSettings(string botId) */\r\n public static getPublishSettings(botId: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/BotManager/${botId}/publishSettings`,\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to GetConfigSettings(string botId) */\r\n public static getConfigSettings(botId: string): AjaxPromise> {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/BotManager/${botId}/configSettings`,\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to GetProgressAsync(string botId, Boolean checkingMigration) */\r\n public static getProgress(botId: string, checkingMigration: boolean): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/BotManager/${botId}/progress` + '?' + $.param({ checkingMigration: checkingMigration }),\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to Delete(string botId) */\r\n public static delete(botId: string): AjaxPromise {\r\n return ajax({\r\n url: '/api/BotManager' + '?' + $.param({ botId: botId }),\r\n type: 'DELETE'\r\n });\r\n }\r\n\r\n /** Corresponds to DeleteChannelConfig(string botId, string channelId) */\r\n public static deleteChannelConfig(botId: string, channelId: string): AjaxPromise {\r\n return ajax({\r\n url: `/api/BotManager/${botId}/channels/${channelId}`,\r\n type: 'DELETE'\r\n });\r\n }\r\n\r\n /** Corresponds to EnsureDirectlineSettings(string botId) */\r\n public static ensureDirectlineSettings(botId: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/BotManager/${botId}/directlineSettings`,\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to AddPublishEvent(string botId, PublishEvent publishEvent, string comment, Boolean showInAllDirectories, string channel) */\r\n public static addPublishEvent(botId: string, publishEvent: PublishEvent, comment: string, showInAllDirectories: boolean, channel: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/UpdatePublishStatus' + '?' + $.param({ botId: botId, publishEvent: publishEvent, comment: comment, showInAllDirectories: showInAllDirectories, channel: channel }),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to GetLastPublishEvent(string botId, string channel) */\r\n public static getLastPublishEvent(botId: string, channel: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/GetLastPublishEvent' + '?' + $.param({ botId: botId, channel: channel }),\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to GetPublishHistory(string botId, string channel) */\r\n public static getPublishHistory(botId: string, channel: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/GetPublishHistory' + '?' + $.param({ botId: botId, channel: channel }),\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to GetAvailableChannels() */\r\n public static getAvailableChannels(): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/AvailableChannels',\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to RegenerateSubscriptionKey(string botId, Boolean primary) */\r\n public static regenerateSubscriptionKey(botId: string, primary: boolean): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/RegenerateSubscriptionKey' + '?' + $.param({ botId: botId, primary: primary }),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to GetBotContactCard(string botId) */\r\n public static getBotContactCard(botId: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/GetBotContactCard' + '?' + $.param({ botId: botId }),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to TestBot(string botId, string testInput) */\r\n public static testBot(botId: string, testInput: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/TestBot' + '?' + $.param({ botId: botId, testInput: testInput }),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to CreateLuisAppUsingKey(string luisAppName, string luisKey, LuisRegions region, string modelName) */\r\n public static createLuisAppUsingKey(luisAppName: string, luisKey: string, region: LuisRegions, modelName: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/BotManager/${luisAppName}/CreateLuisAppUsingKey` + '?' + $.param({ luisKey: luisKey, region: region, modelName: modelName }),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to SetBotIcon(string dataUrl, string botId) */\r\n public static setBotIcon(dataUrl: string, botId: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/PostBotIcon' + '?' + $.param({ botId: botId }),\r\n data: JSON.stringify(dataUrl),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to MigrateBot(string botId) */\r\n public static migrateBot(botId: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager' + '?' + $.param({ botId: botId }),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to GetAvailableSchemaTransformationVersionList() */\r\n public static getAvailableSchemaTransformationVersionList(): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotManager/getAvailableSchemaTransformationVersionList',\r\n type: 'GET'\r\n });\r\n }\r\n }\r\n\r\n /** Corresponds to Intercom.DevPortal.Server.Controllers.CodeController */\r\n export class CodeClient {\r\n /** Corresponds to List(string botId, string path) */\r\n public static list(botId: string, path: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/botApp/${botId}/list` + '?' + $.param({ path: path }),\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to Zip(string botId, string fileName) */\r\n public static zip(botId: string, fileName: string): AjaxPromise {\r\n return ajax({\r\n url: `/api/botApp/${botId}/zip/${fileName}`,\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to Get(string botId, string path) */\r\n public static getByBotIdAndPath(botId: string, path: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/botApp/${botId}/code` + '?' + $.param({ path: path }),\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to Update(string botId, string path, string content) */\r\n public static update(botId: string, path: string, content: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/botApp/${botId}/code` + '?' + $.param({ path: path }),\r\n data: JSON.stringify(content),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to Create(string botId, string path, string content) */\r\n public static create(botId: string, path: string, content: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/botApp/${botId}/code` + '?' + $.param({ path: path }),\r\n data: JSON.stringify(content),\r\n type: 'PUT'\r\n });\r\n }\r\n\r\n /** Corresponds to Remove(string botId, string path, string content) */\r\n public static remove(botId: string, path: string, content: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/botApp/${botId}/code` + '?' + $.param({ path: path }),\r\n data: JSON.stringify(content),\r\n type: 'DELETE'\r\n });\r\n }\r\n\r\n /** Corresponds to GetScmAuthz(string botId) */\r\n public static getScmAuthz(botId: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/botApp/${botId}/scmAuthz`,\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to RequestDevInfo(string botId) */\r\n public static requestDevInfo(botId: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/botApp/${botId}/devInfo`,\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to FetchBotId(string resourceId, string accessToken) */\r\n public static fetchBotId(resourceId: string, accessToken: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/botApp/mapBotId' + '?' + $.param({ resourceId: resourceId }),\r\n data: JSON.stringify(accessToken),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to ProvisionConvergedApp(string name) */\r\n public static provisionConvergedApp(name: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/botApp/provisionConvergedApp' + '?' + $.param({ name: name }),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to ProvisionSingleTenantConvergedApp(string name) */\r\n public static provisionSingleTenantConvergedApp(name: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/botApp/provisionSingleTenantConvergedApp' + '?' + $.param({ name: name }),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to CheckBotNameAvailability(string botName) */\r\n public static checkBotNameAvailability(botName: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/botApp/checkBotNameAvailability' + '?' + $.param({ botName: botName }),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to CheckFeatureEnabledAsync(string botId, string featureId) */\r\n public static checkFeatureEnabled(botId: string, featureId: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/botApp/checkFeatureEnabled' + '?' + $.param({ botId: botId, featureId: featureId }),\r\n type: 'POST'\r\n });\r\n }\r\n }\r\n\r\n /** Corresponds to Intercom.DevPortal.Server.Controllers.EmailSubscriptionController */\r\n export class EmailSubscriptionClient {\r\n /** Corresponds to Get() */\r\n public static get(): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/emailSubscription',\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to GetUserAgreement() */\r\n public static getUserAgreement(): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/emailSubscription/tos',\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to UpdateAgreement(Boolean enabled) */\r\n public static updateAgreement(enabled: boolean): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/emailSubscription/tos/update',\r\n data: JSON.stringify(enabled),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to Subscribe(EmailSubscriptionInfo update) */\r\n public static subscribe(update: _EmailSubscriptionInfo): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/emailSubscription',\r\n data: JSON.stringify(update),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to Unsubscribe(string userId, string token) */\r\n public static unsubscribe(userId: string, token: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/emailSubscription/unsubscribe/${userId}/${token}`,\r\n type: 'GET'\r\n });\r\n }\r\n }\r\n\r\n /** Corresponds to DevPortalLib.Controllers.AnalyticsController */\r\n export class AnalyticsClient {\r\n /** Corresponds to GetUsers(string botId, AnalyticsRequest analyticsRequest) */\r\n public static getUsers(botId: string, analyticsRequest: _AnalyticsRequest): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/dashboard/${botId}/users`,\r\n data: JSON.stringify(analyticsRequest),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to GetMessages(string botId, AnalyticsRequest analyticsRequest) */\r\n public static getMessages(botId: string, analyticsRequest: _AnalyticsRequest): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/dashboard/${botId}/messages`,\r\n data: JSON.stringify(analyticsRequest),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to GetUserRetention(string botId, AnalyticsRequest analyticsRequest) */\r\n public static getUserRetention(botId: string, analyticsRequest: _AnalyticsRequest): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/dashboard/${botId}/retention`,\r\n data: JSON.stringify(analyticsRequest),\r\n type: 'POST'\r\n });\r\n }\r\n }\r\n\r\n /** Corresponds to DevPortalLib.Controllers.MiscController */\r\n export class MiscClient {\r\n /** Corresponds to GetBotFileEncryptionKey() */\r\n public static getBotFileEncryptionKey(): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/misc/botFileEncryptionKey',\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to CheckMsaAppIdInUse(string msaAppId) */\r\n public static checkMsaAppIdInUse(msaAppId: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/misc/checkMsaAppIdInUse' + '?' + $.param({ msaAppId: msaAppId }),\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to GetIsMSAApp(string appId) */\r\n public static getIsMSAApp(appId: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/misc/isMSAApp' + '?' + $.param({ appId: appId }),\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to GetBotTemplatesRoot() */\r\n public static getBotTemplatesRoot(): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/misc/botTemplateRoot',\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to AbsWebAspSku(string subscriptionId) */\r\n public static absWebAspSku(subscriptionId: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/misc/absWebAspSku' + '?' + $.param({ subscriptionId: subscriptionId }),\r\n type: 'GET'\r\n });\r\n }\r\n }\r\n\r\n /** Corresponds to DevPortalLib.Controllers.SearchAssistantBotV2Controller */\r\n export class SearchAssistantBotV2Client {\r\n /** Corresponds to EnableAsync(string botId, Boolean enable) */\r\n public static enable(botId: string, enable: boolean): AjaxPromise {\r\n return ajax({\r\n url: `/api/searchAssistantBotV2/${botId}/enable`,\r\n data: JSON.stringify(enable),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to DeleteAsync(string botId) */\r\n public static delete(botId: string): AjaxPromise {\r\n return ajax({\r\n url: `/api/searchAssistantBotV2/${botId}`,\r\n type: 'DELETE'\r\n });\r\n }\r\n\r\n /** Corresponds to GetAsync(string botId) */\r\n public static get(botId: string): AjaxPromise {\r\n return ajax({\r\n url: `/api/searchAssistantBotV2/${botId}`,\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to GetUsers(string botId, string userFilter) */\r\n public static getUsers(botId: string, userFilter: string): AjaxPromise {\r\n return ajax({\r\n url: `/api/searchAssistantBotV2/${botId}/deploymentv2/userSuggestions` + '?' + $.param({ userFilter: userFilter }),\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to GetUserInfoByEmail(string botId, string email) */\r\n public static getUserInfoByEmail(botId: string, email: string): AjaxPromise {\r\n return ajax({\r\n url: `/api/searchAssistantBotV2/${botId}/deploymentv2/userInfo` + '?' + $.param({ email: email }),\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to GetUserInfoById(string botId, string id) */\r\n public static getUserInfoById(botId: string, id: string): AjaxPromise {\r\n return ajax({\r\n url: `/api/searchAssistantBotV2/${botId}/deploymentv2/userInfoById` + '?' + $.param({ id: id }),\r\n type: 'GET'\r\n });\r\n }\r\n\r\n /** Corresponds to CreateDeployment(string botId, AnswerManifest manifest) */\r\n public static createDeployment(botId: string, manifest: _AnswerManifest): AjaxPromise {\r\n return ajax({\r\n url: `/api/searchAssistantBotV2/${botId}/deploymentv2`,\r\n data: JSON.stringify(manifest),\r\n type: 'POST'\r\n });\r\n }\r\n\r\n /** Corresponds to UpdateDeployment(string botId, AnswerManifest manifest) */\r\n public static updateDeployment(botId: string, manifest: _AnswerManifest): AjaxPromise {\r\n return ajax({\r\n url: `/api/searchAssistantBotV2/${botId}/deploymentv2`,\r\n data: JSON.stringify(manifest),\r\n type: 'PUT'\r\n });\r\n }\r\n }\r\n\r\n /** Corresponds to DevPortalLib.Controllers.SpeechPartnersController */\r\n export class SpeechPartnersClient {\r\n /** Corresponds to GetBotForSpeech(string id) */\r\n public static getBotForSpeech(id: string): AjaxPromise {\r\n return ajax({\r\n url: '/api/partners/speech/bot' + '?' + $.param({ id: id }),\r\n type: 'GET'\r\n });\r\n }\r\n }\r\n\r\n\r\n /** Corresponds to ServiceProvider, optional properties */\r\n export interface _ServiceProvider {\r\n Id?: string;\r\n DisplayName?: string;\r\n ServiceProviderName?: string;\r\n DevPortalUrl?: string;\r\n IconUrl?: Uri;\r\n Parameters?: any;\r\n }\r\n\r\n /** Corresponds to ServiceProvider */\r\n export interface ServiceProvider {\r\n Id: string;\r\n DisplayName: string;\r\n ServiceProviderName: string;\r\n DevPortalUrl: string;\r\n IconUrl: Uri;\r\n Parameters: any;\r\n }\r\n\r\n /** Corresponds to ConnectionSettingItem, optional properties */\r\n export interface _ConnectionSettingItem extends _ConnectionSettingInfo {\r\n ServiceProviderDisplayName?: string;\r\n }\r\n\r\n /** Corresponds to ConnectionSettingItem */\r\n export interface ConnectionSettingItem extends ConnectionSettingInfo {\r\n ServiceProviderDisplayName: string;\r\n }\r\n\r\n /** Corresponds to ConnectionSetting, optional properties */\r\n export interface _ConnectionSetting extends _ConnectionSettingInfo {\r\n ClientId?: string;\r\n ClientSecret?: string;\r\n Scopes?: string;\r\n Parameters?: any;\r\n }\r\n\r\n /** Corresponds to ConnectionSetting */\r\n export interface ConnectionSetting extends ConnectionSettingInfo {\r\n ClientId: string;\r\n ClientSecret: string;\r\n Scopes: string;\r\n Parameters: any;\r\n }\r\n\r\n /** Corresponds to CheckNameExistsResult, optional properties */\r\n export interface _CheckNameExistsResult {\r\n Exists?: boolean;\r\n Message?: string;\r\n }\r\n\r\n /** Corresponds to CheckNameExistsResult */\r\n export interface CheckNameExistsResult {\r\n Exists: boolean;\r\n Message: string;\r\n }\r\n\r\n /** Corresponds to ClientAppSettings, optional properties */\r\n export interface _ClientAppSettings {\r\n applicationPath?: string;\r\n productName?: string;\r\n environment?: string;\r\n documentationUrl?: string;\r\n homeUrl?: string;\r\n channels?: ChannelViewModel[];\r\n defaultIconUrl?: string;\r\n cdnEndpoint?: string;\r\n msaPortalEndpoint?: string;\r\n siteVersion?: number;\r\n directLineUrl?: string;\r\n webChatUrl?: string;\r\n flightedFeatures?: string[];\r\n azurePortalEndpoint?: string;\r\n luisApiHostName?: string;\r\n appId?: string;\r\n enabledFeatures?: DevPortalFeatureFlags;\r\n }\r\n\r\n /** Corresponds to ClientAppSettings */\r\n export interface ClientAppSettings {\r\n applicationPath: string;\r\n productName: string;\r\n environment: string;\r\n documentationUrl: string;\r\n homeUrl: string;\r\n channels: ChannelViewModel[];\r\n defaultIconUrl: string;\r\n cdnEndpoint: string;\r\n msaPortalEndpoint: string;\r\n siteVersion: number;\r\n directLineUrl: string;\r\n webChatUrl: string;\r\n flightedFeatures: string[];\r\n azurePortalEndpoint: string;\r\n luisApiHostName: string;\r\n appId: string;\r\n enabledFeatures: DevPortalFeatureFlags;\r\n }\r\n\r\n /** Corresponds to AuthData, optional properties */\r\n export interface _AuthData {\r\n UserId?: string;\r\n ApplicationUserId?: string;\r\n EmailAddress?: string;\r\n FirstName?: string;\r\n LastName?: string;\r\n Roles?: string[];\r\n MobilePhone?: string;\r\n Puid?: string;\r\n AzureToken?: string;\r\n IdentityProvider?: string;\r\n AzureTokenExpireAt?: number;\r\n ScmUserName?: string;\r\n ScmPassword?: string;\r\n FlightedFeatures?: string[];\r\n TenantId?: string;\r\n Oid?: string;\r\n SelfToken?: string;\r\n AppId?: string;\r\n Sub?: string;\r\n AltSecId?: string;\r\n }\r\n\r\n /** Corresponds to AuthData */\r\n export interface AuthData {\r\n UserId: string;\r\n ApplicationUserId: string;\r\n EmailAddress: string;\r\n FirstName: string;\r\n LastName: string;\r\n Roles: string[];\r\n MobilePhone: string;\r\n Puid: string;\r\n AzureToken: string;\r\n IdentityProvider: string;\r\n AzureTokenExpireAt: number;\r\n ScmUserName: string;\r\n ScmPassword: string;\r\n FlightedFeatures: string[];\r\n TenantId: string;\r\n Oid: string;\r\n SelfToken: string;\r\n AppId: string;\r\n Sub: string;\r\n AltSecId: string;\r\n }\r\n\r\n /** Corresponds to Announcement, optional properties */\r\n export interface _Announcement extends _ETagObject {\r\n Id?: string;\r\n Author?: string;\r\n Severity?: AnnouncementSeverity;\r\n ProductArea?: string;\r\n Text?: string;\r\n LinkUrl?: string;\r\n ExpirationDateUTC?: Date;\r\n }\r\n\r\n /** Corresponds to Announcement */\r\n export interface Announcement extends ETagObject {\r\n Id: string;\r\n Author: string;\r\n Severity: AnnouncementSeverity;\r\n ProductArea: string;\r\n Text: string;\r\n LinkUrl: string;\r\n ExpirationDateUTC: Date;\r\n }\r\n\r\n /** Corresponds to BotDocument, optional properties */\r\n export interface _BotDocument {\r\n Id?: string;\r\n Name?: string;\r\n Description?: string;\r\n OwnerIds?: string[];\r\n Hashtags?: string[];\r\n Publisher?: string;\r\n PublisherEmail?: string;\r\n Languages?: string[];\r\n IconUrl?: string;\r\n DefaultIconColorHash?: string;\r\n ConfiguredChannels?: string[];\r\n EnabledChannels?: string[];\r\n ListedChannels?: string[];\r\n Listed?: boolean;\r\n ApprovedForBotDirectory?: boolean;\r\n Submitted?: boolean;\r\n SystemHashtags?: string[];\r\n ChannelAddresses?: string[];\r\n SortName?: string;\r\n CreatedDate?: DateTimeOffset;\r\n LastSavedDate?: DateTimeOffset;\r\n MigratedDate?: DateTimeOffset;\r\n FeaturedDisplayOrder?: number;\r\n ActivityRank?: number;\r\n CreatorId?: string;\r\n MsaAppId?: string;\r\n MsaAppTenantId?: string;\r\n MsaAppType?: BotAppType;\r\n MsaAppMSIResourceId?: string;\r\n Website?: string;\r\n Contacts?: string;\r\n DeveloperBotPrivacyUrl?: string;\r\n DeveloperBotTermsOfUseUrl?: string;\r\n SubscriptionId?: string;\r\n AzureTags?: string;\r\n ResourceGroupName?: string;\r\n ServicePlan?: string;\r\n Kind?: string;\r\n ETag?: string;\r\n Location?: string;\r\n ProvisioningState?: string;\r\n Endpoints?: string;\r\n OpenWithHint?: string;\r\n AppPasswordHint?: string;\r\n SchemaTransformationVersion?: SchemaTransformationVersion;\r\n IsIsolated?: boolean;\r\n }\r\n\r\n /** Corresponds to BotDocument */\r\n export interface BotDocument {\r\n Id: string;\r\n Name: string;\r\n Description: string;\r\n OwnerIds: string[];\r\n Hashtags: string[];\r\n Publisher: string;\r\n PublisherEmail: string;\r\n Languages: string[];\r\n IconUrl: string;\r\n DefaultIconColorHash: string;\r\n ConfiguredChannels: string[];\r\n EnabledChannels: string[];\r\n ListedChannels: string[];\r\n Listed: boolean;\r\n ApprovedForBotDirectory: boolean;\r\n Submitted: boolean;\r\n SystemHashtags: string[];\r\n ChannelAddresses: string[];\r\n SortName: string;\r\n CreatedDate: DateTimeOffset;\r\n LastSavedDate: DateTimeOffset;\r\n MigratedDate: DateTimeOffset;\r\n FeaturedDisplayOrder: number;\r\n ActivityRank: number;\r\n CreatorId: string;\r\n MsaAppId: string;\r\n MsaAppTenantId: string;\r\n MsaAppType: BotAppType;\r\n MsaAppMSIResourceId: string;\r\n Website: string;\r\n Contacts: string;\r\n DeveloperBotPrivacyUrl: string;\r\n DeveloperBotTermsOfUseUrl: string;\r\n SubscriptionId: string;\r\n AzureTags: string;\r\n ResourceGroupName: string;\r\n ServicePlan: string;\r\n Kind: string;\r\n ETag: string;\r\n Location: string;\r\n ProvisioningState: string;\r\n Endpoints: string;\r\n OpenWithHint: string;\r\n AppPasswordHint: string;\r\n SchemaTransformationVersion: SchemaTransformationVersion;\r\n IsIsolated: boolean;\r\n }\r\n\r\n /** Corresponds to DevPortalLib.Models.SearchResult, optional properties */\r\n export interface _SearchResult {\r\n Items?: D[];\r\n HasMore?: boolean;\r\n NextSkip?: number;\r\n ContinuationToken?: string;\r\n TotalCount?: number;\r\n }\r\n\r\n /** Corresponds to DevPortalLib.Models.SearchResult */\r\n export interface SearchResult {\r\n Items: D[];\r\n HasMore: boolean;\r\n NextSkip: number;\r\n ContinuationToken: string;\r\n TotalCount: number;\r\n }\r\n\r\n /** Corresponds to BotSubscription, optional properties */\r\n export interface _BotSubscription {\r\n Bot?: BotService;\r\n PrimarySubscriptionKey?: string;\r\n SecondarySubscriptionKey?: string;\r\n ReviewStatusDetail?: ReviewStatusDetail;\r\n TenantAccess?: TenantAccess;\r\n ReviewStatuses?: any;\r\n CanWriteToBot?: boolean;\r\n }\r\n\r\n /** Corresponds to BotSubscription */\r\n export interface BotSubscription {\r\n Bot: BotService;\r\n PrimarySubscriptionKey: string;\r\n SecondarySubscriptionKey: string;\r\n ReviewStatusDetail: ReviewStatusDetail;\r\n TenantAccess: TenantAccess;\r\n ReviewStatuses: any;\r\n CanWriteToBot: boolean;\r\n }\r\n\r\n /** Corresponds to BotService, optional properties */\r\n export interface _BotService extends _BotServiceBase {\r\n Name?: string;\r\n ProvisionInfo?: AzureProvisionInfo;\r\n CreatedDate?: DateTimeOffset;\r\n LastSavedDate?: DateTimeOffset;\r\n OwnerIds?: string[];\r\n Hashtags?: string[];\r\n Publisher?: string;\r\n PublisherEmail?: string;\r\n Website?: string;\r\n Endpoints?: Endpoint[];\r\n IconUrl?: string;\r\n Description?: string;\r\n ListedChannels?: string[];\r\n ListedMarkets?: string[];\r\n Listed?: boolean;\r\n Submitted?: boolean;\r\n DefaultIconColorHash?: string;\r\n Contacts?: ContactInfo[];\r\n FeaturedDisplayOrder?: number;\r\n DeveloperAppInsightsAPIKey?: string;\r\n DeveloperAppInsightsApplicationId?: string;\r\n DeveloperBotPrivacyUrl?: string;\r\n DeveloperBotTermsOfUseUrl?: string;\r\n CortanaProperties?: CortanaProperties;\r\n ApsProperties?: ApsProperties;\r\n ManifestUrl?: string;\r\n Actions?: Action[];\r\n LUISAppIds?: string[];\r\n LUISKey?: string;\r\n BotStateTable?: string;\r\n BotStatePriorTable?: string;\r\n BotServiceRuntimeVersion?: string;\r\n AzureTags?: string;\r\n AcceptedTermsOfService?: string[];\r\n MigratedDate?: DateTimeOffset;\r\n ProvisioningState?: string;\r\n IsStateStoreProhibited?: boolean;\r\n Languages?: string[];\r\n Roles?: string[];\r\n OpenWithHint?: string;\r\n AppPasswordHint?: string;\r\n MsaAppType?: BotAppType;\r\n MsaAppMSIResourceId?: string;\r\n ApprovedForBotDirectory?: boolean;\r\n }\r\n\r\n /** Corresponds to BotService */\r\n export interface BotService extends BotServiceBase {\r\n Name: string;\r\n ProvisionInfo: AzureProvisionInfo;\r\n CreatedDate: DateTimeOffset;\r\n LastSavedDate: DateTimeOffset;\r\n OwnerIds: string[];\r\n Hashtags: string[];\r\n Publisher: string;\r\n PublisherEmail: string;\r\n Website: string;\r\n Endpoints: Endpoint[];\r\n IconUrl: string;\r\n Description: string;\r\n ListedChannels: string[];\r\n ListedMarkets: string[];\r\n Listed: boolean;\r\n Submitted: boolean;\r\n DefaultIconColorHash: string;\r\n Contacts: ContactInfo[];\r\n FeaturedDisplayOrder: number;\r\n DeveloperAppInsightsAPIKey: string;\r\n DeveloperAppInsightsApplicationId: string;\r\n DeveloperBotPrivacyUrl: string;\r\n DeveloperBotTermsOfUseUrl: string;\r\n CortanaProperties: CortanaProperties;\r\n ApsProperties: ApsProperties;\r\n ManifestUrl: string;\r\n Actions: Action[];\r\n LUISAppIds: string[];\r\n LUISKey: string;\r\n BotStateTable: string;\r\n BotStatePriorTable: string;\r\n BotServiceRuntimeVersion: string;\r\n AzureTags: string;\r\n AcceptedTermsOfService: string[];\r\n MigratedDate: DateTimeOffset;\r\n ProvisioningState: string;\r\n IsStateStoreProhibited: boolean;\r\n Languages: string[];\r\n Roles: string[];\r\n OpenWithHint: string;\r\n AppPasswordHint: string;\r\n MsaAppType: BotAppType;\r\n MsaAppMSIResourceId: string;\r\n ApprovedForBotDirectory: boolean;\r\n }\r\n\r\n /** Corresponds to FormValidationErrors, optional properties */\r\n export interface _FormValidationErrors {\r\n Errors?: FieldValidationError[];\r\n }\r\n\r\n /** Corresponds to FormValidationErrors */\r\n export interface FormValidationErrors {\r\n Errors: FieldValidationError[];\r\n }\r\n\r\n /** Corresponds to BotLog, optional properties */\r\n export interface _BotLog extends _ETagObject {\r\n BotId?: string;\r\n ChannelId?: string;\r\n CorrelationId?: string;\r\n Message?: string;\r\n When?: DateTimeOffset;\r\n Severity?: SeverityType;\r\n Slot?: number;\r\n }\r\n\r\n /** Corresponds to BotLog */\r\n export interface BotLog extends ETagObject {\r\n BotId: string;\r\n ChannelId: string;\r\n CorrelationId: string;\r\n Message: string;\r\n When: DateTimeOffset;\r\n Severity: SeverityType;\r\n Slot: number;\r\n }\r\n\r\n /** Corresponds to AppConfigProperties, optional properties */\r\n export interface _AppConfigProperties {\r\n numberOfWorkers?: number;\r\n defaultDocuments?: string[];\r\n netFrameworkVersion?: string;\r\n phpVersion?: string;\r\n pythonVersion?: string;\r\n nodeVersion?: string;\r\n requestTracingEnabled?: boolean;\r\n remoteDebuggingEnabled?: boolean;\r\n remoteDebuggingVersion?: any;\r\n httpLoggingEnabled?: boolean;\r\n logsDirectorySizeLimit?: number;\r\n detailedErrorLoggingEnabled?: boolean;\r\n publishingUsername?: string;\r\n publishingPassword?: any;\r\n appSettings?: any;\r\n metadata?: any;\r\n connectionStrings?: any;\r\n machineKey?: any;\r\n handlerMappings?: any;\r\n documentRoot?: any;\r\n scmType?: string;\r\n use32BitWorkerProcess?: boolean;\r\n webSocketsEnabled?: boolean;\r\n alwaysOn?: boolean;\r\n javaVersion?: any;\r\n javaContainer?: any;\r\n javaContainerVersion?: any;\r\n appCommandLine?: string;\r\n managedPipelineMode?: number;\r\n virtualApplications?: Virtualapplication[];\r\n winAuthAdminState?: number;\r\n winAuthTenantState?: number;\r\n customAppPoolIdentityAdminState?: boolean;\r\n customAppPoolIdentityTenantState?: boolean;\r\n runtimeADUser?: any;\r\n runtimeADUserPassword?: any;\r\n loadBalancing?: number;\r\n routingRules?: any[];\r\n experiments?: Experiments;\r\n limits?: any;\r\n autoHealEnabled?: boolean;\r\n autoHealRules?: Autohealrules;\r\n tracingOptions?: any;\r\n vnetName?: string;\r\n siteAuthEnabled?: boolean;\r\n siteAuthSettings?: Siteauthsettings;\r\n cors?: Cors;\r\n push?: any;\r\n apiDefinition?: any;\r\n autoSwapSlotName?: any;\r\n localMySqlEnabled?: boolean;\r\n ipSecurityRestrictions?: any;\r\n }\r\n\r\n /** Corresponds to AppConfigProperties */\r\n export interface AppConfigProperties {\r\n numberOfWorkers: number;\r\n defaultDocuments: string[];\r\n netFrameworkVersion: string;\r\n phpVersion: string;\r\n pythonVersion: string;\r\n nodeVersion: string;\r\n requestTracingEnabled: boolean;\r\n remoteDebuggingEnabled: boolean;\r\n remoteDebuggingVersion: any;\r\n httpLoggingEnabled: boolean;\r\n logsDirectorySizeLimit: number;\r\n detailedErrorLoggingEnabled: boolean;\r\n publishingUsername: string;\r\n publishingPassword: any;\r\n appSettings: any;\r\n metadata: any;\r\n connectionStrings: any;\r\n machineKey: any;\r\n handlerMappings: any;\r\n documentRoot: any;\r\n scmType: string;\r\n use32BitWorkerProcess: boolean;\r\n webSocketsEnabled: boolean;\r\n alwaysOn: boolean;\r\n javaVersion: any;\r\n javaContainer: any;\r\n javaContainerVersion: any;\r\n appCommandLine: string;\r\n managedPipelineMode: number;\r\n virtualApplications: Virtualapplication[];\r\n winAuthAdminState: number;\r\n winAuthTenantState: number;\r\n customAppPoolIdentityAdminState: boolean;\r\n customAppPoolIdentityTenantState: boolean;\r\n runtimeADUser: any;\r\n runtimeADUserPassword: any;\r\n loadBalancing: number;\r\n routingRules: any[];\r\n experiments: Experiments;\r\n limits: any;\r\n autoHealEnabled: boolean;\r\n autoHealRules: Autohealrules;\r\n tracingOptions: any;\r\n vnetName: string;\r\n siteAuthEnabled: boolean;\r\n siteAuthSettings: Siteauthsettings;\r\n cors: Cors;\r\n push: any;\r\n apiDefinition: any;\r\n autoSwapSlotName: any;\r\n localMySqlEnabled: boolean;\r\n ipSecurityRestrictions: any;\r\n }\r\n\r\n /** Corresponds to DevPortalLib.Azure.AzureResource, optional properties */\r\n export interface _AzureResource {\r\n name?: string;\r\n id?: string;\r\n type?: string;\r\n location?: string;\r\n properties?: T;\r\n }\r\n\r\n /** Corresponds to DevPortalLib.Azure.AzureResource */\r\n export interface AzureResource {\r\n name: string;\r\n id: string;\r\n type: string;\r\n location: string;\r\n properties: T;\r\n }\r\n\r\n /** Corresponds to BotHistory, optional properties */\r\n export interface _BotHistory extends _ETagObject {\r\n BotId?: string;\r\n Type?: PublishEvent;\r\n Comment?: string;\r\n User?: string;\r\n When?: DateTimeOffset;\r\n Channel?: string;\r\n SubmitDate?: DateTimeOffset;\r\n ReviewDate?: DateTimeOffset;\r\n PublisherEmail?: string;\r\n BotName?: string;\r\n SubmittedBy?: string;\r\n NormalizedBotId?: string;\r\n }\r\n\r\n /** Corresponds to BotHistory */\r\n export interface BotHistory extends ETagObject {\r\n BotId: string;\r\n Type: PublishEvent;\r\n Comment: string;\r\n User: string;\r\n When: DateTimeOffset;\r\n Channel: string;\r\n SubmitDate: DateTimeOffset;\r\n ReviewDate: DateTimeOffset;\r\n PublisherEmail: string;\r\n BotName: string;\r\n SubmittedBy: string;\r\n NormalizedBotId: string;\r\n }\r\n\r\n /** Corresponds to PublishEvent */\r\n export enum PublishEvent {\r\n SUBMIT = 0, \r\n UNSUBMIT = 1, \r\n INREVIEW = 2, \r\n REJECT = 3, \r\n ACCEPT = 4, \r\n FEATURED = 5, \r\n UNFEATURED = 6, \r\n SCANNING = 7, \r\n SCANNED = 8, \r\n DELETED = 9, \r\n SCANFAILED = 10\r\n }\r\n\r\n /** Corresponds to Channel, optional properties */\r\n export interface _Channel extends _ETagObject {\r\n Id?: string;\r\n Name?: string;\r\n Description?: string;\r\n Endpoint?: string;\r\n UserConfigurationUrl?: string;\r\n DeveloperConfigurationUrl?: string;\r\n DeveloperConfigLogoutUrl?: string;\r\n IconUrl?: string;\r\n SecondaryIconUrl?: string;\r\n UserConfigurationTemplate?: string;\r\n SystemStatus?: string;\r\n }\r\n\r\n /** Corresponds to Channel */\r\n export interface Channel extends ETagObject {\r\n Id: string;\r\n Name: string;\r\n Description: string;\r\n Endpoint: string;\r\n UserConfigurationUrl: string;\r\n DeveloperConfigurationUrl: string;\r\n DeveloperConfigLogoutUrl: string;\r\n IconUrl: string;\r\n SecondaryIconUrl: string;\r\n UserConfigurationTemplate: string;\r\n SystemStatus: string;\r\n }\r\n\r\n /** Corresponds to BotContactCard, optional properties */\r\n export interface _BotContactCard {\r\n Id?: string;\r\n Name?: string;\r\n CreatedDate?: DateTimeOffset;\r\n Languages?: string[];\r\n Hashtags?: string[];\r\n Publisher?: string;\r\n PublisherEmail?: string;\r\n Website?: string;\r\n IconUrl?: string;\r\n Description?: string;\r\n Contacts?: ContactCard[];\r\n DeveloperBotTermsOfUseUrl?: string;\r\n ChannelName?: string;\r\n ChannelIconUrl?: string;\r\n VCardUrl?: string;\r\n }\r\n\r\n /** Corresponds to BotContactCard */\r\n export interface BotContactCard {\r\n Id: string;\r\n Name: string;\r\n CreatedDate: DateTimeOffset;\r\n Languages: string[];\r\n Hashtags: string[];\r\n Publisher: string;\r\n PublisherEmail: string;\r\n Website: string;\r\n IconUrl: string;\r\n Description: string;\r\n Contacts: ContactCard[];\r\n DeveloperBotTermsOfUseUrl: string;\r\n ChannelName: string;\r\n ChannelIconUrl: string;\r\n VCardUrl: string;\r\n }\r\n\r\n /** Corresponds to LuisAppData, optional properties */\r\n export interface _LuisAppData {\r\n AppId?: string;\r\n Key?: string;\r\n APIHostName?: string;\r\n }\r\n\r\n /** Corresponds to LuisAppData */\r\n export interface LuisAppData {\r\n AppId: string;\r\n Key: string;\r\n APIHostName: string;\r\n }\r\n\r\n /** Corresponds to LuisRegions */\r\n export enum LuisRegions {\r\n US = 0, \r\n EU = 1, \r\n AU = 2, \r\n Virginia = 3, \r\n USNATEAST = 4, \r\n USNATWEST = 5, \r\n USSECEAST = 6, \r\n USSECWEST = 7, \r\n CHINAEAST2 = 8, \r\n CHINANORTH = 9\r\n }\r\n\r\n /** Corresponds to SchemaTransformationVersion, optional properties */\r\n export interface _SchemaTransformationVersion {\r\n Major?: number;\r\n Minor?: number;\r\n }\r\n\r\n /** Corresponds to SchemaTransformationVersion */\r\n export interface SchemaTransformationVersion {\r\n Major: number;\r\n Minor: number;\r\n }\r\n\r\n /** Corresponds to VfsNodeInfo, optional properties */\r\n export interface _VfsNodeInfo {\r\n name?: string;\r\n size?: number;\r\n mtime?: DateTimeOffset;\r\n ctime?: DateTimeOffset;\r\n href?: string;\r\n path?: string;\r\n mime?: string;\r\n }\r\n\r\n /** Corresponds to VfsNodeInfo */\r\n export interface VfsNodeInfo {\r\n name: string;\r\n size: number;\r\n mtime: DateTimeOffset;\r\n ctime: DateTimeOffset;\r\n href: string;\r\n path: string;\r\n mime: string;\r\n }\r\n\r\n /** Corresponds to ScmAuthorization, optional properties */\r\n export interface _ScmAuthorization {\r\n Url?: string;\r\n UserName?: string;\r\n Password?: string;\r\n }\r\n\r\n /** Corresponds to ScmAuthorization */\r\n export interface ScmAuthorization {\r\n Url: string;\r\n UserName: string;\r\n Password: string;\r\n }\r\n\r\n /** Corresponds to BotDevInfo, optional properties */\r\n export interface _BotDevInfo {\r\n ResourceId?: string;\r\n AuthToken?: string;\r\n }\r\n\r\n /** Corresponds to BotDevInfo */\r\n export interface BotDevInfo {\r\n ResourceId: string;\r\n AuthToken: string;\r\n }\r\n\r\n /** Corresponds to ConvergedApp, optional properties */\r\n export interface _ConvergedApp {\r\n Id?: string;\r\n AppId?: string;\r\n Password?: string;\r\n Name?: string;\r\n SignInAudience?: string;\r\n TenantId?: string;\r\n }\r\n\r\n /** Corresponds to ConvergedApp */\r\n export interface ConvergedApp {\r\n Id: string;\r\n AppId: string;\r\n Password: string;\r\n Name: string;\r\n SignInAudience: string;\r\n TenantId: string;\r\n }\r\n\r\n /** Corresponds to CheckNameAvailabilityResponse, optional properties */\r\n export interface _CheckNameAvailabilityResponse {\r\n Valid?: boolean;\r\n Message?: string;\r\n AbsCode?: string;\r\n }\r\n\r\n /** Corresponds to CheckNameAvailabilityResponse */\r\n export interface CheckNameAvailabilityResponse {\r\n Valid: boolean;\r\n Message: string;\r\n AbsCode: string;\r\n }\r\n\r\n /** Corresponds to CheckFeatureEnabledResponse, optional properties */\r\n export interface _CheckFeatureEnabledResponse {\r\n IsEnabled?: boolean;\r\n Message?: string;\r\n }\r\n\r\n /** Corresponds to CheckFeatureEnabledResponse */\r\n export interface CheckFeatureEnabledResponse {\r\n IsEnabled: boolean;\r\n Message: string;\r\n }\r\n\r\n /** Corresponds to EmailSubscriptionInfo, optional properties */\r\n export interface _EmailSubscriptionInfo {\r\n CountryCode?: string;\r\n Subscription?: EmailSubscription;\r\n IsEnabled?: boolean;\r\n SubscriptionType?: EmailOptingOptions;\r\n }\r\n\r\n /** Corresponds to EmailSubscriptionInfo */\r\n export interface EmailSubscriptionInfo {\r\n CountryCode: string;\r\n Subscription: EmailSubscription;\r\n IsEnabled: boolean;\r\n SubscriptionType: EmailOptingOptions;\r\n }\r\n\r\n /** Corresponds to UserAgreementConsentInfo, optional properties */\r\n export interface _UserAgreementConsentInfo {\r\n ConsentVersion?: UserAgreementConsentVersion;\r\n }\r\n\r\n /** Corresponds to UserAgreementConsentInfo */\r\n export interface UserAgreementConsentInfo {\r\n ConsentVersion: UserAgreementConsentVersion;\r\n }\r\n\r\n /** Corresponds to AnalyticsNumericTimelineResponse, optional properties */\r\n export interface _AnalyticsNumericTimelineResponse {\r\n Timeline?: any;\r\n Totals?: any;\r\n }\r\n\r\n /** Corresponds to AnalyticsNumericTimelineResponse */\r\n export interface AnalyticsNumericTimelineResponse {\r\n Timeline: any;\r\n Totals: any;\r\n }\r\n\r\n /** Corresponds to AnalyticsRequest, optional properties */\r\n export interface _AnalyticsRequest {\r\n Timespan?: string;\r\n }\r\n\r\n /** Corresponds to AnalyticsRequest */\r\n export interface AnalyticsRequest {\r\n Timespan: string;\r\n }\r\n\r\n /** Corresponds to AnalyticsUserRetentionResponse, optional properties */\r\n export interface _AnalyticsUserRetentionResponse {\r\n Days?: any;\r\n }\r\n\r\n /** Corresponds to AnalyticsUserRetentionResponse */\r\n export interface AnalyticsUserRetentionResponse {\r\n Days: any;\r\n }\r\n\r\n /** Corresponds to AnswerManifest, optional properties */\r\n export interface _AnswerManifest {\r\n bfModel?: BotService;\r\n Id?: string;\r\n AppId?: string;\r\n Endpoint?: string;\r\n Name?: string;\r\n Description?: string;\r\n DeveloperUserIds?: any;\r\n NeedsOboAuth?: boolean;\r\n ResourceId?: string;\r\n TriggerPhrases?: any;\r\n Status?: AnswerStatus;\r\n Icon?: string;\r\n SupportContact?: string;\r\n AdditionalComments?: string;\r\n SampleQueries?: any;\r\n VerticalName?: string;\r\n }\r\n\r\n /** Corresponds to AnswerManifest */\r\n export interface AnswerManifest {\r\n bfModel: BotService;\r\n Id: string;\r\n AppId: string;\r\n Endpoint: string;\r\n Name: string;\r\n Description: string;\r\n DeveloperUserIds: any;\r\n NeedsOboAuth: boolean;\r\n ResourceId: string;\r\n TriggerPhrases: any;\r\n Status: AnswerStatus;\r\n Icon: string;\r\n SupportContact: string;\r\n AdditionalComments: string;\r\n SampleQueries: any;\r\n VerticalName: string;\r\n }\r\n\r\n /** Corresponds to Uri, optional properties */\r\n export interface _Uri {\r\n AbsolutePath?: string;\r\n AbsoluteUri?: string;\r\n LocalPath?: string;\r\n Authority?: string;\r\n HostNameType?: UriHostNameType;\r\n IsDefaultPort?: boolean;\r\n IsFile?: boolean;\r\n IsLoopback?: boolean;\r\n PathAndQuery?: string;\r\n Segments?: string[];\r\n IsUnc?: boolean;\r\n Host?: string;\r\n Port?: number;\r\n Query?: string;\r\n Fragment?: string;\r\n Scheme?: string;\r\n OriginalString?: string;\r\n DnsSafeHost?: string;\r\n IdnHost?: string;\r\n IsAbsoluteUri?: boolean;\r\n UserEscaped?: boolean;\r\n UserInfo?: string;\r\n }\r\n\r\n /** Corresponds to Uri */\r\n export interface Uri {\r\n AbsolutePath: string;\r\n AbsoluteUri: string;\r\n LocalPath: string;\r\n Authority: string;\r\n HostNameType: UriHostNameType;\r\n IsDefaultPort: boolean;\r\n IsFile: boolean;\r\n IsLoopback: boolean;\r\n PathAndQuery: string;\r\n Segments: string[];\r\n IsUnc: boolean;\r\n Host: string;\r\n Port: number;\r\n Query: string;\r\n Fragment: string;\r\n Scheme: string;\r\n OriginalString: string;\r\n DnsSafeHost: string;\r\n IdnHost: string;\r\n IsAbsoluteUri: boolean;\r\n UserEscaped: boolean;\r\n UserInfo: string;\r\n }\r\n\r\n /** Corresponds to ConnectionSettingInfo, optional properties */\r\n export interface _ConnectionSettingInfo {\r\n Id?: string;\r\n Name?: string;\r\n ServiceProviderId?: string;\r\n }\r\n\r\n /** Corresponds to ConnectionSettingInfo */\r\n export interface ConnectionSettingInfo {\r\n Id: string;\r\n Name: string;\r\n ServiceProviderId: string;\r\n }\r\n\r\n /** Corresponds to ChannelViewModel, optional properties */\r\n export interface _ChannelViewModel {\r\n Id?: string;\r\n Name?: string;\r\n Description?: string;\r\n DeveloperConfigurationUrl?: string;\r\n DeveloperConfigLogoutUrl?: string;\r\n IconUrl?: string;\r\n SystemStatus?: string;\r\n }\r\n\r\n /** Corresponds to ChannelViewModel */\r\n export interface ChannelViewModel {\r\n Id: string;\r\n Name: string;\r\n Description: string;\r\n DeveloperConfigurationUrl: string;\r\n DeveloperConfigLogoutUrl: string;\r\n IconUrl: string;\r\n SystemStatus: string;\r\n }\r\n\r\n /** Corresponds to DevPortalFeatureFlags */\r\n export enum DevPortalFeatureFlags {\r\n None = 0, \r\n SupportNonAbsCreate = 1, \r\n SupportNonAzureUsers = 2\r\n }\r\n\r\n /** Corresponds to ETagObject, optional properties */\r\n export interface _ETagObject {\r\n ETag?: string;\r\n }\r\n\r\n /** Corresponds to ETagObject */\r\n export interface ETagObject {\r\n ETag: string;\r\n }\r\n\r\n /** Corresponds to AnnouncementSeverity */\r\n export enum AnnouncementSeverity {\r\n Good = 0, \r\n Warning = 1, \r\n Error = 2, \r\n Information = 3\r\n }\r\n\r\n /** Corresponds to IBot, optional properties */\r\n export interface _IBot {\r\n Id?: string;\r\n Name?: string;\r\n Languages?: string[];\r\n OwnerIds?: string[];\r\n Hashtags?: string[];\r\n Publisher?: string;\r\n PublisherEmail?: string;\r\n IconUrl?: string;\r\n Description?: string;\r\n EnabledChannels?: string[];\r\n ListedChannels?: string[];\r\n Listed?: boolean;\r\n ApprovedForBotDirectory?: boolean;\r\n DefaultIconColorHash?: string;\r\n OpenWithHint?: string;\r\n AppPasswordHint?: string;\r\n }\r\n\r\n /** Corresponds to IBot */\r\n export interface IBot {\r\n Id: string;\r\n Name: string;\r\n Languages: string[];\r\n OwnerIds: string[];\r\n Hashtags: string[];\r\n Publisher: string;\r\n PublisherEmail: string;\r\n IconUrl: string;\r\n Description: string;\r\n EnabledChannels: string[];\r\n ListedChannels: string[];\r\n Listed: boolean;\r\n ApprovedForBotDirectory: boolean;\r\n DefaultIconColorHash: string;\r\n OpenWithHint: string;\r\n AppPasswordHint: string;\r\n }\r\n\r\n /** Corresponds to DateTimeOffset, optional properties */\r\n export interface _DateTimeOffset {\r\n DateTime?: Date;\r\n UtcDateTime?: Date;\r\n LocalDateTime?: Date;\r\n Date?: Date;\r\n Day?: number;\r\n DayOfWeek?: DayOfWeek;\r\n DayOfYear?: number;\r\n Hour?: number;\r\n Millisecond?: number;\r\n Minute?: number;\r\n Month?: number;\r\n Offset?: TimeSpan;\r\n Second?: number;\r\n Ticks?: number;\r\n UtcTicks?: number;\r\n TimeOfDay?: TimeSpan;\r\n Year?: number;\r\n }\r\n\r\n /** Corresponds to DateTimeOffset */\r\n export interface DateTimeOffset {\r\n DateTime: Date;\r\n UtcDateTime: Date;\r\n LocalDateTime: Date;\r\n Date: Date;\r\n Day: number;\r\n DayOfWeek: DayOfWeek;\r\n DayOfYear: number;\r\n Hour: number;\r\n Millisecond: number;\r\n Minute: number;\r\n Month: number;\r\n Offset: TimeSpan;\r\n Second: number;\r\n Ticks: number;\r\n UtcTicks: number;\r\n TimeOfDay: TimeSpan;\r\n Year: number;\r\n }\r\n\r\n /** Corresponds to BotAppType */\r\n export enum BotAppType {\r\n MultiTenant = 0, \r\n SingleTenant = 1, \r\n UserAssignedMSI = 2\r\n }\r\n\r\n /** Corresponds to D, optional properties */\r\n export interface _D {\r\n }\r\n\r\n /** Corresponds to D */\r\n export interface D {\r\n }\r\n\r\n /** Corresponds to ReviewStatusDetail, optional properties */\r\n export interface _ReviewStatusDetail {\r\n ReviewStatus?: ReviewStatus;\r\n Comment?: string;\r\n }\r\n\r\n /** Corresponds to ReviewStatusDetail */\r\n export interface ReviewStatusDetail {\r\n ReviewStatus: ReviewStatus;\r\n Comment: string;\r\n }\r\n\r\n /** Corresponds to TenantAccess */\r\n export enum TenantAccess {\r\n NoAccess = 0, \r\n NotCurrent = 1, \r\n Current = 2\r\n }\r\n\r\n /** Corresponds to BotServiceBase, optional properties */\r\n export interface _BotServiceBase extends _ETagObject {\r\n Id?: string;\r\n MsaAppId?: string;\r\n MsaAppTenantId?: string;\r\n SubscriptionId?: string;\r\n ResourceGroupName?: string;\r\n Kind?: string;\r\n ServicePlan?: string;\r\n IsSubscriptionDisabled?: boolean;\r\n ThrottlePolicy?: string;\r\n ExceededMeters?: ExceededMeter[];\r\n Endpoint?: string;\r\n Version?: string;\r\n DeveloperAppInsightKey?: string;\r\n ConfiguredChannels?: string[];\r\n EnabledChannels?: string[];\r\n IsStreamingSupported?: boolean;\r\n SchemaTransformationVersion?: SchemaTransformationVersion;\r\n SystemHashtags?: string[];\r\n IsIsolated?: boolean;\r\n Region?: string;\r\n }\r\n\r\n /** Corresponds to BotServiceBase */\r\n export interface BotServiceBase extends ETagObject {\r\n Id: string;\r\n MsaAppId: string;\r\n MsaAppTenantId: string;\r\n SubscriptionId: string;\r\n ResourceGroupName: string;\r\n Kind: string;\r\n ServicePlan: string;\r\n IsSubscriptionDisabled: boolean;\r\n ThrottlePolicy: string;\r\n ExceededMeters: ExceededMeter[];\r\n Endpoint: string;\r\n Version: string;\r\n DeveloperAppInsightKey: string;\r\n ConfiguredChannels: string[];\r\n EnabledChannels: string[];\r\n IsStreamingSupported: boolean;\r\n SchemaTransformationVersion: SchemaTransformationVersion;\r\n SystemHashtags: string[];\r\n IsIsolated: boolean;\r\n Region: string;\r\n }\r\n\r\n /** Corresponds to IManagementMessageBot, optional properties */\r\n export interface _IManagementMessageBot {\r\n Id?: string;\r\n MsaAppId?: string;\r\n SubscriptionId?: string;\r\n ResourceGroupName?: string;\r\n }\r\n\r\n /** Corresponds to IManagementMessageBot */\r\n export interface IManagementMessageBot {\r\n Id: string;\r\n MsaAppId: string;\r\n SubscriptionId: string;\r\n ResourceGroupName: string;\r\n }\r\n\r\n /** Corresponds to IRedactable, optional properties */\r\n export interface _IRedactable {\r\n }\r\n\r\n /** Corresponds to IRedactable */\r\n export interface IRedactable {\r\n }\r\n\r\n /** Corresponds to AzureProvisionInfo, optional properties */\r\n export interface _AzureProvisionInfo {\r\n SubscriptionId?: string;\r\n Region?: string;\r\n ResourceGroupName?: string;\r\n Deployment?: any;\r\n IntegrationDeployment?: any;\r\n HostingEnvironment?: HostingEnvironment;\r\n SourceRepoUrl?: string;\r\n SiteName?: string;\r\n ServerFarm?: string;\r\n TenantId?: string;\r\n BotRunTimeVersion?: string;\r\n ServerFarmId?: string;\r\n }\r\n\r\n /** Corresponds to AzureProvisionInfo */\r\n export interface AzureProvisionInfo {\r\n SubscriptionId: string;\r\n Region: string;\r\n ResourceGroupName: string;\r\n Deployment: any;\r\n IntegrationDeployment: any;\r\n HostingEnvironment: HostingEnvironment;\r\n SourceRepoUrl: string;\r\n SiteName: string;\r\n ServerFarm: string;\r\n TenantId: string;\r\n BotRunTimeVersion: string;\r\n ServerFarmId: string;\r\n }\r\n\r\n /** Corresponds to Endpoint, optional properties */\r\n export interface _Endpoint {\r\n Version?: string;\r\n Url?: string;\r\n }\r\n\r\n /** Corresponds to Endpoint */\r\n export interface Endpoint {\r\n Version: string;\r\n Url: string;\r\n }\r\n\r\n /** Corresponds to ContactInfo, optional properties */\r\n export interface _ContactInfo {\r\n ChannelId?: string;\r\n Address?: string;\r\n ContactType?: ContactType;\r\n Name?: string;\r\n HtmlLink?: string;\r\n Unpublishable?: boolean;\r\n UnpublishableReason?: string;\r\n }\r\n\r\n /** Corresponds to ContactInfo */\r\n export interface ContactInfo {\r\n ChannelId: string;\r\n Address: string;\r\n ContactType: ContactType;\r\n Name: string;\r\n HtmlLink: string;\r\n Unpublishable: boolean;\r\n UnpublishableReason: string;\r\n }\r\n\r\n /** Corresponds to CortanaProperties, optional properties */\r\n export interface _CortanaProperties {\r\n InvocationName?: string;\r\n ModuleName?: string;\r\n }\r\n\r\n /** Corresponds to CortanaProperties */\r\n export interface CortanaProperties {\r\n InvocationName: string;\r\n ModuleName: string;\r\n }\r\n\r\n /** Corresponds to ApsProperties, optional properties */\r\n export interface _ApsProperties {\r\n DeploymentEnvironment?: ApsDeploymentEnvironment;\r\n }\r\n\r\n /** Corresponds to ApsProperties */\r\n export interface ApsProperties {\r\n DeploymentEnvironment: ApsDeploymentEnvironment;\r\n }\r\n\r\n /** Corresponds to Action, optional properties */\r\n export interface _Action {\r\n Id?: string;\r\n ActionDefinition?: ActionDefinition;\r\n }\r\n\r\n /** Corresponds to Action */\r\n export interface Action {\r\n Id: string;\r\n ActionDefinition: ActionDefinition;\r\n }\r\n\r\n /** Corresponds to FieldValidationError, optional properties */\r\n export interface _FieldValidationError {\r\n Field?: string;\r\n Message?: string;\r\n }\r\n\r\n /** Corresponds to FieldValidationError */\r\n export interface FieldValidationError {\r\n Field: string;\r\n Message: string;\r\n }\r\n\r\n /** Corresponds to SeverityType */\r\n export enum SeverityType {\r\n OK = 0, \r\n Warning = 1, \r\n Error = 2\r\n }\r\n\r\n /** Corresponds to Virtualapplication, optional properties */\r\n export interface _Virtualapplication {\r\n virtualPath?: string;\r\n physicalPath?: string;\r\n preloadEnabled?: boolean;\r\n virtualDirectories?: any;\r\n }\r\n\r\n /** Corresponds to Virtualapplication */\r\n export interface Virtualapplication {\r\n virtualPath: string;\r\n physicalPath: string;\r\n preloadEnabled: boolean;\r\n virtualDirectories: any;\r\n }\r\n\r\n /** Corresponds to Experiments, optional properties */\r\n export interface _Experiments {\r\n rampUpRules?: any[];\r\n }\r\n\r\n /** Corresponds to Experiments */\r\n export interface Experiments {\r\n rampUpRules: any[];\r\n }\r\n\r\n /** Corresponds to Autohealrules, optional properties */\r\n export interface _Autohealrules {\r\n triggers?: any;\r\n actions?: any;\r\n }\r\n\r\n /** Corresponds to Autohealrules */\r\n export interface Autohealrules {\r\n triggers: any;\r\n actions: any;\r\n }\r\n\r\n /** Corresponds to Siteauthsettings, optional properties */\r\n export interface _Siteauthsettings {\r\n enabled?: any;\r\n httpApiPrefixPath?: any;\r\n unauthenticatedClientAction?: any;\r\n tokenStoreEnabled?: any;\r\n allowedExternalRedirectUrls?: any;\r\n defaultProvider?: any;\r\n clientId?: any;\r\n clientSecret?: any;\r\n issuer?: any;\r\n allowedAudiences?: any;\r\n additionalLoginParams?: any;\r\n isAadAutoProvisioned?: boolean;\r\n googleClientId?: any;\r\n googleClientSecret?: any;\r\n googleOAuthScopes?: any;\r\n facebookAppId?: any;\r\n facebookAppSecret?: any;\r\n facebookOAuthScopes?: any;\r\n twitterConsumerKey?: any;\r\n twitterConsumerSecret?: any;\r\n microsoftAccountClientId?: any;\r\n microsoftAccountClientSecret?: any;\r\n microsoftAccountOAuthScopes?: any;\r\n }\r\n\r\n /** Corresponds to Siteauthsettings */\r\n export interface Siteauthsettings {\r\n enabled: any;\r\n httpApiPrefixPath: any;\r\n unauthenticatedClientAction: any;\r\n tokenStoreEnabled: any;\r\n allowedExternalRedirectUrls: any;\r\n defaultProvider: any;\r\n clientId: any;\r\n clientSecret: any;\r\n issuer: any;\r\n allowedAudiences: any;\r\n additionalLoginParams: any;\r\n isAadAutoProvisioned: boolean;\r\n googleClientId: any;\r\n googleClientSecret: any;\r\n googleOAuthScopes: any;\r\n facebookAppId: any;\r\n facebookAppSecret: any;\r\n facebookOAuthScopes: any;\r\n twitterConsumerKey: any;\r\n twitterConsumerSecret: any;\r\n microsoftAccountClientId: any;\r\n microsoftAccountClientSecret: any;\r\n microsoftAccountOAuthScopes: any;\r\n }\r\n\r\n /** Corresponds to Cors, optional properties */\r\n export interface _Cors {\r\n allowedOrigins?: string[];\r\n }\r\n\r\n /** Corresponds to Cors */\r\n export interface Cors {\r\n allowedOrigins: string[];\r\n }\r\n\r\n /** Corresponds to T, optional properties */\r\n export interface _T {\r\n }\r\n\r\n /** Corresponds to T */\r\n export interface T {\r\n }\r\n\r\n /** Corresponds to ContactCard, optional properties */\r\n export interface _ContactCard {\r\n ChannelId?: string;\r\n ContactType?: string;\r\n ChannelName?: string;\r\n ChannelIconUrl?: string;\r\n Name?: string;\r\n Address?: string;\r\n HtmlLink?: string;\r\n Secret?: string;\r\n Note?: string;\r\n }\r\n\r\n /** Corresponds to ContactCard */\r\n export interface ContactCard {\r\n ChannelId: string;\r\n ContactType: string;\r\n ChannelName: string;\r\n ChannelIconUrl: string;\r\n Name: string;\r\n Address: string;\r\n HtmlLink: string;\r\n Secret: string;\r\n Note: string;\r\n }\r\n\r\n /** Corresponds to EmailSubscription, optional properties */\r\n export interface _EmailSubscription {\r\n ConsentVersion?: EmailSubscriptionTermsAndConditions;\r\n SubscriptionToken?: string;\r\n HasConsent?: boolean;\r\n }\r\n\r\n /** Corresponds to EmailSubscription */\r\n export interface EmailSubscription {\r\n ConsentVersion: EmailSubscriptionTermsAndConditions;\r\n SubscriptionToken: string;\r\n HasConsent: boolean;\r\n }\r\n\r\n /** Corresponds to EmailOptingOptions */\r\n export enum EmailOptingOptions {\r\n OptOut = 0, \r\n OptIn = 1, \r\n DoubleOptIn = 2, \r\n Notice = 3\r\n }\r\n\r\n /** Corresponds to UserAgreementConsentVersion */\r\n export enum UserAgreementConsentVersion {\r\n V1 = 1, \r\n V2 = 2\r\n }\r\n\r\n /** Corresponds to AnswerStatus */\r\n export enum AnswerStatus {\r\n NeedsReview = 0, \r\n InReview = 1, \r\n Published = 2, \r\n Rejected = 3, \r\n Deactivated = 4\r\n }\r\n\r\n /** Corresponds to UriHostNameType */\r\n export enum UriHostNameType {\r\n Unknown = 0, \r\n Basic = 1, \r\n Dns = 2, \r\n IPv4 = 3, \r\n IPv6 = 4\r\n }\r\n\r\n /** Corresponds to DayOfWeek */\r\n export enum DayOfWeek {\r\n Sunday = 0, \r\n Monday = 1, \r\n Tuesday = 2, \r\n Wednesday = 3, \r\n Thursday = 4, \r\n Friday = 5, \r\n Saturday = 6\r\n }\r\n\r\n /** Corresponds to TimeSpan, optional properties */\r\n export interface _TimeSpan {\r\n Ticks?: number;\r\n Days?: number;\r\n Hours?: number;\r\n Milliseconds?: number;\r\n Minutes?: number;\r\n Seconds?: number;\r\n TotalDays?: number;\r\n TotalHours?: number;\r\n TotalMilliseconds?: number;\r\n TotalMinutes?: number;\r\n TotalSeconds?: number;\r\n }\r\n\r\n /** Corresponds to TimeSpan */\r\n export interface TimeSpan {\r\n Ticks: number;\r\n Days: number;\r\n Hours: number;\r\n Milliseconds: number;\r\n Minutes: number;\r\n Seconds: number;\r\n TotalDays: number;\r\n TotalHours: number;\r\n TotalMilliseconds: number;\r\n TotalMinutes: number;\r\n TotalSeconds: number;\r\n }\r\n\r\n /** Corresponds to ReviewStatus */\r\n export enum ReviewStatus {\r\n NotSubmitted = 0, \r\n InReview = 1, \r\n Rejected = 2, \r\n Approved = 3\r\n }\r\n\r\n /** Corresponds to ExceededMeter, optional properties */\r\n export interface _ExceededMeter {\r\n MeterId?: string;\r\n Expires?: Date;\r\n }\r\n\r\n /** Corresponds to ExceededMeter */\r\n export interface ExceededMeter {\r\n MeterId: string;\r\n Expires: Date;\r\n }\r\n\r\n /** Corresponds to HostingEnvironment */\r\n export enum HostingEnvironment {\r\n AzureWebApp = 0, \r\n AzureFunctions = 1, \r\n AzureBotApp = 2, \r\n AzureConversationDesigner = 3\r\n }\r\n\r\n /** Corresponds to ContactType */\r\n export enum ContactType {\r\n Unknown = 0, \r\n Email = 1, \r\n GroupMe = 2, \r\n Kik = 3, \r\n PhoneNumber = 4, \r\n Skype = 5, \r\n Slack = 6, \r\n Telegram = 7, \r\n Twitter = 8, \r\n Web = 9, \r\n API = 10, \r\n Facebook = 11, \r\n Instagram = 12, \r\n MSTeams = 13, \r\n WeChat = 14, \r\n SIP = 15, \r\n Bing = 16, \r\n Kaizala = 17, \r\n Line = 18\r\n }\r\n\r\n /** Corresponds to ApsDeploymentEnvironment */\r\n export enum ApsDeploymentEnvironment {\r\n CommercialDeployment = 0, \r\n GCCModerateDeployment = 1, \r\n GCCHighDeployment = 2, \r\n DoDDeployment = 3\r\n }\r\n\r\n /** Corresponds to ActionDefinition, optional properties */\r\n export interface _ActionDefinition {\r\n Id?: string;\r\n Description?: string;\r\n Slots?: SlotDefinition[];\r\n Triggers?: TriggerSet;\r\n }\r\n\r\n /** Corresponds to ActionDefinition */\r\n export interface ActionDefinition {\r\n Id: string;\r\n Description: string;\r\n Slots: SlotDefinition[];\r\n Triggers: TriggerSet;\r\n }\r\n\r\n /** Corresponds to EmailSubscriptionTermsAndConditions */\r\n export enum EmailSubscriptionTermsAndConditions {\r\n V1 = 1, \r\n V2 = 2\r\n }\r\n\r\n /** Corresponds to SlotDefinition, optional properties */\r\n export interface _SlotDefinition {\r\n Name?: string;\r\n DesiredType?: string;\r\n }\r\n\r\n /** Corresponds to SlotDefinition */\r\n export interface SlotDefinition {\r\n Name: string;\r\n DesiredType: string;\r\n }\r\n\r\n /** Corresponds to TriggerSet, optional properties */\r\n export interface _TriggerSet {\r\n Utterances?: UtteranceDefinition[];\r\n }\r\n\r\n /** Corresponds to TriggerSet */\r\n export interface TriggerSet {\r\n Utterances: UtteranceDefinition[];\r\n }\r\n\r\n /** Corresponds to UtteranceDefinition, optional properties */\r\n export interface _UtteranceDefinition {\r\n Text?: string;\r\n Locale?: string;\r\n Entities?: EntityReference;\r\n }\r\n\r\n /** Corresponds to UtteranceDefinition */\r\n export interface UtteranceDefinition {\r\n Text: string;\r\n Locale: string;\r\n Entities: EntityReference;\r\n }\r\n\r\n /** Corresponds to EntityReference, optional properties */\r\n export interface _EntityReference {\r\n Name?: string;\r\n StartPosition?: string;\r\n EndPosition?: string;\r\n }\r\n\r\n /** Corresponds to EntityReference */\r\n export interface EntityReference {\r\n Name: string;\r\n StartPosition: string;\r\n EndPosition: string;\r\n }\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Generated/RestClient.ts","import * as Rest from \"../Generated/RestClient\";\r\n\r\nexport interface ClientAppSettings {\r\n msaPortalEndpoint: string;\r\n applicationPath: string;\r\n environment: string;\r\n productName: string;\r\n documentationUrl: string;\r\n homeUrl: string;\r\n channels: Rest.Channel[];\r\n defaultIconUrl: string;\r\n cdnEndpoint: string;\r\n searchPrompt?: string;\r\n searchRoute?: string;\r\n directLineUrl: string;\r\n webChatUrl: string;\r\n flightedFeatures: string[];\r\n azurePortalEndpoint: string;\r\n hasCollectedConsent?: boolean;\r\n cognitiveServicesAuth?: CognitiveServicesAuth;\r\n luisApiHostName?: string;\r\n appId?: string;\r\n enabledFeatures?: Rest.DevPortalFeatureFlags;\r\n}\r\n\r\nexport interface CognitiveServicesAuth {\r\n LUIS: string;\r\n QnA: string;\r\n}\r\n\r\nexport var clientAppSettings: ClientAppSettings = window['clientAppSettings'];\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Models/ClientAppSettings.ts","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isFunction.js\n// module id = 9\n// module chunks = 0","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\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\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_export.js\n// module id = 10\n// module chunks = 0","import _get from \"lodash/get\";\nimport _isArray from \"lodash/isArray\";\nimport _isNaN from \"lodash/isNaN\";\nimport _isNumber from \"lodash/isNumber\";\nimport _isString from \"lodash/isString\";\nexport var mathSign = function mathSign(value) {\n if (value === 0) {\n return 0;\n }\n\n if (value > 0) {\n return 1;\n }\n\n return -1;\n};\nexport var isPercent = function isPercent(value) {\n return _isString(value) && value.indexOf('%') === value.length - 1;\n};\nexport var isNumber = function isNumber(value) {\n return _isNumber(value) && !_isNaN(value);\n};\nexport var isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || _isString(value);\n};\nvar idCounter = 0;\nexport var uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n/**\n * Get percent value of a total value\n * @param {Number|String} percent A percent\n * @param {Number} totalValue Total value\n * @param {NUmber} defaultValue The value returned when percent is undefined or invalid\n * @param {Boolean} validate If set to be true, the result will be validated\n * @return {Number} value\n */\n\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (!isNumber(percent) && !_isString(percent)) {\n return defaultValue;\n }\n\n var value;\n\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n\n if (_isNaN(value)) {\n value = defaultValue;\n }\n\n if (validate && value > totalValue) {\n value = totalValue;\n }\n\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n\n var keys = Object.keys(obj);\n\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!_isArray(ary)) {\n return false;\n }\n\n var len = ary.length;\n var cache = {};\n\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n\n return false;\n};\nexport var interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n\n return function () {\n return numberB;\n };\n};\nexport var findEntryInArray = function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n\n return ary.find(function (entry) {\n return entry && _get(entry, specifiedKey) === specifiedValue;\n });\n};\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\n\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n\n for (var i = 0; i < len; i++) {\n xsum += data[i].cx;\n ysum += data[i].cy;\n xysum += data[i].cx * data[i].cy;\n xxsum += data[i].cx * data[i].cx;\n xmin = Math.min(xmin, data[i].cx);\n xmax = Math.max(xmax, data[i].cx);\n }\n\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/util/DataUtils.js\n// module id = 11\n// module chunks = 0","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isArray.js\n// module id = 12\n// module chunks = 0","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Layer\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nvar propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nfunction Layer(props) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, [\"children\", \"className\"]);\n\n var layerClass = classNames('recharts-layer', className);\n return React.createElement(\"g\", _extends({\n className: layerClass\n }, others), children);\n}\n\nLayer.propTypes = propTypes;\nexport default Layer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/container/Layer.js\n// module id = 13\n// module chunks = 0","export * from \"./AutoResizeTextAreaControl\";\r\nexport * from \"./BotGalleryControl\";\r\nexport * from \"./BotHeaderCard\";\r\nexport * from \"./BotImageControl\";\r\nexport * from \"./DownloadLinkControl\";\r\nexport * from \"./ExpandableTextControl\";\r\nexport * from \"./PinToBottom\";\r\nexport * from \"./ProgressBarControl\";\r\nexport * from \"./ProgressRingControl\";\r\nexport * from \"./SearchControl\";\r\nexport * from \"./SiteStatusControl\";\r\nexport * from \"./SortableListControl\";\r\nexport * from \"./Strings\";\r\nexport * from \"./TimestampControl\";\r\nexport * from \"./TooltipControl\";\r\nexport * from \"./v4/index\";\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/index.ts","// Generated file - do not modify.\r\n// Generated from DevPortal.resjson\r\n\r\nimport { Culture } from \"./Culture\";\r\n\r\nexport class Resources {\r\n private static _currentCultureName;\r\n private static _currentResources: { [key: string]: string };\r\n\r\n static get unsupportedBrowser_Azure(): string { return this._getResourceString(\"unsupportedBrowser_Azure\"); }\r\n static get unsupportedBrowser(): string { return this._getResourceString(\"unsupportedBrowser\"); }\r\n static get botKindRegistration(): string { return this._getResourceString(\"botKindRegistration\"); }\r\n static get botKindSdk(): string { return this._getResourceString(\"botKindSdk\"); }\r\n static get botKindFunctions(): string { return this._getResourceString(\"botKindFunctions\"); }\r\n static get botKindConversationDesigner(): string { return this._getResourceString(\"botKindConversationDesigner\"); }\r\n static get loggingIn(): string { return this._getResourceString(\"loggingIn\"); }\r\n static get loadingBot(): string { return this._getResourceString(\"loadingBot\"); }\r\n static get botIsNotReady(): string { return this._getResourceString(\"botIsNotReady\"); }\r\n static get analyticsNotReady(): string { return this._getResourceString(\"analyticsNotReady\"); }\r\n static get authorizingWebChat(): string { return this._getResourceString(\"authorizingWebChat\"); }\r\n static get signInFailure(): string { return this._getResourceString(\"signInFailure\"); }\r\n static get getChatTokenFailure(): string { return this._getResourceString(\"getChatTokenFailure\"); }\r\n static get refreshSignInFailure(): string { return this._getResourceString(\"refreshSignInFailure\"); }\r\n static get xhrResponse_400(): string { return this._getResourceString(\"xhrResponse_400\"); }\r\n static get xhrResponse_403(): string { return this._getResourceString(\"xhrResponse_403\"); }\r\n static get xhrResponse_404(): string { return this._getResourceString(\"xhrResponse_404\"); }\r\n static get xhrResponse_500(): string { return this._getResourceString(\"xhrResponse_500\"); }\r\n static get xhrResponse_501(): string { return this._getResourceString(\"xhrResponse_501\"); }\r\n static get xhrResponse_Message(): string { return this._getResourceString(\"xhrResponse_Message\"); }\r\n static get xhrResponse_Unknown(): string { return this._getResourceString(\"xhrResponse_Unknown\"); }\r\n static get AddAFeaturedChannelTitle(): string { return this._getResourceString(\"AddAFeaturedChannelTitle\"); }\r\n static get ConnectToChannelsTitle(): string { return this._getResourceString(\"ConnectToChannelsTitle\"); }\r\n static get NoChannelsConfigured(): string { return this._getResourceString(\"NoChannelsConfigured\"); }\r\n static get MoreChannelsTitle(): string { return this._getResourceString(\"MoreChannelsTitle\"); }\r\n static get test(): string { return this._getResourceString(\"test\"); }\r\n static get startOver(): string { return this._getResourceString(\"startOver\"); }\r\n static get retentionTitle(): string { return this._getResourceString(\"retentionTitle\"); }\r\n static get retentionDescription(): string { return this._getResourceString(\"retentionDescription\"); }\r\n static get retentionHeader(): string { return this._getResourceString(\"retentionHeader\"); }\r\n static get retentionDate(): string { return this._getResourceString(\"retentionDate\"); }\r\n static get retentionUsers(): string { return this._getResourceString(\"retentionUsers\"); }\r\n static get undetermined(): string { return this._getResourceString(\"undetermined\"); }\r\n static get loading(): string { return this._getResourceString(\"loading\"); }\r\n static get noAnalyticsData(): string { return this._getResourceString(\"noAnalyticsData\"); }\r\n static get timespanLastHour(): string { return this._getResourceString(\"timespanLastHour\"); }\r\n static get timespanLastDay(): string { return this._getResourceString(\"timespanLastDay\"); }\r\n static get timespanLastWeek(): string { return this._getResourceString(\"timespanLastWeek\"); }\r\n static get timespanLastMonth(): string { return this._getResourceString(\"timespanLastMonth\"); }\r\n static get timespanLast90Days(): string { return this._getResourceString(\"timespanLast90Days\"); }\r\n static get timespanUnknown(): string { return this._getResourceString(\"timespanUnknown\"); }\r\n static get timelineCardUsersTitle(): string { return this._getResourceString(\"timelineCardUsersTitle\"); }\r\n static get timelineCardMessagesTitle(): string { return this._getResourceString(\"timelineCardMessagesTitle\"); }\r\n static get totalsCardTitle(): string { return this._getResourceString(\"totalsCardTitle\"); }\r\n static get analyticsNotConfigured(): string { return this._getResourceString(\"analyticsNotConfigured\"); }\r\n static get analyticsNotConfiguredAction(): string { return this._getResourceString(\"analyticsNotConfiguredAction\"); }\r\n static get analyticsNotConfiguredActionIbiza(): string { return this._getResourceString(\"analyticsNotConfiguredActionIbiza\"); }\r\n static get learnMore(): string { return this._getResourceString(\"learnMore\"); }\r\n static get cardTitleLoading(): string { return this._getResourceString(\"cardTitleLoading\"); }\r\n static get cardTitleError(): string { return this._getResourceString(\"cardTitleError\"); }\r\n static get timelineTableLabel(): string { return this._getResourceString(\"timelineTableLabel\"); }\r\n static get timelineChartLabel(): string { return this._getResourceString(\"timelineChartLabel\"); }\r\n static get published(): string { return this._getResourceString(\"published\"); }\r\n static get health(): string { return this._getResourceString(\"health\"); }\r\n static get actions(): string { return this._getResourceString(\"actions\"); }\r\n static get channelname(): string { return this._getResourceString(\"channelname\"); }\r\n static get edit(): string { return this._getResourceString(\"edit\"); }\r\n static get running(): string { return this._getResourceString(\"running\"); }\r\n static get issuesTemplate(): string { return this._getResourceString(\"issuesTemplate\"); }\r\n static get warningTemplate(): string { return this._getResourceString(\"warningTemplate\"); }\r\n static get channelPublished(): string { return this._getResourceString(\"channelPublished\"); }\r\n static get tryOnCortana(): string { return this._getResourceString(\"tryOnCortana\"); }\r\n static get tryOnChannel(): string { return this._getResourceString(\"tryOnChannel\"); }\r\n static get manageInCortana(): string { return this._getResourceString(\"manageInCortana\"); }\r\n static get channelRejected(): string { return this._getResourceString(\"channelRejected\"); }\r\n static get channelMoreDetails(): string { return this._getResourceString(\"channelMoreDetails\"); }\r\n static get channelResubmit(): string { return this._getResourceString(\"channelResubmit\"); }\r\n static get channelGetEmbedCodes(): string { return this._getResourceString(\"channelGetEmbedCodes\"); }\r\n static get channelConfigDeleteMessage(): string { return this._getResourceString(\"channelConfigDeleteMessage\"); }\r\n static get channelConfigDeleteHeader(): string { return this._getResourceString(\"channelConfigDeleteHeader\"); }\r\n static get channelConfigDeleteOk(): string { return this._getResourceString(\"channelConfigDeleteOk\"); }\r\n static get channelConfigDeleteCancel(): string { return this._getResourceString(\"channelConfigDeleteCancel\"); }\r\n static get channelConfigLeaveMessage(): string { return this._getResourceString(\"channelConfigLeaveMessage\"); }\r\n static get channelConfigLeaveHeader(): string { return this._getResourceString(\"channelConfigLeaveHeader\"); }\r\n static get channelConfigLeaveOk(): string { return this._getResourceString(\"channelConfigLeaveOk\"); }\r\n static get channelConfigLeaveCancel(): string { return this._getResourceString(\"channelConfigLeaveCancel\"); }\r\n static get channelEdit(): string { return this._getResourceString(\"channelEdit\"); }\r\n static get dialogPleaseWait(): string { return this._getResourceString(\"dialogPleaseWait\"); }\r\n static get embedPanelTitle(): string { return this._getResourceString(\"embedPanelTitle\"); }\r\n static get embedPanelDescription(): string { return this._getResourceString(\"embedPanelDescription\"); }\r\n static get embedPanelFacebookFooter(): string { return this._getResourceString(\"embedPanelFacebookFooter\"); }\r\n static get embedPanelLearnMore(): string { return this._getResourceString(\"embedPanelLearnMore\"); }\r\n static get embedPanelChannelMovedHeader(): string { return this._getResourceString(\"embedPanelChannelMovedHeader\"); }\r\n static get embedPanelChannelMovedInstructions(): string { return this._getResourceString(\"embedPanelChannelMovedInstructions\"); }\r\n static get embedPanelEmbedcodeForChannelLabel(): string { return this._getResourceString(\"embedPanelEmbedcodeForChannelLabel\"); }\r\n static get embedPanelGettingCodes(): string { return this._getResourceString(\"embedPanelGettingCodes\"); }\r\n static get embedPanelNoCodeAvailable(): string { return this._getResourceString(\"embedPanelNoCodeAvailable\"); }\r\n static get channelIssuesPanelSubtitle(): string { return this._getResourceString(\"channelIssuesPanelSubtitle\"); }\r\n static get channelIssuesPanelClearall(): string { return this._getResourceString(\"channelIssuesPanelClearall\"); }\r\n static get channelIssuesPanelTimeColumnLabel(): string { return this._getResourceString(\"channelIssuesPanelTimeColumnLabel\"); }\r\n static get channelIssuesPanelMessageColumnLabel(): string { return this._getResourceString(\"channelIssuesPanelMessageColumnLabel\"); }\r\n static get channelIssuesPanelCorrelationIdColumnLabel(): string { return this._getResourceString(\"channelIssuesPanelCorrelationIdColumnLabel\"); }\r\n static get unsavedChangesWillBeLost(): string { return this._getResourceString(\"unsavedChangesWillBeLost\"); }\r\n static get altImageChannel(): string { return this._getResourceString(\"altImageChannel\"); }\r\n static get Bing(): string { return this._getResourceString(\"Bing\"); }\r\n static get Cortana(): string { return this._getResourceString(\"Cortana\"); }\r\n static get MicrosoftSearch(): string { return this._getResourceString(\"MicrosoftSearch\"); }\r\n static get DirectLine(): string { return this._getResourceString(\"DirectLine\"); }\r\n static get Email(): string { return this._getResourceString(\"Email\"); }\r\n static get FacebookMessenger(): string { return this._getResourceString(\"FacebookMessenger\"); }\r\n static get GroupMe(): string { return this._getResourceString(\"GroupMe\"); }\r\n static get Kaizala(): string { return this._getResourceString(\"Kaizala\"); }\r\n static get Kik(): string { return this._getResourceString(\"Kik\"); }\r\n static get MicrosoftTeams(): string { return this._getResourceString(\"MicrosoftTeams\"); }\r\n static get Skype(): string { return this._getResourceString(\"Skype\"); }\r\n static get SkypeforBusiness(): string { return this._getResourceString(\"SkypeforBusiness\"); }\r\n static get _SkypeforBusiness(): string { return this._getResourceString(\"_SkypeforBusiness\"); }\r\n static get Slack(): string { return this._getResourceString(\"Slack\"); }\r\n static get Telegram(): string { return this._getResourceString(\"Telegram\"); }\r\n static get Twilio(): string { return this._getResourceString(\"Twilio\"); }\r\n static get migrationBannerCTAMigrateBot(): string { return this._getResourceString(\"migrationBannerCTAMigrateBot\"); }\r\n static get migrationBannerCTAStartMigrating(): string { return this._getResourceString(\"migrationBannerCTAStartMigrating\"); }\r\n static get migrationBannerBlurb1(): string { return this._getResourceString(\"migrationBannerBlurb1\"); }\r\n static get migrationBannerBlurb2(): string { return this._getResourceString(\"migrationBannerBlurb2\"); }\r\n static get migrationBannerSuggestedBlurb(): string { return this._getResourceString(\"migrationBannerSuggestedBlurb\"); }\r\n static get migrationBannerPostDeadlineBlurb(): string { return this._getResourceString(\"migrationBannerPostDeadlineBlurb\"); }\r\n static get migrationBannerBlockedBlurb(): string { return this._getResourceString(\"migrationBannerBlockedBlurb\"); }\r\n static get migrationWillBeRequiredDialogMessage(): string { return this._getResourceString(\"migrationWillBeRequiredDialogMessage\"); }\r\n static get channelRequiresMigrationDialogMessage(): string { return this._getResourceString(\"channelRequiresMigrationDialogMessage\"); }\r\n static get channelRequiresABSBot(): string { return this._getResourceString(\"channelRequiresABSBot\"); }\r\n static get botRequiresMigrationDialogHeader(): string { return this._getResourceString(\"botRequiresMigrationDialogHeader\"); }\r\n static get botRequiresMigrationDialogMessage(): string { return this._getResourceString(\"botRequiresMigrationDialogMessage\"); }\r\n static get yesMigrateThisBot(): string { return this._getResourceString(\"yesMigrateThisBot\"); }\r\n static get myBotsMigrationStatusMigrated(): string { return this._getResourceString(\"myBotsMigrationStatusMigrated\"); }\r\n static get myBotsMigrationStatusNotMigrated(): string { return this._getResourceString(\"myBotsMigrationStatusNotMigrated\"); }\r\n static get myBotsMigrationStatusOptionalMigration(): string { return this._getResourceString(\"myBotsMigrationStatusOptionalMigration\"); }\r\n static get myBotsMigrationButtonMigrate(): string { return this._getResourceString(\"myBotsMigrationButtonMigrate\"); }\r\n static get myBotsMigrationButtonRollback(): string { return this._getResourceString(\"myBotsMigrationButtonRollback\"); }\r\n static get deleteBotDialogDeleteButtonText(): string { return this._getResourceString(\"deleteBotDialogDeleteButtonText\"); }\r\n static get cancelButtonText(): string { return this._getResourceString(\"cancelButtonText\"); }\r\n static get deleteBotDialogTitleText(): string { return this._getResourceString(\"deleteBotDialogTitleText\"); }\r\n static get deleteBotDialogBodyText(): string { return this._getResourceString(\"deleteBotDialogBodyText\"); }\r\n static get deleteBotDialogStatusDeleting(): string { return this._getResourceString(\"deleteBotDialogStatusDeleting\"); }\r\n static get deleteBotDialogStatusDeleted(): string { return this._getResourceString(\"deleteBotDialogStatusDeleted\"); }\r\n static get rollbackBotDialogRollbackButtonText(): string { return this._getResourceString(\"rollbackBotDialogRollbackButtonText\"); }\r\n static get rollbackBotDialogTitleText(): string { return this._getResourceString(\"rollbackBotDialogTitleText\"); }\r\n static get rollbackBotDialogBodyText(): string { return this._getResourceString(\"rollbackBotDialogBodyText\"); }\r\n static get rollbackBotDialogErrorInfo(): string { return this._getResourceString(\"rollbackBotDialogErrorInfo\"); }\r\n static get rollbackBotDialogErrorNoEndpoint(): string { return this._getResourceString(\"rollbackBotDialogErrorNoEndpoint\"); }\r\n static get rollbackBotDialogErrorNoAzureToken(): string { return this._getResourceString(\"rollbackBotDialogErrorNoAzureToken\"); }\r\n static get rollbackBotDialogStatusGettingInfo(): string { return this._getResourceString(\"rollbackBotDialogStatusGettingInfo\"); }\r\n static get rollbackBotDialogStatusPreparing(): string { return this._getResourceString(\"rollbackBotDialogStatusPreparing\"); }\r\n static get rollbackBotDialogStatusReverting(): string { return this._getResourceString(\"rollbackBotDialogStatusReverting\"); }\r\n static get rollbackBotDialogStatusDeletingApp(): string { return this._getResourceString(\"rollbackBotDialogStatusDeletingApp\"); }\r\n static get rollbackBotDialogStatusDeletingDeployment(): string { return this._getResourceString(\"rollbackBotDialogStatusDeletingDeployment\"); }\r\n static get rollbackBotDialogConfirmationTitleText(): string { return this._getResourceString(\"rollbackBotDialogConfirmationTitleText\"); }\r\n static get rollbackBotDialogConfirmationBodyText(): string { return this._getResourceString(\"rollbackBotDialogConfirmationBodyText\"); }\r\n static get okButtonText(): string { return this._getResourceString(\"okButtonText\"); }\r\n static get errorMessageErrorOccurred(): string { return this._getResourceString(\"errorMessageErrorOccurred\"); }\r\n static get migrationDialogStatusGettingBotInfo(): string { return this._getResourceString(\"migrationDialogStatusGettingBotInfo\"); }\r\n static get migrationDialogStatusGettingAzureInfo(): string { return this._getResourceString(\"migrationDialogStatusGettingAzureInfo\"); }\r\n static get migrationDialogStatusGettingAppSettings(): string { return this._getResourceString(\"migrationDialogStatusGettingAppSettings\"); }\r\n static get migrationDialogStatusDeployingMigrationBot(): string { return this._getResourceString(\"migrationDialogStatusDeployingMigrationBot\"); }\r\n static get migrationDialogStatusRegisteringWithAzure(): string { return this._getResourceString(\"migrationDialogStatusRegisteringWithAzure\"); }\r\n static get migrationDialogStatusUpdatingBotRecord(): string { return this._getResourceString(\"migrationDialogStatusUpdatingBotRecord\"); }\r\n static get migrationDialogStatusCreatingRG(): string { return this._getResourceString(\"migrationDialogStatusCreatingRG\"); }\r\n static get migrationDialogStatusMigratingFiles(): string { return this._getResourceString(\"migrationDialogStatusMigratingFiles\"); }\r\n static get migrationDialogStatusWrappingUp(): string { return this._getResourceString(\"migrationDialogStatusWrappingUp\"); }\r\n static get migrationDialogStatusDeployingStorage(): string { return this._getResourceString(\"migrationDialogStatusDeployingStorage\"); }\r\n static get migrationDialogStatusDeployingSite(): string { return this._getResourceString(\"migrationDialogStatusDeployingSite\"); }\r\n static get migrationDialogStatusConfiguringSite(): string { return this._getResourceString(\"migrationDialogStatusConfiguringSite\"); }\r\n static get migrationDialogStatusDeploying(): string { return this._getResourceString(\"migrationDialogStatusDeploying\"); }\r\n static get migrationDialogStatusFunctionCredentials(): string { return this._getResourceString(\"migrationDialogStatusFunctionCredentials\"); }\r\n static get migrationDialogErrorNoSubs(): string { return this._getResourceString(\"migrationDialogErrorNoSubs\"); }\r\n static get migrationDialogErrorNoAzureToken(): string { return this._getResourceString(\"migrationDialogErrorNoAzureToken\"); }\r\n static get migrationDialogErrorNoLocations(): string { return this._getResourceString(\"migrationDialogErrorNoLocations\"); }\r\n static get migrationDialogErrorNoAzureStorage(): string { return this._getResourceString(\"migrationDialogErrorNoAzureStorage\"); }\r\n static get migrationDialogErrorAppNameUnavailable(): string { return this._getResourceString(\"migrationDialogErrorAppNameUnavailable\"); }\r\n static get migrationDialogErrorAppNameInvalid(): string { return this._getResourceString(\"migrationDialogErrorAppNameInvalid\"); }\r\n static get migrationDialogErrorNoBotType(): string { return this._getResourceString(\"migrationDialogErrorNoBotType\"); }\r\n static get migrationDialogErrorBotInvalid(): string { return this._getResourceString(\"migrationDialogErrorBotInvalid\"); }\r\n static get migrationDialogErrorEndpointMissing(): string { return this._getResourceString(\"migrationDialogErrorEndpointMissing\"); }\r\n static get migrationDialogErrorProvisionInfoMissing(): string { return this._getResourceString(\"migrationDialogErrorProvisionInfoMissing\"); }\r\n static get migrationDialogErrorResourceGroupNameMissing(): string { return this._getResourceString(\"migrationDialogErrorResourceGroupNameMissing\"); }\r\n static get migrationDialogErrorSubscriptionIdMissing(): string { return this._getResourceString(\"migrationDialogErrorSubscriptionIdMissing\"); }\r\n static get migrationDialogErrorSiteNameMissing(): string { return this._getResourceString(\"migrationDialogErrorSiteNameMissing\"); }\r\n static get migrationDialogABSv2TitleText(): string { return this._getResourceString(\"migrationDialogABSv2TitleText\"); }\r\n static get migrationDialogABSv2BodyText(): string { return this._getResourceString(\"migrationDialogABSv2BodyText\"); }\r\n static get migrationDialogRegistrationBodyText(): string { return this._getResourceString(\"migrationDialogRegistrationBodyText\"); }\r\n static get migrationDialogFailedTokenRefresh(): string { return this._getResourceString(\"migrationDialogFailedTokenRefresh\"); }\r\n static get migrationDialogRefreshPage(): string { return this._getResourceString(\"migrationDialogRefreshPage\"); }\r\n static get migrationSubscriptionDisabled(): string { return this._getResourceString(\"migrationSubscriptionDisabled\"); }\r\n static get migrationTenantHasNoSubscriptions(): string { return this._getResourceString(\"migrationTenantHasNoSubscriptions\"); }\r\n static get migrationDialogFuncPackBotTitle(): string { return this._getResourceString(\"migrationDialogFuncPackBotTitle\"); }\r\n static get migrationDialogFuncPackBotMessage(): string { return this._getResourceString(\"migrationDialogFuncPackBotMessage\"); }\r\n static get migrationDialogFuncPackBotLinkText(): string { return this._getResourceString(\"migrationDialogFuncPackBotLinkText\"); }\r\n static get tosDialog_Header(): string { return this._getResourceString(\"tosDialog_Header\"); }\r\n static get tosDialog_AgreeButton(): string { return this._getResourceString(\"tosDialog_AgreeButton\"); }\r\n static get tosDialog_MessageChannels(): string { return this._getResourceString(\"tosDialog_MessageChannels\"); }\r\n static get tosDialog_MessageMigration(): string { return this._getResourceString(\"tosDialog_MessageMigration\"); }\r\n static get tosDialog_AzureTermsCheckbox(): string { return this._getResourceString(\"tosDialog_AzureTermsCheckbox\"); }\r\n static get tosDialog_CortanaTermsCheckbox(): string { return this._getResourceString(\"tosDialog_CortanaTermsCheckbox\"); }\r\n static get tosDialog_CombinedTermsCheckboxOneChannel(): string { return this._getResourceString(\"tosDialog_CombinedTermsCheckboxOneChannel\"); }\r\n static get tosDialog_CombinedTermsCheckboxMultiChannels(): string { return this._getResourceString(\"tosDialog_CombinedTermsCheckboxMultiChannels\"); }\r\n static get tosDialog_ABSTerms(): string { return this._getResourceString(\"tosDialog_ABSTerms\"); }\r\n static get tosDialog_MSKnowledgeGraphTerms(): string { return this._getResourceString(\"tosDialog_MSKnowledgeGraphTerms\"); }\r\n static get tosDialog_MSPublicationTerms(): string { return this._getResourceString(\"tosDialog_MSPublicationTerms\"); }\r\n static get tosDialog_MSPrivacyStatement(): string { return this._getResourceString(\"tosDialog_MSPrivacyStatement\"); }\r\n static get notice(): string { return this._getResourceString(\"notice\"); }\r\n static get listElem(): string { return this._getResourceString(\"listElem\"); }\r\n static get andListEnd(): string { return this._getResourceString(\"andListEnd\"); }\r\n static get analyticsChannelsDropdown(): string { return this._getResourceString(\"analyticsChannelsDropdown\"); }\r\n static get analyticsPeriodDropdown(): string { return this._getResourceString(\"analyticsPeriodDropdown\"); }\r\n static get deprecatedChannel(): string { return this._getResourceString(\"deprecatedChannel\"); }\r\n static get openInComposer(): string { return this._getResourceString(\"openInComposer\"); }\r\n static get downloadComposer(): string { return this._getResourceString(\"downloadComposer\"); }\r\n static get deprecatedWarning(): string { return this._getResourceString(\"deprecatedWarning\"); }\r\n static get warningText(): string { return this._getResourceString(\"warningText\"); }\r\n\r\n private static _getResourceString(key: string) {\r\n this._loadResourcesIfNeeded();\r\n\r\n if (this._currentCultureName !== \"en\") {\r\n const localizedResource = this._currentResources[key];\r\n if (localizedResource !== undefined) {\r\n return localizedResource;\r\n }\r\n }\r\n return Resources_en[key];\r\n }\r\n\r\n private static _loadResourcesIfNeeded() {\r\n const cultureName = Culture.Lang;\r\n\r\n if (cultureName === undefined) {\r\n this._currentResources = Resources_en;\r\n this._currentCultureName = \"en\";\r\n }\r\n else if (cultureName !== this._currentCultureName) {\r\n const resources = ResourcesMap[cultureName.toLowerCase()];\r\n if (resources) {\r\n this._currentResources = resources;\r\n }\r\n else {\r\n this._currentResources = Resources_en;\r\n }\r\n\r\n this._currentCultureName = cultureName;\r\n }\r\n }\r\n}\r\n\r\ninterface IResources { [key: string]: string };\r\n\r\nconst Resources_en: IResources = {\r\n \"unsupportedBrowser_Azure\": \"The Azure Bot Service doesn't support your browser yet.\",\r\n \"unsupportedBrowser\": \"Bot Framework doesn't support your browser yet.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Logging in\",\r\n \"loadingBot\": \"Loading bot...\",\r\n \"botIsNotReady\": \"Waiting for bot to be ready\",\r\n \"analyticsNotReady\": \"Waiting for Application Insights to be configured\",\r\n \"authorizingWebChat\": \"Authorizing Chat with Bot\",\r\n \"signInFailure\": \"There was an error signing you in. Make sure third party cookies are enabled in the browser.\",\r\n \"getChatTokenFailure\": \"There was an error getting a Chat authorization token. Refresh and try again.\",\r\n \"refreshSignInFailure\": \"There was an error refreshing your sign-in information. Make sure third party cookies are enabled in the browser.\",\r\n \"xhrResponse_400\": \"The action or the supplied values are invalid.\",\r\n \"xhrResponse_403\": \"This item cannot be accessed or modified.\",\r\n \"xhrResponse_404\": \"The item cannot be found.\",\r\n \"xhrResponse_500\": \"An internal error occurred at the server.\",\r\n \"xhrResponse_501\": \"This operation is not supported.\",\r\n \"xhrResponse_Message\": \"Error: %1\",\r\n \"xhrResponse_Unknown\": \"An unknown error occurred.\",\r\n \"AddAFeaturedChannelTitle\": \"Add a featured channel\",\r\n \"ConnectToChannelsTitle\": \"Connect to channels\",\r\n \"NoChannelsConfigured\": \"You haven't connected any channels yet. Select a channel to connect.\",\r\n \"MoreChannelsTitle\": \"More channels\",\r\n \"test\": \"Test\",\r\n \"startOver\": \"Start over\",\r\n \"retentionTitle\": \"Retention\",\r\n \"retentionDescription\": \"% users who messaged again (last 10 days)\",\r\n \"retentionHeader\": \"Days later\",\r\n \"retentionDate\": \"Date\",\r\n \"retentionUsers\": \"Users\",\r\n \"undetermined\": \"Undetermined\",\r\n \"loading\": \"loading...\",\r\n \"noAnalyticsData\": \"no data\",\r\n \"timespanLastHour\": \"Last Hour\",\r\n \"timespanLastDay\": \"Last Day\",\r\n \"timespanLastWeek\": \"Last Week\",\r\n \"timespanLastMonth\": \"Last Month\",\r\n \"timespanLast90Days\": \"Last 90 Days\",\r\n \"timespanUnknown\": \"Unknown timespan\",\r\n \"timelineCardUsersTitle\": \"Users\",\r\n \"timelineCardMessagesTitle\": \"Activities\",\r\n \"totalsCardTitle\": \"Grand Totals\",\r\n \"analyticsNotConfigured\": \"You haven't enabled Analytics via Azure Application Insights yet.\",\r\n \"analyticsNotConfiguredAction\": \"Provide your Application Insights Keys and ID for this bot in the following page: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Provide your Application Insights Keys and ID for this bot on the settings page.\",\r\n \"learnMore\": \"Learn more\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - error: %2\",\r\n \"timelineTableLabel\": \"Timeline table mapping %1 by time\",\r\n \"timelineChartLabel\": \"Timeline chart mapping %1 by time\",\r\n \"published\": \"Published\",\r\n \"health\": \"Health\",\r\n \"actions\": \"Actions\",\r\n \"channelname\": \"Name\",\r\n \"edit\": \"Edit\",\r\n \"running\": \"Running\",\r\n \"issuesTemplate\": \"Issues (<%= length %>)\",\r\n \"warningTemplate\": \"Warnings (<%= length %>)\",\r\n \"channelPublished\": \"Published\",\r\n \"tryOnCortana\": \"Try on <%= Name %> - learn how\",\r\n \"tryOnChannel\": \"Try on <%= Name %>\",\r\n \"manageInCortana\": \"Manage in Cortana dashboard\",\r\n \"channelRejected\": \"Rejected\",\r\n \"channelMoreDetails\": \"More details\",\r\n \"channelResubmit\": \"Re-submit for review...\",\r\n \"channelGetEmbedCodes\": \"Get bot embed codes\",\r\n \"channelConfigDeleteMessage\": \"This action will delete all channel configuration information. Are you sure you want to proceed?\",\r\n \"channelConfigDeleteHeader\": \"Delete channel\",\r\n \"channelConfigDeleteOk\": \"Yes, delete it\",\r\n \"channelConfigDeleteCancel\": \"No, keep it\",\r\n \"channelConfigLeaveMessage\": \"You have unsaved changes in this document. Are you sure you want to navigate away from this page?\",\r\n \"channelConfigLeaveHeader\": \"Discard changes\",\r\n \"channelConfigLeaveOk\": \"Yes, leave page\",\r\n \"channelConfigLeaveCancel\": \"No, stay on page\",\r\n \"channelEdit\": \"Edit\",\r\n \"dialogPleaseWait\": \"Please wait...\",\r\n \"embedPanelTitle\": \"Bot embed code\",\r\n \"embedPanelDescription\": \"Choose a channel to get the embed code for it. Copy and paste the code to your website.\",\r\n \"embedPanelFacebookFooter\": \"In order to use this embed Facebook requires you to include their JavaScript SDK in your page.\",\r\n \"embedPanelLearnMore\": \"Learn more.\",\r\n \"embedPanelChannelMovedHeader\": \"Embed code for %1 has moved\",\r\n \"embedPanelChannelMovedInstructions\": \"Click here to open the %1 configuration page\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Embed code for %1\",\r\n \"embedPanelGettingCodes\": \"Getting codes...\",\r\n \"embedPanelNoCodeAvailable\": \"No embed code available for this bot.\",\r\n \"channelIssuesPanelSubtitle\": \"Recent issues\",\r\n \"channelIssuesPanelClearall\": \"Clear All\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Time\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Message\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"Correlation ID\",\r\n \"unsavedChangesWillBeLost\": \"Unsaved changes will be lost.\",\r\n \"altImageChannel\": \"Configure %1 channel\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"Email\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype for business\",\r\n \"_SkypeforBusiness\": \"Skype for business brand\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRATE THIS BOT\",\r\n \"migrationBannerCTAStartMigrating\": \"START MIGRATING\",\r\n \"migrationBannerBlurb1\": \"With the launch of the new Azure Bot Service, we are migrating all bots to the new service by 3/31/2018.\",\r\n \"migrationBannerBlurb2\": \"about the migration.\",\r\n \"migrationBannerSuggestedBlurb\": \"Migration to Azure Bot Service is optional for this bot.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Bots requiring migration to Azure Bot Service must migrate now to avoid service interruption.\",\r\n \"migrationBannerBlockedBlurb\": \"Bot migration is past due, please migrate it now to avoid service interruption.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"If you configure this channel, your bot will be required to migrate to Azure Bot Service by 3/31/2018. Are you sure you want to configure this channel?\",\r\n \"channelRequiresMigrationDialogMessage\": \"This channel is only available to bots in Azure Bot Service. Do you want to migrate this bot?\",\r\n \"channelRequiresABSBot\": \"This channel is only available to bots in Azure Bot Service.\",\r\n \"botRequiresMigrationDialogHeader\": \"Bot requires migration\",\r\n \"botRequiresMigrationDialogMessage\": \"Bot migration is past due, please migrate it now to avoid service interruption.\",\r\n \"yesMigrateThisBot\": \"Yes, migrate this bot\",\r\n \"myBotsMigrationStatusMigrated\": \"Migrated\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Required\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Not required\",\r\n \"myBotsMigrationButtonMigrate\": \"Migrate\",\r\n \"myBotsMigrationButtonRollback\": \"Roll back migration\",\r\n \"deleteBotDialogDeleteButtonText\": \"Delete bot\",\r\n \"cancelButtonText\": \"Cancel\",\r\n \"deleteBotDialogTitleText\": \"You are about to delete this bot\",\r\n \"deleteBotDialogBodyText\": \"This action will erase all data associated with this bot and cannot be undone. Are you sure?\",\r\n \"deleteBotDialogStatusDeleting\": \"Deleting bot...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot deleted\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Yes, roll back\",\r\n \"rollbackBotDialogTitleText\": \"Are you sure you want to roll back?\",\r\n \"rollbackBotDialogBodyText\": \"This action will roll back the migration completely and you will have to start the migration process from the start. Are you sure you want to proceed?\",\r\n \"rollbackBotDialogErrorInfo\": \"Error retrieving bot information from server.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Cannot perform rollback. No rollback endpoint found.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Cannot perform rollback. Failed to find an Azure Token to contact Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Gathering bot info...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Preparing bot...\",\r\n \"rollbackBotDialogStatusReverting\": \"Reverting bot..\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Deleting upgraded app...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Deleting deployment record...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Rollback completed\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"has been successfully rolled back.\",\r\n \"okButtonText\": \"Ok\",\r\n \"errorMessageErrorOccurred\": \"An error occurred\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Getting bot info...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Getting Azure info...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Getting bot app settings...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Initializing migrated bot...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Registering Bot Service with Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Updating bot record...\",\r\n \"migrationDialogStatusCreatingRG\": \"Creating resource group...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Migrating files to new bot...\",\r\n \"migrationDialogStatusWrappingUp\": \"Wrapping up deployment...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Connecting bot to existing storage...\",\r\n \"migrationDialogStatusDeployingSite\": \"Deploying web site\",\r\n \"migrationDialogStatusConfiguringSite\": \"Configuring web site\",\r\n \"migrationDialogStatusDeploying\": \"Deploying\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Getting new function app credentials...\",\r\n \"migrationDialogErrorNoSubs\": \"Failed to find any Azure subscriptions for the current user.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Failed to find Azure access token for the current user.\",\r\n \"migrationDialogErrorNoLocations\": \"Failed to find any locations for the selected Azure subscription.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Failed to find an Azure storage account name in the app config.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"App name is not available.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Invalid app name.\",\r\n \"migrationDialogErrorNoBotType\": \"Current bot does not have a valid type.\",\r\n \"migrationDialogErrorBotInvalid\": \"This bot cannot be migrated because the bot is invalid.\",\r\n \"migrationDialogErrorEndpointMissing\": \"This bot cannot be migrated because the endpoint is missing.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"This bot cannot be migrated because the provisioning info is missing.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"This bot cannot be migrated because the resource group name is missing.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"This bot cannot be migrated because the Azure subscription id is missing.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"This bot cannot be migrated because the Azure site name is missing.\",\r\n \"migrationDialogABSv2TitleText\": \"Migration unavailable\",\r\n \"migrationDialogABSv2BodyText\": \"Migration is currently disabled for Conversation Designer (ABSv2) bots.\",\r\n \"migrationDialogRegistrationBodyText\": \"Migration is currently disabled for '{0}' bots.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Azure token has expired.\",\r\n \"migrationDialogRefreshPage\": \"Please refresh the page and retry migration.\",\r\n \"migrationSubscriptionDisabled\": \"The selected Azure subscription is disabled. Please enable to continue migration.\",\r\n \"migrationTenantHasNoSubscriptions\": \"This directory doesn't contain any subscription.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Azure Functions Pack is required in order to migrate this bot\",\r\n \"migrationDialogFuncPackBotMessage\": \"Node Functions bots need to be packaged with Azure Functions Pack before they can be migrated.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Learn how to run Azure Functions Pack on your bot code\",\r\n \"tosDialog_Header\": \"Terms of Service\",\r\n \"tosDialog_AgreeButton\": \"Agree\",\r\n \"tosDialog_MessageChannels\": \"The Online Services Terms do not apply to publication on channels. For example, terms for publication on Microsoft channels do not offer data processing terms.\",\r\n \"tosDialog_MessageMigration\": \"Please read and agree to the following terms.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"I agree that the use of the Bot Framework site is subject to the {0} and the {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"I agree to the {0} and the {1} for my deployment to the Cortana channel.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"I agree to the {0} and the {1} for my deployment to the <%= channelslist %> channel.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"I agree to the {0} and the {1} for my deployment to the <%= channelslist %> channels.\",\r\n \"tosDialog_ABSTerms\": \"terms of my subscription for Azure Bot Service\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Cortana Channel Publication Terms\",\r\n \"tosDialog_MSPublicationTerms\": \"Microsoft Channel Publication Terms\",\r\n \"tosDialog_MSPrivacyStatement\": \"Microsoft Privacy Statements\",\r\n \"notice\": \" NOTICE: \",\r\n \"listElem\": \"{0}, \",\r\n \"andListEnd\": \"{0} and {1}\",\r\n \"analyticsChannelsDropdown\": \"Channels filter\",\r\n \"analyticsPeriodDropdown\": \"Time period\",\r\n \"deprecatedChannel\": \"(deprecated)\",\r\n \"openInComposer\": \"open in composer\",\r\n \"downloadComposer\": \"Download composer\",\r\n \"deprecatedWarning\": \"This page will be deprecated on June 17, 2022. You can setup and configure the channel through updated Channels blade.\",\r\n \"warningText\": \"Warning\"\r\n}\r\n\r\nconst Resources_de: IResources = {\r\n \"unsupportedBrowser_Azure\": \"Ihr Browser wird vom Azure Bot Service noch nicht unterstützt.\",\r\n \"unsupportedBrowser\": \"Ihr Browser wird von Bot Framework noch nicht unterstützt.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Anmeldung wird ausgeführt.\",\r\n \"loadingBot\": \"Bot wird geladen...\",\r\n \"botIsNotReady\": \"Es wird darauf gewartet, dass der Bot bereit ist.\",\r\n \"analyticsNotReady\": \"Es wird auf den Abschluss der Application Insights-Konfiguration gewartet.\",\r\n \"authorizingWebChat\": \"Chat mit Bot wird autorisiert.\",\r\n \"signInFailure\": \"Es gab einen Fehler bei der Anmeldung. Stellen Sie sicher, dass Cookies von Drittanbietern im Browser aktiviert sind.\",\r\n \"getChatTokenFailure\": \"Beim Empfangen eines Chat-Autorisierungstokens ist ein Fehler aufgetreten. Aktualisieren Sie das Fenster, und wiederholen Sie den Vorgang.\",\r\n \"refreshSignInFailure\": \"Es gab einen Fehler bei der Aktualisierung Ihrer Anmeldeinformationen. Stellen Sie sicher, dass Cookies von Drittanbietern im Browser aktiviert sind.\",\r\n \"xhrResponse_400\": \"Die Aktion oder die bereitgestellten Werte sind ungültig.\",\r\n \"xhrResponse_403\": \"Für dieses Element sind weder Zugriff noch Änderung möglich.\",\r\n \"xhrResponse_404\": \"Das Element wurde nicht gefunden.\",\r\n \"xhrResponse_500\": \"Auf dem Server ist ein interner Fehler aufgetreten.\",\r\n \"xhrResponse_501\": \"Dieser Vorgang wird nicht unterstützt.\",\r\n \"xhrResponse_Message\": \"Fehler: %1\",\r\n \"xhrResponse_Unknown\": \"Es ist ein unbekannter Fehler aufgetreten.\",\r\n \"AddAFeaturedChannelTitle\": \"Einen ausgewählten Kanal hinzufügen\",\r\n \"ConnectToChannelsTitle\": \"Mit Kanälen verbinden\",\r\n \"NoChannelsConfigured\": \"Sie haben noch keine Kanäle verbunden. Wählen Sie einen Kanal aus, den Sie verbinden möchten.\",\r\n \"MoreChannelsTitle\": \"Weitere Kanäle\",\r\n \"test\": \"Test\",\r\n \"startOver\": \"Von vorne\",\r\n \"retentionTitle\": \"Aufbewahrung\",\r\n \"retentionDescription\": \"% Benutzer, die erneut eine Nachricht gesendet haben (letzte 10 Tage)\",\r\n \"retentionHeader\": \"Tage später\",\r\n \"retentionDate\": \"Datum\",\r\n \"retentionUsers\": \"Benutzer\",\r\n \"undetermined\": \"Unbestimmt\",\r\n \"loading\": \"Wird geladen...\",\r\n \"noAnalyticsData\": \"Keine Daten\",\r\n \"timespanLastHour\": \"Letzte Stunde\",\r\n \"timespanLastDay\": \"Letzter Tag\",\r\n \"timespanLastWeek\": \"Letzte Woche\",\r\n \"timespanLastMonth\": \"Letzter Monat\",\r\n \"timespanLast90Days\": \"Letzte 90 Tage\",\r\n \"timespanUnknown\": \"Unbekannter Zeitraum\",\r\n \"timelineCardUsersTitle\": \"Benutzer\",\r\n \"timelineCardMessagesTitle\": \"Aktivitäten\",\r\n \"totalsCardTitle\": \"Gesamtzahlen\",\r\n \"analyticsNotConfigured\": \"Sie haben Analytics noch nicht über Azure Application Insights aktiviert.\",\r\n \"analyticsNotConfiguredAction\": \"Geben Sie auf der folgenden Seite Ihre Application Insights-Schlüssel und -ID für diesen Bot an: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Geben Sie Ihre Application Insights-Schlüssel und -ID für diesen Bot auf der Einstellungsseite an.\",\r\n \"learnMore\": \"Weitere Informationen\",\r\n \"cardTitleLoading\": \"%1 – %2\",\r\n \"cardTitleError\": \"%1 – Fehler: %2\",\r\n \"timelineTableLabel\": \"Zuordnung der Zeitachsentabelle \\\"%1\\\" nach Zeit\",\r\n \"timelineChartLabel\": \"Zuordnung des Zeitachsendiagramm \\\"%1\\\" nach Zeit\",\r\n \"published\": \"Veröffentlicht\",\r\n \"health\": \"Gesundheit\",\r\n \"channelname\": \"Name\",\r\n \"edit\": \"Bearbeiten\",\r\n \"running\": \"Wird ausgeführt\",\r\n \"issuesTemplate\": \"Probleme (<%= length %>)\",\r\n \"warningTemplate\": \"Warnungen (<%= length %>)\",\r\n \"channelPublished\": \"Veröffentlicht\",\r\n \"tryOnCortana\": \"Test in <%= Name %> – Erfahren Sie, wie\",\r\n \"tryOnChannel\": \"Test in <%= Name %>\",\r\n \"manageInCortana\": \"Im Cortana-Dashboard verwalten\",\r\n \"channelRejected\": \"Zurückgewiesen\",\r\n \"channelMoreDetails\": \"Weitere Details\",\r\n \"channelResubmit\": \"Erneut zur Prüfung übermitteln...\",\r\n \"channelGetEmbedCodes\": \"Bot-Einbettungscode abrufen\",\r\n \"channelConfigDeleteMessage\": \"Durch diese Aktion werden alle Informationen zur Kanalkonfiguration gelöscht. Möchten Sie wirklich fortfahren?\",\r\n \"channelConfigDeleteHeader\": \"Kanal löschen\",\r\n \"channelConfigDeleteOk\": \"Ja, löschen\",\r\n \"channelConfigDeleteCancel\": \"Nein, nicht löschen\",\r\n \"channelConfigLeaveMessage\": \"Dieses Dokument enthält nicht gespeicherte Änderungen. Möchten Sie diese Seite wirklich verlassen?\",\r\n \"channelConfigLeaveHeader\": \"Änderungen verwerfen\",\r\n \"channelConfigLeaveOk\": \"Ja, Seite verlassen\",\r\n \"channelConfigLeaveCancel\": \"Nein, auf der Seite bleiben\",\r\n \"channelEdit\": \"Bearbeiten\",\r\n \"dialogPleaseWait\": \"Bitte warten...\",\r\n \"embedPanelTitle\": \"Bot-Einbettungscode\",\r\n \"embedPanelDescription\": \"Wählen Sie einen Kanal, um den Einbettungscode für diesen abzurufen. Kopieren Sie den Code, und fügen Sie ihn in Ihre Website ein.\",\r\n \"embedPanelFacebookFooter\": \"Um diesen Einbettungscode für Facebook verwenden zu können, müssen Sie den JavaScript-SDK von Facebook in Ihre Seite integrieren.\",\r\n \"embedPanelLearnMore\": \"Weitere Informationen\",\r\n \"embedPanelChannelMovedHeader\": \"Der Einbettungscode für %1 wurde verschoben.\",\r\n \"embedPanelChannelMovedInstructions\": \"Klicken Sie hier, um die %1-Konfigurationsseite zu öffnen.\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Einbettungscode für %1\",\r\n \"embedPanelGettingCodes\": \"Codes werden abgerufen...\",\r\n \"embedPanelNoCodeAvailable\": \"Für diesen Bot ist kein Einbettungscode verfügbar.\",\r\n \"channelIssuesPanelSubtitle\": \"Aktuelle Probleme\",\r\n \"channelIssuesPanelClearall\": \"Alle löschen\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Zeit\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Nachricht\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"Korrelations-ID\",\r\n \"unsavedChangesWillBeLost\": \"Nicht gespeicherte Änderungen gehen verloren.\",\r\n \"altImageChannel\": \"%1 Kanal konfigurieren\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"E-Mail\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype for Business\",\r\n \"_SkypeforBusiness\": \"Skype for Business-Marke\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRIEREN SIE DIESEN BOT\",\r\n \"migrationBannerCTAStartMigrating\": \"STARTEN SIE DIE MIGRATION\",\r\n \"migrationBannerBlurb1\": \"Nach dem Start des neuen Azure Bot Service werden alle Bots bis zum 31.03.2018 zum neuen Dienst migriert.\",\r\n \"migrationBannerBlurb2\": \"Informationen zur Migration.\",\r\n \"migrationBannerSuggestedBlurb\": \"Die Migration auf den Azure Bot Service ist für diesen Bot optional.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Bots, für die eine Migration auf Azure Bot Service erforderlich ist, müssen jetzt migriert werden, um eine Dienstunterbrechung zu vermeiden.\",\r\n \"migrationBannerBlockedBlurb\": \"Die Bot-Migration ist überfällig. Bitte migrieren Sie ihn jetzt, um Dienstunterbrechungen zu vermeiden.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Wenn Sie diesen Kanal konfigurieren, muss Ihr Bot bis zum 31.3.2018 auf Azure Bot Service migriert werden. Möchten Sie diesen Kanal wirklich konfigurieren?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Dieser Kanal ist nur für Bots in Azure Bot Service verfügbar. Möchten Sie diesen Bot migrieren?\",\r\n \"channelRequiresABSBot\": \"Dieser Kanal ist nur für Bots in Azure Bot Service verfügbar.\",\r\n \"botRequiresMigrationDialogHeader\": \"Bot-Migration erforderlich\",\r\n \"botRequiresMigrationDialogMessage\": \"Die Bot-Migration ist überfällig. Bitte migrieren Sie ihn jetzt, um Dienstunterbrechungen zu vermeiden.\",\r\n \"yesMigrateThisBot\": \"Ja, diesen Bot migrieren\",\r\n \"myBotsMigrationStatusMigrated\": \"Migriert\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Pflichtfeld\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Nicht erforderlich\",\r\n \"myBotsMigrationButtonMigrate\": \"Migrieren\",\r\n \"myBotsMigrationButtonRollback\": \"Rollback für Migration ausführen\",\r\n \"deleteBotDialogDeleteButtonText\": \"Bot löschen\",\r\n \"cancelButtonText\": \"Abbrechen\",\r\n \"deleteBotDialogTitleText\": \"Sie sind im Begriff, diesen Bot zu löschen.\",\r\n \"deleteBotDialogBodyText\": \"Durch diese Aktion werden alle mit diesem Bot verknüpften Daten gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden. Möchten Sie den Bot wirklich löschen?\",\r\n \"deleteBotDialogStatusDeleting\": \"Bot wird gelöscht...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot gelöscht\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Ja, Rollback ausführen\",\r\n \"rollbackBotDialogTitleText\": \"Möchten Sie das Rollback wirklich ausführen?\",\r\n \"rollbackBotDialogBodyText\": \"Durch diese Aktion wird ein vollständiges Rollback für die Migration ausgeführt, und Sie müssen mit dem Migrationsprozess von vorne beginnen. Möchten Sie den Vorgang wirklich fortsetzen?\",\r\n \"rollbackBotDialogErrorInfo\": \"Fehler beim Abrufen der Botinformationen vom Server.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Das Rollback kann nicht ausgeführt werden. Es wurde kein Endpunkt für das Rollback gefunden.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Das Rollback kann nicht ausgeführt werden. Es wurde kein Azure-Token gefunden, um eine Verbindung mit Azure herstellen zu können.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Botinformationen werden gesammelt...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Bot wird vorbereitet...\",\r\n \"rollbackBotDialogStatusReverting\": \"Bot wird zurückgesetzt...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Aktualisierte App wird gelöscht...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Bereitstellungsdatensatz wird gelöscht...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Rollback abgeschlossen\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"-Rollback wurde erfolgreich ausgeführt.\",\r\n \"okButtonText\": \"OK\",\r\n \"errorMessageErrorOccurred\": \"Es ist ein Fehler aufgetreten.\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Botinformationen werden abgerufen...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Azure-Informationen werden abgerufen...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Einstellungen der Bot-App werden abgerufen...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Migrierter Bot wird initialisiert...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Botdienst wird bei Azure registriert...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Botdatensatz wird aktualisiert...\",\r\n \"migrationDialogStatusCreatingRG\": \"Ressourcengruppe wird erstellt...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Dateien werden zum neuen Bot migriert...\",\r\n \"migrationDialogStatusWrappingUp\": \"Bereitstellung wird fertig gestellt...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Bot wird mit vorhandenem Speicher verbunden...\",\r\n \"migrationDialogStatusDeployingSite\": \"Website wird bereitgestellt\",\r\n \"migrationDialogStatusConfiguringSite\": \"Website wird konfiguriert\",\r\n \"migrationDialogStatusDeploying\": \"Bereitstellung wird ausgeführt\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Anmeldeinformationen für neue Functions-App werden abgerufen...\",\r\n \"migrationDialogErrorNoSubs\": \"Es wurden keine Azure-Abonnements für den aktuellen Benutzer gefunden.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Es wurde kein Azure-Zugriffstoken für den aktuellen Benutzer gefunden.\",\r\n \"migrationDialogErrorNoLocations\": \"Es wurden keine Standorte für das ausgewählte Azure-Abonnement gefunden.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Es wurde kein Azure-Speicherkontoname in der App-Konfiguration gefunden.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Der App-Name ist nicht verfügbar.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Ungültiger App-Name.\",\r\n \"migrationDialogErrorNoBotType\": \"Der aktuelle Bot hat keinen gültigen Typ.\",\r\n \"migrationDialogErrorBotInvalid\": \"Dieser Bot kann nicht migriert werden, da es sich um einen ungültigen Bot handelt.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Dieser Bot kann nicht migriert werden, da der Endpunkt fehlt.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Dieser Bot kann nicht migriert werden, da die Bereitstellungsinformationen fehlen.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Dieser Bot kann nicht migriert werden, da der Ressourcengruppenname fehlt.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Dieser Bot kann nicht migriert werden, da die ID des Azure-Abonnements fehlt.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Dieser Bot kann nicht migriert werden, da der Name der Azure-Site fehlt.\",\r\n \"migrationDialogABSv2TitleText\": \"Migration nicht verfügbar\",\r\n \"migrationDialogABSv2BodyText\": \"Die Migration von Conversation Designer (ABSv2)-Bots ist zurzeit deaktiviert.\",\r\n \"migrationDialogRegistrationBodyText\": \"Migrationen von {0}-Bots sind zurzeit deaktiviert.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Das Azure-Token ist abgelaufen.\",\r\n \"migrationDialogRefreshPage\": \"Aktualisieren Sie die Seite, und wiederholen Sie die Migration.\",\r\n \"migrationSubscriptionDisabled\": \"Das ausgewählte Azure-Abonnement ist deaktiviert. Aktivieren Sie es, um die Migration fortzusetzen.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Dieses Verzeichnis enthält kein Abonnement.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Ein Azure Functions-Paket ist erforderlich, um diesen Bot zu migrieren.\",\r\n \"migrationDialogFuncPackBotMessage\": \"Node Functions-Bots müssen mit dem Azure Functions-Paket verpackt werden, bevor sie migriert werden können.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Erfahren Sie, wie Sie das Azure Functions-Paket auf Ihrem Bot-Code ausführen\",\r\n \"tosDialog_Header\": \"Nutzungsbedingungen\",\r\n \"tosDialog_AgreeButton\": \"Zustimmen\",\r\n \"tosDialog_MessageChannels\": \"Die Online Services-Nutzungsbedingungen gelten nicht für Veröffentlichungen in Kanälen. Die Nutzungsbedingungen für Veröffentlichungen in Microsoft-Kanälen enthalten beispielsweise keine Bestimmungen für die Verarbeitung von Daten.\",\r\n \"tosDialog_MessageMigration\": \"Lesen Sie die folgenden Nutzungsbedingungen, und stimmen Sie ihnen zu.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Ich stimme zu, dass die Verwendung der Bot Framework-Website den {0} und den {1} unterliegt.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Ich stimme den {0} und den {1} für meine Bereitstellung im Cortana-Kanal zu.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Ich stimme den {0} und den {1} für meine Bereitstellung im folgenden Kanal zu: <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Ich stimme den {0} und den {1} für meine Bereitstellung in folgenden Kanälen zu: <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"Bestimmungen meines Azure Bot Service-Abonnements\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Cortana Channel Publication-Nutzungsbedingungen\",\r\n \"tosDialog_MSPublicationTerms\": \"Microsoft Channel Publication-Nutzungsbedingungen\",\r\n \"tosDialog_MSPrivacyStatement\": \"Microsoft-Datenschutzbestimmungen\",\r\n \"notice\": \" HINWEIS:\",\r\n \"listElem\": \"{0},\",\r\n \"andListEnd\": \"{0} und {1}\",\r\n \"analyticsChannelsDropdown\": \"Kanalfilter\",\r\n \"analyticsPeriodDropdown\": \"Zeitraum\",\r\n \"deprecatedChannel\": \"(veraltet)\",\r\n \"openInComposer\": \"In Composer öffnen\",\r\n \"downloadComposer\": \"Composer herunterladen\",\r\n}\r\n\r\nconst Resources_es: IResources = {\r\n \"unsupportedBrowser_Azure\": \"Azure Bot Service todavía no es compatible con tu explorador.\",\r\n \"unsupportedBrowser\": \"Bot Framework todavía no es compatible con tu explorador.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Iniciando sesión\",\r\n \"loadingBot\": \"Cargando bot...\",\r\n \"botIsNotReady\": \"Esperando a que el bot esté listo\",\r\n \"analyticsNotReady\": \"Esperando a que se configure Application Insights\",\r\n \"authorizingWebChat\": \"Autorizando chat con el bot\",\r\n \"signInFailure\": \"Se produjo un error al iniciar sesión. Asegúrese de que las cookies de terceros estén habilitadas en el navegador.\",\r\n \"getChatTokenFailure\": \"Se produjo un error al obtener un token de autorización de chat. Actualice el proceso y vuelva a intentarlo.\",\r\n \"refreshSignInFailure\": \"Se produjo un error al actualizar la información de inicio de sesión. Asegúrate de que las cookies de terceros están habilitadas en el navegador.\",\r\n \"xhrResponse_400\": \"La acción o los valores proporcionados no son válidos.\",\r\n \"xhrResponse_403\": \"Este elemento no es accesible ni se puede modificar.\",\r\n \"xhrResponse_404\": \"No se puede encontrar el elemento.\",\r\n \"xhrResponse_500\": \"Se produjo un error interno en el servidor.\",\r\n \"xhrResponse_501\": \"Esta operación no se admite.\",\r\n \"xhrResponse_Message\": \"Error: %1\",\r\n \"xhrResponse_Unknown\": \"Se produjo un error desconocido.\",\r\n \"AddAFeaturedChannelTitle\": \"Agregar un canal destacado\",\r\n \"ConnectToChannelsTitle\": \"Conectarse a canales\",\r\n \"NoChannelsConfigured\": \"Todavía no te has conectado a ningún canal. Selecciona un canal al que quieras conectarte.\",\r\n \"MoreChannelsTitle\": \"Más canales\",\r\n \"test\": \"Prueba\",\r\n \"startOver\": \"Empezar de nuevo\",\r\n \"retentionTitle\": \"Retención\",\r\n \"retentionDescription\": \"% usuarios que volvieron a enviar el mensaje (en los últimos 10 días).\",\r\n \"retentionHeader\": \"Días después\",\r\n \"retentionDate\": \"Fecha\",\r\n \"retentionUsers\": \"Usuarios\",\r\n \"undetermined\": \"Sin determinar\",\r\n \"loading\": \"cargando...\",\r\n \"noAnalyticsData\": \"sin datos\",\r\n \"timespanLastHour\": \"La última hora\",\r\n \"timespanLastDay\": \"El último día\",\r\n \"timespanLastWeek\": \"La última semana\",\r\n \"timespanLastMonth\": \"El último mes\",\r\n \"timespanLast90Days\": \"Últimos 90 días\",\r\n \"timespanUnknown\": \"Intervalo de tiempo desconocido\",\r\n \"timelineCardUsersTitle\": \"Usuarios\",\r\n \"timelineCardMessagesTitle\": \"Actividades\",\r\n \"totalsCardTitle\": \"Totales generales\",\r\n \"analyticsNotConfigured\": \"Todavía no has habilitado Analytics mediante Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Da las claves de Application Insights y el id. del bot en la siguiente página:\",\r\n \"analyticsNotConfiguredActionIbiza\": \"Da las claves de Application Insights y el id. del bot en la página de configuración.\",\r\n \"learnMore\": \"Más información\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - error: %2\",\r\n \"timelineTableLabel\": \"Asignación de tabla de escala de tiempo %1 por hora\",\r\n \"timelineChartLabel\": \"Asignación del gráfico de escala de tiempo %1 por hora\",\r\n \"published\": \"Publicado\",\r\n \"health\": \"Estado\",\r\n \"channelname\": \"Nombre\",\r\n \"edit\": \"Editar\",\r\n \"running\": \"En funcionamiento\",\r\n \"issuesTemplate\": \"Problemas (<%= length %>)\",\r\n \"warningTemplate\": \"Advertencias (<%= length %>)\",\r\n \"channelPublished\": \"Publicado\",\r\n \"tryOnCortana\": \"Probar en <%= Name %>: averigua cómo\",\r\n \"tryOnChannel\": \"Probar en <%= Name %>\",\r\n \"manageInCortana\": \"Administrar en el panel de Cortana\",\r\n \"channelRejected\": \"Rechazado\",\r\n \"channelMoreDetails\": \"Más detalles\",\r\n \"channelResubmit\": \"Volver a enviar para la revisión...\",\r\n \"channelGetEmbedCodes\": \"Obtener los códigos para insertar de los bots\",\r\n \"channelConfigDeleteMessage\": \"Esta acción eliminará toda la información de configuración del canal. ¿Estás seguro de que quieres continuar?\",\r\n \"channelConfigDeleteHeader\": \"Eliminar canal\",\r\n \"channelConfigDeleteOk\": \"Sí, quiero eliminarlo\",\r\n \"channelConfigDeleteCancel\": \"No, quiero guardarlo\",\r\n \"channelConfigLeaveMessage\": \"Tienes cambios sin guardar en este documento. ¿Estás seguro de que quieres salir de esta página?\",\r\n \"channelConfigLeaveHeader\": \"Descartar cambios\",\r\n \"channelConfigLeaveOk\": \"Sí, salir de la página\",\r\n \"channelConfigLeaveCancel\": \"No, permanecer en la página\",\r\n \"channelEdit\": \"Editar\",\r\n \"dialogPleaseWait\": \"Espera...\",\r\n \"embedPanelTitle\": \"Código para insertar del bot\",\r\n \"embedPanelDescription\": \"Elige un canal del cual obtener el código para insertar correspondiente. Copia y pega el código en tu sitio web.\",\r\n \"embedPanelFacebookFooter\": \"Para poder usar este código para insertar de Facebook, debes incluir el SDK de JavaScript en la página.\",\r\n \"embedPanelLearnMore\": \"Obtén más información.\",\r\n \"embedPanelChannelMovedHeader\": \"Se movió el código para insertar de %1.\",\r\n \"embedPanelChannelMovedInstructions\": \"Haz clic aquí para abrir la página de configuración %1.\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Código para insertar de %1\",\r\n \"embedPanelGettingCodes\": \"Obteniendo los códigos...\",\r\n \"embedPanelNoCodeAvailable\": \"No hay código para insertar disponible para este bot.\",\r\n \"channelIssuesPanelSubtitle\": \"Problemas recientes\",\r\n \"channelIssuesPanelClearall\": \"Borrar todo\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Hora\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Mensaje\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"Id. de correlación\",\r\n \"unsavedChangesWillBeLost\": \"Los cambios que no haya guardado se perderán.\",\r\n \"altImageChannel\": \"Configurar el canal %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"Correo\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype Empresarial\",\r\n \"_SkypeforBusiness\": \"Marca de Skype Empresarial\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRAR ESTE BOT\",\r\n \"migrationBannerCTAStartMigrating\": \"COMENZAR LA MIGRACIÓN\",\r\n \"migrationBannerBlurb1\": \"A raíz del lanzamiento del nuevo servicio Azure Bot Service, migraremos todos los bots al nuevo servicio antes del 31/03/2018.\",\r\n \"migrationBannerBlurb2\": \"sobre la migración.\",\r\n \"migrationBannerSuggestedBlurb\": \"La migración a Azure Bot Service es opcional para este bot.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Para evitar la interrupción del servicio, se deben migrar ahora los bots que requieren de migración a Azure Bot Service.\",\r\n \"migrationBannerBlockedBlurb\": \"La migración de bot se ha vencido. Realícela ahora para evitar la interrupción del servicio.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Si configura este canal, deberá migrar el bot a Azure Bot Service antes del 31/3/2018. ¿Confirma que quiere configurar este canal?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Este canal solo está disponible para bots de Azure Bot Service. ¿Desea migrar este bot?\",\r\n \"channelRequiresABSBot\": \"Este canal solo está disponible para bots de Azure Bot Service.\",\r\n \"botRequiresMigrationDialogHeader\": \"Es necesario migrar el bot\",\r\n \"botRequiresMigrationDialogMessage\": \"La migración de bot se ha vencido. Realícela ahora para evitar la interrupción del servicio.\",\r\n \"yesMigrateThisBot\": \"Sí, migrar este bot\",\r\n \"myBotsMigrationStatusMigrated\": \"Migrado\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Obligatorio\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"No se requiere\",\r\n \"myBotsMigrationButtonMigrate\": \"Migrar\",\r\n \"myBotsMigrationButtonRollback\": \"Revertir migración\",\r\n \"deleteBotDialogDeleteButtonText\": \"Eliminar bot\",\r\n \"cancelButtonText\": \"Cancelar\",\r\n \"deleteBotDialogTitleText\": \"Está a punto de eliminar este bot\",\r\n \"deleteBotDialogBodyText\": \"Esta acción eliminará todos los datos relacionados con el bot y no se puede deshacer. ¿Está seguro?\",\r\n \"deleteBotDialogStatusDeleting\": \"Eliminando bot...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot eliminado\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Sí, revertir\",\r\n \"rollbackBotDialogTitleText\": \"¿Seguro que quiere realizar la reversión?\",\r\n \"rollbackBotDialogBodyText\": \"Esta acción revertirá totalmente la migración y tendrá que volver a iniciar el proceso desde cero. ¿Seguro que quiere continuar?\",\r\n \"rollbackBotDialogErrorInfo\": \"Error al recuperar la información del bot desde el servidor.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"No se puede realizar la reversión porque no se encontró ningún punto de conexión de reversión.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"No se puede realizar la reversión porque no se pudo encontrar ningún token de Azure para contactar con Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Obteniendo la información del bot...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Preparando el bot...\",\r\n \"rollbackBotDialogStatusReverting\": \"Revirtiendo el bot...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Eliminando la aplicación actualizada...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Eliminando el registro de implementaciones...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Reversión completada\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"se revirtió correctamente.\",\r\n \"okButtonText\": \"Aceptar\",\r\n \"errorMessageErrorOccurred\": \"Se produjo un error.\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Obteniendo la información del bot...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Obteniendo la información de Azure...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Obteniendo la configuración de la aplicación Bot...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Inicializando el bot migrado...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Registrando Bot Service con Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Actualizando el registro de bots...\",\r\n \"migrationDialogStatusCreatingRG\": \"Creando el grupo de recursos...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Migrando archivos al nuevo bot...\",\r\n \"migrationDialogStatusWrappingUp\": \"Ajustando la implementación...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Conectando el bot al almacenamiento existente...\",\r\n \"migrationDialogStatusDeployingSite\": \"Implementando el sitio web\",\r\n \"migrationDialogStatusConfiguringSite\": \"Configurando el sitio web\",\r\n \"migrationDialogStatusDeploying\": \"Implementando\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Obteniendo las nuevas credenciales de Function App...\",\r\n \"migrationDialogErrorNoSubs\": \"No se pudo encontrar ninguna suscripción de Azure del usuario actual.\",\r\n \"migrationDialogErrorNoAzureToken\": \"No se pudo encontrar el token de acceso de Azure del usuario actual.\",\r\n \"migrationDialogErrorNoLocations\": \"No se pudo encontrar ninguna ubicación para la suscripción de Azure seleccionada.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"No se pudo encontrar ningún nombre para la cuenta de almacenamiento de Azure en la configuración de la aplicación.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"El nombre de la aplicación no está disponible.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"El nombre de la aplicación no es válido.\",\r\n \"migrationDialogErrorNoBotType\": \"El bot actual no tiene ningún tipo válido.\",\r\n \"migrationDialogErrorBotInvalid\": \"No se puede migrar este bot porque no es válido.\",\r\n \"migrationDialogErrorEndpointMissing\": \"No se puede migrar este bot porque falta el punto de conexión.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"No se puede migrar este bot porque falta la información de aprovisionamiento.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"No se puede migrar este bot porque falta el nombre del grupo de recursos.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"No se puede migrar este bot porque falta el id. de la suscripción de Azure.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"No se puede migrar este bot porque falta el nombre del sitio de Azure.\",\r\n \"migrationDialogABSv2TitleText\": \"La migración no está disponible\",\r\n \"migrationDialogABSv2BodyText\": \"La migración está deshabilitada para los bots del diseñador de conversaciones (ABSv2).\",\r\n \"migrationDialogRegistrationBodyText\": \"En estos momentos la migración de los bots \\\"{0}\\\" está deshabilitada.\",\r\n \"migrationDialogFailedTokenRefresh\": \"El token de Azure ha expirado.\",\r\n \"migrationDialogRefreshPage\": \"Actualice la página y vuelva a intentar la migración.\",\r\n \"migrationSubscriptionDisabled\": \"La suscripción de Azure seleccionada está deshabilitada. Habilítala para continuar con la migración.\",\r\n \"migrationTenantHasNoSubscriptions\": \"El directorio no contiene ninguna suscripción.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Azure Functions Pack es necesario para migrar este bot.\",\r\n \"migrationDialogFuncPackBotMessage\": \"Los bots de Node Functions deben empaquetarse con Azure Functions Pack para poder migrarlos.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Aprende a ejecutar Azure Functions Pack en el código del bot.\",\r\n \"tosDialog_Header\": \"Términos del servicio\",\r\n \"tosDialog_AgreeButton\": \"Aceptar\",\r\n \"tosDialog_MessageChannels\": \"Los términos de Online Services no se aplican a la publicación de canales. Por ejemplo, los términos para la publicación de canales de Microsoft no ofrecen términos dedicados al procesamiento de datos.\",\r\n \"tosDialog_MessageMigration\": \"Lea y acepte los siguientes términos.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Estoy de acuerdo en que el uso del sitio Bot Framework esté sujeto a los {0} y a la {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Estoy de acuerdo con los {0} y la {1} para la implementación del canal de Cortana.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Estoy de acuerdo con los {0} y la {1} para la implementación del canal <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Estoy de acuerdo con los {0} y la {1} para la implementación de los canales <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"términos de mi suscripción de Azure Bot Service\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Condiciones de publicación en el canal de Cortana\",\r\n \"tosDialog_MSPublicationTerms\": \"Términos para la publicación de canales de Microsoft\",\r\n \"tosDialog_MSPrivacyStatement\": \"Declaraciones de privacidad de Microsoft\",\r\n \"notice\": \" AVISO: \",\r\n \"listElem\": \"{0},\",\r\n \"andListEnd\": \"{0} y {1}\",\r\n \"analyticsChannelsDropdown\": \"Filtro de canales\",\r\n \"analyticsPeriodDropdown\": \"Periodo de tiempo\",\r\n \"deprecatedChannel\": \"(en desuso)\",\r\n \"openInComposer\": \"abrir en Composer\",\r\n \"downloadComposer\": \"Descargar Composer\",\r\n}\r\n\r\nconst Resources_fr: IResources = {\r\n \"unsupportedBrowser_Azure\": \"Azure Bot Service ne prend pas encore votre navigateur en charge.\",\r\n \"unsupportedBrowser\": \"Bot Framework ne prend pas encore votre navigateur en charge.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Connexion en cours\",\r\n \"loadingBot\": \"Chargement du bot...\",\r\n \"botIsNotReady\": \"Attente que le bot soit prêt\",\r\n \"analyticsNotReady\": \"En attente de la configuration d'Application Insights\",\r\n \"authorizingWebChat\": \"Autorisation de conversation avec le bot\",\r\n \"signInFailure\": \"Une erreur s'est produite lors de votre connexion. Assurez-vous que les cookies tiers sont activés dans le navigateur.\",\r\n \"getChatTokenFailure\": \"Une erreur s'est produite lors de l'obtention d'un jeton d'autorisation de discussion. Actualisez et réessayez.\",\r\n \"refreshSignInFailure\": \"Désolé... Une erreur est survenue lors de l'actualisation de vos informations de connexion. Veuillez vérifier que votre navigateur autorise les cookies tiers.\",\r\n \"xhrResponse_400\": \"L'action ou les valeurs fournies ne sont pas valides.\",\r\n \"xhrResponse_403\": \"Impossible d'accéder à l'élément ou de le modifier.\",\r\n \"xhrResponse_404\": \"L'élément est introuvable.\",\r\n \"xhrResponse_500\": \"Une erreur interne s'est produite sur le serveur.\",\r\n \"xhrResponse_501\": \"Cette opération n'est pas prise en charge.\",\r\n \"xhrResponse_Message\": \"Erreur : %1\",\r\n \"xhrResponse_Unknown\": \"Une erreur inconnue s'est produite.\",\r\n \"AddAFeaturedChannelTitle\": \"Ajouter une chaîne en vedette\",\r\n \"ConnectToChannelsTitle\": \"Connecter aux canaux\",\r\n \"NoChannelsConfigured\": \"Vous n'avez encore connecté aucun canal. Sélectionnez un canal à connecter.\",\r\n \"MoreChannelsTitle\": \"Plus de chaînes\",\r\n \"test\": \"Test\",\r\n \"startOver\": \"Recommencer\",\r\n \"retentionTitle\": \"Rétention\",\r\n \"retentionDescription\": \"% utilisateurs ayant de nouveau envoyé un message (au cours des 10 derniers jours)\",\r\n \"retentionHeader\": \"Jours plus tard\",\r\n \"retentionDate\": \"Date\",\r\n \"retentionUsers\": \"Utilisateurs\",\r\n \"undetermined\": \"Non déterminé\",\r\n \"loading\": \"chargement...\",\r\n \"noAnalyticsData\": \"aucune donnée\",\r\n \"timespanLastHour\": \"Dernière heure\",\r\n \"timespanLastDay\": \"Dernier jour\",\r\n \"timespanLastWeek\": \"Dernière semaine\",\r\n \"timespanLastMonth\": \"Dernier mois\",\r\n \"timespanLast90Days\": \"90 derniers jours\",\r\n \"timespanUnknown\": \"Période inconnue\",\r\n \"timelineCardUsersTitle\": \"Utilisateurs\",\r\n \"timelineCardMessagesTitle\": \"Activités\",\r\n \"totalsCardTitle\": \"Totaux généraux\",\r\n \"analyticsNotConfigured\": \"Vous n'avez pas encore activé Analytique via Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Fournissez vos clés Application Insights et l'ID de ce bot sur la page suivante : \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Fournissez vos clés Application Insights et l'ID de ce bot sur la page des paramètres.\",\r\n \"learnMore\": \"En savoir plus\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - erreur : %2\",\r\n \"timelineTableLabel\": \"Table chronologique mappant les %1 selon le temps\",\r\n \"timelineChartLabel\": \"Graphique chronologique mappant les %1 selon le temps\",\r\n \"published\": \"Publié\",\r\n \"health\": \"Intégrité\",\r\n \"channelname\": \"Nom\",\r\n \"edit\": \"Modifier\",\r\n \"running\": \"Exécution en cours\",\r\n \"issuesTemplate\": \"Problèmes (<%= length %>)\",\r\n \"warningTemplate\": \"Avertissements (<%= length %>)\",\r\n \"channelPublished\": \"Publié\",\r\n \"tryOnCortana\": \"Essayer sur <%= Name %> - Découvrir la procédure\",\r\n \"tryOnChannel\": \"Essayer sur <%= Name %>\",\r\n \"manageInCortana\": \"Gérer dans le tableau de bord de Cortana\",\r\n \"channelRejected\": \"Rejetée\",\r\n \"channelMoreDetails\": \"Plus de détails\",\r\n \"channelResubmit\": \"Resoumettre pour évaluation...\",\r\n \"channelGetEmbedCodes\": \"Obtenir des codes de bot incorporés\",\r\n \"channelConfigDeleteMessage\": \"Cette opération supprimera toutes les informations de configuration du canal. Voulez-vous vraiment continuer ?\",\r\n \"channelConfigDeleteHeader\": \"Supprimer le canal\",\r\n \"channelConfigDeleteOk\": \"Oui, supprimer\",\r\n \"channelConfigDeleteCancel\": \"Non, conserver\",\r\n \"channelConfigLeaveMessage\": \"Des modifications de ce document n'ont pas été enregistrées. Voulez-vous vraiment quitter cette page ?\",\r\n \"channelConfigLeaveHeader\": \"Ignorer les modifications\",\r\n \"channelConfigLeaveOk\": \"Oui, quitter cette page\",\r\n \"channelConfigLeaveCancel\": \"Non, rester sur cette page\",\r\n \"channelEdit\": \"Modifier\",\r\n \"dialogPleaseWait\": \"Veuillez patienter...\",\r\n \"embedPanelTitle\": \"Code incorporé du bot\",\r\n \"embedPanelDescription\": \"Choisissez un canal pour en obtenir le code incorporé. Copiez et collez le code dans votre site web.\",\r\n \"embedPanelFacebookFooter\": \"Pour pouvoir utiliser ce code incorporé, Facebook exige que vous intégriez à votre page son Kit de développement logiciel (SDK) JavaScript.\",\r\n \"embedPanelLearnMore\": \"En savoir plus.\",\r\n \"embedPanelChannelMovedHeader\": \"Le code incorporé pour %1 a été déplacé\",\r\n \"embedPanelChannelMovedInstructions\": \"Cliquer ici pour ouvrir la page de configuration %1\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Code incorporé pour %1\",\r\n \"embedPanelGettingCodes\": \"Obtention des codes...\",\r\n \"embedPanelNoCodeAvailable\": \"Aucun code incorporé n'est disponible pour ce bot.\",\r\n \"channelIssuesPanelSubtitle\": \"Problèmes récents\",\r\n \"channelIssuesPanelClearall\": \"Effacer tout\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Heure\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Message\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"ID de corrélation\",\r\n \"unsavedChangesWillBeLost\": \"Les modifications non enregistrées seront perdues.\",\r\n \"altImageChannel\": \"Configurer le canal %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"Adresse e-mail\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype Entreprise\",\r\n \"_SkypeforBusiness\": \"Marque Skype Entreprise\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRER CE BOT\",\r\n \"migrationBannerCTAStartMigrating\": \"COMMENCER LA MIGRATION\",\r\n \"migrationBannerBlurb1\": \"Avec le lancement du nouveau Azure Bot Service, nous allons migrer tous les bots vers le nouveau service pour le 31/01/2018.\",\r\n \"migrationBannerBlurb2\": \"à propos de la migration.\",\r\n \"migrationBannerSuggestedBlurb\": \"La migration vers Azure Bot Service est facultative pour ce bot.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Les bots nécessitant la migration vers Azure Bot Service doivent migrer maintenant pour éviter toute interruption du service.\",\r\n \"migrationBannerBlockedBlurb\": \"L'échéance de la migration du bot est passée. Procédez à la migration maintenant pour éviter toute interruption du service.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Si vous configurez cette chaîne, votre bot devra migrer vers Azure Bot Service avant le 31/03/2018. Voulez-vous vraiment configurer cette chaîne ?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Cette chaîne n'est disponible que pour les bots d'Azure Bot Service. Voulez-vous migrer ce bot ?\",\r\n \"channelRequiresABSBot\": \"Cette chaîne n'est disponible que pour les bots d'Azure Bot Service.\",\r\n \"botRequiresMigrationDialogHeader\": \"Le bot requiert la migration\",\r\n \"botRequiresMigrationDialogMessage\": \"L'échéance de la migration du bot est passée. Procédez à la migration maintenant pour éviter toute interruption du service.\",\r\n \"yesMigrateThisBot\": \"Oui, migrer ce bot\",\r\n \"myBotsMigrationStatusMigrated\": \"Migré\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Obligatoire\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Non obligatoire\",\r\n \"myBotsMigrationButtonMigrate\": \"Migrer\",\r\n \"myBotsMigrationButtonRollback\": \"Restaurer la migration\",\r\n \"deleteBotDialogDeleteButtonText\": \"Supprimer le bot\",\r\n \"cancelButtonText\": \"Annuler\",\r\n \"deleteBotDialogTitleText\": \"Vous êtes sur le point de supprimer ce bot\",\r\n \"deleteBotDialogBodyText\": \"Cette action va effacer toutes les données associées à ce bot et ne peut pas être annulée. Voulez-vous continuer ?\",\r\n \"deleteBotDialogStatusDeleting\": \"Suppression du bot en cours...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot supprimé\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Oui, restaurer\",\r\n \"rollbackBotDialogTitleText\": \"Voulez-vous vraiment procéder à la restauration ?\",\r\n \"rollbackBotDialogBodyText\": \"Cette action va restaurer complètement la migration et vous devrez commencer le processus de migration depuis le début. Voulez-vous vraiment continuer ?\",\r\n \"rollbackBotDialogErrorInfo\": \"Erreur lors de la récupération des informations sur le bot sur le serveur.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Impossible d'effectuer la restauration. Aucun point de terminaison de restauration trouvé.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Impossible d'effectuer la restauration. Échec de la recherche d'un jeton Azure pour contacter Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Collecte d'informations sur le bot...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Préparation du bot en cours...\",\r\n \"rollbackBotDialogStatusReverting\": \"Restauration du bot en cours...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Suppression de l'application mise à niveau...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Suppression de l'enregistrement de déploiement...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Restauration terminée\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"a été restauré.\",\r\n \"okButtonText\": \"OK\",\r\n \"errorMessageErrorOccurred\": \"Une erreur s'est produite\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Obtention des informations sur le bot...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Obtention des informations sur Azure...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Obtention des paramètres d'application du bot...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Initialisation du bot migré en cours...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Inscription du service bot avec Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Mise à jour de l'enregistrement de bot en cours...\",\r\n \"migrationDialogStatusCreatingRG\": \"Création d'un groupe de ressources en cours...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Migration des fichiers vers le nouveau bot...\",\r\n \"migrationDialogStatusWrappingUp\": \"Finalisation du déploiement en cours...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Connexion du bot au stockage existant...\",\r\n \"migrationDialogStatusDeployingSite\": \"Déploiement de site web en cours\",\r\n \"migrationDialogStatusConfiguringSite\": \"Configuration du site web en cours\",\r\n \"migrationDialogStatusDeploying\": \"Déploiement en cours\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Obtention de nouvelles informations d'identification pour l'application de fonction...\",\r\n \"migrationDialogErrorNoSubs\": \"Échec de la recherche d'abonnements Azure pour l'utilisateur actuel.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Échec de la recherche d'un jeton d'accès Azure pour l'utilisateur actuel.\",\r\n \"migrationDialogErrorNoLocations\": \"Désolé... Une erreur est survenue lors de la recherche d'emplacements pour l'abonnement Azure sélectionné.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Échec de la recherche d'un nom de compte Stockage Azure dans la configuration de l'application.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Le nom de l'application n'est pas disponible.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Nom d'application non valide.\",\r\n \"migrationDialogErrorNoBotType\": \"Le bot actuel n'a pas de type valide.\",\r\n \"migrationDialogErrorBotInvalid\": \"Impossible de migrer ce bot, car il n'est pas valide.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Impossible de migrer ce bot, car le point de terminaison est manquant.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Impossible de migrer ce bot, car les infos sur l'approvisionnement sont manquantes.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Impossible de migrer ce bot, car le nom du groupe de ressources est manquant.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Désolé... Nous ne pouvons pas migrer ce bot, car nous ne trouvons pas l'ID d'abonnement Azure.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Impossible de migrer ce bot, car le nom du site Azure est manquant.\",\r\n \"migrationDialogABSv2TitleText\": \"Migration non disponible\",\r\n \"migrationDialogABSv2BodyText\": \"La migration est actuellement désactivée pour les bots Concepteur de conversations (ABSv2).\",\r\n \"migrationDialogRegistrationBodyText\": \"La migration est actuellement désactivée pour les bots « {0} ».\",\r\n \"migrationDialogFailedTokenRefresh\": \"Le jeton Azure a expiré.\",\r\n \"migrationDialogRefreshPage\": \"Actualisez la page et réessayez la migration.\",\r\n \"migrationSubscriptionDisabled\": \"L'abonnement Azure sélectionné est désactivé. Veuillez l’activer pour continuer la migration.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Ce répertoire ne contient aucun abonnement.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Le pack Azure Functions est obligatoire pour migrer ce bot\",\r\n \"migrationDialogFuncPackBotMessage\": \"Les bots de fonction Node doivent être fournis avec le pack Azure Functions avant de pouvoir être migrés.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Découvrez comment exécuter le pack Azure Functions sur le code de votre bot\",\r\n \"tosDialog_Header\": \"Conditions d'utilisation\",\r\n \"tosDialog_AgreeButton\": \"J'accepte\",\r\n \"tosDialog_MessageChannels\": \"Les conditions d'utilisation en ligne ne s'appliquent pas à la publication sur les chaînes. Par exemple, les conditions de publication sur les chaînes Microsoft n'offrent pas de conditions de traitement des données.\",\r\n \"tosDialog_MessageMigration\": \"Veuillez lire et accepter les conditions suivantes.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"J'accepte que l'utilisation du site Bot Framework soit soumise aux {0} et à la {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"J'accepte les {0} et la {1} pour mon déploiement sur la chaîne Cortana.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"J'accepte les {0} et la {1} pour mon déploiement sur la chaîne <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"J'accepte les {0} et la {1} pour mon déploiement sur les chaînes <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"conditions de mon abonnement à Azure Bot Service\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Conditions de publication de la chaîne Cortana\",\r\n \"tosDialog_MSPublicationTerms\": \"Conditions de publication de la chaîne Microsoft\",\r\n \"tosDialog_MSPrivacyStatement\": \"Déclarations de confidentialité de Microsoft\",\r\n \"notice\": \" AVIS : \",\r\n \"listElem\": \"{0}, \",\r\n \"andListEnd\": \"{0} et {1}\",\r\n \"analyticsChannelsDropdown\": \"Filtre de chaîne\",\r\n \"analyticsPeriodDropdown\": \"Période\",\r\n \"deprecatedChannel\": \"(déconseillé)\",\r\n \"openInComposer\": \"ouvrir dans composer\",\r\n \"downloadComposer\": \"Télécharger composer\",\r\n}\r\n\r\nconst Resources_it: IResources = {\r\n \"unsupportedBrowser_Azure\": \"Il servizio Azure Bot ancora non supporta il browser.\",\r\n \"unsupportedBrowser\": \"Bot Framework ancora non supporta il browser.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Accesso in corso...\",\r\n \"loadingBot\": \"Caricamento del bot in corso...\",\r\n \"botIsNotReady\": \"In attesa che il bot sia pronto\",\r\n \"analyticsNotReady\": \"In attesa della configurazione di Application Insights\",\r\n \"authorizingWebChat\": \"Autorizzazione della chat con bot in corso\",\r\n \"signInFailure\": \"Si è verificato un errore durante l'accesso. Verifica che i cookie di terze parti siano abilitati nel browser.\",\r\n \"getChatTokenFailure\": \"Si è verificato un errore durante l'ottenimento del token di autorizzazione per la chat. Aggiornare e riprovare.\",\r\n \"refreshSignInFailure\": \"Si è verificato un errore durante l'aggiornamento delle informazioni di accesso. Verificare che i cookie di terze parti siano abilitati nel browser.\",\r\n \"xhrResponse_400\": \"L'azione o i valori forniti non sono validi.\",\r\n \"xhrResponse_403\": \"Impossibile accedere o modificare questo elemento.\",\r\n \"xhrResponse_404\": \"Impossibile trovare l'elemento.\",\r\n \"xhrResponse_500\": \"Si è verificato un errore interno del server.\",\r\n \"xhrResponse_501\": \"Operazione non supportata.\",\r\n \"xhrResponse_Message\": \"Errore: %1\",\r\n \"xhrResponse_Unknown\": \"Si è verificato un errore sconosciuto.\",\r\n \"AddAFeaturedChannelTitle\": \"Aggiungi un canale in primo piano\",\r\n \"ConnectToChannelsTitle\": \"Connessione ai canali\",\r\n \"NoChannelsConfigured\": \"Non è stato ancora connesso alcun canale. Selezionare un canale da connettere.\",\r\n \"MoreChannelsTitle\": \"Altri canali\",\r\n \"test\": \"Test\",\r\n \"startOver\": \"Ricomincia\",\r\n \"retentionTitle\": \"Conservazione\",\r\n \"retentionDescription\": \"% utenti che hanno nuovamente inviato messaggi (ultimi 10 giorni)\",\r\n \"retentionHeader\": \"Giorni dopo\",\r\n \"retentionDate\": \"Data\",\r\n \"retentionUsers\": \"Utenti\",\r\n \"undetermined\": \"Indeterminato\",\r\n \"loading\": \"caricamento in corso...\",\r\n \"noAnalyticsData\": \"nessun dato\",\r\n \"timespanLastHour\": \"Ultima ora\",\r\n \"timespanLastDay\": \"Ultimo giorno\",\r\n \"timespanLastWeek\": \"Ultima settimana\",\r\n \"timespanLastMonth\": \"Ultimo mese\",\r\n \"timespanLast90Days\": \"Ultimi 90 giorni\",\r\n \"timespanUnknown\": \"Timespan sconosciuto\",\r\n \"timelineCardUsersTitle\": \"Utenti\",\r\n \"timelineCardMessagesTitle\": \"Attività\",\r\n \"totalsCardTitle\": \"Totali complessivi\",\r\n \"analyticsNotConfigured\": \"Ancora non è stato abilitato Analisi tramite Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Fornire l'ID e le chiavi di Application Insights per questo bot nella pagina seguente:\",\r\n \"analyticsNotConfiguredActionIbiza\": \"Fornire l'ID e le chiavi di Application Insights per questo bot nella pagina delle impostazioni.\",\r\n \"learnMore\": \"Altre informazioni\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - errore: %2\",\r\n \"timelineTableLabel\": \"Mapping della tabella %1 della cronologia in base all'orario\",\r\n \"timelineChartLabel\": \"Mapping del grafico %1 della cronologia in base all'orario\",\r\n \"published\": \"Pubblicato\",\r\n \"health\": \"Integrità\",\r\n \"channelname\": \"Nome\",\r\n \"edit\": \"Modifica\",\r\n \"running\": \"In esecuzione\",\r\n \"issuesTemplate\": \"Problemi (<%= length %>)\",\r\n \"warningTemplate\": \"Avvisi (<%= length %>)\",\r\n \"channelPublished\": \"Pubblicato\",\r\n \"tryOnCortana\": \"Prova su <%= Name %> - altre informazioni\",\r\n \"tryOnChannel\": \"Prova su <%= Name %>\",\r\n \"manageInCortana\": \"Gestire nel dashboard di Cortana\",\r\n \"channelRejected\": \"Rifiutato\",\r\n \"channelMoreDetails\": \"Altri dettagli\",\r\n \"channelResubmit\": \"Inviare nuovamente per la revisione...\",\r\n \"channelGetEmbedCodes\": \"Ottieni codici di incorporamento bot\",\r\n \"channelConfigDeleteMessage\": \"Questa azione eliminerà tutte le informazioni di configurazione del canale. Continuare?\",\r\n \"channelConfigDeleteHeader\": \"Elimina canale\",\r\n \"channelConfigDeleteOk\": \"Sì, eliminalo\",\r\n \"channelConfigDeleteCancel\": \"No, mantienilo\",\r\n \"channelConfigLeaveMessage\": \"Sono presenti modifiche non salvate nel documento. Uscire dalla pagina?\",\r\n \"channelConfigLeaveHeader\": \"Ignora modifiche\",\r\n \"channelConfigLeaveOk\": \"Sì, esci dalla pagina\",\r\n \"channelConfigLeaveCancel\": \"No, resta nella pagina\",\r\n \"channelEdit\": \"Modifica\",\r\n \"dialogPleaseWait\": \"Attendere...\",\r\n \"embedPanelTitle\": \"Codice di incorporamento bot\",\r\n \"embedPanelDescription\": \"Scegliere un canale per ottenere il relativo codice di incorporamento. Copiare e incollare il codice nel sito Web.\",\r\n \"embedPanelFacebookFooter\": \"Per utilizzare questo incorporamento Facebook richiede di includere il relativo SDK JavaScript nella pagina.\",\r\n \"embedPanelLearnMore\": \"Ulteriori informazioni.\",\r\n \"embedPanelChannelMovedHeader\": \"Il codice di incorporamento per %1 è stato spostato\",\r\n \"embedPanelChannelMovedInstructions\": \"Fare clic qui per aprire la pagina di configurazione %1\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Il codice di incorporamento per %1\",\r\n \"embedPanelGettingCodes\": \"Recupero dei codici in corso...\",\r\n \"embedPanelNoCodeAvailable\": \"Nessun codice di incorporamento disponibile per questo bot.\",\r\n \"channelIssuesPanelSubtitle\": \"Problemi recenti\",\r\n \"channelIssuesPanelClearall\": \"Deseleziona tutto\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Data e ora\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Messaggio\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"ID correlazione\",\r\n \"unsavedChangesWillBeLost\": \"Le modifiche non salvate andranno perse.\",\r\n \"altImageChannel\": \"Configura canale %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"E-mail\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype for Business\",\r\n \"_SkypeforBusiness\": \"Marchio Skype for Business\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRA QUESTO BOT\",\r\n \"migrationBannerCTAStartMigrating\": \"AVVIA MIGRAZIONE\",\r\n \"migrationBannerBlurb1\": \"Con il lancio del nuovo servizio Azure Bot, tutti i bot verranno migrati nel nuovo servizio entro il 31/03/2018.\",\r\n \"migrationBannerBlurb2\": \"informazioni sulla migrazione.\",\r\n \"migrationBannerSuggestedBlurb\": \"La migrazione al servizio Azure Bot è facoltativa per questo bot.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"I bot che richiedono la migrazione al servizio Azure Bot devono effettuare ora la migrazione per evitare l'interruzione del servizio.\",\r\n \"migrationBannerBlockedBlurb\": \"Migrazione del bot scaduta, esegui la migrazione ora per evitare un'interruzione del servizio.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Se configuri questo canale, il bot richiederà la migrazione al servizio Azure Bot entro il 31/03/2018. Vuoi configurare questo canale?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Questo canale è disponibile solo per i bot nel servizio Azure Bot. Vuoi migrare questo bot?\",\r\n \"channelRequiresABSBot\": \"Questo canale è disponibile solo per i bot nel servizio Azure Bot.\",\r\n \"botRequiresMigrationDialogHeader\": \"Il bot richiede la migrazione\",\r\n \"botRequiresMigrationDialogMessage\": \"Migrazione del bot scaduta, esegui la migrazione ora per evitare un'interruzione del servizio.\",\r\n \"yesMigrateThisBot\": \"Sì, esegui la migrazione di questo bot\",\r\n \"myBotsMigrationStatusMigrated\": \"Migrazione completata\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Obbligatorio\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Non obbligatorio\",\r\n \"myBotsMigrationButtonMigrate\": \"Esegui migrazione\",\r\n \"myBotsMigrationButtonRollback\": \"Esegui rollback migrazione\",\r\n \"deleteBotDialogDeleteButtonText\": \"Elimina bot\",\r\n \"cancelButtonText\": \"Annulla\",\r\n \"deleteBotDialogTitleText\": \"Questo bot sta per essere eliminato\",\r\n \"deleteBotDialogBodyText\": \"Questa azione cancellerà tutti i dati associati a questo bot e non può essere annullata. Continuare?\",\r\n \"deleteBotDialogStatusDeleting\": \"Eliminazione bot in corso...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot eliminato\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Sì, esegui rollback\",\r\n \"rollbackBotDialogTitleText\": \"Eseguire rollback?\",\r\n \"rollbackBotDialogBodyText\": \"Questa azione eseguirà il rollback completo della migrazione e sarà necessario avviare il processo di migrazione dall'inizio. Continuare?\",\r\n \"rollbackBotDialogErrorInfo\": \"Errore durante il recupero delle informazioni sul bot dal server.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Impossibile eseguire rollback. Nessun endpoint di rollback trovato.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Impossibile eseguire rollback. Impossibile trovare un token di Azure per contattare Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Raccolta informazioni bot in corso...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Preparazione bot in corso...\",\r\n \"rollbackBotDialogStatusReverting\": \"Ripristino bot in corso..\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Eliminazione app aggiornata in corso...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Eliminazione record distribuzione in corso...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Rollback completato\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"ha completato il rollback.\",\r\n \"okButtonText\": \"OK\",\r\n \"errorMessageErrorOccurred\": \"Si è verificato un errore\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Ottenimento informazioni su bot in corso...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Ottenimento informazioni su Azure in corso...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Ottenimento impostazioni app bot in corso...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Inizializzazione bot migrato in corso...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Registrazione Servizio Bot con Azure in corso...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Aggiornamento record bot in corso...\",\r\n \"migrationDialogStatusCreatingRG\": \"Creazione gruppo di risorse in corso...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Migrazione file su nuovo bot in corso...\",\r\n \"migrationDialogStatusWrappingUp\": \"Wrapping distribuzione in corso...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Connessione del bot alla risorsa di archiviazione esistente in corso...\",\r\n \"migrationDialogStatusDeployingSite\": \"Distribuzione sito Web in corso\",\r\n \"migrationDialogStatusConfiguringSite\": \"Configurazione sito Web in corso\",\r\n \"migrationDialogStatusDeploying\": \"Distribuzione in corso\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Ottenimento nuove credenziali delle app per le funzioni in corso...\",\r\n \"migrationDialogErrorNoSubs\": \"Impossibile trovare sottoscrizioni di Azure per l'utente corrente.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Impossibile trovare il token di accesso di Azure per l'utente corrente.\",\r\n \"migrationDialogErrorNoLocations\": \"Non è stato possibile trovare posizioni per la sottoscrizione di Azure selezionata.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Impossibile trovare un nome account di Archiviazione di Azure nella configurazione dell'app.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Nome app non disponibile.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Nome app non valido.\",\r\n \"migrationDialogErrorNoBotType\": \"Il bot corrente non dispone di un tipo valido.\",\r\n \"migrationDialogErrorBotInvalid\": \"Impossibile migrare questo bot perché non è valido.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Impossibile migrare questo bot perché l'endpoint è mancante.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Impossibile migrare questo bot perché le informazioni sul provisioning sono mancanti.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Impossibile migrare questo bot perché il nome del gruppo di risorse è mancante.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Non è possibile migrare questo bot perché manca l'ID sottoscrizione di Azure.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Impossibile migrare questo bot perché il nome del sito di Azure è mancante.\",\r\n \"migrationDialogABSv2TitleText\": \"Migrazione non disponibile\",\r\n \"migrationDialogABSv2BodyText\": \"La migrazione è al momento disabilitata per i bot Progettazione della conversazione (ABSv2).\",\r\n \"migrationDialogRegistrationBodyText\": \"La migrazione è al momento disabilitata per i bot '{0}'.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Token di Azure scaduto.\",\r\n \"migrationDialogRefreshPage\": \"Aggiornare la pagina e riprovare a eseguire la migrazione.\",\r\n \"migrationSubscriptionDisabled\": \"La sottoscrizione di Azure selezionata è disabilitata. Abilitarla per continuare la migrazione.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Questa directory non contiene alcuna sottoscrizione.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Il pacchetto Funzioni di Azure è obbligatorio per poter migrare questo bot\",\r\n \"migrationDialogFuncPackBotMessage\": \"I bot di funzioni del nodo devono essere inclusi nel pacchetto Funzioni di Azure prima di poter essere migrati.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Informazioni su come eseguire il pacchetto Funzioni di Azure sul codice bot\",\r\n \"tosDialog_Header\": \"Condizioni d'uso\",\r\n \"tosDialog_AgreeButton\": \"Accetto\",\r\n \"tosDialog_MessageChannels\": \"Le Condizioni dei servizi online non si applicano alla pubblicazione sui canali. Ad esempio, le condizioni per la pubblicazione sui canali Microsoft non offrono le condizioni per l'elaborazione dei dati.\",\r\n \"tosDialog_MessageMigration\": \"Leggere e accettare le condizioni seguenti.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Accetto che l'uso del sito framework del bot sia soggetto alle {0} e alle {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Accetto le {0} e le {1} per la distribuzione sul canale Cortana.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Accetto le {0} e le {1} per la distribuzione sul canale <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Accetto le {0} e le {1} per la distribuzione sui canali <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"condizioni della sottoscrizione per il servizio Azure Bot\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Condizioni per la pubblicazione sul canale Cortana\",\r\n \"tosDialog_MSPublicationTerms\": \"Condizioni per la pubblicazione sul canale Microsoft\",\r\n \"tosDialog_MSPrivacyStatement\": \"Informative sulla privacy di Microsoft\",\r\n \"notice\": \" AVVISO: \",\r\n \"listElem\": \"{0}\",\r\n \"andListEnd\": \"{0} e {1}\",\r\n \"analyticsChannelsDropdown\": \"Filtro canali\",\r\n \"analyticsPeriodDropdown\": \"Periodo\",\r\n \"deprecatedChannel\": \"(deprecato)\",\r\n \"openInComposer\": \"Apri in Composer\",\r\n \"downloadComposer\": \"Scarica Composer\",\r\n}\r\n\r\nconst Resources_ja: IResources = {\r\n \"unsupportedBrowser_Azure\": \"Azure Bot Service は、ご使用のブラウザーをまだサポートしていません。\",\r\n \"unsupportedBrowser\": \"Bot Framework は、ご使用のブラウザーをまだサポートしていません。\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"ログイン中\",\r\n \"loadingBot\": \"ボットを読み込んでいます...\",\r\n \"botIsNotReady\": \"ボットの準備完了を待機中\",\r\n \"analyticsNotReady\": \"Application Insights の構成を待機中\",\r\n \"authorizingWebChat\": \"ボットとのチャットを承認中\",\r\n \"signInFailure\": \"サインイン中にエラーが発生しました。ブラウザーでサード パーティの Cookie が有効になっていることを確認してください。\",\r\n \"getChatTokenFailure\": \"チャット承認トークンを取得中にエラーが発生しました。更新してもう一度やり直してください。\",\r\n \"refreshSignInFailure\": \"サインイン情報の更新中にエラーが発生しました。ブラウザーでサード パーティの Cookie が有効になっていることを確認してください。\",\r\n \"xhrResponse_400\": \"この操作または指定された値は無効です。\",\r\n \"xhrResponse_403\": \"このアイテムにアクセスできないか、このアイテムを変更できません。\",\r\n \"xhrResponse_404\": \"このアイテムは見つかりません。\",\r\n \"xhrResponse_500\": \"サーバーで内部エラーが発生しました。\",\r\n \"xhrResponse_501\": \"この操作はサポートされていません。\",\r\n \"xhrResponse_Message\": \"エラー: %1\",\r\n \"xhrResponse_Unknown\": \"不明なエラーが発生しました。\",\r\n \"AddAFeaturedChannelTitle\": \"おすすめチャンネルの追加\",\r\n \"ConnectToChannelsTitle\": \"チャンネルに接続\",\r\n \"NoChannelsConfigured\": \"どのチャンネルもまだ接続されていません。接続するチャンネルを選択してください。\",\r\n \"MoreChannelsTitle\": \"その他のチャンネル\",\r\n \"test\": \"テスト\",\r\n \"startOver\": \"やり直す\",\r\n \"retentionTitle\": \"リテンション\",\r\n \"retentionDescription\": \"% 人のユーザーが再びメッセージを送信 (過去 10 日間)\",\r\n \"retentionHeader\": \"経過日数\",\r\n \"retentionDate\": \"日付\",\r\n \"retentionUsers\": \"ユーザー\",\r\n \"undetermined\": \"不明\",\r\n \"loading\": \"読み込み中...\",\r\n \"noAnalyticsData\": \"データがありません\",\r\n \"timespanLastHour\": \"過去 1 時間以内\",\r\n \"timespanLastDay\": \"過去 24 時間以内\",\r\n \"timespanLastWeek\": \"先週\",\r\n \"timespanLastMonth\": \"先月\",\r\n \"timespanLast90Days\": \"過去 90 日間\",\r\n \"timespanUnknown\": \"不明な期間\",\r\n \"timelineCardUsersTitle\": \"ユーザー\",\r\n \"timelineCardMessagesTitle\": \"アクティビティ\",\r\n \"totalsCardTitle\": \"総計\",\r\n \"analyticsNotConfigured\": \"Azure Application Insights を介した分析がまだ有効になっていません。\",\r\n \"analyticsNotConfiguredAction\": \"このボットの Application Insights キーおよび ID を次のページで指定してください。 \",\r\n \"analyticsNotConfiguredActionIbiza\": \"このボットの Application Insights キーおよび ID を設定ページで指定してください。\",\r\n \"learnMore\": \"詳細\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - エラー: %2\",\r\n \"timelineTableLabel\": \"タイムライン テーブルのマッピング %1 (時間別)\",\r\n \"timelineChartLabel\": \"タイムライン グラフのマッピング %1 (時間別)\",\r\n \"published\": \"公開済み\",\r\n \"health\": \"正常性\",\r\n \"channelname\": \"名前\",\r\n \"edit\": \"編集\",\r\n \"running\": \"実行中\",\r\n \"issuesTemplate\": \"問題 (<%= length %>)\",\r\n \"warningTemplate\": \"警告 (<%= length %>)\",\r\n \"channelPublished\": \"公開済み\",\r\n \"tryOnCortana\": \"<%= Name %> で試行 - 方法を表示\",\r\n \"tryOnChannel\": \"<%= Name %> で試行\",\r\n \"manageInCortana\": \"Cortana ダッシュボードで管理\",\r\n \"channelRejected\": \"拒否\",\r\n \"channelMoreDetails\": \"詳細\",\r\n \"channelResubmit\": \"レビュー依頼を再送信...\",\r\n \"channelGetEmbedCodes\": \"ボットの埋め込みコードを取得\",\r\n \"channelConfigDeleteMessage\": \"このアクションを実行すると、すべてのチャンネル構成情報が削除されます。続行しますか?\",\r\n \"channelConfigDeleteHeader\": \"チャンネルを削除\",\r\n \"channelConfigDeleteOk\": \"はい、削除します\",\r\n \"channelConfigDeleteCancel\": \"いいえ、削除しません\",\r\n \"channelConfigLeaveMessage\": \"このドキュメントには未保存の変更があります。このページから移動してもよろしいですか?\",\r\n \"channelConfigLeaveHeader\": \"変更を破棄\",\r\n \"channelConfigLeaveOk\": \"はい、ページから移動します\",\r\n \"channelConfigLeaveCancel\": \"いいえ、ページにとどまります\",\r\n \"channelEdit\": \"編集\",\r\n \"dialogPleaseWait\": \"しばらくお待ちください...\",\r\n \"embedPanelTitle\": \"ボットの埋め込みコード\",\r\n \"embedPanelDescription\": \"埋め込みコードを取得するチャンネルを選択してください。このコードを Web サイトにコピー/貼り付けしてください。\",\r\n \"embedPanelFacebookFooter\": \"この埋め込みを使用するには、Facebook の JavaScript SDK をページに含める必要があります。\",\r\n \"embedPanelLearnMore\": \"詳細\",\r\n \"embedPanelChannelMovedHeader\": \"%1 の埋め込みコードは移動しました\",\r\n \"embedPanelChannelMovedInstructions\": \"%1 の構成ページを開くには、ここをクリックします\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"%1 の埋め込みコード\",\r\n \"embedPanelGettingCodes\": \"コードを取得しています...\",\r\n \"embedPanelNoCodeAvailable\": \"このボットに使用できる埋め込みコードはありません。\",\r\n \"channelIssuesPanelSubtitle\": \"最近の問題\",\r\n \"channelIssuesPanelClearall\": \"すべてクリア\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"時間\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"メッセージ\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"関連付け ID\",\r\n \"unsavedChangesWillBeLost\": \"未保存の変更は失われます。\",\r\n \"altImageChannel\": \"%1 チャンネルを構成\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"メール\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype for Business\",\r\n \"_SkypeforBusiness\": \"Skype for Business ブランド\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"このボットを移行する\",\r\n \"migrationBannerCTAStartMigrating\": \"移行を開始する\",\r\n \"migrationBannerBlurb1\": \"新しい Azure Bot Service のリリースに伴い、2018/03/31 までにすべてのボットを新しいサービスに移行します。\",\r\n \"migrationBannerBlurb2\": \"移行について。\",\r\n \"migrationBannerSuggestedBlurb\": \"このボットの Azure Bot Service への移行は任意です。\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Azure Bot Service への移行が必要なボットは、サービスの中断を避けるためにいますぐ移行する必要があります。\",\r\n \"migrationBannerBlockedBlurb\": \"ボット移行の期日が過ぎています。サービスが中断することのないよう、今すぐ移行してください。\",\r\n \"migrationWillBeRequiredDialogMessage\": \"このチャンネルを構成する場合、2018/3/31 までにボットを Azure Bot Service に移行する必要があります。このチャンネルを構成してよろしいですか?\",\r\n \"channelRequiresMigrationDialogMessage\": \"このチャンネルは Azure Bot Service のボットしか使用できません。このボットを移行しますか?\",\r\n \"channelRequiresABSBot\": \"このチャネルは Azure Bot Service のボットのみが対象です。\",\r\n \"botRequiresMigrationDialogHeader\": \"ボットの移行が必要\",\r\n \"botRequiresMigrationDialogMessage\": \"ボット移行の期日が過ぎています。サービスが中断することのないよう、今すぐ移行してください。\",\r\n \"yesMigrateThisBot\": \"はい、このボットを移行します\",\r\n \"myBotsMigrationStatusMigrated\": \"移行済み\",\r\n \"myBotsMigrationStatusNotMigrated\": \"必須\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"不要\",\r\n \"myBotsMigrationButtonMigrate\": \"移行\",\r\n \"myBotsMigrationButtonRollback\": \"移行のロールバック\",\r\n \"deleteBotDialogDeleteButtonText\": \"ボットの削除\",\r\n \"cancelButtonText\": \"キャンセル\",\r\n \"deleteBotDialogTitleText\": \"このボットを削除しようとしています\",\r\n \"deleteBotDialogBodyText\": \"このアクションを行うと、このボットに関連するすべてのデータが消去されます。このアクションを元に戻すことはできません。よろしいですか?\",\r\n \"deleteBotDialogStatusDeleting\": \"ボットを削除しています...\",\r\n \"deleteBotDialogStatusDeleted\": \"ボットが削除されました\",\r\n \"rollbackBotDialogRollbackButtonText\": \"はい、ロールバックします\",\r\n \"rollbackBotDialogTitleText\": \"ロールバックしますか?\",\r\n \"rollbackBotDialogBodyText\": \"このアクションを行うと、移行が完全にロールバックされ、移行プロセスを最初から開始しなければならなくなります。続行しますか?\",\r\n \"rollbackBotDialogErrorInfo\": \"サーバーからボット情報を取得中にエラーが発生しました。\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"ロールバックを実行できません。ロールバック エンドポイントが見つかりませんでした。\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"ロールバックを実行できません。Azure にアクセスするための Azure トークンが見つかりませんでした。\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"ボット情報の取得中...\",\r\n \"rollbackBotDialogStatusPreparing\": \"ボットの準備中...\",\r\n \"rollbackBotDialogStatusReverting\": \"ボットの復元中..\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"アップグレードしたアプリの削除中...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"デプロイ レコードの削除中...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"ロールバック完了\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"は正常にロールバックされました。\",\r\n \"okButtonText\": \"OK\",\r\n \"errorMessageErrorOccurred\": \"エラーが発生しました\",\r\n \"migrationDialogStatusGettingBotInfo\": \"ボット情報の取得中...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Azure 情報の取得中...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"ボット アプリ設定の取得中...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"移行したボットの初期化中...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Azure にボット サービスを登録中...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"ボット レコードの更新中...\",\r\n \"migrationDialogStatusCreatingRG\": \"リソース グループの作成中...\",\r\n \"migrationDialogStatusMigratingFiles\": \"新しいボットにファイルを移行中...\",\r\n \"migrationDialogStatusWrappingUp\": \"デプロイのラッピング中...\",\r\n \"migrationDialogStatusDeployingStorage\": \"ボットを既存のストレージに接続中...\",\r\n \"migrationDialogStatusDeployingSite\": \"Web サイトのデプロイ中\",\r\n \"migrationDialogStatusConfiguringSite\": \"Web サイトの構成中\",\r\n \"migrationDialogStatusDeploying\": \"デプロイ中\",\r\n \"migrationDialogStatusFunctionCredentials\": \"新しい Function App 資格情報の取得中...\",\r\n \"migrationDialogErrorNoSubs\": \"現在のユーザーの Azure サブスクリプションが見つかりませんでした。\",\r\n \"migrationDialogErrorNoAzureToken\": \"現在のユーザーの Azure アクセス トークンが見つかりませんでした。\",\r\n \"migrationDialogErrorNoLocations\": \"選択した Azure サブスクリプションの場所が見つかりませんでした。\",\r\n \"migrationDialogErrorNoAzureStorage\": \"アプリ構成に Azure ストレージ アカウント名が見つかりませんでした。\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"アプリ名を利用できません。\",\r\n \"migrationDialogErrorAppNameInvalid\": \"アプリ名が無効です。\",\r\n \"migrationDialogErrorNoBotType\": \"現在のボットに有効な種類がありません。\",\r\n \"migrationDialogErrorBotInvalid\": \"ボットが無効のため、このボットを移行できません。\",\r\n \"migrationDialogErrorEndpointMissing\": \"エンドポイントがないため、このボットを移行できません。\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"プロビジョニング情報がないため、このボットを移行できません。\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"リソース グループ名がないため、このボットを移行できません。\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Azure サブスクリプション ID がないため、このボットを移行できません。\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Azure サイト名がないため、このボットを移行できません。\",\r\n \"migrationDialogABSv2TitleText\": \"移行を利用できません\",\r\n \"migrationDialogABSv2BodyText\": \"会話デザイナー (ABSv2) ボットの移行は現在無効になっています。\",\r\n \"migrationDialogRegistrationBodyText\": \"'{0}' ボットの移行は現在無効になっています。\",\r\n \"migrationDialogFailedTokenRefresh\": \"Azure トークンの有効期限が切れています。\",\r\n \"migrationDialogRefreshPage\": \"ページを更新して、移行を再試行してください。\",\r\n \"migrationSubscriptionDisabled\": \"選択した Azure サブスクリプションは無効です。有効にして移行を続けてください。\",\r\n \"migrationTenantHasNoSubscriptions\": \"このディレクトリにはサブスクリプションが含まれていません。\",\r\n \"migrationDialogFuncPackBotTitle\": \"このボットを移行するには、Azure Functions Pack が必要です\",\r\n \"migrationDialogFuncPackBotMessage\": \"ノード機能ボットを移行するには、事前に Azure Functions Pack を使用してパッケージ化する必要があります。\",\r\n \"migrationDialogFuncPackBotLinkText\": \"ボット コード上で Azure Functions Pack を実行する方法について学習する\",\r\n \"tosDialog_Header\": \"サービス条件\",\r\n \"tosDialog_AgreeButton\": \"同意\",\r\n \"tosDialog_MessageChannels\": \"オンライン サービス条件はチャンネルでの公開には適用されません。たとえば、Microsoft チャンネルでの公開に関する条件では、データ処理条件が提供されません。\",\r\n \"tosDialog_MessageMigration\": \"以下の条件を読んで同意してください。\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Bot Framework サイトの使用が {0} および {1} の対象になることに同意します。\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Cortana チャンネルへのデプロイに関する{0}および{1}に同意します。\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"<%= channelslist %> チャンネルへのデプロイに関する{0}および{1}に同意します。\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"<%= channelslist %> チャンネルへのデプロイに関する{0}および{1}に同意します。\",\r\n \"tosDialog_ABSTerms\": \"Azure Bot Service のサブスクリプション使用条件\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Cortana チャンネル公開条件\",\r\n \"tosDialog_MSPublicationTerms\": \"Microsoft チャンネル公開使用条件\",\r\n \"tosDialog_MSPrivacyStatement\": \"Microsoft プライバシーに関する声明\",\r\n \"notice\": \" 注意: \",\r\n \"listElem\": \"{0}、\",\r\n \"andListEnd\": \"{0} および {1}\",\r\n \"analyticsChannelsDropdown\": \"チャンネル フィルター\",\r\n \"analyticsPeriodDropdown\": \"期間\",\r\n \"deprecatedChannel\": \"(非推奨)\",\r\n \"openInComposer\": \"Composer で開く\",\r\n \"downloadComposer\": \"Composer のダウンロード\",\r\n}\r\n\r\nconst Resources_ko: IResources = {\r\n \"unsupportedBrowser_Azure\": \"Azure Bot Service가 아직 브라우저를 지원하지 않습니다.\",\r\n \"unsupportedBrowser\": \"Bot Framework가 아직 브라우저를 지원하지 않습니다.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"로그인하는 중\",\r\n \"loadingBot\": \"봇 불러오는 중…\",\r\n \"botIsNotReady\": \"봇 준비를 기다리는 중\",\r\n \"analyticsNotReady\": \"구성될 Application Insights를 기다리는 중\",\r\n \"authorizingWebChat\": \"봇으로 채팅 인증 중\",\r\n \"signInFailure\": \"로그인하는 중에 오류가 발생했습니다. 브라우저에 제3자 쿠키가 활성화되어 있는지 확인하십시오.\",\r\n \"getChatTokenFailure\": \"채팅 인증 토큰을 가져오는 중에 오류가 발생했습니다. 새로고침하고 다시 시도하십시오.\",\r\n \"refreshSignInFailure\": \"로그인 정보를 갱신하는 중에 오류가 발생했습니다. 브라우저에 제3자 쿠키가 활성화되어 있는지 확인하십시오.\",\r\n \"xhrResponse_400\": \"행동이나 공급 값이 유효하지 않습니다.\",\r\n \"xhrResponse_403\": \"이 아이템은 접근이나 수정이 불가능합니다.\",\r\n \"xhrResponse_404\": \"이 아이템은 찾을 수 없습니다.\",\r\n \"xhrResponse_500\": \"서버에 내부 오류가 발생했습니다.\",\r\n \"xhrResponse_501\": \"이 작업은 지원되지 않습니다.\",\r\n \"xhrResponse_Message\": \"오류: %1\",\r\n \"xhrResponse_Unknown\": \"알 수 없는 오류가 발생했습니다.\",\r\n \"AddAFeaturedChannelTitle\": \"추천 채널 추가\",\r\n \"ConnectToChannelsTitle\": \"채널에 연결하세요.\",\r\n \"NoChannelsConfigured\": \"아직 채널을 연결할 수 없습니다. 연결할 채널을 선택하세요.\",\r\n \"MoreChannelsTitle\": \"채널 더 보기\",\r\n \"test\": \"검사\",\r\n \"startOver\": \"다시 시작\",\r\n \"retentionTitle\": \"보존\",\r\n \"retentionDescription\": \"다시 메시지를 보낸 사용자 %명 (지난 10일간)\",\r\n \"retentionHeader\": \"일 후\",\r\n \"retentionDate\": \"날짜\",\r\n \"retentionUsers\": \"사용자\",\r\n \"undetermined\": \"미확인\",\r\n \"loading\": \"로드 중...\",\r\n \"noAnalyticsData\": \"데이터 없음\",\r\n \"timespanLastHour\": \"지난 시간\",\r\n \"timespanLastDay\": \"어제\",\r\n \"timespanLastWeek\": \"지난주\",\r\n \"timespanLastMonth\": \"지난달\",\r\n \"timespanLast90Days\": \"지난 90일\",\r\n \"timespanUnknown\": \"알 수 없는 주기\",\r\n \"timelineCardUsersTitle\": \"사용자\",\r\n \"timelineCardMessagesTitle\": \"활동\",\r\n \"totalsCardTitle\": \"총 합계\",\r\n \"analyticsNotConfigured\": \"아직 Azure Application Insights를 통한 분석을 활성화할 수 없습니다.\",\r\n \"analyticsNotConfiguredAction\": \"다음 페이지에서 이 봇의 Application Insights 키와 ID를 제공하세요.\",\r\n \"analyticsNotConfiguredActionIbiza\": \"설정 페이지에서 이 봇의 Application Insights 키와 ID를 제공하세요.\",\r\n \"learnMore\": \"자세히 알아보기\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - 오류: %2\",\r\n \"timelineTableLabel\": \"타임 테이블 매핑 %1(시간별)\",\r\n \"timelineChartLabel\": \"시간별 타임라인 차트 매핑 %1\",\r\n \"published\": \"게시됨\",\r\n \"health\": \"건강\",\r\n \"channelname\": \"이름\",\r\n \"edit\": \"편집\",\r\n \"running\": \"달리기\",\r\n \"issuesTemplate\": \"문제 (<%= length %>)\",\r\n \"warningTemplate\": \"경고 (<%= length %>)\",\r\n \"channelPublished\": \"게시됨\",\r\n \"tryOnCortana\": \"<%= Name %>에 시도 - 방법 배우기\",\r\n \"tryOnChannel\": \"<%= Name %>에 시도\",\r\n \"manageInCortana\": \"Cortana 대시보드에서 관리\",\r\n \"channelRejected\": \"거절됨\",\r\n \"channelMoreDetails\": \"더 자세한 내용\",\r\n \"channelResubmit\": \"검토를 위해 재제출…\",\r\n \"channelGetEmbedCodes\": \"봇 임베드 코드 얻기\",\r\n \"channelConfigDeleteMessage\": \"이 행동은 모든 채널 구성 정보를 삭제합니다. 정말로 진행하시겠습니까?\",\r\n \"channelConfigDeleteHeader\": \"채널 삭제\",\r\n \"channelConfigDeleteOk\": \"예. 삭제하겠습니다.\",\r\n \"channelConfigDeleteCancel\": \"아니요, 유지하겠습니다.\",\r\n \"channelConfigLeaveMessage\": \"이 문서에 저장되지 않은 변경 사항이 있습니다. 정말로 이 페이지에서 나가시겠습니까?\",\r\n \"channelConfigLeaveHeader\": \"변경 취소\",\r\n \"channelConfigLeaveOk\": \"예. 페이지를 떠나겠습니다.\",\r\n \"channelConfigLeaveCancel\": \"아니요. 페이지에 남겠습니다.\",\r\n \"channelEdit\": \"편집\",\r\n \"dialogPleaseWait\": \"잠시 기다려 주십시오...\",\r\n \"embedPanelTitle\": \"봇 임베드 코드\",\r\n \"embedPanelDescription\": \"임베드 코드를 얻을 채널을 선택하세요. 코드를 웹사이트에 복사 및 붙여넣기하세요.\",\r\n \"embedPanelFacebookFooter\": \"이 임베드 Facebook을 사용하려면 페이지에 JavaScript SDK를 포함해야 합니다.\",\r\n \"embedPanelLearnMore\": \"자세히 알아보기\",\r\n \"embedPanelChannelMovedHeader\": \"%1용 임베드 코드가 이동했습니다.\",\r\n \"embedPanelChannelMovedInstructions\": \"%1 구성 페이지를 열려면 이곳을 클릭하세요.\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"%1용 임베드 코드\",\r\n \"embedPanelGettingCodes\": \"코드 획득 중…\",\r\n \"embedPanelNoCodeAvailable\": \"이 봇에서 사용 가능한 임베드 코드가 없습니다.\",\r\n \"channelIssuesPanelSubtitle\": \"최근 문제\",\r\n \"channelIssuesPanelClearall\": \"모두 지우기\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"시간\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"메시지\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"상관 관계 ID\",\r\n \"unsavedChangesWillBeLost\": \"저장되지 않은 변경 사항은 사라집니다.\",\r\n \"altImageChannel\": \"%1 채널 구성\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"전자 메일\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"업무용 Skype\",\r\n \"_SkypeforBusiness\": \"비즈니스 브랜드용 Skype\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"이 봇 마이그레이션\",\r\n \"migrationBannerCTAStartMigrating\": \"마이그레이션 시작\",\r\n \"migrationBannerBlurb1\": \"새로운 Azure Bot Service 출시 시, 2018년 3월 31일까지 새로운 서비스에 모든 봇을 마이그레이션합니다.\",\r\n \"migrationBannerBlurb2\": \"마이그레이션 정보입니다.\",\r\n \"migrationBannerSuggestedBlurb\": \"Azure Bot Service로 마이그레이션은 이 봇에 선택 사항입니다.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Azure Bot Service에 마이그레이션이 필요한 봇은 서비스 중단을 방지하기 위해 지금 마이그레이션해야 합니다.\",\r\n \"migrationBannerBlockedBlurb\": \"봇 마이그레이션 기한이 지났습니다. 지금 마이그레이션하여 서비스 중단을 방지하십시오.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"이 채널을 구성하는 경우, 귀하의 봇은 2018년 3월 31일까지 Azure Bot Service에 마이그레이션되어야 합니다. 정말로 이 채널을 구성하시겠습니까?\",\r\n \"channelRequiresMigrationDialogMessage\": \"이 채널은 Azure Bot Service의 봇에만 사용할 수 있습니다. 이 봇을 마이그레이션하시겠습니까?\",\r\n \"channelRequiresABSBot\": \"이 채널은 Azure Bot Service의 봇에만 사용할 수 있습니다.\",\r\n \"botRequiresMigrationDialogHeader\": \"봇에 마이그레이션이 필요합니다\",\r\n \"botRequiresMigrationDialogMessage\": \"봇 마이그레이션 기한이 지났습니다. 지금 마이그레이션하여 서비스 중단을 방지하십시오.\",\r\n \"yesMigrateThisBot\": \"예, 이 봇을 마이그레이션합니다\",\r\n \"myBotsMigrationStatusMigrated\": \"마이그레이션됨\",\r\n \"myBotsMigrationStatusNotMigrated\": \"필수\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"필요하지 않음\",\r\n \"myBotsMigrationButtonMigrate\": \"마이그레이션\",\r\n \"myBotsMigrationButtonRollback\": \"마이그레이션 롤백\",\r\n \"deleteBotDialogDeleteButtonText\": \"봇 삭제\",\r\n \"cancelButtonText\": \"취소\",\r\n \"deleteBotDialogTitleText\": \"이 봇을 삭제하려고 합니다.\",\r\n \"deleteBotDialogBodyText\": \"이 작업은 이 봇과 관련된 모든 데이터를 삭제하며 되돌릴 수 없습니다. 계속하시겠습니까?\",\r\n \"deleteBotDialogStatusDeleting\": \"봇 삭제 중...\",\r\n \"deleteBotDialogStatusDeleted\": \"봇 삭제됨\",\r\n \"rollbackBotDialogRollbackButtonText\": \"예, 롤백합니다.\",\r\n \"rollbackBotDialogTitleText\": \"정말로 롤백하시겠습니까?\",\r\n \"rollbackBotDialogBodyText\": \"이 작업은 마이그레이션을 완전히 롤백하므로, 마이그레이션 과정을 처음부터 시작해야 합니다. 정말로 계속하시겠습니까?\",\r\n \"rollbackBotDialogErrorInfo\": \"서버에서 봇 정보를 받는 중 오류가 발생했습니다.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"롤백을 수행할 수 없습니다. 롤백 끝점을 찾을 수 없습니다.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"롤백을 수행할 수 없습니다. Azure에 연락할 수 있는 Azure 토큰을 찾는 데 실패했습니다.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"봇 정보 수집 중...\",\r\n \"rollbackBotDialogStatusPreparing\": \"봇 준비 중...\",\r\n \"rollbackBotDialogStatusReverting\": \"봇 되돌리기 중...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"업그레이드된 앱 삭제 중...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"배포 기록 삭제 중...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"롤백 완료\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"롤백되었습니다.\",\r\n \"okButtonText\": \"확인\",\r\n \"errorMessageErrorOccurred\": \"오류가 발생했습니다.\",\r\n \"migrationDialogStatusGettingBotInfo\": \"봇 정보 받는 중...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Azure 정보 받는 중...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"봇 앱 설정 받는 중...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"마이그레이션된 봇 초기 설정 중...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Azure로 봇 서비스 등록 중...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"봇 기록 업데이트 중...\",\r\n \"migrationDialogStatusCreatingRG\": \"리소스 그룹 생성 중...\",\r\n \"migrationDialogStatusMigratingFiles\": \"새로운 봇에 파일 마이그레이션 중...\",\r\n \"migrationDialogStatusWrappingUp\": \"배포 끝내는 중...\",\r\n \"migrationDialogStatusDeployingStorage\": \"기존 저장소에 봇 연결 중...\",\r\n \"migrationDialogStatusDeployingSite\": \"웹 사이트 배포 중\",\r\n \"migrationDialogStatusConfiguringSite\": \"웹 사이트 구성 중\",\r\n \"migrationDialogStatusDeploying\": \"배포 중\",\r\n \"migrationDialogStatusFunctionCredentials\": \"새로운 기능 앱 자격 증명 받는 중...\",\r\n \"migrationDialogErrorNoSubs\": \"현재 사용자에 대한 Azure 구독을 찾는 데 실패했습니다.\",\r\n \"migrationDialogErrorNoAzureToken\": \"현재 사용자에 대한 Azure 권한 토큰을 찾는 데 실패했습니다.\",\r\n \"migrationDialogErrorNoLocations\": \"선택한 Azure 구독에 대한 위치를 찾는 데 실패했습니다.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"앱 구성에서 Azure 저장소 계정 이름을 찾는 데 실패했습니다.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"앱 이름을 사용할 수 없습니다.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"유효하지 않은 앱 이름입니다.\",\r\n \"migrationDialogErrorNoBotType\": \"현재 봇은 유효한 유형이 아닙니다.\",\r\n \"migrationDialogErrorBotInvalid\": \"이 봇은 유효하지 않기 대문에 마이그레이션될 수 없습니다.\",\r\n \"migrationDialogErrorEndpointMissing\": \"이 봇은 끝점이 없기 때문에 마이그레이션될 수 없습니다.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"이 봇은 프로비전 정보가 없기 때문에 마이그레이션될 수 없습니다.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"이 봇은 리소스 그룹 이름이 없기 때문에 마이그레이션될 수 없습니다.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"이 봇은 Azure 구독 ID가 없기 때문에 마이그레이션될 수 없습니다.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"이 봇은 Azure 사이트 이름이 없기 때문에 마이그레이션될 수 없습니다.\",\r\n \"migrationDialogABSv2TitleText\": \"마이그레이션 이용 불가\",\r\n \"migrationDialogABSv2BodyText\": \"현재 대화 디자이너(ABSv2) 봇에 대한 마이그레이션이 비활성화되었습니다.\",\r\n \"migrationDialogRegistrationBodyText\": \"'{0}' 봇에 대한 마이그레이션이 현재 비활성화되었습니다.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Azure 토큰이 만료되었습니다.\",\r\n \"migrationDialogRefreshPage\": \"페이지를 새로고침하고 마이그레이션을 재시도하십시오.\",\r\n \"migrationSubscriptionDisabled\": \"선택한 Azure 구독이 비활성화되었습니다. 마이그레이션을 계속하려면 활성화하십시오.\",\r\n \"migrationTenantHasNoSubscriptions\": \"이 디렉터리는 구독을 포함하지 않습니다.\",\r\n \"migrationDialogFuncPackBotTitle\": \"이 봇을 마이그레이션하려면 Azure Functions 팩이 필요합니다.\",\r\n \"migrationDialogFuncPackBotMessage\": \"노드 기능 봇은 마이그레이션되기 전에 Azure Functions 팩으로 패키지되어야 합니다.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"봇 코드에서 Azure Functions를 실행하는 방법 알아보기\",\r\n \"tosDialog_Header\": \"서비스 약관\",\r\n \"tosDialog_AgreeButton\": \"동의\",\r\n \"tosDialog_MessageChannels\": \"온라인 서비스 약관은 채널의 발행에 적용되지 않습니다. 예를 들어, Microsoft 채널의 발행에 대한 약관은 데이터 처리 약관을 제공하지 않습니다.\",\r\n \"tosDialog_MessageMigration\": \"다음 약관을 읽고 동의하십시오.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"봇 프레임워크 사이트가 {0} 및 {1}에 사용되는 것을 동의합니다.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Cortana 채널에 대한 내 배포를 위해 {0} 및 {1}에 동의합니다.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"<%= channelslist %> 채널에 대한 내 배포를 위해 {0} 및 {1}에 동의합니다.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"<%= channelslist %> 채널에 대한 내 배포를 위해 {0} 및 {1}에 동의합니다.\",\r\n \"tosDialog_ABSTerms\": \"Azure Bot Service에 대한 내 구독 기간입니다.\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Cortana 채널 게시 약관\",\r\n \"tosDialog_MSPublicationTerms\": \"Microsoft 채널 발행 약관\",\r\n \"tosDialog_MSPrivacyStatement\": \"Microsoft 개인정보 보호정책\",\r\n \"notice\": \" 공지: \",\r\n \"listElem\": \"{0},\",\r\n \"andListEnd\": \"{0} 및 {1}\",\r\n \"analyticsChannelsDropdown\": \"채널 필터\",\r\n \"analyticsPeriodDropdown\": \"주기\",\r\n \"deprecatedChannel\": \"(사용되지 않음)\",\r\n \"openInComposer\": \"Composer에서 열기\",\r\n \"downloadComposer\": \"Composer 다운로드\",\r\n}\r\n\r\nconst Resources_ru: IResources = {\r\n \"unsupportedBrowser_Azure\": \"Служба Azure Bot еще не поддерживает ваш браузер.\",\r\n \"unsupportedBrowser\": \"Bot Framework еще не поддерживает ваш браузер.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Выполняется вход\",\r\n \"loadingBot\": \"Загрузка программы-робота...\",\r\n \"botIsNotReady\": \"Ожидание готовности бота\",\r\n \"analyticsNotReady\": \"Ожидание настройки Application Insights\",\r\n \"authorizingWebChat\": \"Авторизация чата с ботом\",\r\n \"signInFailure\": \"Во время входа произошла ошибка. Убедитесь, что в браузере разрешены сторонние файлы cookie.\",\r\n \"getChatTokenFailure\": \"При получении токена авторизации чата произошла ошибка. Обновите страницу и повторите попытку.\",\r\n \"refreshSignInFailure\": \"При обновлении данных для входа произошла ошибка. Убедитесь, что в браузере разрешены сторонние файлы cookie.\",\r\n \"xhrResponse_400\": \"Действие или заданные значения недопустимы.\",\r\n \"xhrResponse_403\": \"Этот элемент недоступен или изменен.\",\r\n \"xhrResponse_404\": \"Элемент не найден.\",\r\n \"xhrResponse_500\": \"На сервере произошла внутренняя ошибка.\",\r\n \"xhrResponse_501\": \"Эта операция не поддерживается.\",\r\n \"xhrResponse_Message\": \"Ошибка: %1\",\r\n \"xhrResponse_Unknown\": \"Произошла неизвестная ошибка.\",\r\n \"AddAFeaturedChannelTitle\": \"Добавить рекомендуемый канал\",\r\n \"ConnectToChannelsTitle\": \"Подключиться к каналам\",\r\n \"NoChannelsConfigured\": \"Вы еще не подключили ни одного канала. Выберите канал для подключения.\",\r\n \"MoreChannelsTitle\": \"Другие каналы\",\r\n \"test\": \"Испытание\",\r\n \"startOver\": \"Начать заново\",\r\n \"retentionTitle\": \"Хранение\",\r\n \"retentionDescription\": \"% пользователей, которые отправляли сообщения снова (за последние 10 дней)\",\r\n \"retentionHeader\": \"Днями позже\",\r\n \"retentionDate\": \"Дата\",\r\n \"retentionUsers\": \"Пользователи\",\r\n \"undetermined\": \"Не определено\",\r\n \"loading\": \"Идет загрузка...\",\r\n \"noAnalyticsData\": \"Нет данных\",\r\n \"timespanLastHour\": \"За последний час\",\r\n \"timespanLastDay\": \"За последний день\",\r\n \"timespanLastWeek\": \"За последнюю неделю\",\r\n \"timespanLastMonth\": \"За последний месяц\",\r\n \"timespanLast90Days\": \"Последние 90 дней\",\r\n \"timespanUnknown\": \"Неизвестный период\",\r\n \"timelineCardUsersTitle\": \"Пользователи\",\r\n \"timelineCardMessagesTitle\": \"Действия\",\r\n \"totalsCardTitle\": \"Общие итоги\",\r\n \"analyticsNotConfigured\": \"Вы еще не включили аналитику через Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Предоставьте ключи Application Insights и идентификаторы для программы-робота на следующей странице:\",\r\n \"analyticsNotConfiguredActionIbiza\": \"Предоставьте ключи Application Insights и идентификаторы для программы-робота на странице настроек.\",\r\n \"learnMore\": \"Узнать больше\",\r\n \"cardTitleLoading\": \"%1 — %2\",\r\n \"cardTitleError\": \"%1 — ошибка: %2\",\r\n \"timelineTableLabel\": \"Сопоставление таблицы временной шкалы \\\"%1\\\" по времени\",\r\n \"timelineChartLabel\": \"Сопоставление диаграммы временной шкалы \\\"%1\\\" по времени\",\r\n \"published\": \"Опубликовано\",\r\n \"health\": \"Здоровье\",\r\n \"channelname\": \"Имя\",\r\n \"edit\": \"Изменить\",\r\n \"running\": \"Бег\",\r\n \"issuesTemplate\": \"Проблемы (<%= length %>)\",\r\n \"warningTemplate\": \"Предупреждения (<%= length %>)\",\r\n \"channelPublished\": \"Опубликовано\",\r\n \"tryOnCortana\": \"Протестировать на <%= Name %> — узнать как\",\r\n \"tryOnChannel\": \"Протестировать на <%= Name %>\",\r\n \"manageInCortana\": \"Открыть на панели управления Кортана\",\r\n \"channelRejected\": \"Отклонено\",\r\n \"channelMoreDetails\": \"Подробнее\",\r\n \"channelResubmit\": \"Повторная отправка на проверку...\",\r\n \"channelGetEmbedCodes\": \"Получить встроенные коды программ-роботов\",\r\n \"channelConfigDeleteMessage\": \"Действие удалит всю информацию о конфигурации канала. Продолжить?\",\r\n \"channelConfigDeleteHeader\": \"Удалить канал\",\r\n \"channelConfigDeleteOk\": \"Да, удалить\",\r\n \"channelConfigDeleteCancel\": \"Нет, не удалять\",\r\n \"channelConfigLeaveMessage\": \"В этом документе есть несохраненные изменения. Вы действительно хотите уйти со страницы?\",\r\n \"channelConfigLeaveHeader\": \"Отменить изменения\",\r\n \"channelConfigLeaveOk\": \"Да, уйти со страницы\",\r\n \"channelConfigLeaveCancel\": \"Нет, остаться на странице\",\r\n \"channelEdit\": \"Изменить\",\r\n \"dialogPleaseWait\": \"Подождите...\",\r\n \"embedPanelTitle\": \"Встроенный код программы-робота\",\r\n \"embedPanelDescription\": \"Выберите канал, чтобы получить для него встроенный код. Скопируйте и вставьте код на свой сайт.\",\r\n \"embedPanelFacebookFooter\": \"Чтобы использовать этот встроенный код Facebook, вы должны включить на своей странице его JavaScript.\",\r\n \"embedPanelLearnMore\": \"Узнать больше\",\r\n \"embedPanelChannelMovedHeader\": \"Встроенный код для канала %1 перемещен\",\r\n \"embedPanelChannelMovedInstructions\": \"Нажмите здесь, чтобы открыть страницу настроек канала %1\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Встроенный код для канала %1\",\r\n \"embedPanelGettingCodes\": \"Получение кодов...\",\r\n \"embedPanelNoCodeAvailable\": \"Для этого бота нет доступного встроенного кода.\",\r\n \"channelIssuesPanelSubtitle\": \"Последние проблемы\",\r\n \"channelIssuesPanelClearall\": \"Очистить все\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Время\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Сообщение\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"Идентификатор корреляции\",\r\n \"unsavedChangesWillBeLost\": \"Несохраненные изменения будут потеряны.\",\r\n \"altImageChannel\": \"Настройка канала %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Кортана\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"Электронная почта\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype для бизнеса\",\r\n \"_SkypeforBusiness\": \"Skype для бизнеса (бренд)\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"ПЕРЕНЕСТИ ЭТОГО БОТА\",\r\n \"migrationBannerCTAStartMigrating\": \"НАЧАЛО МИГРАЦИИ\",\r\n \"migrationBannerBlurb1\": \"При запуске новой службы Azure Bot все боты будут перенесены в новую службу до 31.03.2018.\",\r\n \"migrationBannerBlurb2\": \"О миграции.\",\r\n \"migrationBannerSuggestedBlurb\": \"Перенос этого бота в службу Azure Bot необязателен.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Ботов, требующих переноса в службу Azure Bot, необходимо перенести прямо сейчас, чтобы не допустить нарушения работы службы.\",\r\n \"migrationBannerBlockedBlurb\": \"Перенос бота просрочен. Перенесите его, чтобы не допустить нарушения работы службы.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"При настройке этого канала необходимо перенести бота в службу Azure Bot до 31.03.2018. Вы действительно хотите настроить этот канал?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Этот канал доступен только для ботов в службе Azure Bot. Перенести этого бота?\",\r\n \"channelRequiresABSBot\": \"Этот канал доступен только для ботов в службе Azure Bot.\",\r\n \"botRequiresMigrationDialogHeader\": \"Необходимо перенести бота\",\r\n \"botRequiresMigrationDialogMessage\": \"Перенос бота просрочен. Перенесите его, чтобы не допустить нарушения работы службы.\",\r\n \"yesMigrateThisBot\": \"Да, перенести этого бота\",\r\n \"myBotsMigrationStatusMigrated\": \"Миграция выполнена\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Обязательно\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Не требуется\",\r\n \"myBotsMigrationButtonMigrate\": \"Миграция\",\r\n \"myBotsMigrationButtonRollback\": \"Откат миграции\",\r\n \"deleteBotDialogDeleteButtonText\": \"Удалить бота\",\r\n \"cancelButtonText\": \"Отмена\",\r\n \"deleteBotDialogTitleText\": \"Вы собираетесь удалить этого бота\",\r\n \"deleteBotDialogBodyText\": \"Все данные, связанные с этим ботом, будут безвозвратно удалены. Вы уверены?\",\r\n \"deleteBotDialogStatusDeleting\": \"Удаление бота...\",\r\n \"deleteBotDialogStatusDeleted\": \"Бот удален\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Да, выполнить откат\",\r\n \"rollbackBotDialogTitleText\": \"Вы действительно хотите выполнить откат?\",\r\n \"rollbackBotDialogBodyText\": \"Будет выполнен полный откат миграции, и процедуру миграции придется начать сначала. Продолжить?\",\r\n \"rollbackBotDialogErrorInfo\": \"Ошибка при получении сведений бота с сервера.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Невозможно выполнить откат. Не удалось найти конечную точку.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Невозможно выполнить откат. Не удалось найти токен Azure для подключения к Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Идет сбор сведений бота...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Идет подготовка бота...\",\r\n \"rollbackBotDialogStatusReverting\": \"Идет откат бота...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Удаление обновленного приложения...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Удаление записи развертывания...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Выполнен откат\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"— успешно выполнен откат.\",\r\n \"okButtonText\": \"ОК\",\r\n \"errorMessageErrorOccurred\": \"Произошла ошибка\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Получение сведений бота...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Получение сведений Azure...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Получение параметров приложения бота...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Инициализация перенесенного бота...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Регистрация службы бота в Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Обновление записи бота...\",\r\n \"migrationDialogStatusCreatingRG\": \"Создание группы ресурсов...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Миграция файлов в нового бота...\",\r\n \"migrationDialogStatusWrappingUp\": \"Размещение развертывания...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Подключение бота к существующему хранилищу...\",\r\n \"migrationDialogStatusDeployingSite\": \"Развертывание веб-сайта\",\r\n \"migrationDialogStatusConfiguringSite\": \"Настройка веб-сайта\",\r\n \"migrationDialogStatusDeploying\": \"Развертывание\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Получение учетных данных нового приложения-функции...\",\r\n \"migrationDialogErrorNoSubs\": \"Не удалось найти подписки Azure для текущего пользователя.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Не удалось найти токен доступа Azure для текущего пользователя.\",\r\n \"migrationDialogErrorNoLocations\": \"Не удалось найти расположения для выбранной подписки Azure.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Не удалось найти имя учетной записи хранилища Azure в конфигурации приложения.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Имя приложения недоступно.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Недопустимое имя приложения.\",\r\n \"migrationDialogErrorNoBotType\": \"Недопустимый тип этого бота.\",\r\n \"migrationDialogErrorBotInvalid\": \"Миграция этого бота невозможна, поскольку он является недопустимым.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Миграция этого бота невозможна, поскольку отсутствует конечная точка.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Миграция этого бота невозможна, поскольку отсутствуют сведения о подготовке.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Миграция этого бота невозможна, поскольку отсутствует группа ресурсов.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Миграция этого бота невозможна, поскольку отсутствует код подписки Azure.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Миграция этого бота невозможна, поскольку отсутствует имя сайта Azure.\",\r\n \"migrationDialogABSv2TitleText\": \"Миграция недоступна\",\r\n \"migrationDialogABSv2BodyText\": \"Миграция для ботов конструктора общения (ABSv2) сейчас отключена.\",\r\n \"migrationDialogRegistrationBodyText\": \"Сейчас миграция отключена для ботов \\\"{0}\\\".\",\r\n \"migrationDialogFailedTokenRefresh\": \"Срок действия токена Azure истек.\",\r\n \"migrationDialogRefreshPage\": \"Обновите страницу и повторите попытку миграции.\",\r\n \"migrationSubscriptionDisabled\": \"Выбранная подписка Azure отключена. Включите ее для продолжения миграции.\",\r\n \"migrationTenantHasNoSubscriptions\": \"В этом каталоге нет подписки.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Для миграции этого бота необходим пакет функций Azure\",\r\n \"migrationDialogFuncPackBotMessage\": \"Перед миграцией боты Node Functions должны быть упакованы с помощью пакета функций Azure.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Подробнее о запуске пакета функций Azure в своем коде бота\",\r\n \"tosDialog_Header\": \"Условия использования\",\r\n \"tosDialog_AgreeButton\": \"Принимаю\",\r\n \"tosDialog_MessageChannels\": \"Условия Online Services не распространяются на публикацию каналов. Например, условия публикации в каналах Майкрософт не предполагают обработку данных.\",\r\n \"tosDialog_MessageMigration\": \"Прочтите и примите следующие условия.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Я соглашаюсь с тем, что {0} и {1} регулируют использование Bot Framework.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Я соглашаюсь с условиями {0} и {1} для своего развертывания в канале Кортаны.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Я соглашаюсь с условиями {0} и {1} для своего развертывания в канале <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Я соглашаюсь с условиями {0} и {1} для своего развертывания в каналах <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"условия подписки на службу Azure Bot\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Условия публикации канала Кортаны\",\r\n \"tosDialog_MSPublicationTerms\": \"Условия Microsoft Channel Publication\",\r\n \"tosDialog_MSPrivacyStatement\": \"Заявления о конфиденциальности Майкрософт\",\r\n \"notice\": \" УВЕДОМЛЕНИЕ: \",\r\n \"listElem\": \"{0},\",\r\n \"andListEnd\": \"{0} и {1}\",\r\n \"analyticsChannelsDropdown\": \"Фильтр каналов\",\r\n \"analyticsPeriodDropdown\": \"Период времени\",\r\n \"deprecatedChannel\": \"(устарел)\",\r\n \"openInComposer\": \"открыть в Composer\",\r\n \"downloadComposer\": \"Скачать Composer\",\r\n}\r\n\r\nconst Resources_cs: IResources = {\r\n \"unsupportedBrowser_Azure\": \"Služba Azure Bot Service zatím nepodporuje váš prohlížeč.\",\r\n \"unsupportedBrowser\": \"Služba Bot Framework zatím nepodporuje váš prohlížeč.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Přihlašování\",\r\n \"loadingBot\": \"Robot se načítá...\",\r\n \"botIsNotReady\": \"Čeká se, až bude robot připravený\",\r\n \"analyticsNotReady\": \"Čeká se na konfiguraci Application Insights\",\r\n \"authorizingWebChat\": \"Autorizování chatu s robotem\",\r\n \"signInFailure\": \"Při přihlašování došlo k chybě. Ujistěte se, že máte v prohlížeči povolené soubory cookies třetích stran.\",\r\n \"getChatTokenFailure\": \"Při získávání autorizačního tokenu pro chat došlo k chybě. Aktualizujte stránku a zkuste to znovu.\",\r\n \"refreshSignInFailure\": \"Při obnovování vašich přihlašovacích informací došlo k chybě. Ujistěte se, že máte v prohlížeči povolené soubory cookies třetích stran.\",\r\n \"xhrResponse_400\": \"Akce nebo poskytnuté hodnoty nejsou platné.\",\r\n \"xhrResponse_403\": \"Tuto položku nelze otevřít nebo upravit.\",\r\n \"xhrResponse_404\": \"Položku nelze nalézt.\",\r\n \"xhrResponse_500\": \"Na serveru došlo k vnitřní chybě.\",\r\n \"xhrResponse_501\": \"Tato operace není podporována.\",\r\n \"xhrResponse_Message\": \"Chyba: %1\",\r\n \"xhrResponse_Unknown\": \"Došlo k neznámé chybě.\",\r\n \"AddAFeaturedChannelTitle\": \"Přidat vybraný kanál\",\r\n \"ConnectToChannelsTitle\": \"Připojení ke kanálům\",\r\n \"NoChannelsConfigured\": \"Ještě jste nepřipojili žádné kanály. Vyberte kanál, který chcete připojit.\",\r\n \"MoreChannelsTitle\": \"Další kanály\",\r\n \"test\": \"Test\",\r\n \"startOver\": \"Začít znovu\",\r\n \"retentionTitle\": \"Retence\",\r\n \"retentionDescription\": \"% uživatelů, kteří napsali znovu (posledních 10 dní)\",\r\n \"retentionHeader\": \"Po kolika dnech\",\r\n \"retentionDate\": \"Datum\",\r\n \"retentionUsers\": \"Uživatelé\",\r\n \"undetermined\": \"Neurčeno\",\r\n \"loading\": \"načítá se...\",\r\n \"noAnalyticsData\": \"žádná data\",\r\n \"timespanLastHour\": \"Poslední hodina\",\r\n \"timespanLastDay\": \"Poslední den\",\r\n \"timespanLastWeek\": \"Poslední týden\",\r\n \"timespanLastMonth\": \"Poslední měsíc\",\r\n \"timespanLast90Days\": \"Posledních 90 dnů\",\r\n \"timespanUnknown\": \"Neznámý časový rozsah\",\r\n \"timelineCardUsersTitle\": \"Uživatelé\",\r\n \"timelineCardMessagesTitle\": \"Aktivity\",\r\n \"totalsCardTitle\": \"Celkové součty\",\r\n \"analyticsNotConfigured\": \"Zatím jste nepovolili analýzu pomocí Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Na následující stránce zadejte ID a klíče Application Insights pro tohoto robota: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Zadejte pro tohoto robota ID a klíče Application Insights na stránce nastavení.\",\r\n \"learnMore\": \"Další informace\",\r\n \"cardTitleLoading\": \"%1 – %2\",\r\n \"cardTitleError\": \"%1 – chyba: %2\",\r\n \"timelineTableLabel\": \"Tabulka grafu %1 s časovou osou a mapováním podle času\",\r\n \"timelineChartLabel\": \"Graf %1 s časovou osou a mapováním podle času\",\r\n \"published\": \"Publikováno\",\r\n \"health\": \"Zdraví\",\r\n \"channelname\": \"Název\",\r\n \"edit\": \"Upravit\",\r\n \"running\": \"Běží\",\r\n \"issuesTemplate\": \"Problémy (<%= length %>)\",\r\n \"warningTemplate\": \"Upozornění (<%= length %>)\",\r\n \"channelPublished\": \"Publikováno\",\r\n \"tryOnCortana\": \"Zkuste <%= Name %> – zjistěte jak\",\r\n \"tryOnChannel\": \"Zkuste <%= Name %>\",\r\n \"manageInCortana\": \"Spravovat na řídicím panelu Cortany\",\r\n \"channelRejected\": \"Odmítnuto\",\r\n \"channelMoreDetails\": \"Další podrobnosti\",\r\n \"channelResubmit\": \"Znovu odeslat k revizi...\",\r\n \"channelGetEmbedCodes\": \"Získat kódy pro vložení robota\",\r\n \"channelConfigDeleteMessage\": \"Touto akcí odstraníte všechny informace o konfiguraci kanálu. Opravdu si přejete pokračovat?\",\r\n \"channelConfigDeleteHeader\": \"Odstranit kanál\",\r\n \"channelConfigDeleteOk\": \"Ano, odstranit\",\r\n \"channelConfigDeleteCancel\": \"Ne, ponechat\",\r\n \"channelConfigLeaveMessage\": \"V dokumentu máte neuložené změny. Opravdu chcete tuto stránku opustit?\",\r\n \"channelConfigLeaveHeader\": \"Zahodit změny\",\r\n \"channelConfigLeaveOk\": \"Ano, opustit stránku\",\r\n \"channelConfigLeaveCancel\": \"Ne, zůstat na stránce\",\r\n \"channelEdit\": \"Upravit\",\r\n \"dialogPleaseWait\": \"Počkejte prosím...\",\r\n \"embedPanelTitle\": \"Kód pro vložení robota\",\r\n \"embedPanelDescription\": \"Výběrem kanálu získáte jeho kód pro vložení. Tento kód zkopírujte a vložte na svůj web.\",\r\n \"embedPanelFacebookFooter\": \"Chcete-li použít tento vložený kód, musíte na své stránce zahrnout sadu JavaScript SDK, kterou Facebook vyžaduje.\",\r\n \"embedPanelLearnMore\": \"Další informace.\",\r\n \"embedPanelChannelMovedHeader\": \"Kód pro vložení kanálu %1 byl přesunut\",\r\n \"embedPanelChannelMovedInstructions\": \"Kliknutím sem otevřete stránku konfigurace kanálu %1\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Kód pro vložení kanálu %1\",\r\n \"embedPanelGettingCodes\": \"Získávají se kódy...\",\r\n \"embedPanelNoCodeAvailable\": \"U tohoto robota není k dispozici žádný kód pro vložení.\",\r\n \"channelIssuesPanelSubtitle\": \"Nedávné problémy\",\r\n \"channelIssuesPanelClearall\": \"Vymazat vše\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Čas\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Zpráva\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"ID korelace\",\r\n \"unsavedChangesWillBeLost\": \"Neuložené změny budou ztraceny.\",\r\n \"altImageChannel\": \"Konfigurovat kanál %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"E-mail\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype pro firmy\",\r\n \"_SkypeforBusiness\": \"Značka Skype pro firmy\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGROVAT TOHOTO ROBOTA\",\r\n \"migrationBannerCTAStartMigrating\": \"ZAHÁJIT MIGRACI\",\r\n \"migrationBannerBlurb1\": \"V rámci spuštění nové služby Azure Bot Service migrujeme všechny roboty k 31. březnu 2018 do nové služby.\",\r\n \"migrationBannerBlurb2\": \"o migraci.\",\r\n \"migrationBannerSuggestedBlurb\": \"Migrace do služby Azure Bot Service je pro tohoto robota volitelná.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Roboty vyžadující migraci do služby Azure Bot Service je nutné migrovat hned teď, aby nedošlo k přerušení služby.\",\r\n \"migrationBannerBlockedBlurb\": \"Migrace robota je po termínu, migrujte ho prosím hned teď, aby nedošlo k přerušení služby.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Pokud nakonfigurujete tento kanál, bude nutné do 31. března 2018 migrovat vašeho robota do služby Azure Bot Service. Opravdu chcete tento kanál konfigurovat?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Tento kanál je k dispozici pouze pro roboty ve službě Azure Bot Service. Chcete tohoto robota migrovat?\",\r\n \"channelRequiresABSBot\": \"Tento kanál je k dispozici jen pro boty služby Azure Bot Service.\",\r\n \"botRequiresMigrationDialogHeader\": \"Robot vyžaduje migraci\",\r\n \"botRequiresMigrationDialogMessage\": \"Migrace robota je po termínu, migrujte ho prosím hned teď, aby nedošlo k přerušení služby.\",\r\n \"yesMigrateThisBot\": \"Ano, migrovat tohoto robota\",\r\n \"myBotsMigrationStatusMigrated\": \"Migrován\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Povinné\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Nepovinné\",\r\n \"myBotsMigrationButtonMigrate\": \"Migrovat\",\r\n \"myBotsMigrationButtonRollback\": \"Vrátit migraci zpět\",\r\n \"deleteBotDialogDeleteButtonText\": \"Odstranit robota\",\r\n \"cancelButtonText\": \"Zrušit\",\r\n \"deleteBotDialogTitleText\": \"Chystáte se odstranit tohoto robota\",\r\n \"deleteBotDialogBodyText\": \"Tato akce, kterou nejde vrátit, vymaže všechna data asociovaná s tímto robotem. Jste si jistí?\",\r\n \"deleteBotDialogStatusDeleting\": \"Odstraňování robota...\",\r\n \"deleteBotDialogStatusDeleted\": \"Robot odstraněn\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Ano, vrátit zpět\",\r\n \"rollbackBotDialogTitleText\": \"Opravdu chcete provést vrácení zpět?\",\r\n \"rollbackBotDialogBodyText\": \"Tato akce kompletně vrátí migraci a vy budete muset začít proces migrace od začátku. Opravdu chcete pokračovat?\",\r\n \"rollbackBotDialogErrorInfo\": \"Při získávání informací robota ze serveru došlo k chybě.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Vrácení zpět nelze provést. Nebyl nalezen žádný koncový bod pro vrácení.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Vrácení zpět nelze provést. Nepodařilo se najít token Azure nutný k navázání kontaktu s Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Shromažďují se informace robota...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Robot se připravuje...\",\r\n \"rollbackBotDialogStatusReverting\": \"Robot se vrací zpět...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Odstraňuje se upgradovaná aplikace...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Odstraňuje se záznam nasazení...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Vrácení bylo dokončeno\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"byla úspěšně vrácena.\",\r\n \"okButtonText\": \"OK\",\r\n \"errorMessageErrorOccurred\": \"Došlo k chybě\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Získávají se informace robota...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Získávají se informace Azure...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Získávají se nastavení aplikace robota...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Probíhá inicializace migrovaného robota...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Probíhá registrace služby Bot Service v Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Aktualizuje se záznam robota...\",\r\n \"migrationDialogStatusCreatingRG\": \"Vytváří se skupina prostředků...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Probíhá migrace souborů do nového robota...\",\r\n \"migrationDialogStatusWrappingUp\": \"Dokončuje se nasazení...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Probíhá připojování robota k existujícímu úložišti...\",\r\n \"migrationDialogStatusDeployingSite\": \"Probíhá nasazování webu\",\r\n \"migrationDialogStatusConfiguringSite\": \"Probíhá konfigurace webu\",\r\n \"migrationDialogStatusDeploying\": \"Probíhá nasazování\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Získávají se nové přihlašovací údaje aplikace Function App...\",\r\n \"migrationDialogErrorNoSubs\": \"Pro aktuálního uživatele se nepodařilo najít žádné předplatné Azure.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Pro aktuálního uživatele se nepodařilo najít přístupový token Azure.\",\r\n \"migrationDialogErrorNoLocations\": \"Pro vybrané předplatné Azure se nepodařilo najít žádná umístění.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"V konfiguraci aplikace se nepodařilo najít název účtu úložiště Azure.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Název aplikace není k dispozici.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Název aplikace je neplatný.\",\r\n \"migrationDialogErrorNoBotType\": \"Aktuální robot nemá platný typ.\",\r\n \"migrationDialogErrorBotInvalid\": \"Tohoto robota nelze migrovat, protože je neplatný.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Tohoto robota nelze migrovat, protože chybí koncový bod.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Tohoto robota nelze migrovat, protože chybí informace o zřizování.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Tohoto robota nelze migrovat, protože chybí název skupiny prostředků.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Tohoto robota nelze migrovat, protože chybí ID předplatného Azure.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Tohoto robota nelze migrovat, protože chybí název webu Azure.\",\r\n \"migrationDialogABSv2TitleText\": \"Migrace není k dispozici\",\r\n \"migrationDialogABSv2BodyText\": \"Migrace je pro roboty služby Conversation Designer (ABSv2) aktuálně zakázána.\",\r\n \"migrationDialogRegistrationBodyText\": \"Pro roboty typu {0} je migrace aktuálně zakázána.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Platnost tokenu Azure vypršela.\",\r\n \"migrationDialogRefreshPage\": \"Aktualizujte prosím stránku a zkuste provést migraci znovu.\",\r\n \"migrationSubscriptionDisabled\": \"Vybrané předplatné Azure je zakázané. Pokud chcete pokračovat v migraci, povolte ho.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Tento adresář neobsahuje žádné předplatné.\",\r\n \"migrationDialogFuncPackBotTitle\": \"K migraci tohoto robota je nutný balíček Azure Functions\",\r\n \"migrationDialogFuncPackBotMessage\": \"Roboty Node Functions je před migrací nutné zahrnout do balíčku Azure Functions.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Zjistěte, jak spustit balíček Azure Functions u kódu vašeho robota\",\r\n \"tosDialog_Header\": \"Podmínky služby\",\r\n \"tosDialog_AgreeButton\": \"Souhlas\",\r\n \"tosDialog_MessageChannels\": \"Podmínky služeb Online Services neplatí pro publikování na kanálech. Podmínky publikování na kanálech Microsoftu například neobsahují podmínky zpracování dat.\",\r\n \"tosDialog_MessageMigration\": \"Přečtěte si prosím a odsouhlaste následující podmínky.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Souhlasím, že používání webu Bot Framework podléhá těmto podmínkám: {0} a {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Souhlasím s podmínkami ({0} a {1}) nasazení do kanálu Cortany.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Souhlasím s podmínkami ({0} a {1}) nasazení do kanálu <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Souhlasím s podmínkami ({0} a {1}) nasazení do kanálů <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"podmínky mého předplatného Azure Bot Service\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Podmínky publikování na kanálu Cortana\",\r\n \"tosDialog_MSPublicationTerms\": \"Podmínky publikování na kanálu Microsoft\",\r\n \"tosDialog_MSPrivacyStatement\": \"Prohlášení o zásadách ochrany osobních údajů společnosti Microsoft\",\r\n \"notice\": \" OZNÁMENÍ: \",\r\n \"listElem\": \"{0}, \",\r\n \"andListEnd\": \"{0} a {1}\",\r\n \"analyticsChannelsDropdown\": \"Filtr kanálů\",\r\n \"analyticsPeriodDropdown\": \"Časové období\",\r\n \"deprecatedChannel\": \"(zastaralé)\",\r\n \"openInComposer\": \"otevřít v composeru\",\r\n \"downloadComposer\": \"Stáhnout composer\",\r\n}\r\n\r\nconst Resources_nl: IResources = {\r\n \"unsupportedBrowser_Azure\": \"Uw browser wordt nog niet door Azure Bot Service ondersteund.\",\r\n \"unsupportedBrowser\": \"Uw browser wordt nog niet door Bot Framework ondersteund.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Bezig met aanmelden\",\r\n \"loadingBot\": \"Bot laden...\",\r\n \"botIsNotReady\": \"Wachten tot bot gereed is\",\r\n \"analyticsNotReady\": \"Wachten tot Application Insights wordt geconfigureerd\",\r\n \"authorizingWebChat\": \"Chat met bot autoriseren\",\r\n \"signInFailure\": \"Er is een fout opgetreden bij uw aanmelding. Controleer of cookies van derden zijn ingeschakeld in de browser.\",\r\n \"getChatTokenFailure\": \"Er is een fout opgetreden bij het ophalen van een chatverificatietoken. Vernieuw de pagina en probeer het opnieuw.\",\r\n \"refreshSignInFailure\": \"Er is een fout opgetreden bij het vernieuwen van uw aanmeldingsgegevens. Controleer of cookies van derden zijn ingeschakeld in de browser.\",\r\n \"xhrResponse_400\": \"De actie is ongeldig of de opgegeven waarden zijn ongeldig.\",\r\n \"xhrResponse_403\": \"Dit item kan niet worden geopend of gewijzigd.\",\r\n \"xhrResponse_404\": \"Kan het item niet vinden.\",\r\n \"xhrResponse_500\": \"Er is bij de server een interne fout opgetreden.\",\r\n \"xhrResponse_501\": \"Deze bewerking wordt niet ondersteund.\",\r\n \"xhrResponse_Message\": \"Fout: %1\",\r\n \"xhrResponse_Unknown\": \"Er is een onbekende fout opgetreden.\",\r\n \"AddAFeaturedChannelTitle\": \"Een aanbevolen kanaal toevoegen\",\r\n \"ConnectToChannelsTitle\": \"Verbinden met kanalen\",\r\n \"NoChannelsConfigured\": \"U hebt nog geen kanalen verbonden. Selecteer een kanaal waarmee u verbinding wilt maken.\",\r\n \"MoreChannelsTitle\": \"Meer kanalen\",\r\n \"test\": \"Test\",\r\n \"startOver\": \"Opnieuw beginnen\",\r\n \"retentionTitle\": \"Retentie\",\r\n \"retentionDescription\": \"% gebruikers die opnieuw een bericht hebben verzonden (afgelopen 10 dagen)\",\r\n \"retentionHeader\": \"Dagen later\",\r\n \"retentionDate\": \"Datum\",\r\n \"retentionUsers\": \"Gebruikers\",\r\n \"undetermined\": \"Onbepaald\",\r\n \"loading\": \"laden...\",\r\n \"noAnalyticsData\": \"geen gegevens\",\r\n \"timespanLastHour\": \"Afgelopen uur\",\r\n \"timespanLastDay\": \"Afgelopen dag\",\r\n \"timespanLastWeek\": \"Vorige week\",\r\n \"timespanLastMonth\": \"Vorige maand\",\r\n \"timespanLast90Days\": \"Afgelopen 90 dagen\",\r\n \"timespanUnknown\": \"Onbekend tijdsbestek\",\r\n \"timelineCardUsersTitle\": \"Gebruikers\",\r\n \"timelineCardMessagesTitle\": \"Activiteiten\",\r\n \"totalsCardTitle\": \"Eindtotaal\",\r\n \"analyticsNotConfigured\": \"U hebt Analytics nog niet ingeschakeld via Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Geef op de volgende pagina uw Application Insights-sleutels en id op voor deze bot: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Geef op de pagina met instellingen uw Application Insights-sleutels en id voor deze bot op.\",\r\n \"learnMore\": \"Meer informatie\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - fout: %2\",\r\n \"timelineTableLabel\": \"Toewijzing voor tijdlijntabel %1 op tijd\",\r\n \"timelineChartLabel\": \"Toewijzing voor tijdlijngrafiek %1 op tijd\",\r\n \"published\": \"Gepubliceerd\",\r\n \"health\": \"Gezondheids\",\r\n \"channelname\": \"Naam\",\r\n \"edit\": \"Bewerken\",\r\n \"running\": \"Wordt uitgevoerd\",\r\n \"issuesTemplate\": \"Problemen (<%= length %>)\",\r\n \"warningTemplate\": \"Waarschuwingen (<%= length %>)\",\r\n \"channelPublished\": \"Gepubliceerd\",\r\n \"tryOnCortana\": \"Probeer op <%= Name %> - meer informatie\",\r\n \"tryOnChannel\": \"Probeer op <%= Name %>\",\r\n \"manageInCortana\": \"Beheren in Cortana-dashboard\",\r\n \"channelRejected\": \"Afgewezen\",\r\n \"channelMoreDetails\": \"Meer details\",\r\n \"channelResubmit\": \"Opnieuw ter beoordeling indienen...\",\r\n \"channelGetEmbedCodes\": \"Insluitcodes voor bot ophalen\",\r\n \"channelConfigDeleteMessage\": \"Door deze actie worden alle kanaalconfiguratiegegevens verwijderd. Weet u zeker dat u wilt doorgaan?\",\r\n \"channelConfigDeleteHeader\": \"Kanaal verwijderen\",\r\n \"channelConfigDeleteOk\": \"Ja, verwijderen\",\r\n \"channelConfigDeleteCancel\": \"Nee, niet verwijderen\",\r\n \"channelConfigLeaveMessage\": \"Dit document bevat niet-opgeslagen wijzigingen. Weet u zeker dat u deze pagina wilt verlaten?\",\r\n \"channelConfigLeaveHeader\": \"Wijzigingen negeren\",\r\n \"channelConfigLeaveOk\": \"Ja, de pagina verlaten\",\r\n \"channelConfigLeaveCancel\": \"Nee, op de pagina blijven\",\r\n \"channelEdit\": \"Bewerken\",\r\n \"dialogPleaseWait\": \"Even geduld...\",\r\n \"embedPanelTitle\": \"Insluitcode van bot\",\r\n \"embedPanelDescription\": \"Kies een kanaal waarvoor u de insluitcode wilt ophalen. Kopieer en plak de code naar uw website.\",\r\n \"embedPanelFacebookFooter\": \"U moet de JavaScript SDK van Facebook in uw pagina opnemen om deze insluitcode te kunnen gebruiken.\",\r\n \"embedPanelLearnMore\": \"Meer informatie.\",\r\n \"embedPanelChannelMovedHeader\": \"Insluitcode voor %1 is verplaatst\",\r\n \"embedPanelChannelMovedInstructions\": \"Klik hier om configuratiepagina %1 te openen\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Insluitcode voor %1\",\r\n \"embedPanelGettingCodes\": \"Codes ophalen...\",\r\n \"embedPanelNoCodeAvailable\": \"Geen insluitcode beschikbaar voor deze bot.\",\r\n \"channelIssuesPanelSubtitle\": \"Recente problemen\",\r\n \"channelIssuesPanelClearall\": \"Alles wissen\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Tijd\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Bericht\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"Correlatie-id\",\r\n \"unsavedChangesWillBeLost\": \"Niet-opgeslagen wijzigingen gaan verloren.\",\r\n \"altImageChannel\": \"Kanaal %1 configureren\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"E-mail\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype voor Bedrijven\",\r\n \"_SkypeforBusiness\": \"Skype voor Bedrijven, merk\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"DEZE BOT MIGREREN\",\r\n \"migrationBannerCTAStartMigrating\": \"MIGRATIE STARTEN\",\r\n \"migrationBannerBlurb1\": \"Met de introductie van de nieuwe Azure Bot Service migreren we tot 31-3-2018 alle bots naar de nieuwe service.\",\r\n \"migrationBannerBlurb2\": \"over de migratie.\",\r\n \"migrationBannerSuggestedBlurb\": \"Migratie naar Azure Bot Service is optioneel voor deze bot.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Bots die migratie naar Azure Bot Service vereisen, moeten nu worden gemigreerd om onderbreking van de service te voorkomen.\",\r\n \"migrationBannerBlockedBlurb\": \"Botmigratie is achterstallig. Migreer de bot nu om onderbreking van de service te voorkomen.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Als u dit kanaal configureert, moet uw bot uiterlijk op 31-3-2018 worden gemigreerd naar Azure Bot Service. Weet u zeker dat u dit kanaal wilt configureren?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Dit kanaal is alleen beschikbaar voor bots in Azure Bot Service. Wilt u deze bot migreren?\",\r\n \"channelRequiresABSBot\": \"Dit kanaal is alleen beschikbaar voor bots in Azure Bot Service.\",\r\n \"botRequiresMigrationDialogHeader\": \"Bot vereist migratie\",\r\n \"botRequiresMigrationDialogMessage\": \"Botmigratie is achterstallig. Migreer de bot nu om onderbreking van de service te voorkomen.\",\r\n \"yesMigrateThisBot\": \"Ja, deze bot migreren\",\r\n \"myBotsMigrationStatusMigrated\": \"Gemigreerd\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Vereist\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Niet vereist\",\r\n \"myBotsMigrationButtonMigrate\": \"Migreren\",\r\n \"myBotsMigrationButtonRollback\": \"Migratie terugdraaien\",\r\n \"deleteBotDialogDeleteButtonText\": \"Bot verwijderen\",\r\n \"cancelButtonText\": \"Annuleren\",\r\n \"deleteBotDialogTitleText\": \"U staat op het punt deze bot te verwijderen\",\r\n \"deleteBotDialogBodyText\": \"Deze actie zal alle gegevens wissen die aan deze bot zijn gekoppeld, en kan niet ongedaan worden gemaakt. Weet u het zeker?\",\r\n \"deleteBotDialogStatusDeleting\": \"Bot verwijderen...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot verwijderd\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Ja, terugdraaien\",\r\n \"rollbackBotDialogTitleText\": \"Weet u zeker dat u wilt terugdraaien?\",\r\n \"rollbackBotDialogBodyText\": \"Met deze actie wordt de migratie volledig teruggedraaid en moet u het migratieproces volledig overnieuw beginnen. Weet u zeker dat u wilt doorgaan?\",\r\n \"rollbackBotDialogErrorInfo\": \"Fout bij het ophalen van botinformatie van de server.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Kan niet terugdraaien. Geen eindpunt voor terugdraaien gevonden.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Kan niet terugdraaien. Er kan geen Azure-token worden gevonden voor contact met Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Botinformatie verzamelen...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Bot voorbereiden...\",\r\n \"rollbackBotDialogStatusReverting\": \"Bot terugdraaien...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Bijgewerkte app verwijderen...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Implementatierecord verwijderen...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Terugdraaien voltooid\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"is teruggedraaid.\",\r\n \"okButtonText\": \"OK\",\r\n \"errorMessageErrorOccurred\": \"Er is een fout opgetreden\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Botinformatie ophalen...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Azure-informatie ophalen...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"App-instellingen voor bot ophalen...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Gemigreerde bot initialiseren...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Bot Service registreren bij Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Botrecord bijwerken...\",\r\n \"migrationDialogStatusCreatingRG\": \"Resourcegroep maken...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Bestanden migreren naar nieuwe bot...\",\r\n \"migrationDialogStatusWrappingUp\": \"Implementatie afronden...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Bot verbinden met huidige opslag...\",\r\n \"migrationDialogStatusDeployingSite\": \"Website implementeren\",\r\n \"migrationDialogStatusConfiguringSite\": \"Website configureren\",\r\n \"migrationDialogStatusDeploying\": \"Implementeren\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Referenties voor nieuwe functie-app ophalen...\",\r\n \"migrationDialogErrorNoSubs\": \"Kan geen Azure-abonnementen vinden voor de huidige gebruiker.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Kan geen Azure-toegangstoken vinden voor de huidige gebruiker.\",\r\n \"migrationDialogErrorNoLocations\": \"Kan geen locaties vinden voor het geselecteerde Azure-abonnement.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Kan geen Azure-opslagaccountnaam vinden in de app-config.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"App-naam is niet beschikbaar.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Ongeldige app-naam.\",\r\n \"migrationDialogErrorNoBotType\": \"Huidige bot heeft geen geldig type.\",\r\n \"migrationDialogErrorBotInvalid\": \"Deze bot kan niet worden gemigreerd omdat de bot ongeldig is.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Deze bot kan niet worden gemigreerd omdat het eindpunt ontbreekt.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Deze bot kan niet worden gemigreerd omdat de inrichtingsinformatie ontbreekt.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Deze bot kan niet worden gemigreerd omdat de resourcegroepsnaam ontbreekt.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Deze bot kan niet worden gemigreerd omdat de Azure-abonnements-id ontbreekt.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Deze bot kan niet worden gemigreerd omdat de Azure-sitenaam ontbreekt.\",\r\n \"migrationDialogABSv2TitleText\": \"Migratie niet beschikbaar\",\r\n \"migrationDialogABSv2BodyText\": \"Migratie is momenteel uitgeschakeld voor Conversation Designer-bots (ABSv2).\",\r\n \"migrationDialogRegistrationBodyText\": \"Migratie is momenteel uitgeschakeld voor '{0}'-bots.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Azure-token is verlopen.\",\r\n \"migrationDialogRefreshPage\": \"Vernieuw de pagina en probeer de migratie opnieuw.\",\r\n \"migrationSubscriptionDisabled\": \"Het geselecteerde Azure-abonnement is uitgeschakeld. Schakel dit in om door te gaan met de migratie.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Deze map bevat geen abonnement.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Azure Functions-pakket is vereist voor migratie van deze bot\",\r\n \"migrationDialogFuncPackBotMessage\": \"Node Functions-bots moeten worden geleverd bij het Azure Functions-pakket voordat ze kunnen worden gemigreerd.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Meer informatie over het uitvoeren van het Azure Functions-pakket op uw botcode\",\r\n \"tosDialog_Header\": \"Gebruiksvoorwaarden\",\r\n \"tosDialog_AgreeButton\": \"Akkoord\",\r\n \"tosDialog_MessageChannels\": \"De voorwaarden voor Online Services zijn niet van toepassing op publicatie op kanalen. De publicatievoorwaarden voor Microsoft-kanalen omvatten bijvoorbeeld geen voorwaarden voor gegevensverwerking.\",\r\n \"tosDialog_MessageMigration\": \"Lees de volgende voorwaarden en ga ermee akkoord.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Ik ga ermee akkoord dat het gebruik van de Bot Framework-site onderhevig is aan de {0} en de {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Ik ga akkoord met de {0} en de {1} voor mijn implementatie voor het Cortana-kanaal.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Ik ga akkoord met de {0} en de {1} voor mijn implementatie voor het <%= channelslist %>-kanaal.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Ik ga akkoord met de {0} en de {1} voor mijn implementatie voor de <%= channelslist %>-kanalen.\",\r\n \"tosDialog_ABSTerms\": \"voorwaarden voor mijn abonnement voor Azure Bot Service\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Publicatievoorwaarden voor Cortana-kanaal\",\r\n \"tosDialog_MSPublicationTerms\": \"Publicatievoorwaarden voor Microsoft Channel\",\r\n \"tosDialog_MSPrivacyStatement\": \"Privacyverklaringen van Microsoft\",\r\n \"notice\": \" OPMERKING: \",\r\n \"listElem\": \"{0}, \",\r\n \"andListEnd\": \"{0} en {1}\",\r\n \"analyticsChannelsDropdown\": \"Kanalenfilter\",\r\n \"analyticsPeriodDropdown\": \"Tijdsperiode\",\r\n \"deprecatedChannel\": \"(afgeschaft)\",\r\n \"openInComposer\": \"openen in composer\",\r\n \"downloadComposer\": \"Composer downloaden\",\r\n}\r\n\r\nconst Resources_hu: IResources = {\r\n \"unsupportedBrowser_Azure\": \"Az Azure Bot Service még nem támogatja ezt a böngészőt.\",\r\n \"unsupportedBrowser\": \"A Bot keretrendszer még nem támogatja ezt a böngészőt.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Bejelentkezés\",\r\n \"loadingBot\": \"Bot betöltése...\",\r\n \"botIsNotReady\": \"Várakozás a robot készen állására\",\r\n \"analyticsNotReady\": \"Várakozás az Application Insights konfigurálása\",\r\n \"authorizingWebChat\": \"Csevegés engedélyezése robottal\",\r\n \"signInFailure\": \"Hiba történt a bejelentkezéskor. Ellenőrizze, hogy a harmadik féltől származó cookie-k engedélyezve vannak-e a böngészőben.\",\r\n \"getChatTokenFailure\": \"A Csevegés engedélyezési token megszerzésénél hiba történt. Frissítse, és próbálkozzon újra.\",\r\n \"refreshSignInFailure\": \"Hiba történt a bejelentkezési információk frissítésekor. Ellenőrizze, hogy a harmadik féltől származó cookie-k engedélyezve vannak-e a böngészőben.\",\r\n \"xhrResponse_400\": \"A művelet vagy a megadott értékek érvénytelenek.\",\r\n \"xhrResponse_403\": \"Ez az elem nem érhető el és nem módosítható.\",\r\n \"xhrResponse_404\": \"Az elem nem található.\",\r\n \"xhrResponse_500\": \"Belső hiba történt a kiszolgálón.\",\r\n \"xhrResponse_501\": \"Ez a művelet nem támogatott.\",\r\n \"xhrResponse_Message\": \"Hiba: %1\",\r\n \"xhrResponse_Unknown\": \"Ismeretlen hiba történt.\",\r\n \"AddAFeaturedChannelTitle\": \"Kiemelt csatorna hozzáadása\",\r\n \"ConnectToChannelsTitle\": \"Csatlakozás csatornákhoz\",\r\n \"NoChannelsConfigured\": \"Még egyik csatornához sem csatlakozott. Válasszon ki egy csatornát a csatlakozáshoz.\",\r\n \"MoreChannelsTitle\": \"Több csatorna\",\r\n \"test\": \"Teszt\",\r\n \"startOver\": \"Újrakezdés\",\r\n \"retentionTitle\": \"Megőrzés\",\r\n \"retentionDescription\": \"% felhasználók, akik újból üzentek (utolsó 10 nap)\",\r\n \"retentionHeader\": \"Nappal később\",\r\n \"retentionDate\": \"Dátum\",\r\n \"retentionUsers\": \"Felhasználók\",\r\n \"undetermined\": \"Meghatározatlan\",\r\n \"loading\": \"Betöltés...\",\r\n \"noAnalyticsData\": \"Nincsenek adatok\",\r\n \"timespanLastHour\": \"Utolsó óra\",\r\n \"timespanLastDay\": \"Utolsó nap\",\r\n \"timespanLastWeek\": \"Előző hét\",\r\n \"timespanLastMonth\": \"Múlt hónap\",\r\n \"timespanLast90Days\": \"Elmúlt 90 nap\",\r\n \"timespanUnknown\": \"Ismeretlen időtartam\",\r\n \"timelineCardUsersTitle\": \"Felhasználók\",\r\n \"timelineCardMessagesTitle\": \"Tevékenységek\",\r\n \"totalsCardTitle\": \"Végösszegek\",\r\n \"analyticsNotConfigured\": \"Ön még nem engedélyezte az Analytics via Azure Application Insights funkciót.\",\r\n \"analyticsNotConfiguredAction\": \"Adja meg az Application Insights kulcsokat és a bot azonosítóját a következő lapon: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Adja meg az Application Insights kulcsokat és a bot azonosítóját a beállítások lapon.\",\r\n \"learnMore\": \"További információ\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - hiba: %2\",\r\n \"timelineTableLabel\": \"%1 idő szerint, idővonaltábla hozzárendelése\",\r\n \"timelineChartLabel\": \"%1 idő szerint, idővonal-diagram hozzárendelése\",\r\n \"published\": \"Közzétéve\",\r\n \"health\": \"Egészség\",\r\n \"channelname\": \"Név\",\r\n \"edit\": \"Szerkesztés\",\r\n \"running\": \"Futás\",\r\n \"issuesTemplate\": \"Problémák (<%= length %>)\",\r\n \"warningTemplate\": \"Figyelmeztetések (<%= length %>)\",\r\n \"channelPublished\": \"Közzétéve\",\r\n \"tryOnCortana\": \"Próbálja meg ezt: <%= Name %> - megtudhatja, hogyan\",\r\n \"tryOnChannel\": \"Próbálja meg ezt: <%= Name %>\",\r\n \"manageInCortana\": \"Kezelés Cortana irányítópultban\",\r\n \"channelRejected\": \"Elutasítva\",\r\n \"channelMoreDetails\": \"További részletek\",\r\n \"channelResubmit\": \"Küldje el ellenőrzésre újból...\",\r\n \"channelGetEmbedCodes\": \"Bot beágyazási kódok beolvasása\",\r\n \"channelConfigDeleteMessage\": \"Ez a művelet törli az összes csatorna konfigurációs adatait. Biztosan folytatni kívánja?\",\r\n \"channelConfigDeleteHeader\": \"Csatorna törlése\",\r\n \"channelConfigDeleteOk\": \"Igen, törlöm\",\r\n \"channelConfigDeleteCancel\": \"Nem, tartsa meg\",\r\n \"channelConfigLeaveMessage\": \"Nem mentett módosítások vannak ebben a dokumentumban. Biztosan el akarja hagyni ezt az oldalt?\",\r\n \"channelConfigLeaveHeader\": \"Módosítások elvetése\",\r\n \"channelConfigLeaveOk\": \"Igen, elhagyom az oldalt\",\r\n \"channelConfigLeaveCancel\": \"Nem, maradjon a lapon\",\r\n \"channelEdit\": \"Szerkesztés\",\r\n \"dialogPleaseWait\": \"Kis türelmet...\",\r\n \"embedPanelTitle\": \"Bot beágyazási kód\",\r\n \"embedPanelDescription\": \"Válasszon egy csatornát a hozzá tartozó beágyazási kód beolvasásához. Másolja le és illessze be a kódot a webhelyére.\",\r\n \"embedPanelFacebookFooter\": \"A Facebook beágyazás használatához szükséges, hogy az Ön oldala tartalmazza a Facebook JavaScript SDK-ját.\",\r\n \"embedPanelLearnMore\": \"További információ\",\r\n \"embedPanelChannelMovedHeader\": \"%1 beágyazási kódját áthelyezték\",\r\n \"embedPanelChannelMovedInstructions\": \"Kattintson ide a %1 konfigurációs lap megnyitásához\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Beágyazási kód ehhez: %1\",\r\n \"embedPanelGettingCodes\": \"Kódok beolvasása...\",\r\n \"embedPanelNoCodeAvailable\": \"Nem érhető el beágyazási kód ehhez a bothoz.\",\r\n \"channelIssuesPanelSubtitle\": \"Legutóbbi problémák\",\r\n \"channelIssuesPanelClearall\": \"Összes törlése\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Idő\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Üzenet\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"Korrelációazonosító\",\r\n \"unsavedChangesWillBeLost\": \"A nem mentett változtatások elvesznek.\",\r\n \"altImageChannel\": \"%1 csatorna konfigurálása\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"E-mail\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype vállalati verzió\",\r\n \"_SkypeforBusiness\": \"Skype for business márka\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"A ROBOT ÁTTELEPÍTÉSE\",\r\n \"migrationBannerCTAStartMigrating\": \"ÁTTELEPÍTÉS INDÍTÁSA\",\r\n \"migrationBannerBlurb1\": \"Az új Azure Bot Service elindításával minden robotot áttelepítünk az új szolgáltatásba 2018/3/31-ig.\",\r\n \"migrationBannerBlurb2\": \"az áttelepítésről.\",\r\n \"migrationBannerSuggestedBlurb\": \"Az Azure Bot Service-be való áttelepítés nem kötelező ennél a robotnál.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Az Azure Bot Service-be áttelepítést igénylő robotokat most kell áttelepíteni a szolgáltatás megszakadásának elkerülése érdekében.\",\r\n \"migrationBannerBlockedBlurb\": \"A robot áttelepítésének határideje lejárt, telepítse át most a szolgáltatás megszakadásának elkerülése érdekében.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Ha beállítja ezt a csatornát, a robotot át kell telepítenie az Azure Bot Service-be 2018. 3. 31.-ig. Biztosan be szeretné állítani a csatornát?\",\r\n \"channelRequiresMigrationDialogMessage\": \"A csatorna csak az Azure Bot Service-be telepített robotok számára áll rendelkezésre. Szeretné áttelepíteni a robotot?\",\r\n \"channelRequiresABSBot\": \"A csatorna csak az Azure Bot Service-be telepített robotok számára áll rendelkezésre.\",\r\n \"botRequiresMigrationDialogHeader\": \"Robot áttelepítése szükséges\",\r\n \"botRequiresMigrationDialogMessage\": \"A robot áttelepítésének határideje lejárt, telepítse át most a szolgáltatás megszakadásának elkerülése érdekében.\",\r\n \"yesMigrateThisBot\": \"Igen, telepítse át a robotot\",\r\n \"myBotsMigrationStatusMigrated\": \"Áttelepítve\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Szükséges\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Nem szükséges\",\r\n \"myBotsMigrationButtonMigrate\": \"Áttelepít\",\r\n \"myBotsMigrationButtonRollback\": \"Áttelepítés visszaállítás\",\r\n \"deleteBotDialogDeleteButtonText\": \"Robot törlése\",\r\n \"cancelButtonText\": \"Mégse\",\r\n \"deleteBotDialogTitleText\": \"Törölni készül ezt a robotot\",\r\n \"deleteBotDialogBodyText\": \"Ez a művelet a robothoz társított összes adatot törli, és nem vonható vissza. Biztos benne?\",\r\n \"deleteBotDialogStatusDeleting\": \"Robot törlése...\",\r\n \"deleteBotDialogStatusDeleted\": \"Robot törölve\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Igen, állítsa vissza\",\r\n \"rollbackBotDialogTitleText\": \"Valóban visszaállítja?\",\r\n \"rollbackBotDialogBodyText\": \"Ez a művelet teljesen visszaállítja az áttelepítést, és az áttelepítési folyamatot előlről el kell indítania. Biztosan folytatni kívánja?\",\r\n \"rollbackBotDialogErrorInfo\": \"Hiba történt a robot adatainak kiszolgálóról való lekérése közben.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"A visszaállítás nem hajtható végre. Nem található visszaállítási végpont.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"A visszaállítás nem hajtható végre. Nem sikerült Azure tokent találni az Azure-hoz való kapcsolódáshoz.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Robot információ gyűjtése...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Robot előkészítése...\",\r\n \"rollbackBotDialogStatusReverting\": \"Robot visszaállítása..\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Frissített alkalmazás törlése...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Telepítési bejegyzés törlése...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Visszaállítás befejezve\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"visszaállítás sikeresen megtörtént.\",\r\n \"okButtonText\": \"Ok\",\r\n \"errorMessageErrorOccurred\": \"Hiba történt\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Robot információ lekérdezése...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Azure információk lekérdezése...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Robotalkalmazás beállításainak lekérdezése...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Áttelepített robot inicializálása...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Robotszolgáltatás regisztrálása Azure-ban...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Robot bejegyzés frissítése...\",\r\n \"migrationDialogStatusCreatingRG\": \"Erőforráscsoport létrehozása...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Fájlok áttelepítése új robothoz...\",\r\n \"migrationDialogStatusWrappingUp\": \"Telepítés befejezése...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Robot csatlakoztatása meglévő tárolóhoz...\",\r\n \"migrationDialogStatusDeployingSite\": \"Webhely üzembe helyezése\",\r\n \"migrationDialogStatusConfiguringSite\": \"Webhely konfigurálása\",\r\n \"migrationDialogStatusDeploying\": \"Üzembe helyezés\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Új függvényalkalmazás hitelesítő adatainak beolvasása...\",\r\n \"migrationDialogErrorNoSubs\": \"Nem sikerült az aktuális felhasználóhoz tartozó Azure előfizetést találni.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Nem sikerült Azure hozzáférési tokent találni az aktuális felhasználóhoz.\",\r\n \"migrationDialogErrorNoLocations\": \"Nem sikerült a kijelölt Azure előfizetéshez tartozó helyet találni.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Nem sikerült Azure tárfiók nevet találni az alkalmazáskonfigurációban.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Alkalmazás neve nem elérhető.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Érvénytelen alkalmazásnév.\",\r\n \"migrationDialogErrorNoBotType\": \"Az aktuális robot nem rendelkezik érvényes típussal.\",\r\n \"migrationDialogErrorBotInvalid\": \"A robot nem telepíthető át, mert érvénytelen.\",\r\n \"migrationDialogErrorEndpointMissing\": \"A robot nem telepíthető át, mert hiányzik a végpont.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"A robot nem telepíthető át, mert az üzembe helyezési információk hiányoznak.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"A robot nem telepíthető át, mert hiányzik az erőforráscsoport neve.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"A robot nem telepíthető át, mert hiányzik az Azure előfizetés azonosítója.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"A robot nem telepíthető át, mert hiányzik az Azure webhely neve.\",\r\n \"migrationDialogABSv2TitleText\": \"Az áttelepítés nem elérhető\",\r\n \"migrationDialogABSv2BodyText\": \"Az áttelepítés jelenleg le van tiltva a beszélgetéstervező (ABSv2) robotoknál.\",\r\n \"migrationDialogRegistrationBodyText\": \"Az áttelepítés jelenleg le van tiltva a(z) '{0}' robotoknál.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Az Azure token lejárt.\",\r\n \"migrationDialogRefreshPage\": \"Frissítse a lapot, és próbálja meg újra az áttelepítést.\",\r\n \"migrationSubscriptionDisabled\": \"A kiválasztott Azure előfizetés le van tiltva. Engedélyezze az áttelepítés folytatásához.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Ez a könyvtár nem tartalmaz előfizetést.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Azure Functions Pack szükséges a robot áttelepítéséhez\",\r\n \"migrationDialogFuncPackBotMessage\": \"A Node Functions robotokat be kell csomagolni az Azure Functions Pack segítségével, mielőtt áttelepítésre kerülhetnének.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Ismerje meg, hogyan futtatható az Azure Functions Pack a robot kódján\",\r\n \"tosDialog_Header\": \"Szolgáltatási feltételek\",\r\n \"tosDialog_AgreeButton\": \"Megállapodnak abban\",\r\n \"tosDialog_MessageChannels\": \"Az online szolgáltatások feltételei nem vonatkoznak a csatornákon történő közzétételre. Például a Microsoft csatornákon való közzététel feltételei nem kínálnak adatfeldolgozási feltételeket.\",\r\n \"tosDialog_MessageMigration\": \"Olvassa el, és fogadja el a következő feltételeket.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Elfogadom, hogy a robot keretrendszer webhelyének használata {0} és a(z) {1} hatálya alá tartozik.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Elfogadom a Cortana csatonában való közzétételemre vonatkozóan a {0} és {1} dokumentumokban foglaltakat.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Elfogadom a(z) <%= channelslist %> csatonában való közzétételemre vonatkozóan a {0} és {1} dokumentumokban foglaltakat.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Elfogadom a(z) <%= channelslist %> csatonákban való közzétételemre vonatkozóan a {0} és {1} dokumentumokban foglaltakat.\",\r\n \"tosDialog_ABSTerms\": \"saját Azure Bot Service előfizetés feltételei\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Cortana csatorna közzétételi feltételek\",\r\n \"tosDialog_MSPublicationTerms\": \"Közzétételi feltételek Microsoft csatornán\",\r\n \"tosDialog_MSPrivacyStatement\": \"A Microsoft adatvédelmi nyilatkozata\",\r\n \"notice\": \" MEGJEGYZÉS: \",\r\n \"listElem\": \"{0}, \",\r\n \"andListEnd\": \"{0} és {1}\",\r\n \"analyticsChannelsDropdown\": \"Csatornaszűrő\",\r\n \"analyticsPeriodDropdown\": \"Időszak\",\r\n \"deprecatedChannel\": \"(elavult)\",\r\n \"openInComposer\": \"megnyitás a Composerben\",\r\n \"downloadComposer\": \"A Composer letöltése\",\r\n}\r\n\r\nconst Resources_pl: IResources = {\r\n \"unsupportedBrowser_Azure\": \"Usługa Azure Bot Service nie obsługuje jeszcze Twojej przeglądarki.\",\r\n \"unsupportedBrowser\": \"Platforma Bot Framework nie obsługuje jeszcze Twojej przeglądarki.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Logowanie\",\r\n \"loadingBot\": \"Trwa ładowanie bota...\",\r\n \"botIsNotReady\": \"Oczekiwanie, aż bot będzie gotowy\",\r\n \"analyticsNotReady\": \"Oczekiwanie na skonfigurowanie usługi Application Insights\",\r\n \"authorizingWebChat\": \"Autoryzowanie rozmowy z botem\",\r\n \"signInFailure\": \"Wystąpił błąd podczas logowania. Upewnij się, że pliki cookie innych firm są włączone w przeglądarce\",\r\n \"getChatTokenFailure\": \"Wystąpił błąd podczas pobierania tokenu autoryzacji rozmowy. Odśwież i spróbuj ponownie.\",\r\n \"refreshSignInFailure\": \"Wystąpił błąd podczas odświeżania informacji logowania. Upewnij się, że w przeglądarce włączone są pliki cookie innych firm.\",\r\n \"xhrResponse_400\": \"Akcja lub podane wartości są nieprawidłowe.\",\r\n \"xhrResponse_403\": \"Nie można uzyskać dostępu do tego elementu albo go zmodyfikować.\",\r\n \"xhrResponse_404\": \"Nie można odnaleźć elementu.\",\r\n \"xhrResponse_500\": \"Wystąpił błąd wewnętrzny na serwerze.\",\r\n \"xhrResponse_501\": \"Ta operacja jest nieobsługiwana.\",\r\n \"xhrResponse_Message\": \"Błąd: %1\",\r\n \"xhrResponse_Unknown\": \"Wystąpił nieznany błąd.\",\r\n \"AddAFeaturedChannelTitle\": \"Dodaj polecany kanał\",\r\n \"ConnectToChannelsTitle\": \"Połącz z kanałami\",\r\n \"NoChannelsConfigured\": \"Nie połączono się jeszcze z żadnym kanałem. Wybierz kanał, aby się z nim połączyć.\",\r\n \"MoreChannelsTitle\": \"Więcej kanałów\",\r\n \"test\": \"Testuj\",\r\n \"startOver\": \"Zacznij od nowa\",\r\n \"retentionTitle\": \"Utrzymanie\",\r\n \"retentionDescription\": \"% użytkowników, którzy ponownie przesłali wiadomość (ostatnie 10 dni)\",\r\n \"retentionHeader\": \"Dni później\",\r\n \"retentionDate\": \"Data\",\r\n \"retentionUsers\": \"Użytkownicy\",\r\n \"undetermined\": \"Nieokreślone\",\r\n \"loading\": \"trwa ładowanie...\",\r\n \"noAnalyticsData\": \"brak danych\",\r\n \"timespanLastHour\": \"Ostatnia godzina\",\r\n \"timespanLastDay\": \"Ostatni dzień\",\r\n \"timespanLastWeek\": \"Ostatni tydzień\",\r\n \"timespanLastMonth\": \"Ostatni miesiąc\",\r\n \"timespanLast90Days\": \"Ostatnie 90 dni\",\r\n \"timespanUnknown\": \"Nieznany przedział czasu\",\r\n \"timelineCardUsersTitle\": \"Użytkownicy\",\r\n \"timelineCardMessagesTitle\": \"Działania\",\r\n \"totalsCardTitle\": \"Sumy końcowe\",\r\n \"analyticsNotConfigured\": \"Nie włączono jeszcze funkcji analiz za pośrednictwem usługi Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Podaj klucze i identyfikator usługi Application Insights dla tego bota na następującej stronie: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Podaj klucze i identyfikator usługi Application Insights dla tego bota na stronie ustawień.\",\r\n \"learnMore\": \"Dowiedz się więcej\",\r\n \"cardTitleLoading\": \"%1 — %2\",\r\n \"cardTitleError\": \"%1 — błąd: %2\",\r\n \"timelineTableLabel\": \"Tabela osi czasu mapująca wykres %1 według godzin\",\r\n \"timelineChartLabel\": \"Wykres osi czasu mapujący wykres %1 według godzin\",\r\n \"published\": \"Opublikowano\",\r\n \"health\": \"Kondycja\",\r\n \"channelname\": \"Nazwa\",\r\n \"edit\": \"Edytuj\",\r\n \"running\": \"Uruchomiono\",\r\n \"issuesTemplate\": \"Problemy (<%= length %>)\",\r\n \"warningTemplate\": \"Ostrzeżenia (<%= length %>)\",\r\n \"channelPublished\": \"Opublikowano\",\r\n \"tryOnCortana\": \"Wypróbuj w kanale <%= Name %> — dowiedz się, jak\",\r\n \"tryOnChannel\": \"Wypróbuj w kanale <%= Name %>\",\r\n \"manageInCortana\": \"Zarządzaj na pulpicie nawigacyjnym Cortany\",\r\n \"channelRejected\": \"Odrzucono\",\r\n \"channelMoreDetails\": \"Więcej szczegółów\",\r\n \"channelResubmit\": \"Wyślij ponownie do przeglądu...\",\r\n \"channelGetEmbedCodes\": \"Pobierz kody osadzania bota\",\r\n \"channelConfigDeleteMessage\": \"Wykonanie tej akcji spowoduje usunięcie wszystkich informacji dotyczących konfiguracji kanału. Czy na pewno chcesz kontynuować?\",\r\n \"channelConfigDeleteHeader\": \"Usuń kanał\",\r\n \"channelConfigDeleteOk\": \"Tak, usuń go\",\r\n \"channelConfigDeleteCancel\": \"Nie, zachowaj go\",\r\n \"channelConfigLeaveMessage\": \"Masz niezapisane zmiany w tym dokumencie. Czy na pewno chcesz opuścić tę stronę?\",\r\n \"channelConfigLeaveHeader\": \"Odrzuć zmiany\",\r\n \"channelConfigLeaveOk\": \"Tak, opuść stronę\",\r\n \"channelConfigLeaveCancel\": \"Nie, zostań na stronie\",\r\n \"channelEdit\": \"Edytuj\",\r\n \"dialogPleaseWait\": \"Czekaj...\",\r\n \"embedPanelTitle\": \"Kod osadzania bota\",\r\n \"embedPanelDescription\": \"Wybierz kanał, aby pobrać dla niego kod osadzania. Skopiuj ten kod i wklej go w swojej witrynie internetowej.\",\r\n \"embedPanelFacebookFooter\": \"Aby używać tego osadzenia, musisz dołączyć zestaw JavaScript SDK Facebooka do swojej strony.\",\r\n \"embedPanelLearnMore\": \"Dowiedz się więcej.\",\r\n \"embedPanelChannelMovedHeader\": \"Kod osadzania dla kanału %1 został przeniesiony\",\r\n \"embedPanelChannelMovedInstructions\": \"Kliknij tutaj, aby otworzyć stronę konfiguracji kanału %1\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Kod osadzania dla kanału %1\",\r\n \"embedPanelGettingCodes\": \"Trwa pobieranie kodów...\",\r\n \"embedPanelNoCodeAvailable\": \"Brak dostępnego kodu osadzania dla tego bota.\",\r\n \"channelIssuesPanelSubtitle\": \"Ostatnie problemy\",\r\n \"channelIssuesPanelClearall\": \"Wyczyść wszystko\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Godzina\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Wiadomość\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"Identyfikator korelacji\",\r\n \"unsavedChangesWillBeLost\": \"Niezapisane zmiany zostaną utracone.\",\r\n \"altImageChannel\": \"Konfiguruj kanał %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"Poczta e-mail\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype dla firm\",\r\n \"_SkypeforBusiness\": \"Marka Skype dla firm\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRUJ TEGO BOTA\",\r\n \"migrationBannerCTAStartMigrating\": \"ROZPOCZNIJ MIGROWANIE\",\r\n \"migrationBannerBlurb1\": \"Z powodu uruchomienia nowej usługi Azure Bot Service będziemy migrować wszystkie boty do nowej usługi do 31 marca 2018.\",\r\n \"migrationBannerBlurb2\": \"o migracji.\",\r\n \"migrationBannerSuggestedBlurb\": \"W przypadku tego bota migracja do Azure Bot Service jest opcjonalna.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"W celu uniknięcia przerwy w świadczeniu usług, konieczna jest teraz migracja botów, które tego wymagają do Azure Bot Service. \",\r\n \"migrationBannerBlockedBlurb\": \"Zaległa migracja bota, dokonaj teraz migracji w celu uniknięcia przerwy w świadczeniu usługi.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Jeśli skonfigurujesz ten kanał, nastąpi konieczność migracji bota do Azure Bot Service najpóźniej do 3.31.2018 r. Czy na pewno chcesz konfigurować ten kanał?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Ten kanał jest dostępny tylko w dla botów w Azure Bot Service. Czy chcesz dokonać migracji tego bota?\",\r\n \"channelRequiresABSBot\": \"Ten kanał jest dostępny tylko dla botów w usłudze Azure Bot Service.\",\r\n \"botRequiresMigrationDialogHeader\": \"Bot wymaga migracji\",\r\n \"botRequiresMigrationDialogMessage\": \"Zaległa migracja bota, dokonaj teraz migracji w celu uniknięcia przerwy w świadczeniu usługi.\",\r\n \"yesMigrateThisBot\": \"Tak, dokonaj migracji tego bota\",\r\n \"myBotsMigrationStatusMigrated\": \"Zmigrowano\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Wymagane\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Niewymagane\",\r\n \"myBotsMigrationButtonMigrate\": \"Migruj\",\r\n \"myBotsMigrationButtonRollback\": \"Wycofaj migrację\",\r\n \"deleteBotDialogDeleteButtonText\": \"Usuń bota\",\r\n \"cancelButtonText\": \"Anuluj\",\r\n \"deleteBotDialogTitleText\": \"Zamierzasz usunąć tego bota\",\r\n \"deleteBotDialogBodyText\": \"Wykonanie tej akcji spowoduje wymazanie wszystkich danych skojarzonych z tym botem i nie będzie można jej cofnąć. Czy na pewno?\",\r\n \"deleteBotDialogStatusDeleting\": \"Trwa usuwanie bota...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot usunięty\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Tak, wycofaj\",\r\n \"rollbackBotDialogTitleText\": \"Czy na pewno chcesz wykonać wycofywanie?\",\r\n \"rollbackBotDialogBodyText\": \"Ta akcja spowoduje całkowite wycofanie migracji i trzeba będzie rozpocząć proces migracji od początku. Czy na pewno chcesz kontynuować?\",\r\n \"rollbackBotDialogErrorInfo\": \"Błąd pobierania informacji dotyczących bota z serwera.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Nie można wykonać wycofywania. Nie znaleziono punktu końcowego wycofywania.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Nie można wykonać wycofywania. Nie można odnaleźć tokenu platformy Azure umożliwiającego kontaktowanie się z platformą Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Trwa zbieranie informacji dotyczących bota...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Trwa przygotowywanie bota...\",\r\n \"rollbackBotDialogStatusReverting\": \"Trwa przywracanie bota...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Trwa usuwanie uaktualnionej aplikacji...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Trwa usuwanie rekordu wdrożenia...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Wycofywanie zakończone\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"została wycofana pomyślnie.\",\r\n \"okButtonText\": \"OK\",\r\n \"errorMessageErrorOccurred\": \"Wystąpił błąd\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Trwa pobieranie informacji dotyczących bota...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Trwa pobieranie informacji dotyczących platformy Azure...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Trwa pobieranie ustawień aplikacji bota...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Trwa inicjowanie zmigrowanego bota...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Trwa rejestrowanie usługi Bot Service na platformie Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Trwa aktualizowanie rekordu bota...\",\r\n \"migrationDialogStatusCreatingRG\": \"Trwa tworzenie grupy zasobów...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Trwa migrowanie plików do nowego bota...\",\r\n \"migrationDialogStatusWrappingUp\": \"Trwa tworzenie otoki wdrożenia...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Trwa podłączanie bota do istniejącego magazynu...\",\r\n \"migrationDialogStatusDeployingSite\": \"Wdrażanie witryny internetowej\",\r\n \"migrationDialogStatusConfiguringSite\": \"Konfigurowanie witryny internetowej\",\r\n \"migrationDialogStatusDeploying\": \"Wdrażanie\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Trwa pobieranie nowych poświadczeń aplikacji funkcji...\",\r\n \"migrationDialogErrorNoSubs\": \"Nie można odnaleźć subskrypcji platformy Azure dla bieżącego użytkownika.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Nie można odnaleźć tokenu dostępu platformy Azure dla bieżącego użytkownika.\",\r\n \"migrationDialogErrorNoLocations\": \"Nie można odnaleźć lokalizacji dla wybranej subskrypcji platformy Azure.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Nie można znaleźć nazwy konta usługi Azure Storage w konfiguracji aplikacji.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Nazwa aplikacji jest niedostępna.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Nieprawidłowa nazwa aplikacji.\",\r\n \"migrationDialogErrorNoBotType\": \"Bieżący bot nie ma prawidłowego typu.\",\r\n \"migrationDialogErrorBotInvalid\": \"Nie można zmigrować tego bota, ponieważ jest on nieprawidłowy.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Nie można zmigrować tego bota z powodu braku punktu końcowego.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Nie można zmigrować tego bota z powodu braku informacji dotyczących inicjowania obsługi.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Nie można zmigrować tego bota z powodu braku nazwy grupy zasobów.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Nie można zmigrować tego bota z powodu braku identyfikatora subskrypcji platformy Azure.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Nie można zmigrować tego bota z powodu braku nazwy lokacji platformy Azure.\",\r\n \"migrationDialogABSv2TitleText\": \"Migracja niedostępna\",\r\n \"migrationDialogABSv2BodyText\": \"Migracja botów projektanta konwersacji (ABSv2) jest obecnie wyłączona.\",\r\n \"migrationDialogRegistrationBodyText\": \"Migracja botów „{0}” jest obecnie wyłączona.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Token platformy Azure wygasł.\",\r\n \"migrationDialogRefreshPage\": \"Odśwież stronę i ponów próbę wykonania migracji.\",\r\n \"migrationSubscriptionDisabled\": \"Wybrana subskrypcja platformy Azure jest wyłączona. Włącz ją, aby kontynuować migrację.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Ten katalog nie zawiera subskrypcji.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Do wykonania migracji tego bota wymagany jest pakiet Azure Functions Pack\",\r\n \"migrationDialogFuncPackBotMessage\": \"Boty funkcji węzłów muszą zostać umieszczone w pakiecie z pakietem Azure Functions Pack, aby można było wykonać ich migrację.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Dowiedz się, jak uruchomić pakiet Azure Functions Pack w kodzie bota\",\r\n \"tosDialog_Header\": \"Warunki świadczenia usługi\",\r\n \"tosDialog_AgreeButton\": \"Zgadzam się\",\r\n \"tosDialog_MessageChannels\": \"Warunki opisane na stronie Online Services — warunki nie dotyczą publikowania w kanałach. Na przykład warunki publikowania w kanałach firmy Microsoft nie obejmują warunków przetwarzania danych.\",\r\n \"tosDialog_MessageMigration\": \"Przeczytaj i zaakceptuj poniższe warunki.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Zgadzam się, że korzystanie z witryny Bot Framework jest regulowane przez {0} i {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Akceptuję {0} i {1} odnośnie mojego wdrożenia w kanale Cortana.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Akceptuję {0} i {1} odnośnie mojego wdrożenia w kanale <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Akceptuję {0} i {1} odnośnie mojego wdrożenia w kanałach <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"warunki mojej subskrypcji usługi Azure Bot Service\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Warunki publikacji w kanale Cortana\",\r\n \"tosDialog_MSPublicationTerms\": \"Warunki publikacji w kanałach firmy Microsoft\",\r\n \"tosDialog_MSPrivacyStatement\": \"Oświadczenie firmy Microsoft o ochronie prywatności\",\r\n \"notice\": \" POWIADOMIENIE: \",\r\n \"listElem\": \"{0}, \",\r\n \"andListEnd\": \"{0} i {1}\",\r\n \"analyticsChannelsDropdown\": \"Filtr kanałów\",\r\n \"analyticsPeriodDropdown\": \"Okres\",\r\n \"deprecatedChannel\": \"(przestarzały)\",\r\n \"openInComposer\": \"otwórz w kompozytorze\",\r\n \"downloadComposer\": \"Pobierz kompozytora\",\r\n}\r\n\r\nconst Resources_sv: IResources = {\r\n \"unsupportedBrowser_Azure\": \"Azure Bot Service har inte stöd för din webbläsare än.\",\r\n \"unsupportedBrowser\": \"Botsystemet har inte stöd för din webbläsare än.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Loggar in\",\r\n \"loadingBot\": \"Läser in bot...\",\r\n \"botIsNotReady\": \"Väntar på bot\",\r\n \"analyticsNotReady\": \"Väntar på att Application Insights ska konfigureras\",\r\n \"authorizingWebChat\": \"Godkänner chatt med bot\",\r\n \"signInFailure\": \"Ett fel inträffade vid inloggningen. Kontrollera att cookies från tredje part är aktiverade i webbläsaren.\",\r\n \"getChatTokenFailure\": \"Det gick inte att få en autentiseringskod för chatt. Uppdatera och försök igen.\",\r\n \"refreshSignInFailure\": \"Ett fel inträffade när din inloggningsinformation uppdaterades. Kontrollera att cookies från tredje part är aktiverade i webbläsaren.\",\r\n \"xhrResponse_400\": \"Åtgärden eller de angivna värdena är ogiltiga.\",\r\n \"xhrResponse_403\": \"Objektet kan inte nås eller modifieras.\",\r\n \"xhrResponse_404\": \"Objektet hittades inte.\",\r\n \"xhrResponse_500\": \"Ett internt fel uppstod hos servern.\",\r\n \"xhrResponse_501\": \"Den här åtgärden stöds inte.\",\r\n \"xhrResponse_Message\": \"Fel: %1\",\r\n \"xhrResponse_Unknown\": \"Ett okänt fel har uppstått.\",\r\n \"AddAFeaturedChannelTitle\": \"Lägg till en aktuell kanal\",\r\n \"ConnectToChannelsTitle\": \"Anslut till kanaler\",\r\n \"NoChannelsConfigured\": \"Du har inte anslutit några kanaler ännu. Välj en kanal att ansluta.\",\r\n \"MoreChannelsTitle\": \"Fler kanaler\",\r\n \"test\": \"Test\",\r\n \"startOver\": \"Börja om\",\r\n \"retentionTitle\": \"Bibehållning\",\r\n \"retentionDescription\": \"% användare som skickade meddelande igen (senaste 10 dagarna)\",\r\n \"retentionHeader\": \"Dagar senare\",\r\n \"retentionDate\": \"Datum\",\r\n \"retentionUsers\": \"Användare\",\r\n \"undetermined\": \"Obestämt\",\r\n \"loading\": \"läser in…\",\r\n \"noAnalyticsData\": \"inga data\",\r\n \"timespanLastHour\": \"Senaste timmen\",\r\n \"timespanLastDay\": \"Senaste dagen\",\r\n \"timespanLastWeek\": \"Senaste veckan\",\r\n \"timespanLastMonth\": \"Senaste månaden\",\r\n \"timespanLast90Days\": \"Senaste 90 dagarna\",\r\n \"timespanUnknown\": \"Okänd tidsrymd\",\r\n \"timelineCardUsersTitle\": \"Användare\",\r\n \"timelineCardMessagesTitle\": \"Aktiviteter\",\r\n \"totalsCardTitle\": \"Totalsumma\",\r\n \"analyticsNotConfigured\": \"Du har inte aktiverat statistik via Azure Application Insights än.\",\r\n \"analyticsNotConfiguredAction\": \"Ange dina Application Insights-nycklar och id för denna bot på följande sida:\",\r\n \"analyticsNotConfiguredActionIbiza\": \"Ange dina Application Insights-nycklar och id för denna bot i inställningarna.\",\r\n \"learnMore\": \"Mer information\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - fel: %2\",\r\n \"timelineTableLabel\": \"Mappning av tidslinjetabell %1 efter tid\",\r\n \"timelineChartLabel\": \"Mappning av tidslinjediagram %1 efter tid\",\r\n \"published\": \"Publicerad\",\r\n \"health\": \"Hälsa\",\r\n \"channelname\": \"Namn\",\r\n \"edit\": \"Redigera\",\r\n \"running\": \"Löpning\",\r\n \"issuesTemplate\": \"Problem (<%= length %>)\",\r\n \"warningTemplate\": \"Varningar (<%= length %>)\",\r\n \"channelPublished\": \"Publicerad\",\r\n \"tryOnCortana\": \"Prova i <%= Name %> – ta reda på hur\",\r\n \"tryOnChannel\": \"Prova i <%= Name %>\",\r\n \"manageInCortana\": \"Hantera i kontrollpanelen för Cortana\",\r\n \"channelRejected\": \"Avvisad\",\r\n \"channelMoreDetails\": \"Fler detaljer\",\r\n \"channelResubmit\": \"Skicka till granskning igen...\",\r\n \"channelGetEmbedCodes\": \"Skaffa inbäddade botkoder\",\r\n \"channelConfigDeleteMessage\": \"Den här åtgärden tar bort all information om kanalkonfigurationen. Vill du fortsätta?\",\r\n \"channelConfigDeleteHeader\": \"Ta bort kanal\",\r\n \"channelConfigDeleteOk\": \"Ja, ta bort den\",\r\n \"channelConfigDeleteCancel\": \"Nej, behåll\",\r\n \"channelConfigLeaveMessage\": \"Du har ändringar som inte sparats i detta dokument. Vill du lämna den här sidan?\",\r\n \"channelConfigLeaveHeader\": \"Ta bort ändringar\",\r\n \"channelConfigLeaveOk\": \"Ja, lämna sidan\",\r\n \"channelConfigLeaveCancel\": \"Nej, stanna kvar på sidan\",\r\n \"channelEdit\": \"Redigera\",\r\n \"dialogPleaseWait\": \"Vänta...\",\r\n \"embedPanelTitle\": \"Inbäddad botkod\",\r\n \"embedPanelDescription\": \"Välj en kanal so koden ska bäddas in i. Kopiera och klistra koden till din webbplats.\",\r\n \"embedPanelFacebookFooter\": \"Facebook kräver att du inkluderar deras JavaScript SDK på sidan för att använda inbäddningen.\",\r\n \"embedPanelLearnMore\": \"Mer information.\",\r\n \"embedPanelChannelMovedHeader\": \"Inbäddad kod för %1 har flyttats\",\r\n \"embedPanelChannelMovedInstructions\": \"Klicka här för att öppna konfigurationssidan för %1\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Inbäddad kod för %1\",\r\n \"embedPanelGettingCodes\": \"Hämtar koder...\",\r\n \"embedPanelNoCodeAvailable\": \"Inga inbäddade koder är tillgängliga för boten.\",\r\n \"channelIssuesPanelSubtitle\": \"Senaste problemen\",\r\n \"channelIssuesPanelClearall\": \"Rensa alla\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Tid\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Meddelande\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"Korrelations-ID\",\r\n \"unsavedChangesWillBeLost\": \"Ändringar som inte sparats går förlorade.\",\r\n \"altImageChannel\": \"Konfigurera kanalen %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"E-postadress\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype för företag\",\r\n \"_SkypeforBusiness\": \"Skype för företag-märke\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRERA BOT\",\r\n \"migrationBannerCTAStartMigrating\": \"BÖRJA MIGRERA\",\r\n \"migrationBannerBlurb1\": \"Vi lanserar en ny Azure Bot Service och migrerar alla bottar till den nya tjänsten senast 2018-03-31.\",\r\n \"migrationBannerBlurb2\": \"om migreringen.\",\r\n \"migrationBannerSuggestedBlurb\": \"Migrering till Azure Bot Service är valfri för den här roboten.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Robotar som måste migreras till Azure Bot Service måste migreras nu för att undvika avbrott i tjänsten.\",\r\n \"migrationBannerBlockedBlurb\": \"Robotmigrering är försenad. Migrera nu för att undvika avbrott i tjänsten.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Om du konfigurerar den här kanalen måste din robot migreras till Azure Bot Service senast 2018-03-31. Vill du konfigurera den här kanalen?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Den här kanalen är bara tillgänglig för robotar i Azure Bot Service. Vill du migrera denna robot?\",\r\n \"channelRequiresABSBot\": \"Den här kanalen är bara tillgänglig för robotar i Azure Bot Service.\",\r\n \"botRequiresMigrationDialogHeader\": \"Migrering krävs för robot\",\r\n \"botRequiresMigrationDialogMessage\": \"Robotmigrering är försenad. Migrera nu för att undvika avbrott i tjänsten.\",\r\n \"yesMigrateThisBot\": \"Ja, migrera denna robot\",\r\n \"myBotsMigrationStatusMigrated\": \"Migrerad\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Krävs\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Ej obligatoriskt\",\r\n \"myBotsMigrationButtonMigrate\": \"Migrera\",\r\n \"myBotsMigrationButtonRollback\": \"Återställ migrering\",\r\n \"deleteBotDialogDeleteButtonText\": \"Ta bort bot\",\r\n \"cancelButtonText\": \"Avbryt\",\r\n \"deleteBotDialogTitleText\": \"Botten tas bort om du fortsätter\",\r\n \"deleteBotDialogBodyText\": \"Den här åtgärden raderar all data som är associerad med botten och går inte att ångra. Är du säker?\",\r\n \"deleteBotDialogStatusDeleting\": \"Tar bort bot …\",\r\n \"deleteBotDialogStatusDeleted\": \"Botten har tagits bort\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Ja, återställ\",\r\n \"rollbackBotDialogTitleText\": \"Vill du återställa?\",\r\n \"rollbackBotDialogBodyText\": \"Migreringen återställs helt och du måste börja om från början med migreringsprocessen. Vill du fortsätta?\",\r\n \"rollbackBotDialogErrorInfo\": \"Det gick inte att hämta botinformation från servern.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Det går inte att återställa. Det finns ingen slutpunkt för återställning.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Det går inte att återställa. Hittade ingen Azure-token att kontakta Azure med.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Samlar botinfo …\",\r\n \"rollbackBotDialogStatusPreparing\": \"Förbereder bot …\",\r\n \"rollbackBotDialogStatusReverting\": \"Återställer bot …\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Tar bort uppgraderad app …\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Tar bort distributionsregister …\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Återställning klar\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"har återställts.\",\r\n \"okButtonText\": \"OK\",\r\n \"errorMessageErrorOccurred\": \"Ett fel uppstod\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Hämtar botinfo …\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Hämtar Azure-info …\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Hämtar bottens appinställningar …\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Initierar migrerad bot …\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Registrerar Bot Service hos Azure …\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Uppdaterar botregister …\",\r\n \"migrationDialogStatusCreatingRG\": \"Skapar resursgrupp …\",\r\n \"migrationDialogStatusMigratingFiles\": \"Migrerar filer till ny bot …\",\r\n \"migrationDialogStatusWrappingUp\": \"Avslutar distribuering …\",\r\n \"migrationDialogStatusDeployingStorage\": \"Ansluter bot till befintlig lagring …\",\r\n \"migrationDialogStatusDeployingSite\": \"Webbplatsen distribueras\",\r\n \"migrationDialogStatusConfiguringSite\": \"Konfigurerar webbplats\",\r\n \"migrationDialogStatusDeploying\": \"Distribuerar\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Hämtar nya autentiseringsuppgifter för funktionsappen …\",\r\n \"migrationDialogErrorNoSubs\": \"Det gick inte att hitta några Azure-prenumerationer för användaren.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Hittade ingen Azure-åtkomsttoken för användaren.\",\r\n \"migrationDialogErrorNoLocations\": \"Det gick inte att hitta några platser för den valda Azure-prenumerationen.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Hittade inget Azure Storage-kontonamn i appkonfigurationen.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Appnamnet är inte tillgängligt.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Ogiltigt appnamn.\",\r\n \"migrationDialogErrorNoBotType\": \"Botten har ingen giltig typ.\",\r\n \"migrationDialogErrorBotInvalid\": \"Det går inte att migrera botten eftersom den är ogiltig.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Det går inte att migrera botten eftersom slutpunkten saknas.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Det går inte att migrera botten eftersom etableringsinfo saknas.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Det går inte att migrera botten eftersom resursgruppnamnet saknas.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Det går inte att migrera botten eftersom Azure-prenumerations-id saknas.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Det går inte att migrera botten eftersom Azure-platsnamnet saknas.\",\r\n \"migrationDialogABSv2TitleText\": \"Migrering är inte tillgänglig\",\r\n \"migrationDialogABSv2BodyText\": \"Migrering är för närvarande inaktiverat för konversationsdesignbottar (ABSv2).\",\r\n \"migrationDialogRegistrationBodyText\": \"Migrering är inaktiverad för bottar av typen '{0}'.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Azure-token har upphört.\",\r\n \"migrationDialogRefreshPage\": \"Uppdatera sidan och försök migrera igen.\",\r\n \"migrationSubscriptionDisabled\": \"Den valda Azure-prenumerationen är inaktiverad. Aktivera om du vill fortsätta migreringen.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Den här katalogen innehåller inte någon prenumeration.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Azure Functions Pack krävs för att den här boten ska kunna migreras\",\r\n \"migrationDialogFuncPackBotMessage\": \"Nodfunktionsbotar måste paketeras med Azure Functions Pack innan de kan migreras.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Läs mer om hur du kör Azure Functions Pack på din botkod\",\r\n \"tosDialog_Header\": \"Villkor för tjänsten\",\r\n \"tosDialog_AgreeButton\": \"Godkänn\",\r\n \"tosDialog_MessageChannels\": \"Villkoren för onlinetjänster gäller inte för publicering på kanaler. Villkoren för publicering på Microsoft-kanaler innehåller till exempel inte databehandlingsvillkor.\",\r\n \"tosDialog_MessageMigration\": \"Läs och godkänn följande villkor.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Jag samtycker till att användningen av Bot Framework-webbplatsen omfattas av {0} och {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Jag godkänner {0} och {1} för min distribuering på Cortana-kanalen.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Jag godkänner {0} och {1} för min distribuering på kanalen <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Jag godkänner {0} och {1} för min distribuering på kanalerna <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"villkor för min Azure Bot Service-prenumeration\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Publiceringsvillkor för Cortana-kanal\",\r\n \"tosDialog_MSPublicationTerms\": \"Villkor för Microsoft Channel Publication\",\r\n \"tosDialog_MSPrivacyStatement\": \"Microsofts sekretesspolicyer\",\r\n \"notice\": \" OBS!\",\r\n \"listElem\": \"{0}, \",\r\n \"andListEnd\": \"{0} och {1}\",\r\n \"analyticsChannelsDropdown\": \"Kanalfilter\",\r\n \"analyticsPeriodDropdown\": \"Tidsperiod\",\r\n \"deprecatedChannel\": \"(inaktuell)\",\r\n \"openInComposer\": \"öppna i Composer\",\r\n \"downloadComposer\": \"Hämta Composer\",\r\n}\r\n\r\nconst Resources_tr: IResources = {\r\n \"unsupportedBrowser_Azure\": \"Azure Bot Hizmeti henüz tarayıcınızı desteklemiyor.\",\r\n \"unsupportedBrowser\": \"Bot Framework henüz tarayıcınızı desteklemiyor.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Oturum açılıyor\",\r\n \"loadingBot\": \"Bot yükleniyor...\",\r\n \"botIsNotReady\": \"Botun hazır olması bekleniyor\",\r\n \"analyticsNotReady\": \"Application Insights'ın yapılandırılması bekleniyor\",\r\n \"authorizingWebChat\": \"Bot ile Sohbet Yetkilendiriliyor\",\r\n \"signInFailure\": \"Oturumunuz açılırken bir hata oluştu. Tarayıcıda üçüncü taraf çerezlerin etkinleştirildiğinden emin olun.\",\r\n \"getChatTokenFailure\": \"Sohbet yetkilendirme belirteci alınırken bir hata oluştu. Yenileyin ve tekrar deneyin.\",\r\n \"refreshSignInFailure\": \"Oturum açma bilgilerinizi yenilerken bir hata oluştu. Tarayıcıda üçüncü taraf çerezlerin etkinleştirildiğinden emin olun.\",\r\n \"xhrResponse_400\": \"Eylem veya sağlanan değerler geçersiz.\",\r\n \"xhrResponse_403\": \"Bu öğeye erişilemiyor veya öğe değiştirilemiyor.\",\r\n \"xhrResponse_404\": \"Öğe bulunamadı.\",\r\n \"xhrResponse_500\": \"Sunucuda iç hata oluştu.\",\r\n \"xhrResponse_501\": \"Bu işlem desteklenmiyor.\",\r\n \"xhrResponse_Message\": \"Hata: %1\",\r\n \"xhrResponse_Unknown\": \"Bilinmeyen bir hata oluştu.\",\r\n \"AddAFeaturedChannelTitle\": \"Öne çıkan kanal ekleyin\",\r\n \"ConnectToChannelsTitle\": \"Kanallara bağlan\",\r\n \"NoChannelsConfigured\": \"Henüz kanal bağlamadınız. Bağlanacak bir kanal seçin.\",\r\n \"MoreChannelsTitle\": \"Daha fazla kanal\",\r\n \"test\": \"Test\",\r\n \"startOver\": \"Baştan başla\",\r\n \"retentionTitle\": \"Tutma\",\r\n \"retentionDescription\": \"% kullanıcı yeniden ileti gönderdi (son 10 gün)\",\r\n \"retentionHeader\": \"Geçen gün sayısı\",\r\n \"retentionDate\": \"Tarih\",\r\n \"retentionUsers\": \"Kullanıcılar\",\r\n \"undetermined\": \"Belirsiz\",\r\n \"loading\": \"yükleniyor...\",\r\n \"noAnalyticsData\": \"veri yok\",\r\n \"timespanLastHour\": \"Son Saat\",\r\n \"timespanLastDay\": \"Son Gün\",\r\n \"timespanLastWeek\": \"Geçen Hafta\",\r\n \"timespanLastMonth\": \"Geçen Ay\",\r\n \"timespanLast90Days\": \"Son 90 Gün\",\r\n \"timespanUnknown\": \"Bilinmeyen zaman aralığı\",\r\n \"timelineCardUsersTitle\": \"Kullanıcılar\",\r\n \"timelineCardMessagesTitle\": \"Etkinlikler\",\r\n \"totalsCardTitle\": \"Genel Toplamlar\",\r\n \"analyticsNotConfigured\": \"Henüz Azure Application Insights aracılığıyla Analiz'i etkinleştirmediniz.\",\r\n \"analyticsNotConfiguredAction\": \"Şu sayfada bu bot için Application Insights Anahtarlarınızı ve Kimliğinizi sağlayın: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Ayarlar sayfasında bu bot için Application Insights Anahtarlarınızı ve Kimliğinizi sağlayın.\",\r\n \"learnMore\": \"Daha fazla bilgi edinin\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - hata: %2\",\r\n \"timelineTableLabel\": \"Zamana göre zaman çizelgesi %1 tablosu eşleme\",\r\n \"timelineChartLabel\": \"Zamana göre zaman çizelgesi %1 grafiği eşleme\",\r\n \"published\": \"Yayımlandı\",\r\n \"health\": \"Sistem Durumu\",\r\n \"channelname\": \"Ad\",\r\n \"edit\": \"Düzenle\",\r\n \"running\": \"Çalışıyor\",\r\n \"issuesTemplate\": \"Sorunlar (<%= length %>)\",\r\n \"warningTemplate\": \"Uyarılar (<%= length %>)\",\r\n \"channelPublished\": \"Yayımlandı\",\r\n \"tryOnCortana\": \"<%= Name %> kanalında deneyin. Nasıl yapılacağını öğrenin\",\r\n \"tryOnChannel\": \"<%= Name %> kanalında deneyin\",\r\n \"manageInCortana\": \"Cortana panosunda yönet\",\r\n \"channelRejected\": \"Reddedildi\",\r\n \"channelMoreDetails\": \"Diğer ayrıntılar\",\r\n \"channelResubmit\": \"Gözden geçirme için yeniden gönder...\",\r\n \"channelGetEmbedCodes\": \"Bot ekleme kodlarını alın\",\r\n \"channelConfigDeleteMessage\": \"Bu eylem tüm kanal yapılandırması bilgilerini silecek. Devam etmek istediğinizden emin misiniz?\",\r\n \"channelConfigDeleteHeader\": \"Kanalı sil\",\r\n \"channelConfigDeleteOk\": \"Evet, sil\",\r\n \"channelConfigDeleteCancel\": \"Hayır, kalsın\",\r\n \"channelConfigLeaveMessage\": \"Bu belgede kaydedilmemiş değişiklikleriniz var. Bu sayfadan ayrılmak istediğinizden emin misiniz?\",\r\n \"channelConfigLeaveHeader\": \"Değişiklikleri at\",\r\n \"channelConfigLeaveOk\": \"Evet, sayfadan ayrıl\",\r\n \"channelConfigLeaveCancel\": \"Hayır, sayfada kal\",\r\n \"channelEdit\": \"Düzenle\",\r\n \"dialogPleaseWait\": \"Lütfen bekleyin...\",\r\n \"embedPanelTitle\": \"Bot ekleme kodu\",\r\n \"embedPanelDescription\": \"Bir kanalın ekleme kodunu almak için kanalı seçin. Kodu kopyalayıp web sitenize yapıştırın.\",\r\n \"embedPanelFacebookFooter\": \"Facebook, bu eklemeyi kullanabilmeniz için sayfanıza Facebook'un JavaScript SDK'sını eklemenizi gerektirir.\",\r\n \"embedPanelLearnMore\": \"Daha fazla bilgi edinin.\",\r\n \"embedPanelChannelMovedHeader\": \"%1 için ekleme kodu taşındı\",\r\n \"embedPanelChannelMovedInstructions\": \"%1 yapılandırma sayfasını açmak için buraya tıklayın\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"%1 için ekleme kodu\",\r\n \"embedPanelGettingCodes\": \"Kodlar alınıyor...\",\r\n \"embedPanelNoCodeAvailable\": \"Bu bot için kullanılabilir ekleme kodu yok.\",\r\n \"channelIssuesPanelSubtitle\": \"En son sorunlar\",\r\n \"channelIssuesPanelClearall\": \"Tümünü Temizle\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Saat\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"İleti\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"Bağıntı Kimliği\",\r\n \"unsavedChangesWillBeLost\": \"Kaydedilmeyen değişiklikler kaybolacak.\",\r\n \"altImageChannel\": \"%1 kanalını yapılandır\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Doğrudan Hat\",\r\n \"Email\": \"E-posta\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype Kurumsal\",\r\n \"_SkypeforBusiness\": \"Skype Kurumsal markası\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"BU BOTA GEÇİR\",\r\n \"migrationBannerCTAStartMigrating\": \"GEÇİŞİ BAŞLAT\",\r\n \"migrationBannerBlurb1\": \"Yeni Azure Bot Hizmeti'nin başlamasıyla, 31.03.2018 tarihi itibariyle tüm botları yeni hizmete geçiriyoruz.\",\r\n \"migrationBannerBlurb2\": \"geçiş hakkında.\",\r\n \"migrationBannerSuggestedBlurb\": \"Bu bot için Azure Bot Hizmeti'ne geçiş isteğe bağlıdır.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Azure Bot Hizmeti'ne taşıma gerektiren botlar hizmet kesintisi olmaması için şimdi taşınmalıdır.\",\r\n \"migrationBannerBlockedBlurb\": \"Bot taşıma işlemi gecikmiş. Hizmet kesintisi olmaması için lütfen şimdi taşıyın.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Bu kanalı yapılandırırsanız, botunuzun 31.03.2018 tarihine kadar Azure Bot Hizmeti'ne taşınması gerekir. Bu kanalı yapılandırmak istediğinizden emin misiniz?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Bu kanal sadece Azure Bot Hizmeti'ndeki botların kullanımı içindir. Bu botu taşımak istiyor musunuz?\",\r\n \"channelRequiresABSBot\": \"Bu kanal sadece Azure Bot Hizmeti'ndeki botların kullanımına açıktır.\",\r\n \"botRequiresMigrationDialogHeader\": \"Botun taşınması gerekiyor\",\r\n \"botRequiresMigrationDialogMessage\": \"Bot taşıma işlemi gecikmiş. Hizmet kesintisi olmaması için lütfen şimdi taşıyın.\",\r\n \"yesMigrateThisBot\": \"Evet, bu botu taşı\",\r\n \"myBotsMigrationStatusMigrated\": \"Geçirildi\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Gerekli\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Gerekli değil\",\r\n \"myBotsMigrationButtonMigrate\": \"Geçir\",\r\n \"myBotsMigrationButtonRollback\": \"Geçişi geri al\",\r\n \"deleteBotDialogDeleteButtonText\": \"Botu sil\",\r\n \"cancelButtonText\": \"İptal\",\r\n \"deleteBotDialogTitleText\": \"Bu botu silmek üzeresiniz\",\r\n \"deleteBotDialogBodyText\": \"Bu işlem, bu bot ile ilişkilendirilmiş tüm verileri siler ve geri alınamaz. Emin misiniz?\",\r\n \"deleteBotDialogStatusDeleting\": \"Bot siliniyor...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot silindi\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Evet, geri al\",\r\n \"rollbackBotDialogTitleText\": \"Geri almak istediğinizden emin misiniz?\",\r\n \"rollbackBotDialogBodyText\": \"Bu işlem geçişi tamamen geri alır ve geçiş sürecini en baştan başlatmanız gerekir. Devam etmek istediğinizden emin misiniz?\",\r\n \"rollbackBotDialogErrorInfo\": \"Bot bilgileri sunucudan alınırken hata oluştu.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Geri alma gerçekleştirilemiyor. Hiçbir geri alma uç noktası bulunamadı.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Geri alma gerçekleştirilemiyor. Azure ile iletişime geçmek için Azure Belirteci bulunamadı.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Bot bilgileri toplanıyor...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Bot hazırlanıyor...\",\r\n \"rollbackBotDialogStatusReverting\": \"Bot önceki durumuna döndürülüyor...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Yükseltilen uygulama siliniyor...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Dağıtım kaydı siliniyor...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Geri alma tamamlandı\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"başarıyla geri alındı.\",\r\n \"okButtonText\": \"Tamam\",\r\n \"errorMessageErrorOccurred\": \"Bir hata oluştu\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Bot bilgileri alınıyor...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Azure bilgileri alınıyor...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Bot uygulaması ayarları alınıyor...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Geçirilen bot başlatılıyor...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Bot Hizmeti Azure'a kaydettiriliyor...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Bot kaydı güncelleniyor...\",\r\n \"migrationDialogStatusCreatingRG\": \"Kaynak grubu oluşturuluyor...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Dosyalar yeni bota geçiriliyor...\",\r\n \"migrationDialogStatusWrappingUp\": \"Dağıtım tamamlanıyor...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Bot, mevcut depolamaya bağlanıyor...\",\r\n \"migrationDialogStatusDeployingSite\": \"Web sitesi dağıtılıyor\",\r\n \"migrationDialogStatusConfiguringSite\": \"Web sitesi yapılandırılıyor\",\r\n \"migrationDialogStatusDeploying\": \"Dağıtılıyor\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Yeni işlev uygulaması kimlik bilgileri alınıyor...\",\r\n \"migrationDialogErrorNoSubs\": \"Geçerli kullanıcı için hiçbir Azure aboneliği bulunamadı.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Geçerli kullanıcı için Azure erişim belirteci bulunamadı.\",\r\n \"migrationDialogErrorNoLocations\": \"Seçili Azure aboneliği için hiçbir konum bulunamadı.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Uygulama yapılandırmasında Azure depolama hesabı adı bulunamadı.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Uygulama adı kullanılamıyor.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Geçersiz uygulama adı.\",\r\n \"migrationDialogErrorNoBotType\": \"Geçerli bot geçerli bir türe sahip değil.\",\r\n \"migrationDialogErrorBotInvalid\": \"Bot geçersiz olduğu için bu bot geçirilemiyor.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Uç noktası eksik olduğu için bu bot geçirilemiyor.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Sağlama bilgisi eksik olduğu için bu bot geçirilemiyor.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Kaynak grubu adı eksik olduğu için bu bot geçirilemiyor.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Azure abonelik kimliği eksik olduğu için bu bot geçirilemiyor.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Azure site adı eksik olduğu için bu bot geçirilemiyor.\",\r\n \"migrationDialogABSv2TitleText\": \"Geçiş kullanılamıyor\",\r\n \"migrationDialogABSv2BodyText\": \"Konuşma Tasarımcısı (ABSv2) botları için geçiş şu anda devre dışı.\",\r\n \"migrationDialogRegistrationBodyText\": \"\\\"{0}\\\" botları için geçiş şu anda devre dışı.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Azure belirtecinin süresi doldu.\",\r\n \"migrationDialogRefreshPage\": \"Lütfen sayfayı yenileyin ve geçişi yeniden deneyin.\",\r\n \"migrationSubscriptionDisabled\": \"Seçili Azure aboneliği devre dışı. Lütfen geçişe devam etmek için etkinleştirin.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Bu dizin hiçbir abonelik içermiyor.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Bu botu taşımak için Azure İşlevleri Paketi gereklidir\",\r\n \"migrationDialogFuncPackBotMessage\": \"Düğüm İşlevleri botlarının taşınabilmesi için Azure İşlevleri Paketi ile paketlenmeleri gerekir.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Azure İşlevleri Paketini bot kodunuzda nasıl çalıştıracağınızı öğrenin\",\r\n \"tosDialog_Header\": \"Hizmet Şartları\",\r\n \"tosDialog_AgreeButton\": \"Kabul Et\",\r\n \"tosDialog_MessageChannels\": \"Çevrimiçi Hizmet Şartları, kanallardaki yayınlar için geçerli değildir. Örneğin Microsoft kanallarındaki yayınlara ilişkin şartlar, veri işleme şartları sunmamaktadır.\",\r\n \"tosDialog_MessageMigration\": \"Lütfen aşağıdaki şartları okuyun ve kabul edin.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Bot Framework sitesi kullanımımın {0} ve {1} hükümlerine tabi olduğunu kabul ederim.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Cortana kanalına yönelik dağıtım işlemim için {0} ve {1} kabul ediyorum.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"<%= channelslist %> kanalına yönelik dağıtım işlemim için {0} ve {1} kabul ediyorum.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"<%= channelslist %> kanallarına yönelik dağıtım işlemim için {0} ve {1} kabul ediyorum.\",\r\n \"tosDialog_ABSTerms\": \"Azure Bot Hizmeti için aboneliğimin şartları\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Cortana Kanalı Yayımlama Şartları\",\r\n \"tosDialog_MSPublicationTerms\": \"Microsoft Kanal Yayınlama Şartları\",\r\n \"tosDialog_MSPrivacyStatement\": \"Microsoft Gizlilik Bildirimlerini\",\r\n \"notice\": \" UYARI:\",\r\n \"listElem\": \"{0},\",\r\n \"andListEnd\": \"{0} ve {1}\",\r\n \"analyticsChannelsDropdown\": \"Kanal filtresi\",\r\n \"analyticsPeriodDropdown\": \"Zaman aralığı\",\r\n \"deprecatedChannel\": \"(kullanım dışı)\",\r\n \"openInComposer\": \"Composer'da aç\",\r\n \"downloadComposer\": \"Composer'ı indir\",\r\n}\r\n\r\nconst Resources_pt_br: IResources = {\r\n \"unsupportedBrowser_Azure\": \"O Serviço de Bot do Azure ainda não oferece suporte ao seu navegador.\",\r\n \"unsupportedBrowser\": \"O Bot Framework ainda não dá suporte para seu navegador.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Fazendo login\",\r\n \"loadingBot\": \"Carregando bot...\",\r\n \"botIsNotReady\": \"Aguardando que o bot esteja pronto\",\r\n \"analyticsNotReady\": \"Aguardando que o Application Insights seja configurado\",\r\n \"authorizingWebChat\": \"Autorizando Chat com Bot\",\r\n \"signInFailure\": \"Ocorreu um erro na sua entrada. Verifique se cookies de terceiros estão habilitados no navegador.\",\r\n \"getChatTokenFailure\": \"Ocorreu um erro ao obter um token de autorização do Chat. Atualize e tente novamente.\",\r\n \"refreshSignInFailure\": \"Ocorreu um erro ao atualizar suas informações de entrada. Verifique se cookies de terceiros estão habilitados no navegador.\",\r\n \"xhrResponse_400\": \"A ação ou os valores fornecidos são inválidos.\",\r\n \"xhrResponse_403\": \"Este item não pode ser acessado ou modificado.\",\r\n \"xhrResponse_404\": \"O item não foi encontrado.\",\r\n \"xhrResponse_500\": \"Ocorreu um erro interno no servidor.\",\r\n \"xhrResponse_501\": \"Esta operação não tem suporte.\",\r\n \"xhrResponse_Message\": \"Erro: %1\",\r\n \"xhrResponse_Unknown\": \"Ocorreu um erro desconhecido.\",\r\n \"AddAFeaturedChannelTitle\": \"Adicionar um canal de destaque\",\r\n \"ConnectToChannelsTitle\": \"Conectar-se a canais\",\r\n \"NoChannelsConfigured\": \"Você ainda não se conectou a qualquer canal. Selecione um canal para se conectar.\",\r\n \"MoreChannelsTitle\": \"Mais canais\",\r\n \"test\": \"Exame\",\r\n \"startOver\": \"Recomeçar\",\r\n \"retentionTitle\": \"Retenção\",\r\n \"retentionDescription\": \"% usuários que enviaram a mensagem novamente (últimos 10 dias)\",\r\n \"retentionHeader\": \"Dias depois\",\r\n \"retentionDate\": \"Data\",\r\n \"retentionUsers\": \"Usuários\",\r\n \"undetermined\": \"Indeterminado\",\r\n \"loading\": \"carregando...\",\r\n \"noAnalyticsData\": \"sem dados\",\r\n \"timespanLastHour\": \"Última Hora\",\r\n \"timespanLastDay\": \"Último Dia\",\r\n \"timespanLastWeek\": \"Última Semana\",\r\n \"timespanLastMonth\": \"Último Mês\",\r\n \"timespanLast90Days\": \"Últimos 90 Dias\",\r\n \"timespanUnknown\": \"Período desconhecido\",\r\n \"timelineCardUsersTitle\": \"Usuários\",\r\n \"timelineCardMessagesTitle\": \"Atividades\",\r\n \"totalsCardTitle\": \"Totais Gerais\",\r\n \"analyticsNotConfigured\": \"Você ainda não habilitou Análises via Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Forneça as Chaves e ID do Application Insights para este bot na página a seguir: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Forneça as Chaves e ID do Application Insights para este bot na página de configurações. \",\r\n \"learnMore\": \"Saiba mais\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - erro: %2\",\r\n \"timelineTableLabel\": \"Mapeamento de tabela de linha do tempo %1 por tempo\",\r\n \"timelineChartLabel\": \"Mapeamento de gráfico de linha do tempo %1 por tempo\",\r\n \"published\": \"Publicado\",\r\n \"health\": \"Integridade\",\r\n \"channelname\": \"Nome\",\r\n \"edit\": \"Editar\",\r\n \"running\": \"Corrida\",\r\n \"issuesTemplate\": \"Problemas (<%= length %>)\",\r\n \"warningTemplate\": \"Avisos (<%= length %>)\",\r\n \"channelPublished\": \"Publicado\",\r\n \"tryOnCortana\": \"Tente em <%= Name %> - saiba como\",\r\n \"tryOnChannel\": \"Tente em <%= Name %>\",\r\n \"manageInCortana\": \"Gerenciar no painel da Cortana\",\r\n \"channelRejected\": \"Rejeitado\",\r\n \"channelMoreDetails\": \"Mais detalhes\",\r\n \"channelResubmit\": \"Reenviar para análise...\",\r\n \"channelGetEmbedCodes\": \"Obter códigos de inserção de bot\",\r\n \"channelConfigDeleteMessage\": \"Esta ação excluirá todas as informações de configuração do canal. Tem certeza de que deseja continuar?\",\r\n \"channelConfigDeleteHeader\": \"Excluir canal\",\r\n \"channelConfigDeleteOk\": \"Sim, excluir\",\r\n \"channelConfigDeleteCancel\": \"Não, manter\",\r\n \"channelConfigLeaveMessage\": \"Não foram salvas alterações neste documento. Tem certeza de que deseja sair desta página?\",\r\n \"channelConfigLeaveHeader\": \"Descartar alterações\",\r\n \"channelConfigLeaveOk\": \"Sim, sair da página\",\r\n \"channelConfigLeaveCancel\": \"Não, permanecer na página\",\r\n \"channelEdit\": \"Editar\",\r\n \"dialogPleaseWait\": \"Aguarde...\",\r\n \"embedPanelTitle\": \"Código de inserção do bot\",\r\n \"embedPanelDescription\": \"Escolha um canal para obter o código de inserção para ele. Copie e cole o código em seu site.\",\r\n \"embedPanelFacebookFooter\": \"Para usar este código de inserção, o Facebook exige que você inclua o SDK do JavaScript dele em sua página.\",\r\n \"embedPanelLearnMore\": \"Saiba mais.\",\r\n \"embedPanelChannelMovedHeader\": \"O código de inserção para %1 foi movido\",\r\n \"embedPanelChannelMovedInstructions\": \"Clique aqui para abrir a página de configuração de %1\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Código de inserção para %1\",\r\n \"embedPanelGettingCodes\": \"Obtendo códigos...\",\r\n \"embedPanelNoCodeAvailable\": \"Nenhum código de inserção disponível para este bot.\",\r\n \"channelIssuesPanelSubtitle\": \"Problemas recentes\",\r\n \"channelIssuesPanelClearall\": \"Limpar Tudo\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Hora\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Mensagem\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"ID de Correlação\",\r\n \"unsavedChangesWillBeLost\": \"As alterações não salvas serão perdidas.\",\r\n \"altImageChannel\": \"Configurar canal %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"Email\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype for Business\",\r\n \"_SkypeforBusiness\": \"Marca Skype for Business\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRAR ESTE BOT\",\r\n \"migrationBannerCTAStartMigrating\": \"INICIAR MIGRAÇÃO\",\r\n \"migrationBannerBlurb1\": \"Com o lançamento do Serviço de Bot do Azure, estamos migrando todos os bots para o novo serviço até 31/03/2018.\",\r\n \"migrationBannerBlurb2\": \"sobre a migração.\",\r\n \"migrationBannerSuggestedBlurb\": \"A migração para o Serviço de Bot do Azure é opcional para este bot.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Os bots que requerem a migração para o Serviço de Bot do Azure devem migrar agora para evitar a interrupção do serviço.\",\r\n \"migrationBannerBlockedBlurb\": \"O prazo para a migração do bot venceu. Migre-o agora para evitar a interrupção do serviço.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Se você configurar este canal, seu bot deverá migrar para o Serviço de Bot do Azure até 31/3/2018. Tem certeza de que deseja configurar este canal?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Este canal está disponível apenas para bots do Serviço de Bot do Azure. Deseja migrar este bot?\",\r\n \"channelRequiresABSBot\": \"Este canal está disponível apenas para bots do Serviço de Bot do Azure.\",\r\n \"botRequiresMigrationDialogHeader\": \"O bot requer migração\",\r\n \"botRequiresMigrationDialogMessage\": \"O prazo para a migração do bot venceu. Migre-o agora para evitar a interrupção do serviço.\",\r\n \"yesMigrateThisBot\": \"Sim, migrar este bot\",\r\n \"myBotsMigrationStatusMigrated\": \"Migração concluída\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Obrigatório\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Não é obrigatório\",\r\n \"myBotsMigrationButtonMigrate\": \"Migrar\",\r\n \"myBotsMigrationButtonRollback\": \"Reverter migração\",\r\n \"deleteBotDialogDeleteButtonText\": \"Excluir bot\",\r\n \"cancelButtonText\": \"Cancelar\",\r\n \"deleteBotDialogTitleText\": \"Você está prestes a excluir este bot\",\r\n \"deleteBotDialogBodyText\": \"Este ação apagará todos os dados associados com este bot e não pode ser desfeita. Tem certeza?\",\r\n \"deleteBotDialogStatusDeleting\": \"Excluindo bot...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot excluído\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Sim, reverter\",\r\n \"rollbackBotDialogTitleText\": \"Tem certeza de que deseja reverter?\",\r\n \"rollbackBotDialogBodyText\": \"Esta ação reverterá completamente a migração e você terá que iniciar o processo de migração novamente do início. Tem certeza de que deseja prosseguir?\",\r\n \"rollbackBotDialogErrorInfo\": \"Erro ao recuperar informações do bot do servidor.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Não é possível executar a reversão. Não foi encontrado nenhum ponto de extremidade de reversão.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Não é possível executar a reversão. Falha em localizar um Token do Azure para contatar o Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Reunindo informações do bot...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Preparando bot...\",\r\n \"rollbackBotDialogStatusReverting\": \"Revertendo bot..\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Excluindo aplicativo com upgrade...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Excluindo registro de implantação...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Reversão concluída\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"foi revertida com êxito.\",\r\n \"okButtonText\": \"Ok\",\r\n \"errorMessageErrorOccurred\": \"Ocorreu um erro\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Obtendo as informações do bot...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Obtendo as informações do Azure...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Obtendo as configurações de aplicativo do bot...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Inicializando o bot migrado...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Registrando o Serviço do Bot com o Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Atualizando o registro do bot...\",\r\n \"migrationDialogStatusCreatingRG\": \"Criando um grupo de recursos...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Migrando arquivos para o novo bot...\",\r\n \"migrationDialogStatusWrappingUp\": \"Finalizando implantação...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Conectando o bot ao armazenamento...\",\r\n \"migrationDialogStatusDeployingSite\": \"Implantando o site\",\r\n \"migrationDialogStatusConfiguringSite\": \"Configurando o site\",\r\n \"migrationDialogStatusDeploying\": \"Implantando\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Obtendo as novas credenciais de função do aplicativo...\",\r\n \"migrationDialogErrorNoSubs\": \"Falha em localizar as assinaturas do Azure para o usuário atual.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Falha em localizar o token de acesso do Azure para o usuário atual.\",\r\n \"migrationDialogErrorNoLocations\": \"Falha em localizar os locais para a assinatura selecionada do Azure.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Falha em localizar o nome da conta de armazenamento do Azure na configuração do aplicativo.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"O nome do aplicativo não está disponível.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Nome de aplicativo inválido.\",\r\n \"migrationDialogErrorNoBotType\": \"O bot atual não tem um tipo válido.\",\r\n \"migrationDialogErrorBotInvalid\": \"Este bot não pode ser migrado porque ele é inválido.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Este bot não pode ser migrado porque falta o ponto de extremidade.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Este bot não pode ser migrado porque não há informações de provisionamento.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Este bot não pode ser migrado porque falta o nome do grupo de recursos.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Este bot não pode ser migrado porque falta a ID da assinatura do Azure.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Este bot não pode ser migrado porque falta o nome do site do Azure.\",\r\n \"migrationDialogABSv2TitleText\": \"Migração indisponível\",\r\n \"migrationDialogABSv2BodyText\": \"A migração está desabilitada atualmente para os bots (ABSv2) do Designer de Conversa.\",\r\n \"migrationDialogRegistrationBodyText\": \"No momento, a migração está desabilitada para '{0}' bots.\",\r\n \"migrationDialogFailedTokenRefresh\": \"O token do Azure expirou.\",\r\n \"migrationDialogRefreshPage\": \"Atualize a página e tente a migração novamente.\",\r\n \"migrationSubscriptionDisabled\": \"A assinatura selecionada do Azure está desabilitada. Habilite-a para prosseguir com a migração.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Este diretório não contém nenhuma assinatura.\",\r\n \"migrationDialogFuncPackBotTitle\": \"O Azure Functions Pack é necessário para a migração deste bot\",\r\n \"migrationDialogFuncPackBotMessage\": \"Os bots de Node Functions precisam ser empacotados com o Azure Functions Pack antes de poderem ser migrados.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Saiba como executar o Azure Functions Pack no código do seu bot\",\r\n \"tosDialog_Header\": \"Termos do Serviço\",\r\n \"tosDialog_AgreeButton\": \"Concordar\",\r\n \"tosDialog_MessageChannels\": \"Os Termos dos Serviços Online não se aplicam à publicação em canais. Por exemplo, os termos para a publicação em canais da Microsoft não oferecem termos de processamento de dados.\",\r\n \"tosDialog_MessageMigration\": \"Leia e concorde com os termos a seguir.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Concordo que o uso do site do Bot Framework está sujeito dos {0} e a {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Concordo com os {0} e a {1} para minha implantação do canal Cortana.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Concordo com os {0} e a {1} para minha implantação do canal <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Concordo com os {0} e a {1} para minha implantação dos canais <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"termos da minha assinatura do Serviço de Bot do Azure\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Termos de Publicação de Canal da Cortana\",\r\n \"tosDialog_MSPublicationTerms\": \"Termos de Publicação dos Canais da Microsoft\",\r\n \"tosDialog_MSPrivacyStatement\": \"Políticas de Privacidade da Microsoft\",\r\n \"notice\": \" AVISO: \",\r\n \"listElem\": \"{0},\",\r\n \"andListEnd\": \"{0} e {1}\",\r\n \"analyticsChannelsDropdown\": \"Filtro Canais\",\r\n \"analyticsPeriodDropdown\": \"Período de tempo\",\r\n \"deprecatedChannel\": \"(preterido)\",\r\n \"openInComposer\": \"abrir no Composer\",\r\n \"downloadComposer\": \"Baixar o Composer\",\r\n}\r\n\r\nconst Resources_pt_pt: IResources = {\r\n \"unsupportedBrowser_Azure\": \"O Azure Bot Service ainda não suporta o seu browser.\",\r\n \"unsupportedBrowser\": \"O Bot Framework ainda não suporta o seu browser.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"A iniciar sessão\",\r\n \"loadingBot\": \"A carregar o bot...\",\r\n \"botIsNotReady\": \"A aguardar que o bot esteja preparado\",\r\n \"analyticsNotReady\": \"A aguardar que o Application Insights seja configurado\",\r\n \"authorizingWebChat\": \"A Autorizar o Chat com o Bot\",\r\n \"signInFailure\": \"Ocorreu um erro ao iniciar a sua sessão. Certifique-se de que os cookies de terceiros estão ativados no browser.\",\r\n \"getChatTokenFailure\": \"Ocorreu um erro ao obter um token de autorização de Chat. Atualize e tente novamente.\",\r\n \"refreshSignInFailure\": \"Ocorreu um erro ao atualizar as suas informações de início de sessão. Certifique-se de que os cookies de terceiros estão ativados no browser.\",\r\n \"xhrResponse_400\": \"A ação ou os valores fornecidos são inválidos.\",\r\n \"xhrResponse_403\": \"Não é possível aceder ou modificar este item.\",\r\n \"xhrResponse_404\": \"Não é possível localizar o item.\",\r\n \"xhrResponse_500\": \"Ocorreu um erro interno no servidor.\",\r\n \"xhrResponse_501\": \"Esta operação não é suportada.\",\r\n \"xhrResponse_Message\": \"Erro: %1\",\r\n \"xhrResponse_Unknown\": \"Ocorreu um erro desconhecido.\",\r\n \"AddAFeaturedChannelTitle\": \"Adicionar um canal em destaque\",\r\n \"ConnectToChannelsTitle\": \"Ligar aos canais\",\r\n \"NoChannelsConfigured\": \"Ainda não ligou nenhum canal. Selecione um canal para ligar.\",\r\n \"MoreChannelsTitle\": \"Mais canais\",\r\n \"test\": \"Testar\",\r\n \"startOver\": \"Recomeçar\",\r\n \"retentionTitle\": \"Retenção\",\r\n \"retentionDescription\": \"% de utilizadores que enviaram mensagens novamente (últimos 10 dias)\",\r\n \"retentionHeader\": \"Dias mais tarde\",\r\n \"retentionDate\": \"Data\",\r\n \"retentionUsers\": \"Utilizadores\",\r\n \"undetermined\": \"Indeterminado\",\r\n \"loading\": \"a carregar...\",\r\n \"noAnalyticsData\": \"sem dados\",\r\n \"timespanLastHour\": \"Última Hora\",\r\n \"timespanLastDay\": \"Último Dia\",\r\n \"timespanLastWeek\": \"Última Semana\",\r\n \"timespanLastMonth\": \"Último Mês\",\r\n \"timespanLast90Days\": \"Últimos 90 Dias\",\r\n \"timespanUnknown\": \"Período de tempo desconhecido\",\r\n \"timelineCardUsersTitle\": \"Utilizadores\",\r\n \"timelineCardMessagesTitle\": \"Atividades\",\r\n \"totalsCardTitle\": \"Totais Gerais\",\r\n \"analyticsNotConfigured\": \"Ainda não ativou a Análise através do Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Forneça as Chaves e o ID do Application Insights para este bot na página seguinte: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Forneça as Chaves e o ID do Application Insights para este bot na página de definições. \",\r\n \"learnMore\": \"Mais informações\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - erro: %2\",\r\n \"timelineTableLabel\": \"Mapeamento de tabelas de linha cronológica de %1 por hora\",\r\n \"timelineChartLabel\": \"Mapeamento de gráficos de linha cronológica de %1 por hora\",\r\n \"published\": \"Publicado\",\r\n \"health\": \"Estado de Funcionamento\",\r\n \"channelname\": \"Nome\",\r\n \"edit\": \"Editar\",\r\n \"running\": \"Em execução\",\r\n \"issuesTemplate\": \"Problemas (<%= length %>)\",\r\n \"warningTemplate\": \"Avisos (<%= length %>)\",\r\n \"channelPublished\": \"Publicado\",\r\n \"tryOnCortana\": \"Experimentar em <%= Name %> - saiba como\",\r\n \"tryOnChannel\": \"Experimentar em <%= Name %>\",\r\n \"manageInCortana\": \"Gerir no dashboard da Cortana\",\r\n \"channelRejected\": \"Rejeitado\",\r\n \"channelMoreDetails\": \"Mais detalhes\",\r\n \"channelResubmit\": \"Submeter novamente para revisão...\",\r\n \"channelGetEmbedCodes\": \"Obter códigos de incorporação do bot\",\r\n \"channelConfigDeleteMessage\": \"Esta ação irá eliminar todas as informações de configuração do canal. Tem a certeza de que pretende continuar?\",\r\n \"channelConfigDeleteHeader\": \"Eliminar canal\",\r\n \"channelConfigDeleteOk\": \"Sim, eliminar\",\r\n \"channelConfigDeleteCancel\": \"Não, manter\",\r\n \"channelConfigLeaveMessage\": \"Tem alterações não guardadas neste documento. Tem a certeza de que pretende sair desta página?\",\r\n \"channelConfigLeaveHeader\": \"Eliminar alterações\",\r\n \"channelConfigLeaveOk\": \"Sim, sair da página\",\r\n \"channelConfigLeaveCancel\": \"Não, ficar na página\",\r\n \"channelEdit\": \"Editar\",\r\n \"dialogPleaseWait\": \"Aguarde...\",\r\n \"embedPanelTitle\": \"Código de incorporação do bot\",\r\n \"embedPanelDescription\": \"Escolha um canal para obter o código de incorporação deste. Copie e cole o código no seu site.\",\r\n \"embedPanelFacebookFooter\": \"Para utilizar esta incorporação, o Facebook necessita que inclua o respetivo JavaScript SDK na sua página.\",\r\n \"embedPanelLearnMore\": \"Mais informações.\",\r\n \"embedPanelChannelMovedHeader\": \"O código de incorporação para %1 foi movido\",\r\n \"embedPanelChannelMovedInstructions\": \"Clique aqui para abrir a página de configuração de %1\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Código de incorporação para %1\",\r\n \"embedPanelGettingCodes\": \"A obter os códigos...\",\r\n \"embedPanelNoCodeAvailable\": \"Não existe nenhum código de incorporação disponível para este bot.\",\r\n \"channelIssuesPanelSubtitle\": \"Problemas recentes\",\r\n \"channelIssuesPanelClearall\": \"Limpar Tudo\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Hora\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Mensagem\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"ID de Correlação\",\r\n \"unsavedChangesWillBeLost\": \"As alterações não guardadas serão perdidas.\",\r\n \"altImageChannel\": \"Configurar o canal %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"E-mail\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype para Empresas\",\r\n \"_SkypeforBusiness\": \"Marca Skype para Empresas\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRAR ESTE BOT\",\r\n \"migrationBannerCTAStartMigrating\": \"INICIAR MIGRAÇÃO\",\r\n \"migrationBannerBlurb1\": \"Com o lançamento do novo Azure Bot Service, estamos a migrar todos os bots para o novo serviço até 31/03/2018.\",\r\n \"migrationBannerBlurb2\": \"acerca da migração.\",\r\n \"migrationBannerSuggestedBlurb\": \"A migração para o Azure Bot Service é opcional para este bot.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Os bots que necessitam de migração para o Azure Bot Service têm de ser migrados agora para evitar a interrupção do serviço.\",\r\n \"migrationBannerBlockedBlurb\": \"A migração do bot está em atraso. Migre-o agora para evitar a interrupção do serviço.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Se configurar este canal, o seu bot terá de ser migrado para o Azure Bot Service até 31/03/2018. Tem a certeza de que pretende configurar este canal?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Esta canal só está disponível para bots no Azure Bot Service. Pretende migrar este bot?\",\r\n \"channelRequiresABSBot\": \"Esta canal só está disponível para bots no Azure Bot Service.\",\r\n \"botRequiresMigrationDialogHeader\": \"O bot necessita de migração\",\r\n \"botRequiresMigrationDialogMessage\": \"A migração do bot está em atraso. Migre-o agora para evitar a interrupção do serviço.\",\r\n \"yesMigrateThisBot\": \"Sim, migrar este bot\",\r\n \"myBotsMigrationStatusMigrated\": \"Migrado\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Obrigatório\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Não necessário\",\r\n \"myBotsMigrationButtonMigrate\": \"Migrar\",\r\n \"myBotsMigrationButtonRollback\": \"Reverter migração\",\r\n \"deleteBotDialogDeleteButtonText\": \"Eliminar bot\",\r\n \"cancelButtonText\": \"Cancelar\",\r\n \"deleteBotDialogTitleText\": \"Está prestes a eliminar este bot\",\r\n \"deleteBotDialogBodyText\": \"Esta ação irá apagar todos os dados associados a este bot e não pode ser anulada. Tem a certeza?\",\r\n \"deleteBotDialogStatusDeleting\": \"A eliminar o bot...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot eliminado\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Sim, reverter\",\r\n \"rollbackBotDialogTitleText\": \"Tem a certeza de que pretende reverter?\",\r\n \"rollbackBotDialogBodyText\": \"Esta ação irá reverter totalmente a migração e terá de iniciar o processo de migração a partir do princípio. Tem a certeza de que pretende continuar?\",\r\n \"rollbackBotDialogErrorInfo\": \"Erro ao obter informações do bot a partir do servidor.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Não é possível efetuar a reversão. Não foi encontrado nenhum ponto final de reversão.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Não é possível efetuar a reversão. Falha ao localizar um Token do Azure para contactar o Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"A recolher informações do bot...\",\r\n \"rollbackBotDialogStatusPreparing\": \"A preparar o bot...\",\r\n \"rollbackBotDialogStatusReverting\": \"A reverter o bot...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"A eliminar a aplicação atualizada...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"A eliminar o registo de implementação...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Reversão concluída\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"foi revertido com êxito.\",\r\n \"okButtonText\": \"OK\",\r\n \"errorMessageErrorOccurred\": \"Ocorreu um erro\",\r\n \"migrationDialogStatusGettingBotInfo\": \"A obter informações do bot...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"A obter informações do Azure...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"A obter as definições da aplicação de bot...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"A inicializar o bot migrado...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"A registar o Bot Service no Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"A atualizar o registo do bot...\",\r\n \"migrationDialogStatusCreatingRG\": \"A criar o grupo de recursos...\",\r\n \"migrationDialogStatusMigratingFiles\": \"A migrar os ficheiros para o novo bot...\",\r\n \"migrationDialogStatusWrappingUp\": \"A concluir a implementação...\",\r\n \"migrationDialogStatusDeployingStorage\": \"A ligar o bot ao armazenamento existente...\",\r\n \"migrationDialogStatusDeployingSite\": \"A implementar o site\",\r\n \"migrationDialogStatusConfiguringSite\": \"A configurar o site\",\r\n \"migrationDialogStatusDeploying\": \"A implementar\",\r\n \"migrationDialogStatusFunctionCredentials\": \"A obter as novas credenciais da aplicação de funções...\",\r\n \"migrationDialogErrorNoSubs\": \"Falha ao localizar quaisquer subscrições do Azure para o utilizador atual.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Falha ao localizar o token de acesso do Azure para o utilizador atual.\",\r\n \"migrationDialogErrorNoLocations\": \"Falha ao localizar quaisquer localizações para a subscrição do Azure selecionada.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Falha ao localizar o nome de uma conta de armazenamento do Azure na configuração da aplicação.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"O nome da aplicação não está disponível.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Nome de aplicação inválido.\",\r\n \"migrationDialogErrorNoBotType\": \"O bot atual não tem um tipo válido.\",\r\n \"migrationDialogErrorBotInvalid\": \"Não é possível migrar este bot porque o mesmo é inválido.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Não é possível migrar este bot porque o ponto final está em falta.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Não é possível migrar este bot porque as informações de aprovisionamento estão em falta.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Não é possível migrar este bot porque o nome do grupo de recursos está em falta.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Não é possível migrar este bot porque o ID da subscrição do Azure está em falta.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Não é possível migrar este bot porque o nome do site do Azure está em falta.\",\r\n \"migrationDialogABSv2TitleText\": \"Migração indisponível\",\r\n \"migrationDialogABSv2BodyText\": \"A migração está atualmente desativada para bots do Estruturador de Conversações (ABSv2).\",\r\n \"migrationDialogRegistrationBodyText\": \"A migração está atualmente desativada para bots de \\\"{0}\\\".\",\r\n \"migrationDialogFailedTokenRefresh\": \"O token do Azure expirou.\",\r\n \"migrationDialogRefreshPage\": \"Atualize a página e tente efetuar a migração novamente.\",\r\n \"migrationSubscriptionDisabled\": \"A subscrição do Azure selecionada está desativada. Ative-a para continuar a migração.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Este diretório não contém nenhuma subscrição.\",\r\n \"migrationDialogFuncPackBotTitle\": \"O Pack de Funções do Azure é necessário para migrar este bot\",\r\n \"migrationDialogFuncPackBotMessage\": \"Os bots de Funções de Nó tem de ser empacotados com o Pack de Funções do Azure antes de poderem ser migrados.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Obter informações sobre como executar o Pack de Funções do Azure no código do seu bot\",\r\n \"tosDialog_Header\": \"Termos de Serviço\",\r\n \"tosDialog_AgreeButton\": \"Aceito\",\r\n \"tosDialog_MessageChannels\": \"Os Termos dos Serviços Online não se aplicam à publicação em canais. Por exemplo, os termos de publicação em canais da Microsoft não oferecem termos de processamento de dados.\",\r\n \"tosDialog_MessageMigration\": \"Leia e aceite os termos seguintes.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Aceito que a utilização do site do Bot Framework esteja sujeita aos {0} e às {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Aceito os {0} e as {1} para a minha implementação no canal da Cortana.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Aceito os {0} e as {1} para a minha implementação no canal <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Aceito os {0} e as {1} para a minha implementação nos canais <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"termos da minha subscrição do Azure Bot Service\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Termos de Publicação de Canais da Cortana\",\r\n \"tosDialog_MSPublicationTerms\": \"Termos de Publicação de Canais da Microsoft\",\r\n \"tosDialog_MSPrivacyStatement\": \"Declarações de Privacidade da Microsoft\",\r\n \"notice\": \" AVISO: \",\r\n \"listElem\": \"{0}, \",\r\n \"andListEnd\": \"{0} e {1}\",\r\n \"analyticsChannelsDropdown\": \"Filtro de canais\",\r\n \"analyticsPeriodDropdown\": \"Período de tempo\",\r\n \"deprecatedChannel\": \"(preterido)\",\r\n \"openInComposer\": \"abrir no Composer\",\r\n \"downloadComposer\": \"Transferir Composer\",\r\n}\r\n\r\nconst Resources_zh_hans: IResources = {\r\n \"unsupportedBrowser_Azure\": \"Azure 机器人服务尚不支持你的浏览器。\",\r\n \"unsupportedBrowser\": \"Bot Framework 尚不支持你的浏览器。\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"正在登录\",\r\n \"loadingBot\": \"正在加载机器人...\",\r\n \"botIsNotReady\": \"等待机器人准备就绪\",\r\n \"analyticsNotReady\": \"正在等待配置 Application Insights\",\r\n \"authorizingWebChat\": \"正在授权与机器人聊天\",\r\n \"signInFailure\": \"登录时出错。请确保浏览器中启用了第三方 Cookie。\",\r\n \"getChatTokenFailure\": \"获取聊天授权令牌时出错。请刷新并重试。\",\r\n \"refreshSignInFailure\": \"刷新你的登录信息时出错。请确保浏览器中启用了第三方 Cookie。\",\r\n \"xhrResponse_400\": \"该操作或提供的值无效。\",\r\n \"xhrResponse_403\": \"无法访问或修改此项。\",\r\n \"xhrResponse_404\": \"找不到该项。\",\r\n \"xhrResponse_500\": \"服务器发生内部错误。\",\r\n \"xhrResponse_501\": \"不支持此操作。\",\r\n \"xhrResponse_Message\": \"错误: %1\",\r\n \"xhrResponse_Unknown\": \"发生未知错误。\",\r\n \"AddAFeaturedChannelTitle\": \"添加一个特色信道\",\r\n \"ConnectToChannelsTitle\": \"连接至信道\",\r\n \"NoChannelsConfigured\": \"你尚未连接任何信道。请选择一个信道进行连接。\",\r\n \"MoreChannelsTitle\": \"更多信道\",\r\n \"test\": \"测试\",\r\n \"startOver\": \"重新开始\",\r\n \"retentionTitle\": \"保留\",\r\n \"retentionDescription\": \"重发消息联系的用户百分比(%)(过去 10 天)\",\r\n \"retentionHeader\": \"几天后\",\r\n \"retentionDate\": \"日期\",\r\n \"retentionUsers\": \"用户\",\r\n \"undetermined\": \"未决定\",\r\n \"loading\": \"正在加载...\",\r\n \"noAnalyticsData\": \"无数据\",\r\n \"timespanLastHour\": \"前一个小时\",\r\n \"timespanLastDay\": \"昨天\",\r\n \"timespanLastWeek\": \"上周\",\r\n \"timespanLastMonth\": \"上个月\",\r\n \"timespanLast90Days\": \"过去 90 天\",\r\n \"timespanUnknown\": \"未知时间跨度\",\r\n \"timelineCardUsersTitle\": \"用户\",\r\n \"timelineCardMessagesTitle\": \"活动\",\r\n \"totalsCardTitle\": \"总计\",\r\n \"analyticsNotConfigured\": \"你尚未通过 Azure Application Insights 启用分析。\",\r\n \"analyticsNotConfiguredAction\": \"在以下页面中为此机器人提供 Application Insights 密钥和 ID: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"在设置页面中为此机器人提供 Application Insights 密钥和 ID。\",\r\n \"learnMore\": \"了解更多\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - 错误: %2\",\r\n \"timelineTableLabel\": \"时间表映射%1(按时间)\",\r\n \"timelineChartLabel\": \"时间图表映射%1(按时间)\",\r\n \"published\": \"已发布\",\r\n \"health\": \"运行状况\",\r\n \"channelname\": \"名称\",\r\n \"edit\": \"编辑\",\r\n \"running\": \"正在运行\",\r\n \"issuesTemplate\": \"问题(<%= length %>)\",\r\n \"warningTemplate\": \"警告(<%= length %>)\",\r\n \"channelPublished\": \"已发布\",\r\n \"tryOnCortana\": \"尝试 <%= Name %> - 了解操作方法\",\r\n \"tryOnChannel\": \"尝试 <%= Name %>\",\r\n \"manageInCortana\": \"在 Cortana 仪表板中管理\",\r\n \"channelRejected\": \"已拒绝\",\r\n \"channelMoreDetails\": \"更多详细信息\",\r\n \"channelResubmit\": \"重新提交以供审查...\",\r\n \"channelGetEmbedCodes\": \"获取机器人嵌入代码\",\r\n \"channelConfigDeleteMessage\": \"此操作将删除所有信道配置信息。是否确定要继续?\",\r\n \"channelConfigDeleteHeader\": \"删除信道\",\r\n \"channelConfigDeleteOk\": \"是,删除它\",\r\n \"channelConfigDeleteCancel\": \"否,继续保留\",\r\n \"channelConfigLeaveMessage\": \"该文档中有未保存的更改。是否确定要离开此页面?\",\r\n \"channelConfigLeaveHeader\": \"放弃更改\",\r\n \"channelConfigLeaveOk\": \"是,离开页面\",\r\n \"channelConfigLeaveCancel\": \"否,留在该页面\",\r\n \"channelEdit\": \"编辑\",\r\n \"dialogPleaseWait\": \"请稍候...\",\r\n \"embedPanelTitle\": \"机器人嵌入代码\",\r\n \"embedPanelDescription\": \"选择一个信道以获取其嵌入代码。将该代码复制并粘贴到你的网站。\",\r\n \"embedPanelFacebookFooter\": \"要使用该嵌入,Facebook 要求你的页面中包含他们的 JavaScript SDK。\",\r\n \"embedPanelLearnMore\": \"了解更多。\",\r\n \"embedPanelChannelMovedHeader\": \"%1 的嵌入代码已移动\",\r\n \"embedPanelChannelMovedInstructions\": \"单击此处以打开 %1 配置页面\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"%1 的嵌入代码\",\r\n \"embedPanelGettingCodes\": \"正在获取代码...\",\r\n \"embedPanelNoCodeAvailable\": \"无可用于此机器人的嵌入代码。\",\r\n \"channelIssuesPanelSubtitle\": \"最新问题\",\r\n \"channelIssuesPanelClearall\": \"全部清除\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"时间\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"消息\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"相关 ID\",\r\n \"unsavedChangesWillBeLost\": \"未保存的更改将丢失。\",\r\n \"altImageChannel\": \"配置 %1 信道\",\r\n \"Bing\": \"必应\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"电子邮件\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype for Business\",\r\n \"_SkypeforBusiness\": \"Skype for Business 品牌\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (短信)\",\r\n \"migrationBannerCTAMigrateBot\": \"迁移此机器人\",\r\n \"migrationBannerCTAStartMigrating\": \"开始迁移\",\r\n \"migrationBannerBlurb1\": \"随着新的 Azure 机器人服务的发布,我们将在 2018 年 3 月 31 日之前将所有机器人迁移到新服务。\",\r\n \"migrationBannerBlurb2\": \"关于迁移。\",\r\n \"migrationBannerSuggestedBlurb\": \"对于此机器人,迁移到 Azure 机器人服务为可选操作。\",\r\n \"migrationBannerPostDeadlineBlurb\": \"为了避免服务中断,必须立即迁移需要迁移到 Azure 机器人服务的机器人。\",\r\n \"migrationBannerBlockedBlurb\": \"机器人迁移已过期,请立即迁移机器人以避免服务中断。\",\r\n \"migrationWillBeRequiredDialogMessage\": \"如果你配置此信道,则你的机器人将需要在 2018 年 3 月 31 日之前迁移到 Azure 机器人服务。是否确定要配置此信道?\",\r\n \"channelRequiresMigrationDialogMessage\": \"此信道仅适用于 Azure 机器人服务中的机器人。是否要迁移此机器人?\",\r\n \"channelRequiresABSBot\": \"此频道仅适用于 Azure 机器人服务中的机器人。\",\r\n \"botRequiresMigrationDialogHeader\": \"机器人需要迁移\",\r\n \"botRequiresMigrationDialogMessage\": \"机器人迁移已过期,请立即迁移机器人以避免服务中断。\",\r\n \"yesMigrateThisBot\": \"是,迁移此机器人\",\r\n \"myBotsMigrationStatusMigrated\": \"已迁移\",\r\n \"myBotsMigrationStatusNotMigrated\": \"必需\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"不需要\",\r\n \"myBotsMigrationButtonMigrate\": \"迁移\",\r\n \"myBotsMigrationButtonRollback\": \"回滚迁移\",\r\n \"deleteBotDialogDeleteButtonText\": \"删除机器人\",\r\n \"cancelButtonText\": \"取消\",\r\n \"deleteBotDialogTitleText\": \"你将要删除此机器人\",\r\n \"deleteBotDialogBodyText\": \"此操作将擦除与此机器人关联的所有数据且无法撤销。是否确定?\",\r\n \"deleteBotDialogStatusDeleting\": \"正在删除机器人...\",\r\n \"deleteBotDialogStatusDeleted\": \"机器人已删除\",\r\n \"rollbackBotDialogRollbackButtonText\": \"是,回滚\",\r\n \"rollbackBotDialogTitleText\": \"是否确实要回滚?\",\r\n \"rollbackBotDialogBodyText\": \"此操作将完全回滚迁移,你将不得不从头开始迁移过程。是否确实要继续?\",\r\n \"rollbackBotDialogErrorInfo\": \"从服务器检索机器人信息时出错。\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"无法执行回滚。找不到回滚终结点。\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"无法执行回滚。未能找到用于联系 Azure 的 Azure 令牌。\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"正在收集机器人信息...\",\r\n \"rollbackBotDialogStatusPreparing\": \"正在准备机器人...\",\r\n \"rollbackBotDialogStatusReverting\": \"正在恢复机器人..\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"正在删除已升级的应用...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"正在删除部署记录...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"回滚已完成\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"已成功回滚。\",\r\n \"okButtonText\": \"确定\",\r\n \"errorMessageErrorOccurred\": \"出现错误\",\r\n \"migrationDialogStatusGettingBotInfo\": \"正在获取机器人信息...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"正在获取 Azure 信息…\",\r\n \"migrationDialogStatusGettingAppSettings\": \"正在获取机器人应用设置...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"正在初始化已迁移的机器人...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"正在向 Azure 注册机器人服务...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"正在更新机器人记录...\",\r\n \"migrationDialogStatusCreatingRG\": \"正在创建资源组…\",\r\n \"migrationDialogStatusMigratingFiles\": \"正在将文件迁移到新的机器人...\",\r\n \"migrationDialogStatusWrappingUp\": \"正在完成部署...\",\r\n \"migrationDialogStatusDeployingStorage\": \"正在将机器人连接到现有存储...\",\r\n \"migrationDialogStatusDeployingSite\": \"正在部署网站\",\r\n \"migrationDialogStatusConfiguringSite\": \"正在配置网站\",\r\n \"migrationDialogStatusDeploying\": \"正在部署\",\r\n \"migrationDialogStatusFunctionCredentials\": \"正在获取新的功能应用凭据...\",\r\n \"migrationDialogErrorNoSubs\": \"未能找到当前用户的任何 Azure 订阅。\",\r\n \"migrationDialogErrorNoAzureToken\": \"未能找到当前用户的 Azure 访问令牌。\",\r\n \"migrationDialogErrorNoLocations\": \"未能找到所选 Azure 订阅的任何位置。\",\r\n \"migrationDialogErrorNoAzureStorage\": \"未能在应用程序配置中找到 Azure 存储帐户名称。\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"应用名称不可用。\",\r\n \"migrationDialogErrorAppNameInvalid\": \"应用名称无效。\",\r\n \"migrationDialogErrorNoBotType\": \"当前机器人没有有效类型。\",\r\n \"migrationDialogErrorBotInvalid\": \"由于机器人无效,无法迁移此机器人。\",\r\n \"migrationDialogErrorEndpointMissing\": \"由于终结点缺失,无法迁移此机器人。\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"由于预配信息缺失,无法迁移此机器人。\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"由于资源组名称缺失,无法迁移此机器人。\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"由于 Azure 订阅 ID 缺失,无法迁移此机器人。\",\r\n \"migrationDialogErrorSiteNameMissing\": \"由于 Azure 站点名称缺失,无法迁移此机器人。\",\r\n \"migrationDialogABSv2TitleText\": \"迁移不可用\",\r\n \"migrationDialogABSv2BodyText\": \"目前已对对话设计器(ABSv2)机器人禁用迁移。\",\r\n \"migrationDialogRegistrationBodyText\": \"目前已对“{0}”机器人禁用迁移。\",\r\n \"migrationDialogFailedTokenRefresh\": \"Azure 令牌已过期。\",\r\n \"migrationDialogRefreshPage\": \"请刷新页面并重新尝试迁移。\",\r\n \"migrationSubscriptionDisabled\": \"所选 Azure 订阅已禁用。请启用以继续迁移。\",\r\n \"migrationTenantHasNoSubscriptions\": \"该目录不包含任何订阅。\",\r\n \"migrationDialogFuncPackBotTitle\": \"若要迁移此机器人,需要 Azure Functions 包\",\r\n \"migrationDialogFuncPackBotMessage\": \"节点功能机器人需要与 Azure Functions 包一起打包,才能进行迁移。\",\r\n \"migrationDialogFuncPackBotLinkText\": \"了解如何在你的机器人代码上运行 Azure Functions 包\",\r\n \"tosDialog_Header\": \"服务条款\",\r\n \"tosDialog_AgreeButton\": \"同意\",\r\n \"tosDialog_MessageChannels\": \"Online Services 条款不适用于有关信道的发布。例如,有关 Microsoft 信道发布的条款不提供数据处理条款。\",\r\n \"tosDialog_MessageMigration\": \"请阅读并同意以下条款。\",\r\n \"tosDialog_AzureTermsCheckbox\": \"我同意 Bot Framework 站点的使用受 {0} 和 {1} 的约束。\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"对 Cortana 信道的部署,我同意 {0} 和 {1}。\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"对 <%= channelslist %> 信道的部署,我同意 {0} 和 {1}。\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"对 <%= channelslist %> 信道的部署,我同意 {0} 和 {1}。\",\r\n \"tosDialog_ABSTerms\": \"我的 Azure 机器人服务订阅的条款\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Cortana 信道发布条款\",\r\n \"tosDialog_MSPublicationTerms\": \"Microsoft 信道发布条款\",\r\n \"tosDialog_MSPrivacyStatement\": \"Microsoft 隐私声明\",\r\n \"notice\": \" 通知: \",\r\n \"listElem\": \"{0}、\",\r\n \"andListEnd\": \"{0} 和 {1}\",\r\n \"analyticsChannelsDropdown\": \"信道筛选器\",\r\n \"analyticsPeriodDropdown\": \"时间段\",\r\n \"deprecatedChannel\": \"(已弃用)\",\r\n \"openInComposer\": \"在编辑器中打开\",\r\n \"downloadComposer\": \"下载编辑器\",\r\n}\r\n\r\nconst Resources_zh_hant: IResources = {\r\n \"unsupportedBrowser_Azure\": \"Azure Bot 服務尚未支援您的瀏覽器。\",\r\n \"unsupportedBrowser\": \"Bot Framework 尚未支援您的瀏覽器。\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"正在登入...\",\r\n \"loadingBot\": \"載入機器人...\",\r\n \"botIsNotReady\": \"等待機器人設定完成\",\r\n \"analyticsNotReady\": \"等候 Application Insights 設定完成\",\r\n \"authorizingWebChat\": \"授權與機器人交談\",\r\n \"signInFailure\": \"當您登入時發生錯誤。請確定已在瀏覽器中啟用第三方 cookie。\",\r\n \"getChatTokenFailure\": \"獲得交談授權權杖時發生錯誤。重新整理並再次嘗試。\",\r\n \"refreshSignInFailure\": \"重新整理您的登入資訊時發生錯誤。請確定已在瀏覽器中啟用第三方 cookie。\",\r\n \"xhrResponse_400\": \"此動作或提供的值無效。\",\r\n \"xhrResponse_403\": \"此項目無法存取或修改。\",\r\n \"xhrResponse_404\": \"找不到此項目。\",\r\n \"xhrResponse_500\": \"伺服器發生內部錯誤。\",\r\n \"xhrResponse_501\": \"不支援這項作業。\",\r\n \"xhrResponse_Message\": \"錯誤: %1\",\r\n \"xhrResponse_Unknown\": \"發生未知的錯誤。\",\r\n \"AddAFeaturedChannelTitle\": \"新增熱門頻道\",\r\n \"ConnectToChannelsTitle\": \"連線至頻道\",\r\n \"NoChannelsConfigured\": \"您尚未連線至任何頻道。選取頻道以連線。\",\r\n \"MoreChannelsTitle\": \"更多頻道\",\r\n \"test\": \"測試\",\r\n \"startOver\": \"重新開始\",\r\n \"retentionTitle\": \"保留期\",\r\n \"retentionDescription\": \"% 再次傳送訊息的的使用者 (近10天)\",\r\n \"retentionHeader\": \"天後\",\r\n \"retentionDate\": \"日期\",\r\n \"retentionUsers\": \"使用者\",\r\n \"undetermined\": \"未定\",\r\n \"loading\": \"正在載入...\",\r\n \"noAnalyticsData\": \"無資料\",\r\n \"timespanLastHour\": \"過去一小時\",\r\n \"timespanLastDay\": \"過去一天\",\r\n \"timespanLastWeek\": \"過去一週\",\r\n \"timespanLastMonth\": \"過去一個月\",\r\n \"timespanLast90Days\": \"過去 90 天\",\r\n \"timespanUnknown\": \"未知的時間跨度\",\r\n \"timelineCardUsersTitle\": \"使用者\",\r\n \"timelineCardMessagesTitle\": \"活動\",\r\n \"totalsCardTitle\": \"總計\",\r\n \"analyticsNotConfigured\": \"您尚未透過 Azure Application Insights 啟用分析。\",\r\n \"analyticsNotConfiguredAction\": \"在下列頁面中為此機器人提供您的 Application Insights 金鑰與識別碼: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"在設定頁面上為此機器人提供您的 Application Insights 金鑰與識別碼。\",\r\n \"learnMore\": \"深入了解\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - 錯誤: %2\",\r\n \"timelineTableLabel\": \"依時間的時間軸表格對應%1\",\r\n \"timelineChartLabel\": \"依時間的時間軸圖表對應%1\",\r\n \"published\": \"已發佈\",\r\n \"health\": \"健康\",\r\n \"channelname\": \"名稱\",\r\n \"edit\": \"編輯\",\r\n \"running\": \"跑步\",\r\n \"issuesTemplate\": \"問題 (<%= length %>)\",\r\n \"warningTemplate\": \"警告 (<%= length %>)\",\r\n \"channelPublished\": \"已發佈\",\r\n \"tryOnCortana\": \"嘗試 <%= Name %> - 學習方法\",\r\n \"tryOnChannel\": \"嘗試 <%= Name %>\",\r\n \"manageInCortana\": \"在 Cortana 儀表板中管理\",\r\n \"channelRejected\": \"已拒絕\",\r\n \"channelMoreDetails\": \"更多細節\",\r\n \"channelResubmit\": \"重新提交供檢閱...\",\r\n \"channelGetEmbedCodes\": \"取得機器人內嵌程式碼\",\r\n \"channelConfigDeleteMessage\": \"此動作將會刪除所有頻道的設定資訊. 您是否確定要繼續?\",\r\n \"channelConfigDeleteHeader\": \"刪除頻道\",\r\n \"channelConfigDeleteOk\": \"是,刪除它\",\r\n \"channelConfigDeleteCancel\": \"否,保留它\",\r\n \"channelConfigLeaveMessage\": \"您在此文件中有未儲存的變更. 您是否確定要離開此頁面?\",\r\n \"channelConfigLeaveHeader\": \"捨棄變更\",\r\n \"channelConfigLeaveOk\": \"是,離開頁面\",\r\n \"channelConfigLeaveCancel\": \"不,留在此頁面\",\r\n \"channelEdit\": \"編輯\",\r\n \"dialogPleaseWait\": \"請稍候...\",\r\n \"embedPanelTitle\": \"機器人內嵌程式碼\",\r\n \"embedPanelDescription\": \"選擇一個頻道,並取得其內嵌程式碼。複製並將程式碼貼至您的網站上。\",\r\n \"embedPanelFacebookFooter\": \"為了使用此 Facebook 內嵌,您的頁面上必須包含他們的 JavaScript SDK。\",\r\n \"embedPanelLearnMore\": \"深入了解。\",\r\n \"embedPanelChannelMovedHeader\": \"%1 的內嵌程式碼已移除\",\r\n \"embedPanelChannelMovedInstructions\": \"按這裡開啟 %1 設定頁\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"%1 的內嵌程式碼\",\r\n \"embedPanelGettingCodes\": \"取得代碼...\",\r\n \"embedPanelNoCodeAvailable\": \"此機器人沒有可用的內嵌程式碼。\",\r\n \"channelIssuesPanelSubtitle\": \"最近的問題\",\r\n \"channelIssuesPanelClearall\": \"全部清除\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"時間\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"訊息\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"相互關聯識別碼\",\r\n \"unsavedChangesWillBeLost\": \"未儲存的變更將會遺失。\",\r\n \"altImageChannel\": \"設定 %1 頻道\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Direct Line\",\r\n \"Email\": \"電子郵件\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"商務用 Skype\",\r\n \"_SkypeforBusiness\": \"商務用 Skype 商標\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"移轉此機器人\",\r\n \"migrationBannerCTAStartMigrating\": \"開始移轉\",\r\n \"migrationBannerBlurb1\": \"隨著新 Azure 機器人服務的啟用,我們會在 2018 年 3 月 31 號前將所有機器人移轉至新服務。\",\r\n \"migrationBannerBlurb2\": \"關於移轉。\",\r\n \"migrationBannerSuggestedBlurb\": \"此機器人可自由選擇是否要轉移至 Azure 機器人服務。\",\r\n \"migrationBannerPostDeadlineBlurb\": \"需要轉移至 Azure 機器人服務的機器人必須立即轉移,避免服務中斷。\",\r\n \"migrationBannerBlockedBlurb\": \"機器人轉移已經過期,請立即轉移以避免服務中斷。\",\r\n \"migrationWillBeRequiredDialogMessage\": \"如果您設定這個頻道, 您的機器人會被要求在 2018 年 3 月 31 日前轉移至 Azure 機器人服務. 您確定要設定此頻道嗎?\",\r\n \"channelRequiresMigrationDialogMessage\": \"只有這個頻道適用有 Azure 機器人服務的機器人. 您要轉移這個機器人嗎?\",\r\n \"channelRequiresABSBot\": \"這個頻道只適用Azure Bot 服務的 Bot。\",\r\n \"botRequiresMigrationDialogHeader\": \"機器人需要轉移\",\r\n \"botRequiresMigrationDialogMessage\": \"機器人轉移已經過期,請立即轉移以避免服務中斷。\",\r\n \"yesMigrateThisBot\": \"是,轉移此機器人\",\r\n \"myBotsMigrationStatusMigrated\": \"已移轉\",\r\n \"myBotsMigrationStatusNotMigrated\": \"必要項目\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"非必填\",\r\n \"myBotsMigrationButtonMigrate\": \"移轉\",\r\n \"myBotsMigrationButtonRollback\": \"復原移轉\",\r\n \"deleteBotDialogDeleteButtonText\": \"刪除機器人\",\r\n \"cancelButtonText\": \"取消\",\r\n \"deleteBotDialogTitleText\": \"您即將刪除此機器人\",\r\n \"deleteBotDialogBodyText\": \"這動作會清除此機器人的所有相關資料, 且無法復原. 是否確定要清除?\",\r\n \"deleteBotDialogStatusDeleting\": \"正在刪除機器人...\",\r\n \"deleteBotDialogStatusDeleted\": \"機器人已刪除\",\r\n \"rollbackBotDialogRollbackButtonText\": \"確定復原\",\r\n \"rollbackBotDialogTitleText\": \"您確定要復原?\",\r\n \"rollbackBotDialogBodyText\": \"此動作將會完全復原移轉, 您必須從頭開始移轉程序. 是否確定要繼續?\",\r\n \"rollbackBotDialogErrorInfo\": \"從伺服器擷取機器人資訊時發生錯誤。\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"無法執行復原。找不到復原端點。\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"無法執行復原。找不到 Azure權杖以連絡 Azure。\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"正在收集機器人資訊...\",\r\n \"rollbackBotDialogStatusPreparing\": \"正在準備機器人...\",\r\n \"rollbackBotDialogStatusReverting\": \"正在還原機器人...\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"正在刪除已升級的應用程式...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"正在刪除部署記錄...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"復原完成\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"已成功地復原移轉。\",\r\n \"okButtonText\": \"確定\",\r\n \"errorMessageErrorOccurred\": \"發生錯誤\",\r\n \"migrationDialogStatusGettingBotInfo\": \"正在取得機器人資訊...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"正在取得 Azure 資訊...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"正在取得機器人應用程式設定...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"正在初始化已移轉的機器人...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"正在向 Azure 註冊機器人服務...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"正在更新機器人記錄...\",\r\n \"migrationDialogStatusCreatingRG\": \"正在建立資源群組...\",\r\n \"migrationDialogStatusMigratingFiles\": \"正在將檔案移轉到新的機器人...\",\r\n \"migrationDialogStatusWrappingUp\": \"正在完成部署...\",\r\n \"migrationDialogStatusDeployingStorage\": \"正在將機器人連線到現有的儲存體...\",\r\n \"migrationDialogStatusDeployingSite\": \"部署網站\",\r\n \"migrationDialogStatusConfiguringSite\": \"設定網站\",\r\n \"migrationDialogStatusDeploying\": \"部署\",\r\n \"migrationDialogStatusFunctionCredentials\": \"正在取得新的函數應用程式認證...\",\r\n \"migrationDialogErrorNoSubs\": \"找不到任何目前使用者的 Azure 訂用帳戶。\",\r\n \"migrationDialogErrorNoAzureToken\": \"找不到目前使用者的 Azure 存取權杖。\",\r\n \"migrationDialogErrorNoLocations\": \"找不到任何已選取的 Azure 訂用帳戶的位置。\",\r\n \"migrationDialogErrorNoAzureStorage\": \"無法在應用程式設定中找到 Azure 儲存體帳戶。\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"應用程式名稱無法使用。\",\r\n \"migrationDialogErrorAppNameInvalid\": \"無效的應用程式名稱。\",\r\n \"migrationDialogErrorNoBotType\": \"目前的機器人並沒有有效的類別。\",\r\n \"migrationDialogErrorBotInvalid\": \"由於此機器人無效,無法移轉此機器人。\",\r\n \"migrationDialogErrorEndpointMissing\": \"由於端點遺失,無法移轉此機器人。\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"由於佈建資訊遺失,無法移轉此機器人。\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"由於資源群組的名稱遺失,無法移轉此機器人。\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"由於 Azure 訂訂用帳戶的名稱遺失,無法移轉此機器人。\",\r\n \"migrationDialogErrorSiteNameMissing\": \"由於 Azure 站點的名稱遺失,無法移轉此機器人。\",\r\n \"migrationDialogABSv2TitleText\": \"無法使用的移轉\",\r\n \"migrationDialogABSv2BodyText\": \"移轉功能目前因對話設計 (ABSv2) 機器人而停用。\",\r\n \"migrationDialogRegistrationBodyText\": \"'{0}' 機器人目前無法移轉。\",\r\n \"migrationDialogFailedTokenRefresh\": \"Azure 權杖已經過期。\",\r\n \"migrationDialogRefreshPage\": \"請重新整理頁面,再次嘗試移轉。\",\r\n \"migrationSubscriptionDisabled\": \"選取的 Azure 訂用帳戶已停用。請啟用以繼續移轉。\",\r\n \"migrationTenantHasNoSubscriptions\": \"此目錄未包含任何訂閱。\",\r\n \"migrationDialogFuncPackBotTitle\": \"需要 Azure Functions 套件才能移轉此 Bot\",\r\n \"migrationDialogFuncPackBotMessage\": \"節點函數 Bot 必須在可以被移轉前,隨附在 Azure Functions 套件上。\",\r\n \"migrationDialogFuncPackBotLinkText\": \"了解如何在您 Bot 程式碼上執行 Azure Functions 套件\",\r\n \"tosDialog_Header\": \"服務條款\",\r\n \"tosDialog_AgreeButton\": \"同意\",\r\n \"tosDialog_MessageChannels\": \"線上服務條款並不適用於通道上的發行。例如,Microsoft 通道上發佈的條款並不包括資料處理條款。\",\r\n \"tosDialog_MessageMigration\": \"請閱讀並同意以下條款。\",\r\n \"tosDialog_AzureTermsCheckbox\": \"我同意 Bot Framework 的用途主要是 {0} 和 {1}。\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"我同意將 {0} 和 {1} 部署至 Cortana 通道。\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"我同意將 {0} 和 {1} 部署至 <%= channelslist %> 通道。\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"我同意將 {0} 和 {1} 部署至 <%= channelslist %> 通道。\",\r\n \"tosDialog_ABSTerms\": \"我的 Azure 機器人服務訂用帳戶條款\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Cortana 頻道發佈條款\",\r\n \"tosDialog_MSPublicationTerms\": \"Microsoft 通道公開條款\",\r\n \"tosDialog_MSPrivacyStatement\": \"Microsoft 隱私權聲明\",\r\n \"notice\": \"注意: \",\r\n \"listElem\": \"{0},\",\r\n \"andListEnd\": \"{0} 和 {1}\",\r\n \"analyticsChannelsDropdown\": \"通道篩選器\",\r\n \"analyticsPeriodDropdown\": \"時間週期\",\r\n \"deprecatedChannel\": \"(已過時)\",\r\n \"openInComposer\": \"在 Composer 中開啟\",\r\n \"downloadComposer\": \"下載 Composer\",\r\n}\r\n\r\nconst Resources_id: IResources = {\r\n \"unsupportedBrowser_Azure\": \"Azure Bot Service belum mendukung browser Anda.\",\r\n \"unsupportedBrowser\": \"Kerangkat kerja bot belum mendukung browser Anda.\",\r\n \"botKindRegistration\": \"Bot Services Bot\",\r\n \"botKindSdk\": \"Web App Bot\",\r\n \"botKindFunctions\": \"Functions Bot\",\r\n \"botKindConversationDesigner\": \"Conversation Designer Bot\",\r\n \"loggingIn\": \"Masuk\",\r\n \"loadingBot\": \"Memuat bot...\",\r\n \"botIsNotReady\": \"Menunggu agar bot siap\",\r\n \"analyticsNotReady\": \"Menunggu Application Insights untuk dikonfigurasi\",\r\n \"authorizingWebChat\": \"Mengotorisasi Chat dengan Bot\",\r\n \"signInFailure\": \"Terjadi kesalahan saat memproses Anda masuk. Pastikan cookie pihak ketiga diaktifkan di browser.\",\r\n \"getChatTokenFailure\": \"Terjadi kesalahan saat mendapatkan token otorisasi Obrolan. Segarkan dan coba lagi.\",\r\n \"refreshSignInFailure\": \"Terjadi kesalahan saat menyegarkan informasi masuk. Pastikan cookie pihak ketiga diaktifkan di browser.\",\r\n \"xhrResponse_400\": \"Tindakan atau nilai yang diberikan tidak valid.\",\r\n \"xhrResponse_403\": \"Item ini tidak dapat diakses atau diubah.\",\r\n \"xhrResponse_404\": \"Item tidak dapat ditemukan.\",\r\n \"xhrResponse_500\": \"Terjadi kesalahan internal di server.\",\r\n \"xhrResponse_501\": \"Operasi ini tidak didukung.\",\r\n \"xhrResponse_Message\": \"Kesalahan: %1\",\r\n \"xhrResponse_Unknown\": \"Terjadi kesalahan yang tidak dikenal.\",\r\n \"AddAFeaturedChannelTitle\": \"Tambahkan saluran unggulan\",\r\n \"ConnectToChannelsTitle\": \"Sambungkan ke saluran\",\r\n \"NoChannelsConfigured\": \"Anda belum memiliki saluran yang terhubung. Pilih saluran yang akan dihubungkan.\",\r\n \"MoreChannelsTitle\": \"Lebih banyak saluran\",\r\n \"test\": \"Uji\",\r\n \"startOver\": \"Mulai dari awal\",\r\n \"retentionTitle\": \"Retensi\",\r\n \"retentionDescription\": \"% pengguna yang mengirim pesan lagi (10 hari terakhir)\",\r\n \"retentionHeader\": \"Hari kemudian\",\r\n \"retentionDate\": \"Tanggal\",\r\n \"retentionUsers\": \"Pengguna\",\r\n \"undetermined\": \"Tidak ditentukan\",\r\n \"loading\": \"memuat...\",\r\n \"noAnalyticsData\": \"tidak ada data\",\r\n \"timespanLastHour\": \"Jam Terakhir\",\r\n \"timespanLastDay\": \"Hari Terakhir\",\r\n \"timespanLastWeek\": \"Minggu Lalu\",\r\n \"timespanLastMonth\": \"Bulan Lalu\",\r\n \"timespanLast90Days\": \"90 Hari Terakhir\",\r\n \"timespanUnknown\": \"Timespan tidak diketahui\",\r\n \"timelineCardUsersTitle\": \"Pengguna\",\r\n \"timelineCardMessagesTitle\": \"Aktivitas\",\r\n \"totalsCardTitle\": \"Total Akhir\",\r\n \"analyticsNotConfigured\": \"Anda belum mengaktifkan Analytics melalui Azure Application Insights.\",\r\n \"analyticsNotConfiguredAction\": \"Berikan Kunci dan ID Application Insights Anda untuk bot ini di halaman berikut: \",\r\n \"analyticsNotConfiguredActionIbiza\": \"Berikan Kunci dan ID Application Insights Anda untuk bot ini pada halaman pengaturan.\",\r\n \"learnMore\": \"Pelajari lebih lanjut\",\r\n \"cardTitleLoading\": \"%1 - %2\",\r\n \"cardTitleError\": \"%1 - kesalahan: %2\",\r\n \"timelineTableLabel\": \"Pemetaan tabel garis waktu %1 berdasarkan waktu\",\r\n \"timelineChartLabel\": \"Pemetaan diagram garis waktu %1\",\r\n \"published\": \"Diterbitkan\",\r\n \"health\": \"Kesehatan\",\r\n \"actions\": \"Tindakan\",\r\n \"channelname\": \"Nama\",\r\n \"edit\": \"Edit\",\r\n \"running\": \"Berjalan\",\r\n \"issuesTemplate\": \"Masalah (<%= length %>)\",\r\n \"warningTemplate\": \"Peringatan (<%= length %>)\",\r\n \"channelPublished\": \"Diterbitkan\",\r\n \"tryOnCortana\": \"Coba di <%= Name %> - pelajari caranya\",\r\n \"tryOnChannel\": \"Coba di <%= Name %>\",\r\n \"manageInCortana\": \"Kelola di dasbor Cortana\",\r\n \"channelRejected\": \"Ditolak\",\r\n \"channelMoreDetails\": \"Detail selengkapnya\",\r\n \"channelResubmit\": \"Kirim ulang untuk ditinjau...\",\r\n \"channelGetEmbedCodes\": \"Dapatkan kode semat bot\",\r\n \"channelConfigDeleteMessage\": \"Tindakan ini akan menghapus semua informasi konfigurasi saluran. Yakin ingin melanjutkan?\",\r\n \"channelConfigDeleteHeader\": \"Hapus saluran\",\r\n \"channelConfigDeleteOk\": \"Ya, hapus\",\r\n \"channelConfigDeleteCancel\": \"Tidak, pertahankan\",\r\n \"channelConfigLeaveMessage\": \"Anda memiliki perubahan yang belum disimpan dalam dokumen ini. Yakin ingin beralih dari halaman ini?\",\r\n \"channelConfigLeaveHeader\": \"Batalkan perubahan\",\r\n \"channelConfigLeaveOk\": \"Ya, keluar dari halaman\",\r\n \"channelConfigLeaveCancel\": \"Tidak, tetap di halaman\",\r\n \"channelEdit\": \"Edit\",\r\n \"dialogPleaseWait\": \"Tunggu...\",\r\n \"embedPanelTitle\": \"Kode semat bot\",\r\n \"embedPanelDescription\": \"Pilih saluran untuk mendapatkan kode semat. Salin dan tempelkan kode ke situs web Anda.\",\r\n \"embedPanelFacebookFooter\": \"Agar dapat menggunakan Facebook semat ini, Anda harus menyertakan SDK JavaScript-nya di halaman Anda.\",\r\n \"embedPanelLearnMore\": \"Pelajari selengkapnya.\",\r\n \"embedPanelChannelMovedHeader\": \"Kode semat untuk %1 telah dipindahkan\",\r\n \"embedPanelChannelMovedInstructions\": \"Klik di sini untuk membuka halaman konfigurasi %1\",\r\n \"embedPanelEmbedcodeForChannelLabel\": \"Kode semat untuk %1\",\r\n \"embedPanelGettingCodes\": \"Mengambil kode...\",\r\n \"embedPanelNoCodeAvailable\": \"Tidak ada kode semat yang tersedia untuk bot ini.\",\r\n \"channelIssuesPanelSubtitle\": \"Masalah terbaru\",\r\n \"channelIssuesPanelClearall\": \"Hapus Semua\",\r\n \"channelIssuesPanelTimeColumnLabel\": \"Waktu\",\r\n \"channelIssuesPanelMessageColumnLabel\": \"Pesan\",\r\n \"channelIssuesPanelCorrelationIdColumnLabel\": \"ID Korelasi\",\r\n \"unsavedChangesWillBeLost\": \"Perubahan yang belum disimpan akan hilang.\",\r\n \"altImageChannel\": \"Konfigurasikan saluran %1\",\r\n \"Bing\": \"Bing\",\r\n \"Cortana\": \"Cortana\",\r\n \"MicrosoftSearch\": \"Microsoft Search\",\r\n \"DirectLine\": \"Saluran Langsung\",\r\n \"Email\": \"Email\",\r\n \"FacebookMessenger\": \"Facebook Messenger\",\r\n \"GroupMe\": \"GroupMe\",\r\n \"Kaizala\": \"Kaizala\",\r\n \"Kik\": \"Kik\",\r\n \"MicrosoftTeams\": \"Microsoft Teams\",\r\n \"Skype\": \"Skype\",\r\n \"SkypeforBusiness\": \"Skype for Business\",\r\n \"_SkypeforBusiness\": \"Merek Skype for Business\",\r\n \"Slack\": \"Slack\",\r\n \"Telegram\": \"Telegram\",\r\n \"Twilio\": \"Twilio (SMS)\",\r\n \"migrationBannerCTAMigrateBot\": \"MIGRASIKAN BOT INI\",\r\n \"migrationBannerCTAStartMigrating\": \"MULAI MIGRASI\",\r\n \"migrationBannerBlurb1\": \"Dengan peluncuran Azure Bot Service baru, kami memigrasikan semua bot ke layanan baru ini paling lambat pada 31/3/2018.\",\r\n \"migrationBannerBlurb2\": \"tentang migrasi.\",\r\n \"migrationBannerSuggestedBlurb\": \"Migrasi ke Azure Bot Service bersifat opsional untuk bot ini.\",\r\n \"migrationBannerPostDeadlineBlurb\": \"Bot yang memerlukan migrasi ke Azure Bot Service harus dimigrasikan sekarang untuk menghindari gangguan layanan.\",\r\n \"migrationBannerBlockedBlurb\": \"Migrasi bot sudah lewat jatuh tempo, harap migrasikan sekarang untuk menghindari gangguan layanan.\",\r\n \"migrationWillBeRequiredDialogMessage\": \"Jika Anda mengonfigurasi saluran ini, bot Anda akan diperlukan untuk bermigrasi ke layanan Azure bot paling lambat pada 31/3/2018. Yakin ingin mengonfigurasi saluran ini?\",\r\n \"channelRequiresMigrationDialogMessage\": \"Saluran ini hanya tersedia untuk bot di Azure Bot Service. Ingin memigrasikan bot ini?\",\r\n \"channelRequiresABSBot\": \"Saluran ini hanya tersedia untuk bot di Azure Bot Service.\",\r\n \"botRequiresMigrationDialogHeader\": \"Bot memerlukan migrasi\",\r\n \"botRequiresMigrationDialogMessage\": \"Migrasi bot sudah lewat jatuh tempo, harap migrasikan sekarang untuk menghindari gangguan layanan.\",\r\n \"yesMigrateThisBot\": \"Ya, migrasikan bot ini\",\r\n \"myBotsMigrationStatusMigrated\": \"Dimigrasikan\",\r\n \"myBotsMigrationStatusNotMigrated\": \"Diperlukan\",\r\n \"myBotsMigrationStatusOptionalMigration\": \"Tidak diperlukan\",\r\n \"myBotsMigrationButtonMigrate\": \"Migrasi\",\r\n \"myBotsMigrationButtonRollback\": \"Gulung balik migrasi\",\r\n \"deleteBotDialogDeleteButtonText\": \"Hapus bot\",\r\n \"cancelButtonText\": \"Batal\",\r\n \"deleteBotDialogTitleText\": \"Anda akan menghapus bot ini\",\r\n \"deleteBotDialogBodyText\": \"Tindakan ini akan menghapus semua data yang terkait dengan bot ini dan tidak dapat diurungkan. Anda yakin?\",\r\n \"deleteBotDialogStatusDeleting\": \"Menghapus bot...\",\r\n \"deleteBotDialogStatusDeleted\": \"Bot dihapus\",\r\n \"rollbackBotDialogRollbackButtonText\": \"Ya, gulung balik\",\r\n \"rollbackBotDialogTitleText\": \"Yakin ingin menggulung balik?\",\r\n \"rollbackBotDialogBodyText\": \"Tindakan ini akan mengembalikan sepenuhnya migrasi dan Anda harus memulai proses migrasi dari awal. Anda yakin ingin melanjutkan?\",\r\n \"rollbackBotDialogErrorInfo\": \"Terjadi kesalahan saat mengambil informasi bot dari server.\",\r\n \"rollbackBotDialogErrorNoEndpoint\": \"Tidak dapat menggulung balik. Tidak ada titik akhir gulung balik yang ditemukan.\",\r\n \"rollbackBotDialogErrorNoAzureToken\": \"Tidak dapat menggulung balik. Gagal menemukan token Azure untuk menghubungi Azure.\",\r\n \"rollbackBotDialogStatusGettingInfo\": \"Mengumpulkan info bot...\",\r\n \"rollbackBotDialogStatusPreparing\": \"Menyiapkan bot...\",\r\n \"rollbackBotDialogStatusReverting\": \"Mengembalikan bot..\",\r\n \"rollbackBotDialogStatusDeletingApp\": \"Menghapus aplikasi yang ditingkatkan...\",\r\n \"rollbackBotDialogStatusDeletingDeployment\": \"Menghapus data penyebaran...\",\r\n \"rollbackBotDialogConfirmationTitleText\": \"Penggulungan kembali selesai\",\r\n \"rollbackBotDialogConfirmationBodyText\": \"berhasil digulung kembali.\",\r\n \"okButtonText\": \"Oke\",\r\n \"errorMessageErrorOccurred\": \"Terjadi kesalahan\",\r\n \"migrationDialogStatusGettingBotInfo\": \"Mengambil info bot...\",\r\n \"migrationDialogStatusGettingAzureInfo\": \"Mendapatkan info Azure...\",\r\n \"migrationDialogStatusGettingAppSettings\": \"Mendapatkan pengaturan aplikasi bot...\",\r\n \"migrationDialogStatusDeployingMigrationBot\": \"Menginisialisasi bot yang dimigrasikan...\",\r\n \"migrationDialogStatusRegisteringWithAzure\": \"Mendaftarkan Layanan Bot dengan Azure...\",\r\n \"migrationDialogStatusUpdatingBotRecord\": \"Memperbarui catatan bot...\",\r\n \"migrationDialogStatusCreatingRG\": \"Membuat grup sumber daya...\",\r\n \"migrationDialogStatusMigratingFiles\": \"Memigrasi file ke bot baru...\",\r\n \"migrationDialogStatusWrappingUp\": \"Membungkus penyebaran...\",\r\n \"migrationDialogStatusDeployingStorage\": \"Menyambungkan bot ke penyimpanan yang ada...\",\r\n \"migrationDialogStatusDeployingSite\": \"Menyebarkan situs web\",\r\n \"migrationDialogStatusConfiguringSite\": \"Mengonfigurasi situs web\",\r\n \"migrationDialogStatusDeploying\": \"Menyebarkan\",\r\n \"migrationDialogStatusFunctionCredentials\": \"Mendapatkan kredensial aplikasi fungsi baru...\",\r\n \"migrationDialogErrorNoSubs\": \"Gagal menemukan langganan Azure untuk pengguna saat ini.\",\r\n \"migrationDialogErrorNoAzureToken\": \"Gagal menemukan token akses Azure untuk pengguna saat ini.\",\r\n \"migrationDialogErrorNoLocations\": \"Gagal menemukan lokasi apa pun untuk langganan Azure yang dipilih.\",\r\n \"migrationDialogErrorNoAzureStorage\": \"Gagal menemukan nama akun penyimpanan Azure di konfigurasi aplikasi.\",\r\n \"migrationDialogErrorAppNameUnavailable\": \"Nama domain tidak tersedia.\",\r\n \"migrationDialogErrorAppNameInvalid\": \"Nama aplikasi tidak valid.\",\r\n \"migrationDialogErrorNoBotType\": \"Bot saat ini tidak memiliki tipe yang valid.\",\r\n \"migrationDialogErrorBotInvalid\": \"Bot ini tidak dapat dimigrasikan karena bot tidak valid.\",\r\n \"migrationDialogErrorEndpointMissing\": \"Bot ini tidak dapat dimigrasikan karena titik akhir tidak ada.\",\r\n \"migrationDialogErrorProvisionInfoMissing\": \"Bot ini tidak dapat dimigrasikan karena info penyediaan tidak ada.\",\r\n \"migrationDialogErrorResourceGroupNameMissing\": \"Bot ini tidak dapat dimigrasikan karena nama grup sumber daya tidak ada.\",\r\n \"migrationDialogErrorSubscriptionIdMissing\": \"Bot ini tidak dapat dimigrasikan karena id langganan Azure tidak ada.\",\r\n \"migrationDialogErrorSiteNameMissing\": \"Bot ini tidak dapat dimigrasikan karena nama situs Azure tidak ada.\",\r\n \"migrationDialogABSv2TitleText\": \"Migrasi tidak tersedia\",\r\n \"migrationDialogABSv2BodyText\": \"Migrasi saat ini dinonaktifkan untuk bot Desainer Percakapan (ABSv2).\",\r\n \"migrationDialogRegistrationBodyText\": \"Migrasi saat ini dinonaktifkan untuk bot '{0}'.\",\r\n \"migrationDialogFailedTokenRefresh\": \"Token Azure telah kedaluwarsa.\",\r\n \"migrationDialogRefreshPage\": \"Segarkan halaman dan coba lagi migrasi.\",\r\n \"migrationSubscriptionDisabled\": \"Langganan Azure yang dipilih dinonaktifkan. Aktifkan untuk melanjutkan migrasi.\",\r\n \"migrationTenantHasNoSubscriptions\": \"Direktori ini tidak berisi langganan apa pun.\",\r\n \"migrationDialogFuncPackBotTitle\": \"Paket Azure Functions diperlukan untuk memigrasikan bot ini\",\r\n \"migrationDialogFuncPackBotMessage\": \"Bot fungsi node harus dikemas dengan paket Azure Functions sebelum dapat dimigrasikan.\",\r\n \"migrationDialogFuncPackBotLinkText\": \"Pelajari cara menjalankan Azure Functions Pack pada kode bot Anda\",\r\n \"tosDialog_Header\": \"Ketentuan Layanan\",\r\n \"tosDialog_AgreeButton\": \"Setuju\",\r\n \"tosDialog_MessageChannels\": \"Ketentuan Layanan Online tidak berlaku untuk publikasi di saluran. Misalnya, persyaratan untuk publikasi di saluran Microsoft tidak menawarkan persyaratan pemrosesan data.\",\r\n \"tosDialog_MessageMigration\": \"Harap baca dan setujui persyaratan berikut.\",\r\n \"tosDialog_AzureTermsCheckbox\": \"Saya setuju bahwa penggunaan situs kerangka bot tunduk pada {0} dan {1}.\",\r\n \"tosDialog_CortanaTermsCheckbox\": \"Saya menyetujui {0} dan {1} untuk penyebaran saya ke saluran Cortana.\",\r\n \"tosDialog_CombinedTermsCheckboxOneChannel\": \"Saya menyetujui {0} dan {1} untuk penyebaran saya ke saluran <%= channelslist %>.\",\r\n \"tosDialog_CombinedTermsCheckboxMultiChannels\": \"Saya menyetujui {0} dan {1} untuk penyebaran saya ke saluran <%= channelslist %>.\",\r\n \"tosDialog_ABSTerms\": \"ketentuan langganan saya untuk Azure Bot Service\",\r\n \"tosDialog_MSKnowledgeGraphTerms\": \"Ketentuan Publikasi Saluran Cortana\",\r\n \"tosDialog_MSPublicationTerms\": \"Ketentuan Publikasi Saluran Microsoft\",\r\n \"tosDialog_MSPrivacyStatement\": \"Pernyataan Privasi Microsoft\",\r\n \"notice\": \" PEMBERITAHUAN: \",\r\n \"listElem\": \"{0}, \",\r\n \"andListEnd\": \"{0} dan {1}\",\r\n \"analyticsChannelsDropdown\": \"Filter saluran\",\r\n \"analyticsPeriodDropdown\": \"Periode waktu\",\r\n \"deprecatedChannel\": \"(tidak digunakan lagi)\",\r\n \"openInComposer\": \"buka di penyusun\",\r\n \"downloadComposer\": \"Unduh penyusun\"\r\n}\r\n\r\nconst ResourcesMap: { [key: string]: IResources } = {\r\n \"de\": Resources_de,\r\n \"es\": Resources_es,\r\n \"fr\": Resources_fr,\r\n \"it\": Resources_it,\r\n \"id\": Resources_id,\r\n \"ja\": Resources_ja,\r\n \"ko\": Resources_ko,\r\n \"ru\": Resources_ru,\r\n \"cs\": Resources_cs,\r\n \"nl\": Resources_nl,\r\n \"hu\": Resources_hu,\r\n \"pl\": Resources_pl,\r\n \"sv\": Resources_sv,\r\n \"tr\": Resources_tr,\r\n \"pt-br\": Resources_pt_br,\r\n \"pt-pt\": Resources_pt_pt,\r\n \"zh-hans\": Resources_zh_hans,\r\n \"zh-hant\": Resources_zh_hant,\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Resources/Intercom.Resources.DevPortal.ts","import _isEqual from \"lodash/isEqual\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isNaN from \"lodash/isNaN\";\nimport _isString from \"lodash/isString\";\nimport _isArray from \"lodash/isArray\";\nimport _max from \"lodash/max\";\nimport _min from \"lodash/min\";\nimport _flatMap from \"lodash/flatMap\";\nimport _isFunction from \"lodash/isFunction\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport * as d3Scales from 'd3-scale';\nimport { stack as shapeStack, stackOrderNone, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle } from 'd3-shape';\nimport { isNumOrStr, uniqueId, isNumber, getPercentValue, mathSign, findEntryInArray } from './DataUtils';\nimport ReferenceDot from '../cartesian/ReferenceDot';\nimport ReferenceLine from '../cartesian/ReferenceLine';\nimport ReferenceArea from '../cartesian/ReferenceArea';\nimport ErrorBar from '../cartesian/ErrorBar';\nimport Legend from '../component/Legend';\nimport { findAllByType, findChildByType, getDisplayName } from './ReactUtils';\nexport var getValueByDataKey = function getValueByDataKey(obj, dataKey, defaultValue) {\n if (_isNil(obj) || _isNil(dataKey)) {\n return defaultValue;\n }\n\n if (isNumOrStr(dataKey)) {\n return _get(obj, dataKey, defaultValue);\n }\n\n if (_isFunction(dataKey)) {\n return dataKey(obj);\n }\n\n return defaultValue;\n};\n/**\n * Get domain of data by key\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\n\nexport var getDomainOfDataByKey = function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = _flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n\n if (type === 'number') {\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry, 10);\n });\n return domain.length ? [_min(domain), _max(domain)] : [Infinity, -Infinity];\n }\n\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !_isNil(entry);\n }) : flattenData;\n return validateData.map(function (entry) {\n return isNumOrStr(entry) ? entry : '';\n });\n};\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate, ticks, unsortedTicks, axis) {\n var index = -1;\n var len = ticks.length;\n\n if (len > 1) {\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range; // ticks are distributed in a circle\n\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var min = Math.min(before, after);\n var max = Math.max(before, after);\n\n if (coordinate > (min + cur) / 2 && coordinate <= (max + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n } else {\n index = 0;\n }\n\n return index;\n};\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\n\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var displayName = item.type.displayName;\n var result;\n\n switch (displayName) {\n case 'Line':\n case 'Area':\n case 'Radar':\n result = item.props.stroke;\n break;\n\n default:\n result = item.props.fill;\n break;\n }\n\n return result;\n};\nexport var getLegendProps = function getLegendProps(_ref) {\n var children = _ref.children,\n formatedGraphicalItems = _ref.formatedGraphicalItems,\n legendWidth = _ref.legendWidth,\n legendContent = _ref.legendContent;\n var legendItem = findChildByType(children, Legend);\n\n if (!legendItem) {\n return null;\n }\n\n var legendData;\n\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formatedGraphicalItems || []).reduce(function (result, _ref2) {\n var item = _ref2.item,\n props = _ref2.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formatedGraphicalItems || []).map(function (_ref3) {\n var item = _ref3.item;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n name = _item$props.name,\n legendType = _item$props.legendType,\n hide = _item$props.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendItem.props.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n payload: item.props\n };\n });\n }\n\n return _objectSpread({}, legendItem.props, Legend.getWithHeight(legendItem, legendWidth), {\n payload: legendData,\n item: legendItem\n });\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\n\nexport var getBarSizeList = function getBarSizeList(_ref4) {\n var globalSize = _ref4.barSize,\n _ref4$stackGroups = _ref4.stackGroups,\n stackGroups = _ref4$stackGroups === void 0 ? {} : _ref4$stackGroups;\n\n if (!stackGroups) {\n return {};\n }\n\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n\n if (!result[cateId]) {\n result[cateId] = [];\n }\n\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: _isNil(selfSize) ? globalSize : selfSize\n });\n }\n }\n }\n\n return result;\n};\n/**\n * Calculate the size of each bar and the gap between two bars\n * @param {Number} bandSize The size of each category\n * @param {sizeList} sizeList The size of all groups\n * @param {maxBarSize} maxBarSize The maximum size of bar\n * @return {Number} The size of each bar and the gap between two bars\n */\n\nexport var getBarPosition = function getBarPosition(_ref5) {\n var barGap = _ref5.barGap,\n barCategoryGap = _ref5.barCategoryGap,\n bandSize = _ref5.bandSize,\n _ref5$sizeList = _ref5.sizeList,\n sizeList = _ref5$sizeList === void 0 ? [] : _ref5$sizeList,\n maxBarSize = _ref5.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result; // whether or not is barSize setted by user\n\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newRes = _toConsumableArray(res).concat([{\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n size: useFull ? fullBarSize : entry.barSize\n }\n }]);\n\n prev = newRes[newRes.length - 1].position;\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n\n return newRes;\n }, []);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = _toConsumableArray(res).concat([{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n\n return newRes;\n }, []);\n }\n\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, items, props, legendBox) {\n var children = props.children,\n width = props.width,\n height = props.height,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n var legendProps = getLegendProps({\n children: children,\n items: items,\n legendWidth: legendWidth,\n legendHeight: legendHeight\n });\n var newOffset = offset;\n\n if (legendProps) {\n var box = legendBox || {};\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'center') && isNumber(offset[align])) {\n newOffset = _objectSpread({}, offset, _defineProperty({}, align, newOffset[align] + (box.width || 0)));\n }\n\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && isNumber(offset[verticalAlign])) {\n newOffset = _objectSpread({}, offset, _defineProperty({}, verticalAlign, newOffset[verticalAlign] + (box.height || 0)));\n }\n }\n\n return newOffset;\n};\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, ErrorBar).filter(function (errorBarChild) {\n var direction = errorBarChild.props.direction;\n return _isNil(direction) || _isNil(axisType) ? true : axisType.indexOf(direction) >= 0;\n });\n\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey, 0);\n var mainValue = _isArray(entryValue) ? [_min(entryValue), _max(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(_isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(_isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, axisType);\n }).filter(function (entry) {\n return !_isNil(entry);\n });\n\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\n\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n var tag = {}; // Get the union set of category axis\n\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n if (!tag[entry[i]]) {\n tag[entry[i]] = true;\n result.push(entry[i]);\n }\n }\n\n return result;\n }, []);\n};\nexport var isCategorialAxis = function isCategorialAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} min The minimun value of axis\n * @param {Number} max The maximun value of axis\n * @return {Array} Coordinates\n */\n\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, min, max) {\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === min) {\n hasMin = true;\n }\n\n if (entry.coordinate === max) {\n hasMax = true;\n }\n\n return entry.coordinate;\n });\n\n if (!hasMin) {\n values.push(min);\n }\n\n if (!hasMax) {\n values.push(max);\n }\n\n return values;\n};\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\n\nexport var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / 2 : 0;\n offset = axis.axisType === 'angleAxis' ? mathSign(range[0] - range[1]) * 2 * offset : offset; // The ticks setted by user should only affect the ticks adjacent to axis line\n\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n return (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n }\n\n if (axis.isCategorial && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry),\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis has duplicated text, serial numbers are used to generate scale\n\n\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} parentHandler Handler function specified in parent component\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\n\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, parentHandler, childHandler) {\n var customizedHandler;\n\n if (_isFunction(childHandler)) {\n customizedHandler = childHandler;\n } else if (_isFunction(parentHandler)) {\n customizedHandler = parentHandler;\n }\n\n if (_isFunction(defaultHandler) || customizedHandler) {\n return function (arg1, arg2, arg3, arg4) {\n if (_isFunction(defaultHandler)) {\n defaultHandler(arg1, arg2, arg3, arg4);\n }\n\n if (_isFunction(customizedHandler)) {\n customizedHandler(arg1, arg2, arg3, arg4);\n }\n };\n }\n\n return null;\n};\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @return {Function} The scale funcion\n */\n\nexport var parseScale = function parseScale(axis, chartType) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (_isString(scale)) {\n var name = \"scale\".concat(scale.slice(0, 1).toUpperCase()).concat(scale.slice(1));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n\n return _isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n\n if (!domain || domain.length <= 2) {\n return;\n }\n\n var len = domain.length;\n var range = scale.range();\n var min = Math.min(range[0], range[1]) - EPS;\n var max = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n\n if (first < min || first > max || last < min || last > max) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n\n return null;\n};\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n\n if (!isNumber(value[0]) || value[0] < min) {\n result[0] = min;\n }\n\n if (!isNumber(value[1]) || value[1] > max) {\n result[1] = max;\n }\n\n if (result[0] > max) {\n result[0] = max;\n }\n\n if (result[1] < min) {\n result[1] = min;\n }\n\n return result;\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n expand: stackOffsetExpand,\n none: stackOffsetNone,\n silhouette: stackOffsetSilhouette,\n wiggle: stackOffsetWiggle\n};\nexport var getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var stack = shapeStack().keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone).offset(STACK_OFFSET_MAP[offsetType]);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n } // reversing items to affect render order (for layering)\n\n\n var items = reverseStackOrder ? _items.reverse() : _items;\n var stackGroups = items.reduce(function (result, item) {\n var _item$props2 = item.props,\n stackId = _item$props2.stackId,\n hide = _item$props2.hide;\n\n if (hide) {\n return result;\n }\n\n var axisId = item.props[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n\n return _objectSpread({}, result, _defineProperty({}, axisId, parentGroup));\n }, {});\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n\n if (group.hasStack) {\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _objectSpread({}, res, _defineProperty({}, stackId, {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType)\n }));\n }, {});\n }\n\n return _objectSpread({}, result, _defineProperty({}, axisId, group));\n }, {});\n};\n/**\n * get domain of ticks\n * @param {Array} ticks Ticks of axis\n * @param {String} type The type of axis\n * @return {Array} domain\n */\n\nexport var calculateDomainOfTicks = function calculateDomainOfTicks(ticks, type) {\n if (type === 'number') {\n return [_min(ticks), _max(ticks)];\n }\n\n return ticks;\n};\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\n\nexport var getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain(calculateDomainOfTicks(tickValues, type));\n return {\n niceTicks: tickValues\n };\n }\n\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n\n return {\n niceTicks: _tickValues\n };\n }\n\n return null;\n};\nexport var getCateCoordinateOfLine = function getCateCoordinateOfLine(_ref6) {\n var axis = _ref6.axis,\n ticks = _ref6.ticks,\n bandSize = _ref6.bandSize,\n entry = _ref6.entry,\n index = _ref6.index,\n dataKey = _ref6.dataKey;\n\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n if (!axis.allowDuplicatedCategory && axis.dataKey && !_isNil(entry[axis.dataKey])) {\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n\n var value = getValueByDataKey(entry, !_isNil(dataKey) ? dataKey : axis.dataKey);\n return !_isNil(value) ? axis.scale(value) : null;\n};\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref7) {\n var axis = _ref7.axis,\n ticks = _ref7.ticks,\n offset = _ref7.offset,\n bandSize = _ref7.bandSize,\n entry = _ref7.entry,\n index = _ref7.index;\n\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !_isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref8) {\n var numericAxis = _ref8.numericAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n\n if (min <= 0 && max >= 0) {\n return 0;\n }\n\n if (max < 0) {\n return max;\n }\n\n return min;\n }\n\n return domain[0];\n};\nexport var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n\n return ifOverflow === value;\n};\nexport var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = findAllByType(children, ReferenceLine);\n var dots = findAllByType(children, ReferenceDot);\n var elements = lines.concat(dots);\n var areas = findAllByType(children, ReferenceArea);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n\n return result;\n }, finalDomain);\n }\n\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n\n return result;\n }, finalDomain);\n }\n\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n\n return result;\n }, finalDomain);\n }\n\n return finalDomain;\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var stackId = item.props.stackId;\n\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n\n if (group && group.items.length) {\n var itemIndex = -1;\n\n for (var i = 0, len = group.items.length; i < len; i++) {\n if (group.items[i] === item) {\n itemIndex = i;\n break;\n }\n }\n\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n\n return null;\n};\n\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [_min(entry.concat([result[0]]).filter(isNumber)), _max(entry.concat([result[1]]).filter(isNumber))];\n }, [Infinity, -Infinity]);\n};\n\nexport var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (!_isArray(specifiedDomain)) {\n return dataDomain;\n }\n\n var domain = [];\n /* eslint-disable prefer-destructuring */\n\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (_isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n\n domain[1] = dataDomain[1] + _value;\n } else if (_isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n\n return domain;\n};\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @return {Number} Size\n */\n\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks) {\n if (axis && axis.scale && axis.scale.bandwidth) {\n return axis.scale.bandwidth();\n }\n\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = _sortBy(ticks, function (o) {\n return o.coordinate;\n });\n\n var bandSize = Infinity;\n\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n\n return bandSize === Infinity ? 0 : bandSize;\n }\n\n return 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis element\n * @returns {Array} domains\n */\n\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n\n if (_isEqual(specifiedDomain, _get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n\n return specifiedDomain;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/util/ChartUtils.js\n// module id = 16\n// module chunks = 0"," export var resourceStrings = {\r\n appId: 'Microsoft App ID',\r\n featuredBotsTitle: 'Featured bots',\r\n directoryHeroTitle: 'Meet the bots',\r\n directoryHeroText: 'Say hello! Try out a bot and add it to your favorite conversation\\u00a0experiences.',\r\n botBuilder: 'Bot Builder',\r\n botConnector: 'Bot Connector',\r\n botDirectory: 'Bot Directory',\r\n botEndpoint: 'Messaging endpoint',\r\n botEnableStreamingEndpoint: 'Enable Streaming Endpoint',\r\n botSchemaTransformationVersion: 'Schema Transformation Version:',\r\n botEndpointBlank: 'Not set',\r\n botFramework: 'Bot Framework',\r\n botFrameworkExtended: 'Microsoft Bot Framework',\r\n botId: 'Bot handle',\r\n maximize: 'Expand',\r\n minimize: 'Done',\r\n cancel: 'Cancel',\r\n edit: 'Edit',\r\n register: 'Register',\r\n deleteBot: 'Delete bot',\r\n channelTestLink: 'Test link',\r\n channelLog: 'Issues',\r\n channelEnabled: 'Enabled',\r\n channelPublished: 'Published',\r\n readMore: 'Read more.',\r\n readLess: 'Read less.',\r\n learnMore: 'Learn more',\r\n buttonOk: 'OK',\r\n buttonCancel: 'Cancel',\r\n buttonNo: 'No',\r\n buttonYes: 'Yes',\r\n botDisclaimer: \"Your interactions with this bot are also subject to the conversational channel's applicable terms of use, privacy and data collection policies.\",\r\n\r\n v3LandingTitle: 'Get building',\r\n v3LandingTexts: {\r\n sdk: { title: 'Build a great bot', text: 'Download the SDKs for Node.js, .NET or REST; leverage the chat emulator and more\\u2026' },\r\n channels: { title: 'Connect to channels', text: 'Connect your bot to the world\\'s best conversation experiences.' },\r\n directory: { title: 'Meet the bots', text: 'Visit the Bot Directory, try a bot, and add it to your favorite conversation experiences.' },\r\n congnitive: { title: 'Add smarts with Cognitive Services', text: 'Enable your bot to see, hear and interpret in more human ways.' },\r\n skype: { title: 'Build a Skype bot', text: 'Make the world\\'s conversations rich, productive, and fun.' },\r\n teams: { title: 'Build a Teams bot', text: 'Microsoft Teams is the chat-based workspace for Office 365.' },\r\n //docs: {title: 'Learn bot basics', text: 'Everything you need to know about creating a great conversational bot.'}\r\n },\r\n v3Update: \"This bot is no longer compatible with the Bot Framework. Update your bot now to get it working again.\",\r\n v3Warning: \"We revised our security protocols on July 31, 2017. Update to Bot Builder 3.9+ or compatible security configuration to keep your bot working.\",\r\n tooltips: {\r\n channelConfig: {\r\n title: 'Skype and Web chat channels have been auto configured.',\r\n text: 'Click \\'Edit\\' to fine tune channel specific capabilities and settings.'\r\n }\r\n },\r\n errors: {\r\n noMarketsSelected: 'You must select at least one market',\r\n agreementNotChecked: 'You must agree to the Privacy Statement, Terms of Use, and Code of Conduct.'\r\n },\r\n botPageTabs: ['Develop', 'Channels', 'Settings', 'Publish'],\r\n initializing: 'Initializing',\r\n loadingBotApp: 'Loading bot app',\r\n deployingBotApp: 'Deploying bot app',\r\n botEditorUpdated: 'Bot registration updated',\r\n botSettingsUpdated: 'Bot updated',\r\n msaAppSecret: 'App secret',\r\n msaDescription: 'In order to authenticate your bot with the Bot Framework, you\\'ll need to register your application and generate an App ID and password.',\r\n msaLabelRegister: 'Register your bot with Microsoft to generate a new App ID and password',\r\n msaLearnMore: 'Learn how to create a new App Registration',\r\n msaLabelPasteAppId: 'Paste your app ID below to continue',\r\n msaLabelPasteAppIdAndPwd: 'Paste your App ID and password below to continue',\r\n loadingBotWebChat: 'Loading chat interface\\u2026',\r\n subscriptionConsentDialog: {\r\n title: \"Subscribe to Microsoft Bot Framework\",\r\n description: \"Let's keep in touch! Signup to receive the latest news about Microsoft Bot Framework, bots and more.\",\r\n selectCountryLabel: \"Select your country/region:\",\r\n agreementHeading: \"Terms of service\",\r\n agreementDescription: \"Please read and agree to the following terms. NOTICE: The Online Services Terms do not apply to publication on channels. For example, terms for publication on Microsoft channels do not offer data processing terms.\",\r\n\r\n /**\r\n * NOTE\r\n * ----\r\n * These labels label show up as is using raw HTML of body label, be careful while editing this string.\r\n * If you are not sure don't add any useless tags.\r\n */\r\n allowPromotionalEmailLabelHtml: \"Contact me with promotional offers and updates about Microsoft Bot Framework services.\",\r\n\r\n /**\r\n * NOTE\r\n * ----\r\n * This map is country specific terms and conditions HTML that we might need to show for special cases.\r\n * Populate HTML carefuly against each country code (Must be capital)\r\n */\r\n countrySpecificPromotionalEmailLablesHtml: {\r\n CA: 'I would like to hear from Microsoft and its family of companies via email and phone about Bot Framework and other Microsoft products and services. ' +\r\n 'To withdraw consent or manage your contact preferences, visit the
Promotional Communications Manager. '\r\n },\r\n\r\n /**\r\n * NOTE\r\n * ----\r\n * this label goes in as is setting HTML of body label, be careful while editing this string.\r\n * If you are not sure don't add any useless tags.\r\n */\r\n\r\n agreementLabelHtml: 'I agree that my use of the Bot Framework service is subject to the same terms under which I use the Azure Bot Service through Azure. If I do not use the Azure Bot Service through Azure, I agree that my use of this service is subject to the Microsoft Online Service Terms. By using the Bot Framework service, I acknowledge the Privacy & Cookies statement.',\r\n luisAgreementLabelHtml: 'I agree that this service is subject to the same terms under which I subscribe to Cognitive Services through Azure, including the Online Services Terms. I acknowledge the Privacy & Cookies statement.',\r\n\r\n saveButtonLabel: \"Save\",\r\n cancelButtonLabel: \"Cancel\",\r\n\r\n updateErrorMessage: \"Unable to update your subscription preferences\"\r\n },\r\n iframeTitleLuis: \"Language Understanding Intelligent Service\",\r\n iframeTitleQna: \"QnA Maker\",\r\n v4: {\r\n // Must be kept in sync with enum BotTabs of Client/Views/v4/BotPage.tsx\r\n // Note: the last entry is 'Build' the enum value is BotTabs.Develop, this is by design\r\n botPageTabs: ['Build', 'Analytics', 'Settings', 'Channels', 'Build'],\r\n analyticsNotConfigured: \"You haven't enabled Analytics via Azure Application Insights yet.\",\r\n nobotsPrompt: \"You don't have any bots or skills yet.\",\r\n newBotPrompt: \"Create a bot or skill.\",\r\n createBotSDKLink: \"Download the Bot Builder SDK\",\r\n createBotLabel: \"Build a bot using the Bot Builder SDK and optionally provision your bot in Microsoft Azure.\"\r\n },\r\n\r\n channels: {\r\n published: \"Published\",\r\n health: \"Health\",\r\n name: \"Name\",\r\n edit: \"Edit\",\r\n configure: \"Configure\",\r\n running: \"Running\",\r\n issuesTemplate: \"Issues (<%= length %>)\",\r\n warningTemplate: \"Warnings (<%= length %>)\"\r\n },\r\n\r\n embedPanel: {\r\n title: \"Bot embed code\",\r\n description: \"Choose a channel to get the embed code for it. Copy and paste the code to your website.\",\r\n facebookFooter: \"In order to use this embed Facebook requires you to include their JavaScript SDK in your page.\",\r\n },\r\n\r\n channelConfig: {\r\n deleteMessage: \"This action will delete all channel configuration information. Are you sure you want to proceed?\",\r\n deleteHeader: \"Delete channel\",\r\n deleteOk: \"Yes, delete it\",\r\n deleteCancel: \"No, keep it\",\r\n leaveMessage: \"You have unsaved changes in this document. Are you sure you want to navigate away from this page?\",\r\n leaveHeader: \"Discard changes\",\r\n leaveOk: \"Yes, leave page\",\r\n leaveCancel: \"No, stay on page\",\r\n },\r\n expiredAzureSubscription: 'Your Azure subscription is no longer active',\r\n\r\n announcements: {\r\n types: {\r\n error: \"Error\",\r\n good: \"Normal\",\r\n info: \"Information\",\r\n warn: \"Warning\"\r\n },\r\n ok: {\r\n productArea: 'All Bot Framework services',\r\n text: 'Services are operating normally.'\r\n },\r\n link: \"See details\"\r\n }\r\n };\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/Strings.ts","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = new Date(+date)), date;\n }\n\n interval.floor = interval;\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time/src/interval.js\n// module id = 18\n// module chunks = 0","function isInFrame() {\r\n return window.parent !== window;\r\n}\r\n\r\nexport default isInFrame;\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Utils/InFrame.ts","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.interpolator(domain); break;\n default: this.interpolator(interpolator).domain(domain); break;\n }\n return this;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/init.js\n// module id = 20\n// module chunks = 0","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\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(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isObject.js\n// module id = 21\n// module chunks = 0","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isEqual.js\n// module id = 22\n// module chunks = 0","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isNil.js\n// module id = 23\n// module chunks = 0","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIteratee.js\n// module id = 24\n// module chunks = 0","import Animate from './Animate';\nimport { configBezier, configSpring } from './easing';\nimport { translateStyle } from './util';\nimport AnimateGroup from './AnimateGroup';\nexport { configSpring, configBezier, AnimateGroup, translateStyle };\nexport default Animate;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-smooth/es6/index.js\n// module id = 25\n// module chunks = 0","export class Environment {\r\n /**\r\n * Is this running in the bot framework azure extension (aka Ibiza).\r\n */\r\n public static isInBotFrameworkAzureExtension = false;\r\n\r\n /**\r\n * Is this running in the \"legacy\" azure portal.\r\n */\r\n public static isInAzurePortal = false;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Utils/Environment.ts","/// \r\n\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {DialogBase} from \"./DialogBase\";\r\nimport * as Views from \"../Views/MessageBox\";\r\nimport {resourceStrings} from \"../../../Intercom.ReactUI/Views/Strings\";\r\n\r\nexport class MessageBox extends DialogBase {\r\n public header: string;\r\n public message: string;\r\n private options: IMessageBoxOptions;\r\n\r\n constructor(options: IMessageBoxOptions) {\r\n super();\r\n this.options = $.extend({}, DefaultMessageBoxOptions, options);\r\n }\r\n\r\n protected render(): void {\r\n var props: Views.MessageBoxPanelProps = {\r\n okButtonClass: this.options.okButtonClass,\r\n okButtonLabel: this.options.okButtonLabel,\r\n cancelButtonLabel: this.options.cancelButtonLabel,\r\n hideCancelButton: this.options.hideCancelButton,\r\n message: this.message,\r\n header: this.header,\r\n className: this.options.className\r\n };\r\n var element = React.createElement(Views.MessageBoxPanel, props);\r\n ReactDOM.render(element, this.$el[0], () => {\r\n this.init();\r\n });\r\n }\r\n\r\n protected init(): void {\r\n // Call base class method to complete initialization.\r\n super.init();\r\n }\r\n\r\n /** Static method for displaying a simple message. */\r\n public static show(message: string): JQueryPromise {\r\n var mb = new MessageBox({ hideCancelButton: true });\r\n mb.message = message;\r\n return mb.showDialog();\r\n }\r\n\r\n /** Static method for asking the user a yes/no question. OK/Cancel buttons are relabeled to Yes/No. */\r\n public static ask(message: string): JQueryPromise {\r\n var mb = new MessageBox({ okButtonLabel: resourceStrings.buttonYes, cancelButtonLabel: resourceStrings.buttonNo });\r\n mb.message = message;\r\n return mb.showDialog();\r\n }\r\n\r\n}\r\n\r\nexport interface IMessageBoxOptions {\r\n className?: string;\r\n hideCancelButton?: boolean;\r\n okButtonClass?: string;\r\n okButtonLabel?: string;\r\n cancelButtonLabel?: string;\r\n}\r\n\r\nvar DefaultMessageBoxOptions: IMessageBoxOptions = {\r\n hideCancelButton: false,\r\n okButtonLabel: resourceStrings.buttonOk,\r\n cancelButtonLabel: resourceStrings.buttonCancel\r\n};\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Dialogs/MessageBox.ts","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_root.js\n// module id = 28\n// module chunks = 0","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isObjectLike.js\n// module id = 29\n// module chunks = 0","import _isNil from \"lodash/isNil\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n\n if (_isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n\n var _range2 = _slicedToArray(_range, 2);\n\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread({}, axis, {\n realScaleType: realScaleType\n }));\n\n var finalAxis = _objectSpread({}, axis, ticks, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n\n return _objectSpread({}, result, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\n\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\n\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n\n if (radius === 0) {\n return true;\n }\n\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n\n var formatAngle = angle;\n var inRange;\n\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n\n if (inRange) {\n return _objectSpread({}, sector, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n\n return null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/util/PolarUtils.js\n// module id = 30\n// module chunks = 0","/// \r\n/// \r\n\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport Rest = require(\"../../Generated/RestClient\");\r\nimport * as Views from \"../Views/MasterPage\";\r\nimport * as Dialogs from \"../../Dialogs/MessageBox\";\r\nimport { resourceStrings, NavLinks } from \"../../../../Intercom.ReactUI/Views/index\";\r\nimport { Resources } from \"../../Resources/Intercom.Resources.DevPortal\";\r\nimport { DropdownMenu } from \"../../Views/DropdownMenu\";\r\nimport { clientAppSettings } from \"../../Models/ClientAppSettings\";\r\nimport { BotProgress } from \"../Views/index\";\r\nimport { DevPortalAppBase, IAnnouncements } from \"../../DevPortalAppBase\";\r\nimport isInFrame from \"../../../../Intercom.ReactUI/Utils/InFrame\";\r\nimport { Environment } from \"../../../../Intercom.ReactUI/Utils/Environment\";\r\nimport { relativeUrl } from \"../../Utils/Links\";\r\nimport { SupportedFeatureUtility } from \"../Utility/SupportedFeatureUtility\";\r\nimport logger from \"../../../../Intercom.ReactUI/Utils/logger\";\r\nimport { FlightUtils } from '../../Utils/FlightUtils';\r\nimport { parseApiError } from \"../Services/parseApiError\";\r\nimport { HeaderKind } from \"../Utility/HeaderKind\";\r\nimport { Environment as PortalEnvironment } from \"../../Utils/Environment\";\r\n\r\nimport { AuthenticationUtility } from \"../Utility/AuthenticationUtility\";\r\nimport { AzurePortalMessenger, InfoResult, AccessTokensResult, EndpointStatusResult, AppInsightsStatusResult, DefaultPortalSignature } from \"../Utility/AzurePortalMessenger\";\r\n\r\nexport function isBrowserSupported(): boolean {\r\n /*\r\n // check result of parseUserAgent against KnownBrowsers to decide\r\n // whether we can support the browser or not. Currently we support all browsers\r\n // ideally we should use browserCaps instead of userAgent to decide\r\n let agent = parseUserAgent();\r\n if (agent[KnownBrowser[KnownBrowser.{UnSupportedBrowserBrand}]])\r\n return false;\r\n */\r\n return true;\r\n}\r\n\r\nexport function refreshClientAppSettings(): JQueryPromise {\r\n return Rest.AccountClient.getClientSettings().done(settings => {\r\n _.extend(clientAppSettings, settings, _.pick(clientAppSettings, 'homeUrl'));\r\n });\r\n}\r\n\r\n/**\r\n * Current page status - these are ONLY valid when loading from Azure Ibiza.\r\n */\r\nexport enum PageStatusFlags {\r\n Ready = 0,\r\n LoadingBot = 1,\r\n LoggingIn = 1 << 1,\r\n WaitingForBotReady = 1 << 2,\r\n WaitingForAppInsightsReady = 1 << 3\r\n}\r\n\r\n/**\r\n * This is the base class for all controllers in this app.\r\n * Here we render parts common to all pages, and handle events in those parts.\r\n */\r\nexport class ControllerBase extends SimpleMvc.Controller {\r\n protected masterPageState: Views.MasterPageState;\r\n protected params: SimpleMvc.QueryParams;\r\n protected masterPage: Views.MasterPage;\r\n private accessToken: string;\r\n protected containerController: ControllerBase;\r\n private handlersAttached = false;\r\n private activeDropdownMenu: DropdownMenu = null;\r\n /** Page status - this is only used by Azure Ibiza and should be accessed using the set/clear/hasPageStatusFlag methods. */\r\n private _pageStatus: PageStatusFlags = PageStatusFlags.Ready;\r\n\r\n private _azurePortalMessenger: AzurePortalMessenger;\r\n private _onReceiveInfo: (info: InfoResult) => void;\r\n private _onReceiveAzureToken: (tokens: AccessTokensResult) => void;\r\n private _onReceiveEndpointStatus: (status: EndpointStatusResult) => void;\r\n private _onReceiveAppInsightsStatus: (status: AppInsightsStatusResult) => void;\r\n private _appInsightsStatusTimer: number;\r\n\r\n protected IsUserMSA() : boolean {\r\n return this.app.signedInUser && this.app.signedInUser.IdentityProvider === 'live.com';\r\n }\r\n\r\n protected setPageStatusFlag(flag: PageStatusFlags): boolean {\r\n const hasFlag = this.hasPageStatusFlag(flag);\r\n this._pageStatus |= flag;\r\n\r\n return hasFlag;\r\n }\r\n\r\n protected clearPageStatusFlag(flag: PageStatusFlags): boolean {\r\n const hasFlag = this.hasPageStatusFlag(flag);\r\n this._pageStatus &= ~flag;\r\n\r\n return hasFlag;\r\n }\r\n\r\n protected hasPageStatusFlag(flag: PageStatusFlags): boolean {\r\n return (this._pageStatus & flag) === flag;\r\n }\r\n\r\n protected setBotAppSettings(x: any) {\r\n if (this.containerController) {\r\n this.containerController.setBotAppSettings(x);\r\n }\r\n }\r\n\r\n public isLoaded(): boolean {\r\n return this.containerController ? this.containerController.isLoaded() : super.isLoaded();\r\n }\r\n\r\n public get pageContent() {\r\n return this.containerController ? this.containerController.pageContent : this.masterPage.pageContent;\r\n }\r\n\r\n constructor(public app: DevPortalAppBase, protected headerKind = HeaderKind.Small) {\r\n super();\r\n }\r\n\r\n private hideActiveDropdownMenu() {\r\n if (!this.activeDropdownMenu) return;\r\n this.activeDropdownMenu.hide();\r\n this.activeDropdownMenu = null;\r\n }\r\n\r\n public isAdminOrSupport(): boolean {\r\n const env = PortalEnvironment.portalEnvironment();\r\n if (env == \"scratch\" || env == \"ppe\") {\r\n return this.app.signedInUser != null && this.app.signedInUser.Roles != null && (this.app.signedInUser.Roles.indexOf('IntAdmin') >= 0 || this.app.signedInUser.Roles.indexOf('IntSupport') >= 0);\r\n } else {\r\n return this.app.signedInUser != null && this.app.signedInUser.Roles != null && (this.app.signedInUser.Roles.indexOf('ProdAdmin') >= 0 || this.app.signedInUser.Roles.indexOf('ProdSupport') >= 0);\r\n }\r\n }\r\n\r\n public isReviewer(): boolean {\r\n return this.app.signedInUser != null && this.app.signedInUser.Roles.indexOf('reviewer') >= 0;\r\n }\r\n\r\n public setSearchState(search: string, searchOpened: boolean) {\r\n this.masterPage.setState(_.extend(this.masterPageState, { searchString: search, expandSearch: searchOpened }));\r\n }\r\n\r\n public setAnnouncementState(announcements: IAnnouncements) {\r\n if (this.masterPage) {\r\n this.masterPage.setState({ announcements } as Views.MasterPageState);\r\n }\r\n }\r\n\r\n public load(params: SimpleMvc.QueryParams): void {\r\n super.load(params);\r\n this.detachHandlers();\r\n\r\n this.params = params;\r\n\r\n ControllerBase.setEnvironment(this.params);\r\n\r\n if (Environment.isInBotFrameworkAzureExtension) {\r\n this._initializeForAzure();\r\n }\r\n\r\n if (this.pageRequiresSignIn()) {\r\n if (!isBrowserSupported()) {\r\n this.renderCommon(true);\r\n this.updateState(false, null, () => {\r\n // do nothing\r\n });\r\n } else if (this.app.signedInUser) {\r\n this.clearPageStatusFlag(PageStatusFlags.LoggingIn);\r\n this.renderCommon();\r\n this.updateState(false, null, () => {\r\n this.render(params);\r\n });\r\n }\r\n else {\r\n Rest.AccountClient.getSignedInUser().done(user => {\r\n if (this.needSignInAndCanRedirect(user)) {\r\n // If we can, ask the user to sign-in again.\r\n const signinUri = this.getSignInUrl();\r\n window.location.replace(signinUri);\r\n } else {\r\n logger.debug('ControllerBase: Signed in user via DevPortal. Setting and refreshing view.');\r\n\r\n this.app.signedInUser = user;\r\n if (!AuthenticationUtility.setRequestVerificationHeader()) {\r\n logger.debug(\"ControllerBase: Failed to set request verification header when getting signed in user.\");\r\n }\r\n\r\n this.clearPageStatusFlag(PageStatusFlags.LoggingIn);\r\n\r\n this.renderCommon();\r\n refreshClientAppSettings().then(\r\n () => {\r\n this.updateState(false, null, () => this.render(params));\r\n }\r\n );\r\n }\r\n }).fail(() => {\r\n if (isInFrame() || Environment.isInBotFrameworkAzureExtension) {\r\n // We are in azure portal as iframe - wait for cross-frame message to log us in.\r\n logger.debug('ControllerBase: Waiting for cross-frame message');\r\n } else {\r\n this.app.signedInUser = null;\r\n this.renderCommon(true);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n // check browser support and block if we are hosted by azure portal\r\n this.renderCommon(isInFrame());\r\n this.showProgressMask = false;\r\n this.updateState(false, null, () => {\r\n this.render(params);\r\n });\r\n }\r\n\r\n this.addRemoveCssClass(true);\r\n\r\n // Load tracking code here if the user consent to our cookie policy\r\n this.app.trackingCookieConsent.loadPageTrackingIfInformed();\r\n }\r\n\r\n /**\r\n * Do we need to sign the given user in and can we redirect to the sign-in page?\r\n * @param user - Current logged in user.\r\n */\r\n protected needSignInAndCanRedirect(user: Rest.AuthData): boolean {\r\n const canRedirect = !isInFrame() && !Environment.isInBotFrameworkAzureExtension;\r\n const needSignIn = (FlightUtils.IsFirstPartyAuthFlighted || (user.FlightedFeatures && user.FlightedFeatures.indexOf('firstPartyAuth') >= 0)) && !this.isBfAppId(user);\r\n\r\n return canRedirect && needSignIn;\r\n }\r\n\r\n private isBfAppId(user: Rest.AuthData): boolean {\r\n const bfAppId = clientAppSettings.appId.toUpperCase();\r\n const isBfApp = user.AppId.toUpperCase() === bfAppId;\r\n return isBfApp;\r\n }\r\n\r\n protected getSignInUrl(): string {\r\n const paramValue = encodeURIComponent(relativeUrl(window.location));\r\n return `/Identity/SignIn?requestUrl=${paramValue}`;\r\n }\r\n\r\n public unload(): void {\r\n if (this._appInsightsStatusTimer) {\r\n clearTimeout(this._appInsightsStatusTimer);\r\n this._appInsightsStatusTimer = undefined;\r\n }\r\n if (this._onReceiveInfo) {\r\n this._azurePortalMessenger.unlistenForInfo(this._onReceiveInfo);\r\n this._onReceiveInfo = undefined;\r\n }\r\n if (this._onReceiveAzureToken) {\r\n this._azurePortalMessenger.unlistenForAuthenticationTokens(this._onReceiveAzureToken);\r\n this._onReceiveAzureToken = undefined;\r\n }\r\n if (this._onReceiveEndpointStatus) {\r\n this._azurePortalMessenger.unlistenForEndpointStatus(this._onReceiveEndpointStatus);\r\n this._onReceiveEndpointStatus = undefined;\r\n }\r\n if (this._onReceiveAppInsightsStatus) {\r\n this._azurePortalMessenger.unlistenForAppInsightsStatus(this._onReceiveAppInsightsStatus);\r\n this._onReceiveAppInsightsStatus = undefined;\r\n }\r\n if (this._azurePortalMessenger) {\r\n this._azurePortalMessenger = undefined;\r\n }\r\n\r\n this.statusBar = null;\r\n this.showProgressMask = false;\r\n this.detachHandlers();\r\n this.hideActiveDropdownMenu();\r\n this.addRemoveCssClass(false);\r\n this.app.trackingCookieConsent.markAsInformed();\r\n }\r\n\r\n private addRemoveCssClass(add: boolean): void {\r\n const cssClass = this.getCssClass();\r\n if (cssClass) {\r\n const $appBody = $(this.app.getAppBody());\r\n if (add) {\r\n $appBody.addClass(cssClass);\r\n }\r\n else {\r\n $appBody.removeClass(cssClass);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Controllers that want to add a custom CSS class to app-body any time they are loaded should override this method.\r\n */\r\n protected getCssClass(): string {\r\n return null;\r\n }\r\n\r\n protected pageRequiresSignIn(): boolean {\r\n return true;\r\n }\r\n\r\n protected refreshSignedInUser() {\r\n // synchronize csrf cookie and header value\r\n if (!AuthenticationUtility.setRequestVerificationHeader()) {\r\n logger.debug(\"ControllerBase: Failed to set request verification header when refreshing signed in user.\");\r\n }\r\n if (!this.app.signedInUser) {\r\n logger.debug('begin refresh signed user');\r\n this.load(this.params);\r\n }\r\n }\r\n\r\n /**\r\n * Renders parts common to all pages.\r\n * This method is called whether or not the user is signed in.\r\n */\r\n protected renderCommon(checkBrowserSupport?: boolean): void {\r\n const props: Views.MasterPageProps = {\r\n controller: this,\r\n isAdmin: () => this.isAdminOrSupport(),\r\n isReviewer: () => this.isReviewer(),\r\n signInRequired: this.pageRequiresSignIn(),\r\n onSearch: (s) => this.handleSearch(s),\r\n onSignOutClicked: () => this.onSignOutClicked(),\r\n onUserAccountClicked: () => this.onUserAccountClicked(),\r\n refreshSignedInUser: () => this.refreshSignedInUser(),\r\n headerKind: this.headerKind,\r\n isRoutableUrl: (url: string) => {\r\n return !(/^https?:/i.test(url) || /^\\/\\//.test(url));\r\n }\r\n };\r\n const element = React.createElement(Views.MasterPage, props);\r\n this.masterPage = ReactDOM.render(element, this.app.getAppBody(), () => {\r\n this.attachHandlers();\r\n }) as Views.MasterPage;\r\n\r\n const state = {\r\n unsupportedBrowser: checkBrowserSupport && !isBrowserSupported(),\r\n announcements: this.app.announcements\r\n } as Views.MasterPageState;\r\n\r\n if (Environment.isInBotFrameworkAzureExtension) {\r\n logger.debug(\"ControllerBase: Rendering with azure page state: \" + this._pageStatus);\r\n\r\n const statusMessage = this._getStatusBarMessageFromPageStatus();\r\n if (statusMessage) {\r\n state.statusBar = React.createElement(BotProgress, { progress: statusMessage });\r\n }\r\n else {\r\n state.statusBar = undefined;\r\n }\r\n }\r\n\r\n this.masterPage.setState(state);\r\n }\r\n\r\n private _getStatusBarMessageFromPageStatus(): string {\r\n if (this.hasPageStatusFlag(PageStatusFlags.LoggingIn)) {\r\n return Resources.loadingBot;\r\n }\r\n if (this.hasPageStatusFlag(PageStatusFlags.LoadingBot)) {\r\n return Resources.loadingBot;\r\n }\r\n if (this.hasPageStatusFlag(PageStatusFlags.WaitingForBotReady)) {\r\n return Resources.botIsNotReady;\r\n }\r\n if (this.hasPageStatusFlag(PageStatusFlags.WaitingForAppInsightsReady)) {\r\n return Resources.analyticsNotReady;\r\n }\r\n return undefined;\r\n }\r\n\r\n protected get statusBar(): JSX.Element {\r\n if (this.containerController) {\r\n return this.containerController.statusBar;\r\n } else {\r\n return this.masterPage.state.statusBar;\r\n }\r\n }\r\n\r\n protected set statusBar(bar: JSX.Element) {\r\n if (Environment.isInBotFrameworkAzureExtension) {\r\n // In Azure Ibiza the status bar is controlled via the _pageStatus instead of being set directly.\r\n // To reduce refactoring we are just short circuiting other code for now.\r\n return;\r\n }\r\n\r\n if (this.containerController) {\r\n this.containerController.statusBar = bar;\r\n } else {\r\n this.masterPage.setState({ statusBar: bar, statusBarScrolls: false });\r\n }\r\n }\r\n\r\n protected set showProgressMask(show: boolean) {\r\n if (this.containerController) {\r\n this.containerController.showProgressMask = show;\r\n } else {\r\n this.masterPage.setState({ showProgressMask: show } as any);\r\n }\r\n }\r\n\r\n protected updateTitle(title: string) {\r\n $('head title').text(title || resourceStrings.botFrameworkExtended);\r\n }\r\n\r\n /**\r\n * This method is called if the user is signed in.\r\n * Subclasses should override this method.\r\n */\r\n protected render(params: SimpleMvc.QueryParams): void {\r\n this.updateTitle(null);\r\n $('.action-sheet').toggleClass(\"hidden\", true);\r\n }\r\n\r\n protected updateState(signInInProgress: boolean, signInError: string, callback?: () => void): void {\r\n const curActiveLink = this.masterPageState ? this.masterPageState.activeLink : NavLinks.root;\r\n\r\n this.masterPageState = _.extend({}, this.masterPageState, {\r\n signInState: this.masterPageState ? this.masterPageState.signInState : null,\r\n signedInUser: this.app.signedInUser,\r\n signInInProgress: signInInProgress,\r\n signInError: signInError,\r\n activeLink: curActiveLink,\r\n searchString: null\r\n });\r\n\r\n this.masterPage.setState(this.masterPageState, () => {\r\n if (callback)\r\n callback();\r\n });\r\n }\r\n\r\n protected setActiveJumboActiveLink(activeLink: NavLinks) {\r\n if (this.masterPage) {\r\n this.masterPageState.activeLink = activeLink;\r\n this.masterPage.setState(this.masterPageState);\r\n }\r\n }\r\n\r\n protected handleSearch(s: string) {\r\n if (s.trim()) {\r\n this.app.navigate(clientAppSettings.searchRoute || '/bots', { s: s });\r\n }\r\n }\r\n\r\n protected get azureAccessToken(): string {\r\n let token = this.app.signedInUser ? this.app.signedInUser.AzureToken : null;\r\n if (token == null && window.location.host === 'localhost:3003') {\r\n token = sessionStorage.getItem('BF_OAUTH_TOKEN')\r\n }\r\n return token;\r\n }\r\n\r\n private attachHandlers(): void {\r\n if (this.handlersAttached) return;\r\n this.handlersAttached = true;\r\n\r\n const $appBody = $(this.app.getAppBody());\r\n $appBody.on('click', '.signed-in-user', () => this.onSignedInUserClicked());\r\n $appBody.on('click', '.header-announcement', () => this.onAnnouncementsClicked());\r\n $appBody.on('click', '.waitlist-request', () => this.onWaitListButtonClicked());\r\n }\r\n\r\n private detachHandlers(): void {\r\n const $appBody = $(this.app.getAppBody());\r\n $appBody.off();\r\n this.handlersAttached = false;\r\n }\r\n\r\n private extractErrorFromXHR(xhr: JQueryXHR): string {\r\n const apiErr = parseApiError(xhr);\r\n if (apiErr && apiErr.message) {\r\n return apiErr.message;\r\n }\r\n if (xhr && xhr.responseText) {\r\n try {\r\n let error = $.parseJSON(xhr.responseText);\r\n if (error) {\r\n error = error.Errors && error.Errors.length > 0 ? error.Errors[0] : error;\r\n const message = error.Message || (error.Error ? error.Error.Message : null);\r\n if (message) {\r\n return message;\r\n }\r\n }\r\n }\r\n catch (ex) {\r\n // Ignore parsing errors, we want to show users the original error.\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n protected handleHttpResponseError(xhr: JQueryXHR): JQueryPromise {\r\n const errorMessage = this.extractErrorFromXHR(xhr);\r\n let promise: JQueryPromise;\r\n\r\n if (errorMessage) {\r\n promise = Dialogs.MessageBox.show(errorMessage);\r\n }\r\n else {\r\n switch (xhr.status) {\r\n case 400:\r\n promise = Dialogs.MessageBox.show(Resources.xhrResponse_400);\r\n break;\r\n case 401: {\r\n const deferred = $.Deferred();\r\n this.app.signedInUser = null;\r\n if (this.isLoaded()) {\r\n this.updateState(false, null, () => { deferred.resolve(null); });\r\n } else {\r\n deferred.resolve(null);\r\n }\r\n promise = deferred.promise();\r\n break;\r\n }\r\n case 403:\r\n promise = Dialogs.MessageBox.show(Resources.xhrResponse_403);\r\n break;\r\n case 404:\r\n promise = Dialogs.MessageBox.show(Resources.xhrResponse_404);\r\n break;\r\n case 500:\r\n promise = Dialogs.MessageBox.show(Resources.xhrResponse_500);\r\n break;\r\n case 501: // Not implemented\r\n promise = Dialogs.MessageBox.show(Resources.xhrResponse_501);\r\n break;\r\n default:\r\n if (xhr.statusText)\r\n promise = Dialogs.MessageBox.show(Resources.xhrResponse_Unknown.replace(\"%1\", xhr.statusText));\r\n else\r\n promise = Dialogs.MessageBox.show(Resources.xhrResponse_Unknown);\r\n break;\r\n }\r\n }\r\n return promise;\r\n }\r\n\r\n public redirectIfNeeded(): boolean {\r\n const prefix = \"?appapiret=\";\r\n const index = window.location.href.indexOf(prefix);\r\n if (index === -1)\r\n return false;\r\n const ret = window.location.href.substr(index + prefix.length);\r\n if (ret) {\r\n window.location.assign(decodeURIComponent(ret));\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private onSignedInUserClicked(): void {\r\n const userMenu = this.masterPage.pageHeader.refs[\"userMenu\"];\r\n const wasThisMenu = this.activeDropdownMenu === userMenu && this.activeDropdownMenu.state.visible;\r\n this.hideActiveDropdownMenu();\r\n if (!wasThisMenu) {\r\n this.activeDropdownMenu = userMenu;\r\n this.activeDropdownMenu.displayBelow($('.signed-in-user'), $('.rhs'));\r\n }\r\n }\r\n\r\n private onAnnouncementsClicked() {\r\n const announcementsMenu = this.masterPage.pageHeader.refs[\"announcementsMenu\"];\r\n const wasThisMenu = this.activeDropdownMenu === announcementsMenu && this.activeDropdownMenu.state.visible;\r\n this.hideActiveDropdownMenu();\r\n if (!wasThisMenu) {\r\n this.activeDropdownMenu = announcementsMenu;\r\n this.activeDropdownMenu.displayBelow($('.header-announcement'), $('.rhs'));\r\n this.app.announcements.addShown();\r\n }\r\n }\r\n\r\n /**\r\n * Removes unwanted characters from the message.\r\n */\r\n private cleanupErrorMessage(message: string): string {\r\n // Note that we don't want to decode the string because most of the time that will result in double decoding.\r\n return message.replace(/\\+/g, ' ');\r\n }\r\n\r\n /**\r\n * This method return false for default error message display to happen.\r\n */\r\n private handleIntercomLoginError(xhr: JQueryXHR, accessToken: string): boolean {\r\n const signInState = xhr.responseJSON.Message;\r\n switch (signInState) {\r\n case \"SignedUp\":\r\n case \"NotSignedUp\":\r\n this.accessToken = accessToken;\r\n this.masterPageState.signInState = signInState;\r\n this.updateState(false, null);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private onWaitListButtonClicked(): void {\r\n Rest.AccountClient.addUserToWaitlist().done(() => {\r\n this.masterPageState.signInState = \"SignedUp\";\r\n this.updateState(false, null);\r\n }).fail(xhr => {\r\n this.handleHttpResponseError(xhr);\r\n });\r\n }\r\n\r\n private onSignOutClicked(): void {\r\n const path = clientAppSettings.applicationPath === '/' ? '' : clientAppSettings.applicationPath;\r\n window.location.assign(path + '/signout_all.aspx');\r\n }\r\n\r\n private onUserAccountClicked(): void {\r\n const deleteAccountAllowed = SupportedFeatureUtility.isSupported(Rest.DevPortalFeatureFlags.SupportNonAzureUsers);\r\n if (deleteAccountAllowed) {\r\n window.location.href = '/account';\r\n }\r\n }\r\n\r\n public scrollToTop(): void {\r\n if (this.masterPage) {\r\n this.masterPage.pageContent.scrollTop = 0;\r\n }\r\n }\r\n\r\n public hasUnsavedChanges(): boolean {\r\n return false;\r\n }\r\n\r\n private static setEnvironment(queryParams: SimpleMvc.QueryParams) {\r\n const environmentQueryStringKey: string = \"ioenv\";\r\n if (!queryParams || !queryParams.hasOwnProperty(environmentQueryStringKey)) {\r\n return;\r\n }\r\n\r\n const environmentQueryStringValue = queryParams[environmentQueryStringKey];\r\n if (environmentQueryStringValue.toLowerCase() === \"ibiza\") {\r\n Environment.isInBotFrameworkAzureExtension = true;\r\n }\r\n }\r\n\r\n /**\r\n * Is this the webchat route?\r\n */\r\n protected isWebChatRoute(path: string): boolean {\r\n const normalizedPath = path ? path.toLowerCase().trim() : \"\";\r\n return normalizedPath === \"/bots/webchat\";\r\n }\r\n\r\n /**\r\n * Is this the analytics route?\r\n */\r\n private _isAnalyticsRoute(path: string): boolean {\r\n const normalizedPath = path ? path.toLowerCase().trim() : \"\";\r\n return normalizedPath === \"/bots/analytics\";\r\n }\r\n\r\n private _initializeForAzure() {\r\n this.headerKind = HeaderKind.None;\r\n\r\n // Load is re-entrant - do not create the messenger 2x.\r\n if (!this._azurePortalMessenger) {\r\n // If we think we are in azure but don't have a trusted authority we are probably running scratch locally and have just added the querystring to flag running in Azure.\r\n // Without a trusted authority we don't accept/send messages.\r\n const matches = decodeURIComponent(window.location.search).match(/trustedAuthority=([^&]+)/);\r\n if (matches) {\r\n logger.debug(\"ControllerBase: Starting to listen to Azure cross frame messages\");\r\n\r\n const trustedAuthority = matches[1];\r\n const signatureMatches = decodeURIComponent(window.location.search).match(/framesignature=([^&]+)/);\r\n let signature = DefaultPortalSignature;\r\n if (signatureMatches) {\r\n signature = signatureMatches[1];\r\n }\r\n this._azurePortalMessenger = new AzurePortalMessenger(trustedAuthority, signature);\r\n\r\n // If we are in web chat wait for the bot to be ready for messages before opening.\r\n const blockUIUntilBotReady = this.isWebChatRoute(this.app.getCurrentPagePath());\r\n if (blockUIUntilBotReady) {\r\n this.setPageStatusFlag(PageStatusFlags.WaitingForBotReady);\r\n\r\n this._onReceiveEndpointStatus = this._refreshViewBasedOnEndpointStatus.bind(this);\r\n this._azurePortalMessenger.listenForEndpointStatus(this._onReceiveEndpointStatus);\r\n }\r\n // If we are showing app insights data wait for that to be ready before opening.\r\n const blockUIUntilAppInsightsReady = this._isAnalyticsRoute(this.app.getCurrentPagePath());\r\n if (blockUIUntilAppInsightsReady) {\r\n this.setPageStatusFlag(PageStatusFlags.WaitingForAppInsightsReady);\r\n\r\n this._appInsightsStatusTimer = setTimeout(() => {\r\n logger.debug(\"ControllerBase: Failed to get app insights status fast enough. Clearing wait status.\");\r\n this._appInsightsStatusTimer = undefined;\r\n\r\n if (this.clearPageStatusFlag(PageStatusFlags.WaitingForAppInsightsReady)) {\r\n this.renderCommon();\r\n }\r\n }, 2 * 60 * 1000);\r\n\r\n this._onReceiveAppInsightsStatus = this._refreshViewBasedOnAppInsightsStatus.bind(this);\r\n this._azurePortalMessenger.listenForAppInsightsStatus(this._onReceiveAppInsightsStatus);\r\n }\r\n\r\n this.setPageStatusFlag(PageStatusFlags.LoggingIn);\r\n\r\n this._onReceiveInfo = this._onReceiveInfoFromIFrame.bind(this);\r\n this._azurePortalMessenger.listenForInfo(this._onReceiveInfo);\r\n\r\n // Listen for auth tokens - these can be refreshed periodically without corresponding requestAuthenticationTokens calls.\r\n this._onReceiveAzureToken = this._refreshAuthenticationTokens.bind(this);\r\n this._azurePortalMessenger.listenForAuthenticationTokens(this._onReceiveAzureToken);\r\n\r\n // Tell Azure we are ready to get messages.\r\n this._azurePortalMessenger.postReady();\r\n this._azurePortalMessenger.initializationComplete();\r\n\r\n // Request all the info we need and trigger auto-refresh of that data.\r\n this._azurePortalMessenger.requestInfo();\r\n this._azurePortalMessenger.requestAuthenticationTokens();\r\n if (blockUIUntilBotReady) {\r\n this._azurePortalMessenger.requestEndpointStatus();\r\n }\r\n if (blockUIUntilAppInsightsReady) {\r\n this._azurePortalMessenger.requestAppInsightsStatus();\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _onReceiveInfoFromIFrame(info: InfoResult): void {\r\n // We can do something here in the future based on the version... for now just output the value.\r\n logger.debug(\"ControllerBase: Got Azure Extension version: \" + info.version);\r\n this._azurePortalMessenger.unlistenForInfo(this._onReceiveInfo);\r\n this._onReceiveInfo = undefined;\r\n }\r\n\r\n private _handleRefreshAuthenticationFailure(): void {\r\n this.app.signedInUser = null;\r\n Dialogs.MessageBox.show(Resources.refreshSignInFailure);\r\n }\r\n\r\n /**\r\n * Callback whenever we get authentication tokens from the Azure portal. This refreshes the local tokens/user info.\r\n */\r\n private _refreshAuthenticationTokens(tokens: AccessTokensResult): void {\r\n const armToken = tokens.armToken;\r\n const selfToken = tokens.selfToken;\r\n\r\n const useSelfToken = selfToken && clientAppSettings.flightedFeatures.indexOf(\"firstPartyAuth\") >= 0;\r\n const token = useSelfToken ? selfToken : armToken;\r\n const csrfToken = AuthenticationUtility.getCsrfToken();\r\n if (!csrfToken) {\r\n logger.debug(\"ControllerBase: Failed to get CSRF token from cookie.\");\r\n this._handleRefreshAuthenticationFailure();\r\n return;\r\n }\r\n\r\n logger.debug(\"ControllerBase: Azure sent us Authentication tokens - Refreshing.\");\r\n $.ajax(\"/refreshLogin\", {\r\n data: { token, '__RequestVerificationToken': csrfToken },\r\n type: \"POST\"\r\n })\r\n .then(() => {\r\n Rest.ajaxHeaders = _.extend(Rest.ajaxHeaders || {}, { Authorization: `Bearer ${token}`});\r\n // Get the signed in user.\r\n logger.debug(\"ControllerBase: Getting signed in user.\");\r\n return Rest.AccountClient.getSignedInUser();\r\n })\r\n .then((authData: Rest.AuthData) => {\r\n logger.debug(\"ControllerBase: Got authenticated user.\");\r\n\r\n if (this.app.signedInUser) {\r\n // Already logged in, just refresh the token.\r\n // Future: Bypass the getSignedInUser call - leaving as is for now.\r\n AuthenticationUtility.bindAzureAccessToken(this.app.signedInUser, armToken, true);\r\n\r\n if (this.clearPageStatusFlag(PageStatusFlags.LoggingIn)) {\r\n this.renderCommon();\r\n }\r\n }\r\n else {\r\n // New user, assign user and re-render the page.\r\n this.app.signedInUser = authData;\r\n AuthenticationUtility.bindAzureAccessToken(this.app.signedInUser, armToken, true);\r\n\r\n this.clearPageStatusFlag(PageStatusFlags.LoggingIn);\r\n this.renderCommon();\r\n // Now that they are logged in need to refresh client settings to get any info that may be flighted to their account (ie channels)\r\n refreshClientAppSettings().then( () =>\r\n this.updateState(false, null, () => {\r\n this.render(this.params);\r\n })\r\n );\r\n }\r\n })\r\n .fail(xhr => {\r\n if (this.clearPageStatusFlag(PageStatusFlags.LoggingIn)) {\r\n this.renderCommon();\r\n }\r\n\r\n this.handleHttpResponseError(xhr);\r\n });\r\n }\r\n\r\n private _refreshViewBasedOnEndpointStatus(status: EndpointStatusResult): void {\r\n logger.debug(\"ControllerBase: Got new bot status from Azure: \" + status.status);\r\n\r\n let stateChanged: boolean;\r\n switch (status.status) {\r\n case \"not-ready\":\r\n stateChanged = this.setPageStatusFlag(PageStatusFlags.WaitingForBotReady);\r\n break;\r\n case \"ready\":\r\n case \"no-endpoint\":\r\n case \"error\":\r\n default:\r\n stateChanged = this.clearPageStatusFlag(PageStatusFlags.WaitingForBotReady);\r\n break;\r\n }\r\n\r\n if (stateChanged) {\r\n this.renderCommon();\r\n }\r\n }\r\n\r\n private _refreshViewBasedOnAppInsightsStatus(status: AppInsightsStatusResult): void {\r\n logger.debug(\"ControllerBase: Got new app insights status from Azure: \" + status.status);\r\n\r\n let stateChanged: boolean;\r\n switch (status.status) {\r\n case \"not-ready\":\r\n // If we gave up waiting for Azure to tell us app insights is ready then ignore the \"not-ready\" status.\r\n if (this._appInsightsStatusTimer) {\r\n stateChanged = this.setPageStatusFlag(PageStatusFlags.WaitingForAppInsightsReady);\r\n }\r\n break;\r\n case \"ready\":\r\n case \"not-configured\":\r\n case \"error\":\r\n stateChanged = this.clearPageStatusFlag(PageStatusFlags.WaitingForAppInsightsReady);\r\n default:\r\n }\r\n\r\n if (stateChanged) {\r\n this.renderCommon();\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Controllers/ControllerBase.ts","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-is/index.js\n// module id = 33\n// module chunks = 0","import * as Rest from \"../Generated/RestClient\";\r\n\r\nexport enum BotTypes {\r\n None,\r\n SDK,\r\n ABSv1,\r\n ABSv2,\r\n ABSCode,\r\n ABSGACreate\r\n}\r\n\r\nexport function getDeploymentState(bot: Rest._BotService = {}): string {\r\n const deployment = bot.ProvisionInfo ? bot.ProvisionInfo.Deployment : {};\r\n return deployment && deployment.properties ? deployment.properties.provisioningState : null;\r\n}\r\n\r\nexport const RollbackEndpointVersionName = 'rollback_to';\r\n\r\n/**\r\n * V2 bot utils to get a bot type - this relies on the bot being a newer bot created through Azure (Ibiza).\r\n * Note the bot kinds here match the values in Ibiza and NOT the values in BotUtils.\r\n * todo: refactor/delete BotUtils.\r\n */\r\nexport class BotUtilsV2 {\r\n /** Is this a registration or Connectivity only bot? */\r\n public static isRegistrationBot(bot: Rest.BotService): boolean {\r\n return BotUtilsV2._isBotKind(bot, \"bot\");\r\n }\r\n\r\n /** Is this an Azure Functions bot? */\r\n public static isFunctionsBot(bot: Rest.BotService): boolean {\r\n return BotUtilsV2._isBotKind(bot, \"function\");\r\n }\r\n\r\n /** Is this an SDK bot? */\r\n public static isSdkBot(bot: Rest.BotService): boolean {\r\n return BotUtilsV2._isBotKind(bot, \"sdk\");\r\n }\r\n\r\n /** Is this a Conversation Designer bot? */\r\n public static isConversationDesignerBot(bot: Rest.BotService): boolean {\r\n return BotUtilsV2._isBotKind(bot, \"designer\");\r\n }\r\n\r\n /** Has this bot been migrated to be managed in the Azure Ibiza portal? */\r\n public static isMigratedBot(bot: Rest.BotService): boolean {\r\n if (!bot) {\r\n throw new Error(\"bot must be defined\");\r\n }\r\n\r\n return bot.Kind && bot.Endpoints && bot.Endpoints.some(ep => ep.Version === RollbackEndpointVersionName);\r\n }\r\n\r\n /** will we need to show migration UI to the user? */\r\n public static needsMigration(bot: Rest.BotService) : boolean {\r\n if (!bot) {\r\n throw new Error(\"bot must be defined\");\r\n }\r\n return !bot.Kind && bot.BotServiceRuntimeVersion !== \"ABSv2\";\r\n }\r\n\r\n /** Has this bot been migrated to be managed in the Azure Ibiza portal? */\r\n public static isMigratedBotDocument(bot: Rest.BotDocument): boolean {\r\n if (!bot) {\r\n throw new Error(\"bot must be defined\");\r\n }\r\n\r\n // Azure bots will have a kind and migrated bots will have endpoints.\r\n if (!bot.Kind || !bot.Endpoints) {\r\n return false;\r\n }\r\n\r\n if (bot.Endpoints) {\r\n try {\r\n const endpoints = JSON.parse(bot.Endpoints);\r\n return Array.isArray(endpoints) && endpoints.some(x => {\r\n return (x.Version || x.version) === RollbackEndpointVersionName;\r\n });\r\n }\r\n catch (e) {\r\n // Ingore - this isn't a migrated bot.\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /** Is this a bot managed through the Azure Ibiza portal? */\r\n public static isAzureIbizaBot(bot: Rest.BotService | Rest.BotDocument): boolean {\r\n if (!bot) {\r\n throw new Error(\"bot must be defined\");\r\n }\r\n\r\n return !!bot.Kind;\r\n }\r\n\r\n /** Channels that are allowed in migration optional bots. */\r\n public static migrationOptionalChannels = [\"cortana\", \"skype\", \"msteams\", \"webchat\", \"outlook\", \"m365extensions\"];\r\n\r\n /**\r\n * Is migration optional for this bot, ie, is this a free bot, meaning a non-Ibiza bot that is\r\n * configured for Cortana, Skype, and/or MSTeams, with no other channel registered except\r\n * webchat. Free bots have a relaxed migration deadline, and don't promote migration aggressively.\r\n */\r\n public static isMigrationOptional(bot: Rest.BotService | Rest.BotDocument): boolean {\r\n if (this.isAzureIbizaBot(bot)) {\r\n return false;\r\n }\r\n if (!bot.ConfiguredChannels) {\r\n return false;\r\n }\r\n // bingbizbot: xinan - Bing Local bots - they'll migrate once Management API is available\r\n // skypeOA: imriczi,timale - Skype Professional Account bots - they'll migrate once Management API is available\r\n // cernerbots: jeffphil,molybos - just need more time for internal issues with Azure approval\r\n if (bot.SystemHashtags.indexOf(\"bingbizbot\") >= 0\r\n || bot.SystemHashtags.indexOf(\"skypeOA\") >= 0\r\n || bot.SystemHashtags.indexOf(\"cernerbots\") >= 0\r\n || bot.SystemHashtags.indexOf(\"migrationOptional\") >= 0)\r\n {\r\n // these bots have been specifically marked as not needing migration\r\n return true;\r\n }\r\n // absLegacy bots are required to migrate unless hashtagged otherwise\r\n if (bot.SystemHashtags.indexOf(\"absLegacy\") >= 0) {\r\n return false;\r\n }\r\n \r\n let hasAtLeastOne = false;\r\n for (let i = 0; i < bot.ConfiguredChannels.length; i++) {\r\n const channel = bot.ConfiguredChannels[i].toLowerCase();\r\n if (this.migrationOptionalChannels.indexOf(channel) < 0) {\r\n return false;\r\n } else if (channel !== \"webchat\") {\r\n // need at least one allowed channel that isn't webchat\r\n hasAtLeastOne = true;\r\n }\r\n }\r\n return hasAtLeastOne;\r\n }\r\n\r\n private static _isBotKind(bot: Rest.BotService, kind: string): boolean {\r\n if (!bot) {\r\n throw new Error(\"bot must be defined\");\r\n }\r\n return bot.Kind === kind;\r\n }\r\n}\r\n\r\n// We can't be doing this kind of object probing. This needs to be a value\r\n// provided on the BotService.\r\nexport class BotUtils {\r\n public static isABSv1Bot(bot: Rest.BotService): boolean {\r\n return !!(bot && bot.ProvisionInfo && !bot.ProvisionInfo.BotRunTimeVersion);\r\n }\r\n\r\n public static isABSv2Bot(bot: Rest.BotService): boolean {\r\n return !!(bot && bot.ProvisionInfo && bot.ProvisionInfo.BotRunTimeVersion);\r\n }\r\n\r\n public static isABSBot(bot: Rest.BotService): boolean {\r\n return !!(bot && bot.ProvisionInfo);\r\n }\r\n\r\n public static isSDKBot(bot: Rest.BotService): boolean {\r\n return !!(bot && !bot.ProvisionInfo);\r\n }\r\n\r\n public static isABSCodeBot(bot: Rest.BotService) : boolean {\r\n return !!(bot && bot.ProvisionInfo && bot.ProvisionInfo.HostingEnvironment === Rest.HostingEnvironment.AzureWebApp);\r\n }\r\n\r\n public static getBotType(bot: Rest.BotService): BotTypes {\r\n if (this.isSDKBot(bot))\r\n return BotTypes.SDK;\r\n if (this.isABSCodeBot(bot))\r\n return BotTypes.ABSCode;\r\n if (this.isABSv1Bot(bot))\r\n return BotTypes.ABSv1;\r\n if (this.isABSv2Bot(bot))\r\n return BotTypes.ABSv2;\r\n return BotTypes.None;\r\n }\r\n\r\n public static isDeploymentFinished(bot: Rest._BotService): boolean {\r\n const state = getDeploymentState(bot);\r\n const deployment = bot.ProvisionInfo ? bot.ProvisionInfo.Deployment : {};\r\n const pending = !bot.Endpoint && deployment && deployment.properties ? deployment.properties.intercom_pending_function_url : false;\r\n return !pending && (state == \"Succeeded\" || state == \"Failed\");\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Utils/BotUtils.ts","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time/src/duration.js\n// module id = 35\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (prefixedValue, value, keepUnprefixed) {\n return keepUnprefixed ? [prefixedValue, value] : prefixedValue;\n};\n\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/utils/getPrefixedValue.js\n// module id = 36\n// module chunks = 0","import _every from \"lodash/every\";\nimport _find from \"lodash/find\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isFunction from \"lodash/isFunction\";\nimport _range from \"lodash/range\";\nimport _throttle from \"lodash/throttle\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nimport React, { Component, cloneElement, isValidElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Surface from '../container/Surface';\nimport Layer from '../container/Layer';\nimport Tooltip from '../component/Tooltip';\nimport Legend from '../component/Legend';\nimport Curve from '../shape/Curve';\nimport Cross from '../shape/Cross';\nimport Sector from '../shape/Sector';\nimport Dot from '../shape/Dot';\nimport Rectangle from '../shape/Rectangle';\nimport { findAllByType, findChildByType, getDisplayName, parseChildIndex, getPresentationAttributes, validateWidthHeight, isChildrenEqual, renderByOrder, getReactEventByType, filterEventAttributes } from '../util/ReactUtils';\nimport CartesianAxis from '../cartesian/CartesianAxis';\nimport Brush from '../cartesian/Brush';\nimport { getOffset, calculateChartCoordinate } from '../util/DOMUtils';\nimport { getAnyElementOfObject, hasDuplicate, uniqueId, isNumber, findEntryInArray } from '../util/DataUtils';\nimport { calculateActiveTickIndex, getMainColorOfGraphicItem, getBarSizeList, getBarPosition, appendOffsetOfLegend, getLegendProps, combineEventHandlers, getTicksOfAxis, getCoordinatesOfGrid, getStackedDataOfItem, parseErrorBarsOfAxis, getBandSizeOfAxis, getStackGroupsByAxisId, getValueByDataKey, isCategorialAxis, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getDomainOfDataByKey, detectReferenceElementsDomain, parseSpecifiedDomain, parseDomainOfCategoryAxis } from '../util/ChartUtils';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/PureRender';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n};\n\nvar generateCategoricalChart = function generateCategoricalChart(_ref) {\n var chartName = _ref.chartName,\n GraphicalChild = _ref.GraphicalChild,\n _ref$eventType = _ref.eventType,\n eventType = _ref$eventType === void 0 ? 'axis' : _ref$eventType,\n axisComponents = _ref.axisComponents,\n legendContent = _ref.legendContent,\n formatAxisMap = _ref.formatAxisMap,\n defaultProps = _ref.defaultProps,\n propTypes = _ref.propTypes;\n\n var CategoricalChartWrapper =\n /*#__PURE__*/\n function (_Component) {\n _inherits(CategoricalChartWrapper, _Component);\n\n /**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\n function CategoricalChartWrapper(_props) {\n var _this;\n\n _classCallCheck(this, CategoricalChartWrapper);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(CategoricalChartWrapper).call(this, _props));\n\n _this.handleLegendBBoxUpdate = function (box) {\n if (box && _this.legendInstance) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n\n _this.setState(_this.updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }));\n }\n };\n\n _this.handleReceiveSyncEvent = function (cId, chartId, data) {\n var _this$props = _this.props,\n syncId = _this$props.syncId,\n layout = _this$props.layout;\n var updateId = _this.state.updateId;\n\n if (syncId === cId && chartId !== _this.uniqueChartId) {\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n\n if (!_isNil(data.dataStartIndex) || !_isNil(data.dataEndIndex)) {\n _this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, _this.updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n })));\n } else if (!_isNil(data.activeTooltipIndex)) {\n var chartX = data.chartX,\n chartY = data.chartY,\n activeTooltipIndex = data.activeTooltipIndex;\n var _this$state2 = _this.state,\n offset = _this$state2.offset,\n tooltipTicks = _this$state2.tooltipTicks;\n\n if (!offset) {\n return;\n }\n\n var viewBox = _objectSpread({}, offset, {\n x: offset.left,\n y: offset.top\n }); // When a categotical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n\n\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n\n var activePayload = _this.getTooltipContent(activeTooltipIndex);\n\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n\n _this.setState(_objectSpread({}, data, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload\n }));\n } else {\n _this.setState(data);\n }\n }\n };\n\n _this.handleBrushChange = function (_ref2) {\n var startIndex = _ref2.startIndex,\n endIndex = _ref2.endIndex;\n\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, _this.updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }));\n });\n\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n };\n\n _this.handleMouseEnter = function (e) {\n var onMouseEnter = _this.props.onMouseEnter;\n\n var mouse = _this.getMouseInfo(e);\n\n if (mouse) {\n var nextState = _objectSpread({}, mouse, {\n isTooltipActive: true\n });\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseEnter)) {\n onMouseEnter(nextState, e);\n }\n }\n };\n\n _this.triggeredAfterMouseMove = function (e) {\n var onMouseMove = _this.props.onMouseMove;\n\n var mouse = _this.getMouseInfo(e);\n\n var nextState = mouse ? _objectSpread({}, mouse, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n };\n\n _this.handleItemMouseEnter = function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n };\n\n _this.handleItemMouseLeave = function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n };\n\n _this.handleMouseMove = function (e) {\n if (e && _isFunction(e.persist)) {\n e.persist();\n }\n\n _this.triggeredAfterMouseMove(e);\n };\n\n _this.handleMouseLeave = function (e) {\n var onMouseLeave = _this.props.onMouseLeave;\n var nextState = {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n };\n\n _this.handleOuterEvent = function (e) {\n var eventName = getReactEventByType(e);\n\n if (eventName && _isFunction(_this.props[eventName])) {\n var mouse = _this.getMouseInfo(e);\n\n var handler = _this.props[eventName];\n handler(mouse, e);\n }\n };\n\n _this.handleClick = function (e) {\n var onClick = _this.props.onClick;\n\n if (_isFunction(onClick)) {\n var mouse = _this.getMouseInfo(e);\n\n onClick(mouse, e);\n }\n };\n\n _this.handleMouseDown = function (e) {\n var onMouseDown = _this.props.onMouseDown;\n\n if (_isFunction(onMouseDown)) {\n var mouse = _this.getMouseInfo(e);\n\n onMouseDown(mouse, e);\n }\n };\n\n _this.handleMouseUp = function (e) {\n var onMouseUp = _this.props.onMouseUp;\n\n if (_isFunction(onMouseUp)) {\n var mouse = _this.getMouseInfo(e);\n\n onMouseUp(mouse, e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseMove(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchStart = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchEnd = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n };\n\n _this.verticalCoordinatesGenerator = function (_ref3) {\n var xAxis = _ref3.xAxis,\n width = _ref3.width,\n height = _ref3.height,\n offset = _ref3.offset;\n return getCoordinatesOfGrid(CartesianAxis.getTicks(_objectSpread({}, CartesianAxis.defaultProps, xAxis, {\n ticks: getTicksOfAxis(xAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.left, offset.left + offset.width);\n };\n\n _this.horizontalCoordinatesGenerator = function (_ref4) {\n var yAxis = _ref4.yAxis,\n width = _ref4.width,\n height = _ref4.height,\n offset = _ref4.offset;\n return getCoordinatesOfGrid(CartesianAxis.getTicks(_objectSpread({}, CartesianAxis.defaultProps, yAxis, {\n ticks: getTicksOfAxis(yAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.top, offset.top + offset.height);\n };\n\n _this.axesTicksGenerator = function (axis) {\n return getTicksOfAxis(axis, true);\n };\n\n _this.tooltipTicksGenerator = function (axisMap) {\n var axis = getAnyElementOfObject(axisMap);\n var tooltipTicks = getTicksOfAxis(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: _sortBy(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis)\n };\n };\n\n _this.renderCursor = function (element) {\n var _this$state3 = _this.state,\n isTooltipActive = _this$state3.isTooltipActive,\n activeCoordinate = _this$state3.activeCoordinate,\n activePayload = _this$state3.activePayload,\n offset = _this$state3.offset;\n\n if (!element || !element.props.cursor || !isTooltipActive || !activeCoordinate) {\n return null;\n }\n\n var layout = _this.props.layout;\n var restProps;\n var cursorComp = Curve;\n\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = _this.getCursorRectangle();\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n var _this$getCursorPoints = _this.getCursorPoints(),\n cx = _this$getCursorPoints.cx,\n cy = _this$getCursorPoints.cy,\n radius = _this$getCursorPoints.radius,\n startAngle = _this$getCursorPoints.startAngle,\n endAngle = _this$getCursorPoints.endAngle;\n\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n } else {\n restProps = {\n points: _this.getCursorPoints()\n };\n cursorComp = Curve;\n }\n\n var key = element.key || '_recharts-cursor';\n\n var cursorProps = _objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset, restProps, getPresentationAttributes(element.props.cursor), {\n payload: activePayload,\n key: key,\n className: 'recharts-tooltip-cursor'\n });\n\n return isValidElement(element.props.cursor) ? cloneElement(element.props.cursor, cursorProps) : createElement(cursorComp, cursorProps);\n };\n\n _this.renderPolarAxis = function (element, displayName, index) {\n var axisType = element.type.axisType;\n\n var axisMap = _this.state[\"\".concat(axisType, \"Map\")];\n\n var axisOption = axisMap[element.props[\"\".concat(axisType, \"Id\")]];\n return cloneElement(element, _objectSpread({}, axisOption, {\n className: axisType,\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n };\n\n _this.renderXAxis = function (element, displayName, index) {\n var xAxisMap = _this.state.xAxisMap;\n var axisObj = xAxisMap[element.props.xAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n };\n\n _this.renderYAxis = function (element, displayName, index) {\n var yAxisMap = _this.state.yAxisMap;\n var axisObj = yAxisMap[element.props.yAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n };\n\n _this.renderGrid = function (element) {\n var _this$state4 = _this.state,\n xAxisMap = _this$state4.xAxisMap,\n yAxisMap = _this$state4.yAxisMap,\n offset = _this$state4.offset;\n var _this$props2 = _this.props,\n width = _this$props2.width,\n height = _this$props2.height;\n var xAxis = getAnyElementOfObject(xAxisMap);\n\n var yAxisWithFiniteDomain = _find(yAxisMap, function (axis) {\n return _every(axis.domain, Number.isFinite);\n });\n\n var yAxis = yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n var props = element.props || {};\n return cloneElement(element, {\n key: element.key || 'grid',\n x: isNumber(props.x) ? props.x : offset.left,\n y: isNumber(props.y) ? props.y : offset.top,\n width: isNumber(props.width) ? props.width : offset.width,\n height: isNumber(props.height) ? props.height : offset.height,\n xAxis: xAxis,\n yAxis: yAxis,\n offset: offset,\n chartWidth: width,\n chartHeight: height,\n verticalCoordinatesGenerator: props.verticalCoordinatesGenerator || _this.verticalCoordinatesGenerator,\n horizontalCoordinatesGenerator: props.horizontalCoordinatesGenerator || _this.horizontalCoordinatesGenerator\n });\n };\n\n _this.renderPolarGrid = function (element) {\n var _this$state5 = _this.state,\n radiusAxisMap = _this$state5.radiusAxisMap,\n angleAxisMap = _this$state5.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return cloneElement(element, {\n polarAngles: getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid'\n });\n };\n\n _this.renderBrush = function (element) {\n var _this$props3 = _this.props,\n margin = _this$props3.margin,\n data = _this$props3.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId; // TODO: update brush when children update\n\n return cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, null, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n };\n\n _this.renderReferenceElement = function (element, displayName, index) {\n if (!element) {\n return null;\n }\n\n var _assertThisInitialize = _assertThisInitialized(_assertThisInitialized(_this)),\n clipPathId = _assertThisInitialize.clipPathId;\n\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var _element$props = element.props,\n xAxisId = _element$props.xAxisId,\n yAxisId = _element$props.yAxisId;\n return cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n };\n\n _this.renderGraphicChild = function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n\n if (!item) {\n return null;\n }\n\n var graphicalItem = cloneElement(element, item.props);\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n var _item$props = item.props,\n points = _item$props.points,\n isRange = _item$props.isRange,\n baseLine = _item$props.baseLine;\n var _item$item$props = item.item.props,\n activeDot = _item$item$props.activeDot,\n hide = _item$item$props.hide;\n var hasActive = !hide && isTooltipActive && tooltipItem && activeDot && activeTooltipIndex >= 0;\n\n if (hasActive) {\n var activePoint, basePoint;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n activePoint = findEntryInArray(points, \"payload.\".concat(tooltipAxis.dataKey), activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, \"payload.\".concat(tooltipAxis.dataKey), activeLabel);\n } else {\n activePoint = points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n\n if (!_isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n }\n\n if (isRange) {\n return [graphicalItem, null, null];\n }\n\n return [graphicalItem, null];\n };\n\n _this.renderCustomized = function (element) {\n return cloneElement(element, _objectSpread({}, _this.props, _this.state));\n };\n\n var defaultState = _this.constructor.createDefaultState(_props);\n\n var _updateId = 0;\n _this.state = _objectSpread({}, defaultState, {\n updateId: 0\n }, _this.updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: _props\n }, defaultState, {\n updateId: _updateId\n })));\n _this.uniqueChartId = _isNil(_props.id) ? uniqueId('recharts') : _props.id;\n _this.clipPathId = \"\".concat(_this.uniqueChartId, \"-clip\");\n\n if (_props.throttleDelay) {\n _this.triggeredAfterMouseMove = _throttle(_this.triggeredAfterMouseMove, _props.throttleDelay);\n }\n\n return _this;\n }\n /* eslint-disable react/no-did-mount-set-state */\n\n\n _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_isNil(this.props.syncId)) {\n this.addListener();\n }\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this2 = this;\n\n var _this$props4 = this.props,\n data = _this$props4.data,\n children = _this$props4.children,\n width = _this$props4.width,\n height = _this$props4.height,\n layout = _this$props4.layout,\n stackOffset = _this$props4.stackOffset,\n margin = _this$props4.margin;\n var updateId = this.state.updateId;\n\n if (nextProps.data !== data || nextProps.width !== width || nextProps.height !== height || nextProps.layout !== layout || nextProps.stackOffset !== stackOffset || !shallowEqual(nextProps.margin, margin)) {\n var defaultState = this.constructor.createDefaultState(nextProps);\n this.setState(_objectSpread({}, defaultState, {\n updateId: updateId + 1\n }, this.updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, defaultState, {\n updateId: updateId + 1\n }))));\n } else if (!isChildrenEqual(nextProps.children, children)) {\n // update configuration in chilren\n var hasGlobalData = !_isNil(nextProps.data);\n var newUpdateId = hasGlobalData ? updateId : updateId + 1;\n this.setState(function (prevState) {\n return _objectSpread({\n updateId: newUpdateId\n }, _this2.updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, prevState, {\n updateId: newUpdateId\n })));\n });\n } // add syncId\n\n\n if (_isNil(this.props.syncId) && !_isNil(nextProps.syncId)) {\n this.addListener();\n } // remove syncId\n\n\n if (!_isNil(this.props.syncId) && _isNil(nextProps.syncId)) {\n this.removeListener();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_isNil(this.props.syncId)) {\n this.removeListener();\n }\n\n if (typeof this.triggeredAfterMouseMove.cancel === 'function') {\n this.triggeredAfterMouseMove.cancel();\n }\n }\n /**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n }, {\n key: \"getAxisMap\",\n value: function getAxisMap(props, _ref5) {\n var _ref5$axisType = _ref5.axisType,\n axisType = _ref5$axisType === void 0 ? 'xAxis' : _ref5$axisType,\n AxisComp = _ref5.AxisComp,\n graphicalItems = _ref5.graphicalItems,\n stackGroups = _ref5.stackGroups,\n dataStartIndex = _ref5.dataStartIndex,\n dataEndIndex = _ref5.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\"); // Get all the instance of Axis\n\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n\n if (axes && axes.length) {\n axisMap = this.getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = this.getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n\n return axisMap;\n }\n /**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n }, {\n key: \"getAxisMapByAxes\",\n value: function getAxisMapByAxes(props, _ref6) {\n var _this3 = this;\n\n var axes = _ref6.axes,\n graphicalItems = _ref6.graphicalItems,\n axisType = _ref6.axisType,\n axisIdKey = _ref6.axisIdKey,\n stackGroups = _ref6.stackGroups,\n dataStartIndex = _ref6.dataStartIndex,\n dataEndIndex = _ref6.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorial = isCategorialAxis(layout, axisType); // Eliminate duplicated axes\n\n var axisMap = axes.reduce(function (result, child) {\n var _child$props = child.props,\n type = _child$props.type,\n dataKey = _child$props.dataKey,\n allowDataOverflow = _child$props.allowDataOverflow,\n allowDuplicatedCategory = _child$props.allowDuplicatedCategory,\n scale = _child$props.scale,\n ticks = _child$props.ticks;\n var axisId = child.props[axisIdKey];\n\n var displayedData = _this3.constructor.getDisplayedData(props, {\n graphicalItems: graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n\n var len = displayedData.length;\n\n if (!result[axisId]) {\n var domain, duplicateDomain, categoricalDomain;\n\n if (dataKey) {\n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n\n if (type === 'category' && isCategorial) {\n var duplicate = hasDuplicate(domain);\n\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain; // When category axis has duplicated text, serial numbers are used to generate scale\n\n domain = _range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(child.props.domain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : _toConsumableArray(finalDomain).concat([entry]);\n }, []);\n }\n } else if (type === 'category') {\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(child.props.domain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || _isNil(entry) ? finalDomain : _toConsumableArray(finalDomain).concat([entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !_isNil(entry);\n });\n }\n } else if (type === 'number') {\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), dataKey, axisType);\n\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n\n if (isCategorial && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorial) {\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), type, true);\n }\n\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n\n if (child.props.domain) {\n domain = parseSpecifiedDomain(child.props.domain, domain, allowDataOverflow);\n }\n }\n\n return _objectSpread({}, result, _defineProperty({}, axisId, _objectSpread({}, child.props, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: child.props.domain,\n isCategorial: isCategorial,\n layout: layout\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n }\n /**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n }, {\n key: \"getAxisMapByItems\",\n value: function getAxisMapByItems(props, _ref7) {\n var graphicalItems = _ref7.graphicalItems,\n Axis = _ref7.Axis,\n axisType = _ref7.axisType,\n axisIdKey = _ref7.axisIdKey,\n stackGroups = _ref7.stackGroups,\n dataStartIndex = _ref7.dataStartIndex,\n dataEndIndex = _ref7.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = this.constructor.getDisplayedData(props, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorial = isCategorialAxis(layout, axisType);\n var index = -1; // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n\n var axisMap = graphicalItems.reduce(function (result, child) {\n var axisId = child.props[axisIdKey];\n\n if (!result[axisId]) {\n index++;\n var domain;\n\n if (isCategorial) {\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(Axis.defaultProps.domain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), 'number'), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n\n return _objectSpread({}, result, _defineProperty({}, axisId, _objectSpread({\n axisType: axisType\n }, Axis.defaultProps, {\n hide: true,\n orientation: ORIENT_MAP[axisType] && ORIENT_MAP[axisType][index % 2],\n domain: domain,\n originalDomain: Axis.defaultProps.domain,\n isCategorial: isCategorial,\n layout: layout // specify scale when no Axis\n // scale: isCategorial ? 'band' : 'linear',\n\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n }\n }, {\n key: \"getActiveCoordinate\",\n value: function getActiveCoordinate(tooltipTicks, activeIndex, rangeObj) {\n var layout = this.props.layout;\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread({}, rangeObj, polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle), {\n angle: _angle,\n radius: _radius\n });\n }\n\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread({}, rangeObj, polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle), {\n angle: angle,\n radius: radius\n });\n }\n\n return originCoordinate;\n }\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {Object} event The event object\n * @return {Object} Mouse data\n */\n\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n\n var containerOffset = getOffset(this.container);\n var e = calculateChartCoordinate(event, containerOffset);\n var rangeObj = this.inRange(e.chartX, e.chartY);\n\n if (!rangeObj) {\n return null;\n }\n\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n\n if (eventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = getAnyElementOfObject(xAxisMap).scale;\n var yScale = getAnyElementOfObject(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread({}, e, {\n xValue: xValue,\n yValue: yValue\n });\n }\n\n var _this$state10 = this.state,\n ticks = _this$state10.orderedTooltipTicks,\n axis = _this$state10.tooltipAxis,\n tooltipTicks = _this$state10.tooltipTicks;\n var pos = this.calculateTooltipPos(rangeObj);\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = this.getTooltipContent(activeIndex, activeLabel);\n var activeCoordinate = this.getActiveCoordinate(ticks, activeIndex, rangeObj);\n return _objectSpread({}, e, {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n });\n }\n\n return null;\n }\n /**\n * Get the content to be displayed in the tooltip\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\n\n }, {\n key: \"getTooltipContent\",\n value: function getTooltipContent(activeIndex, activeLabel) {\n var _this$state11 = this.state,\n graphicalItems = _this$state11.graphicalItems,\n tooltipAxis = _this$state11.tooltipAxis;\n var displayedData = this.constructor.getDisplayedData(this.props, this.state);\n\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n } // get data by activeIndex when the axis don't allow duplicated category\n\n\n return graphicalItems.reduce(function (result, child) {\n var hide = child.props.hide;\n\n if (hide) {\n return result;\n }\n\n var _child$props2 = child.props,\n dataKey = _child$props2.dataKey,\n name = _child$props2.name,\n unit = _child$props2.unit,\n formatter = _child$props2.formatter,\n data = _child$props2.data,\n tooltipType = _child$props2.tooltipType;\n var payload;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n payload = findEntryInArray(data || displayedData, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = displayedData[activeIndex];\n }\n\n if (!payload) {\n return result;\n }\n\n return _toConsumableArray(result).concat([_objectSpread({}, getPresentationAttributes(child), {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(child),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload\n })]);\n }, []);\n }\n }, {\n key: \"getFormatItems\",\n value: function getFormatItems(props, currentState) {\n var _this4 = this;\n\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n\n var _this$constructor$get = this.constructor.getAxisNameByLayout(layout),\n numericAxisName = _this$constructor$get.numericAxisName,\n cateAxisName = _this$constructor$get.cateAxisName;\n\n var hasBar = this.constructor.hasBar(graphicalItems);\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups\n });\n var formatedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = _this4.constructor.getDisplayedData(props, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, item);\n\n var _item$props2 = item.props,\n dataKey = _item$props2.dataKey,\n childMaxBarSize = _item$props2.maxBarSize;\n var numericAxisId = item.props[\"\".concat(numericAxisName, \"Id\")];\n var cateAxisId = item.props[\"\".concat(cateAxisName, \"Id\")];\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _objectSpread4;\n\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n var id = item.props[\"\".concat(entry.axisType, \"Id\")];\n var axis = axisMap && axisMap[id];\n return _objectSpread({}, result, (_objectSpread4 = {}, _defineProperty(_objectSpread4, entry.axisType, axis), _defineProperty(_objectSpread4, \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)), _objectSpread4));\n }, {});\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n var bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var maxBarSize = _isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barPosition = hasBar && getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n var componsedFn = item && item.type && item.type.getComposedData;\n\n if (componsedFn) {\n var _objectSpread5;\n\n formatedItems.push({\n props: _objectSpread({}, componsedFn(_objectSpread({}, axisObj, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n onItemMouseLeave: combineEventHandlers(_this4.handleItemMouseLeave, null, item.props.onMouseLeave),\n onItemMouseEnter: combineEventHandlers(_this4.handleItemMouseEnter, null, item.props.onMouseEnter)\n })), (_objectSpread5 = {\n key: item.key || \"item-\".concat(index)\n }, _defineProperty(_objectSpread5, numericAxisName, axisObj[numericAxisName]), _defineProperty(_objectSpread5, cateAxisName, axisObj[cateAxisName]), _defineProperty(_objectSpread5, \"animationId\", updateId), _objectSpread5)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formatedItems;\n }\n }, {\n key: \"getCursorRectangle\",\n value: function getCursorRectangle() {\n var layout = this.props.layout;\n var _this$state12 = this.state,\n activeCoordinate = _this$state12.activeCoordinate,\n offset = _this$state12.offset,\n tooltipAxisBandSize = _this$state12.tooltipAxisBandSize;\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n }\n }, {\n key: \"getCursorPoints\",\n value: function getCursorPoints() {\n var layout = this.props.layout;\n var _this$state13 = this.state,\n activeCoordinate = _this$state13.activeCoordinate,\n offset = _this$state13.offset;\n var x1, y1, x2, y2;\n\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (!_isNil(activeCoordinate.cx) || !_isNil(activeCoordinate.cy)) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n var _cx = activeCoordinate.cx,\n _cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(_cx, _cy, radius, startAngle);\n var endPoint = polarToCartesian(_cx, _cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: _cx,\n cy: _cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n }\n }\n\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n }\n }, {\n key: \"calculateTooltipPos\",\n value: function calculateTooltipPos(rangeObj) {\n var layout = this.props.layout;\n\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n\n return rangeObj.radius;\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var layout = this.props.layout;\n\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = x >= offset.left && x <= offset.left + offset.width && y >= offset.top && y <= offset.top + offset.height;\n return isInRange ? {\n x: x,\n y: y\n } : null;\n }\n\n var _this$state14 = this.state,\n angleAxisMap = _this$state14.angleAxisMap,\n radiusAxisMap = _this$state14.radiusAxisMap;\n\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: x,\n y: y\n }, angleAxis);\n }\n\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n var tooltipEvents = tooltipItem && eventType === 'axis' ? {\n onMouseEnter: this.handleMouseEnter,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n } : {};\n var outerEvents = filterEventAttributes(this.props, this.handleOuterEvent);\n return _objectSpread({}, outerEvents, tooltipEvents);\n }\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @param {Number} updateId The update id\n * @return {Object} state New state to set\n */\n\n }, {\n key: \"updateStateOfAxisMapsOffsetAndStackGroups\",\n value: function updateStateOfAxisMapsOffsetAndStackGroups(_ref8) {\n var _this5 = this;\n\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n\n var _this$constructor$get2 = this.constructor.getAxisNameByLayout(layout),\n numericAxisName = _this$constructor$get2.numericAxisName,\n cateAxisName = _this$constructor$get2.cateAxisName;\n\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread({}, result, _defineProperty({}, name, _this5.getAxisMap(props, _objectSpread({}, entry, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = this.calculateOffset(_objectSpread({}, axisObj, {\n props: props,\n graphicalItems: graphicalItems\n }));\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = this.tooltipTicksGenerator(cateAxisMap);\n var formatedGraphicalItems = this.getFormatItems(props, _objectSpread({}, axisObj, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread({\n formatedGraphicalItems: formatedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj, axisObj);\n }\n /* eslint-disable no-underscore-dangle */\n\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners + 1);\n }\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners - 1);\n }\n }\n /**\n * Calculate the offset of main part in the svg element\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {Object} xAxisMap The configuration of x-axis\n * @param {Object} yAxisMap The configuration of y-axis\n * @return {Object} The offset of main part in the svg element\n */\n\n }, {\n key: \"calculateOffset\",\n value: function calculateOffset(_ref9) {\n var props = _ref9.props,\n graphicalItems = _ref9.graphicalItems,\n _ref9$xAxisMap = _ref9.xAxisMap,\n xAxisMap = _ref9$xAxisMap === void 0 ? {} : _ref9$xAxisMap,\n _ref9$yAxisMap = _ref9.yAxisMap,\n yAxisMap = _ref9$yAxisMap === void 0 ? {} : _ref9$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = findChildByType(children, Brush);\n var legendItem = findChildByType(children, Legend);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread({}, result, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread({}, result, _defineProperty({}, orientation, result[orientation] + entry.height));\n }\n\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n\n var offset = _objectSpread({}, offsetV, offsetH);\n\n var brushBottom = offset.bottom;\n\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n\n if (legendItem && this.legendInstance) {\n var legendBox = this.legendInstance.getBBox();\n offset = appendOffsetOfLegend(offset, graphicalItems, props, legendBox);\n }\n\n return _objectSpread({\n brushBottom: brushBottom\n }, offset, {\n width: width - offset.left - offset.right,\n height: height - offset.top - offset.bottom\n });\n }\n }, {\n key: \"triggerSyncEvent\",\n value: function triggerSyncEvent(data) {\n var syncId = this.props.syncId;\n\n if (!_isNil(syncId)) {\n eventCenter.emit(SYNC_EVENT, syncId, this.uniqueChartId, data);\n }\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formatedGraphicalItems = this.state.formatedGraphicalItems;\n\n for (var i = 0, len = formatedGraphicalItems.length; i < len; i++) {\n var entry = formatedGraphicalItems[i];\n\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n\n return null;\n }\n }, {\n key: \"renderAxis\",\n\n /**\n * Draw axis\n * @param {Object} axisOptions The options of axis\n * @param {Object} element The axis element\n * @param {String} displayName The display name of axis\n * @param {Number} index The index of element\n * @return {ReactElement} The instance of x-axes\n */\n value: function renderAxis(axisOptions, element, displayName, index) {\n var _this$props5 = this.props,\n width = _this$props5.width,\n height = _this$props5.height;\n return React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: \"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: this.axesTicksGenerator\n }));\n }\n /**\n * Draw grid\n * @param {ReactElement} element the grid item\n * @return {ReactElement} The instance of grid\n */\n\n }, {\n key: \"renderLegend\",\n\n /**\n * Draw legend\n * @return {ReactElement} The instance of Legend\n */\n value: function renderLegend() {\n var _this6 = this;\n\n var formatedGraphicalItems = this.state.formatedGraphicalItems;\n var _this$props6 = this.props,\n children = _this$props6.children,\n width = _this$props6.width,\n height = _this$props6.height;\n var margin = this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n var props = getLegendProps({\n children: children,\n formatedGraphicalItems: formatedGraphicalItems,\n legendWidth: legendWidth,\n legendHeight: legendHeight,\n legendContent: legendContent\n });\n\n if (!props) {\n return null;\n }\n\n var item = props.item,\n otherProps = _objectWithoutProperties(props, [\"item\"]);\n\n return cloneElement(item, _objectSpread({}, otherProps, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n ref: function ref(legend) {\n _this6.legendInstance = legend;\n },\n onBBoxUpdate: this.handleLegendBBoxUpdate\n }));\n }\n /**\n * Draw Tooltip\n * @return {ReactElement} The instance of Tooltip\n */\n\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n var children = this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n\n if (!tooltipItem) {\n return null;\n }\n\n var _this$state15 = this.state,\n isTooltipActive = _this$state15.isTooltipActive,\n activeCoordinate = _this$state15.activeCoordinate,\n activePayload = _this$state15.activePayload,\n activeLabel = _this$state15.activeLabel,\n offset = _this$state15.offset;\n return cloneElement(tooltipItem, {\n viewBox: _objectSpread({}, offset, {\n x: offset.left,\n y: offset.top\n }),\n active: isTooltipActive,\n label: activeLabel,\n payload: isTooltipActive ? activePayload : [],\n coordinate: activeCoordinate\n });\n }\n }, {\n key: \"renderActivePoints\",\n value: function renderActivePoints(_ref10) {\n var item = _ref10.item,\n activePoint = _ref10.activePoint,\n basePoint = _ref10.basePoint,\n childIndex = _ref10.childIndex,\n isRange = _ref10.isRange;\n var result = [];\n var key = item.props.key;\n var _item$item$props2 = item.item.props,\n activeDot = _item$item$props2.activeDot,\n dataKey = _item$item$props2.dataKey;\n\n var dotProps = _objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value,\n key: \"\".concat(key, \"-activePoint-\").concat(childIndex)\n }, getPresentationAttributes(activeDot), filterEventAttributes(activeDot));\n\n result.push(this.constructor.renderActiveDot(activeDot, dotProps, childIndex));\n\n if (basePoint) {\n result.push(this.constructor.renderActiveDot(activeDot, _objectSpread({}, dotProps, {\n cx: basePoint.x,\n cy: basePoint.y,\n key: \"\".concat(key, \"-basePoint-\").concat(childIndex)\n }), childIndex));\n } else if (isRange) {\n result.push(null);\n }\n\n return result;\n }\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return React.createElement(\"defs\", null, React.createElement(\"clipPath\", {\n id: clipPathId\n }, React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this7 = this;\n\n if (!validateWidthHeight(this)) {\n return null;\n }\n\n var _this$props7 = this.props,\n children = _this$props7.children,\n className = _this$props7.className,\n width = _this$props7.width,\n height = _this$props7.height,\n style = _this$props7.style,\n compact = _this$props7.compact,\n others = _objectWithoutProperties(_this$props7, [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\"]);\n\n var attrs = getPresentationAttributes(others);\n var map = {\n CartesianGrid: {\n handler: this.renderGrid,\n once: true\n },\n ReferenceArea: {\n handler: this.renderReferenceElement\n },\n ReferenceLine: {\n handler: this.renderReferenceElement\n },\n ReferenceDot: {\n handler: this.renderReferenceElement\n },\n XAxis: {\n handler: this.renderXAxis\n },\n YAxis: {\n handler: this.renderYAxis\n },\n Brush: {\n handler: this.renderBrush,\n once: true\n },\n Bar: {\n handler: this.renderGraphicChild\n },\n Line: {\n handler: this.renderGraphicChild\n },\n Area: {\n handler: this.renderGraphicChild\n },\n Radar: {\n handler: this.renderGraphicChild\n },\n RadialBar: {\n handler: this.renderGraphicChild\n },\n Scatter: {\n handler: this.renderGraphicChild\n },\n Pie: {\n handler: this.renderGraphicChild\n },\n Funnel: {\n handler: this.renderGraphicChild\n },\n Tooltip: {\n handler: this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: this.renderPolarAxis\n },\n Customized: {\n handler: this.renderCustomized\n }\n }; // The \"compact\" mode is mainly used as the panorama within Brush\n\n if (compact) {\n return React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), renderByOrder(children, map));\n }\n\n var events = this.parseEventsOfWrapper();\n return React.createElement(\"div\", _extends({\n className: classNames('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this7.container = node;\n }\n }), React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), renderByOrder(children, map)), this.renderLegend(), this.renderTooltip());\n }\n }], [{\n key: \"getAxisNameByLayout\",\n value: function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n }\n }, {\n key: \"renderActiveDot\",\n value: function renderActiveDot(option, props) {\n var dot;\n\n if (isValidElement(option)) {\n dot = cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = React.createElement(Dot, props);\n }\n\n return React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: props.key\n }, dot);\n }\n }]);\n\n return CategoricalChartWrapper;\n }(Component);\n\n CategoricalChartWrapper.displayName = chartName;\n CategoricalChartWrapper.propTypes = _objectSpread({\n syncId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n compact: PropTypes.bool,\n width: PropTypes.number,\n height: PropTypes.number,\n data: PropTypes.arrayOf(PropTypes.object),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n stackOffset: PropTypes.oneOf(['sign', 'expand', 'none', 'wiggle', 'silhouette']),\n throttleDelay: PropTypes.number,\n margin: PropTypes.shape({\n top: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number\n }),\n barCategoryGap: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n barGap: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n barSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n maxBarSize: PropTypes.number,\n style: PropTypes.object,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultShowTooltip: PropTypes.bool,\n onClick: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n reverseStackOrder: PropTypes.bool,\n id: PropTypes.string\n }, propTypes);\n CategoricalChartWrapper.defaultProps = _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false\n }, defaultProps);\n\n CategoricalChartWrapper.createDefaultState = function (props) {\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush);\n var startIndex = brushItem && brushItem.props && brushItem.props.startIndex || 0;\n var endIndex = brushItem && brushItem.props && brushItem.props.endIndex || props.data && props.data.length - 1 || 0;\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: !_isNil(defaultShowTooltip) ? defaultShowTooltip : false\n };\n };\n\n CategoricalChartWrapper.hasBar = function (graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n };\n\n CategoricalChartWrapper.getDisplayedData = function (props, _ref11, item) {\n var graphicalItems = _ref11.graphicalItems,\n dataStartIndex = _ref11.dataStartIndex,\n dataEndIndex = _ref11.dataEndIndex;\n var itemsData = (graphicalItems || []).reduce(function (result, child) {\n var itemData = child.props.data;\n\n if (itemData && itemData.length) {\n return _toConsumableArray(result).concat(_toConsumableArray(itemData));\n }\n\n return result;\n }, []);\n\n if (itemsData && itemsData.length > 0) {\n return itemsData;\n }\n\n if (item && item.props && item.props.data && item.props.data.length > 0) {\n return item.props.data;\n }\n\n var data = props.data;\n\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n\n return [];\n };\n\n return CategoricalChartWrapper;\n};\n\nexport default generateCategoricalChart;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/chart/generateCategoricalChart.js\n// module id = 37\n// module chunks = 0","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _last from \"lodash/last\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport Label from './Label';\nimport Layer from '../container/Layer';\nimport { getPresentationAttributes, findAllByType } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nvar propTypes = {\n id: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.object),\n valueAccessor: PropTypes.func,\n clockWise: PropTypes.bool,\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func])\n};\nvar defaultProps = {\n valueAccessor: function valueAccessor(entry) {\n return _isArray(entry.value) ? _last(entry.value) : entry.value;\n }\n};\n\nfunction LabelList(props) {\n var data = props.data,\n valueAccessor = props.valueAccessor,\n dataKey = props.dataKey,\n clockWise = props.clockWise,\n id = props.id,\n others = _objectWithoutProperties(props, [\"data\", \"valueAccessor\", \"dataKey\", \"clockWise\", \"id\"]);\n\n if (!data || !data.length) {\n return null;\n }\n\n return React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = _isNil(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = _isNil(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return React.createElement(Label, _extends({}, getPresentationAttributes(entry), others, idProps, {\n index: index,\n value: value,\n viewBox: Label.parseViewBox(_isNil(clockWise) ? entry : _objectSpread({}, entry, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index)\n }));\n }));\n}\n\nLabelList.propTypes = propTypes;\nLabelList.displayName = 'LabelList';\n\nvar parseLabelList = function parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n\n if (React.isValidElement(label) || _isFunction(label)) {\n return React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n\n if (_isObject(label)) {\n return React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n\n return null;\n};\n\nvar renderCallByParent = function renderCallByParent(parentProps, data) {\n var ckeckPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && ckeckPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var explicitChilren = findAllByType(children, LabelList).map(function (child, index) {\n return cloneElement(child, {\n data: data,\n key: \"labelList-\".concat(index)\n });\n });\n\n if (!ckeckPropsLabel) {\n return explicitChilren;\n }\n\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChilren));\n};\n\nLabelList.renderCallByParent = renderCallByParent;\nLabelList.defaultProps = defaultProps;\nexport default LabelList;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/component/LabelList.js\n// module id = 38\n// module chunks = 0","// 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\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_global.js\n// module id = 39\n// module chunks = 0","/// \r\n\r\nimport * as Rest from \"../Generated/RestClient\";\r\nimport { clientAppSettings } from \"../Models/ClientAppSettings\";\r\nimport { Environment } from \"./Environment\";\r\n\r\nexport function botDirectoryLink(bot: Rest.IBot) {\r\n return '/';\r\n}\r\n\r\nexport function botEditLink(bot: Rest.IBot) {\r\n return `/bots/edit?id=${encodeURIComponent(bot.Id)}`;\r\n}\r\n\r\nexport function botViewLink(bot: Rest.IBot) {\r\n return `/bots?id=${encodeURIComponent(bot.Id)}`;\r\n}\r\n\r\n/**\r\n * Get the link to a bot service in Azure Ibiza portal.\r\n */\r\nexport function getAzureIbizaBotUrl(subscriptionId: string, resourceGroupName: string, botId: string): string {\r\n let url = Environment.azurePortalUrl() + \"?\";\r\n const envQSParams = getAzureIbizaBotEnvironmentQSParameters();\r\n if (envQSParams) {\r\n url += envQSParams;\r\n }\r\n\r\n return `${url}#resource/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.BotService/botServices/${botId}`;\r\n}\r\n\r\n/**\r\n * Get the environment specific part of the query string for the ABS Ibiza blade.\r\n */\r\nfunction getAzureIbizaBotEnvironmentQSParameters(): string {\r\n const env = (clientAppSettings.environment).toLowerCase();\r\n switch (env)\r\n {\r\n case \"scratch\":\r\n case \"ppe\":\r\n case \"usgovppe\":\r\n return `Microsoft_Azure_BotService_env=${env}&feature.showassettypes=Microsoft_Azure_BotService_BotService&feature.canmodifystamps=true&Microsoft_Azure_BotService=friendName`;\r\n case \"usgovprd\":\r\n default:\r\n return \"\";\r\n }\r\n}\r\n\r\n/**\r\n * get the server relative url of window.location including query\r\n */\r\nexport function relativeUrl(location: Location): string {\r\n return `${location.pathname}${location.search}`;\r\n}\r\n\r\nexport function getSignInUrl(): string {\r\n const path = relativeUrl(window.location);\r\n\r\n const paramValue = encodeURIComponent(path);\r\n return `/identity/signin?requestUrl=${paramValue}`;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Utils/Links.ts","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport {map, slice} from \"./array\";\nimport constant from \"./constant\";\nimport number from \"./number\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(domain) {\n var a = domain[0], b = domain[domain.length - 1], t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = map.call(_, number), clamp === identity || (clamp = clamper(domain)), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = slice.call(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? clamper(domain) : identity, scale) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous(transform, untransform) {\n return transformer()(transform, untransform);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/continuous.js\n// module id = 41\n// module chunks = 0","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseGetTag.js\n// module id = 42\n// module chunks = 0","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\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/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\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 */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/keys.js\n// module id = 43\n// module chunks = 0","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { cloneElement, isValidElement } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Text from './Text';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, findAllByType } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nvar cartesianViewBoxShape = PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number\n});\nvar polarViewBoxShape = PropTypes.shape({\n cx: PropTypes.number,\n cy: PropTypes.number,\n innerRadius: PropTypes.number,\n outerRadius: PropTypes.number,\n startAngle: PropTypes.number,\n endAngle: PropTypes.number\n});\n\nvar propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n viewBox: PropTypes.oneOfType([cartesianViewBoxShape, polarViewBoxShape]),\n formatter: PropTypes.func,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n offset: PropTypes.number,\n position: PropTypes.oneOf(['top', 'left', 'right', 'bottom', 'inside', 'outside', 'insideLeft', 'insideRight', 'insideTop', 'insideBottom', 'insideTopLeft', 'insideBottomLeft', 'insideTopRight', 'insideBottomRight', 'insideStart', 'insideEnd', 'end', 'center', 'centerTop', 'centerBottom']),\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n className: PropTypes.string,\n content: PropTypes.oneOfType([PropTypes.element, PropTypes.func])\n});\n\nvar defaultProps = {\n offset: 5\n};\n\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = _isNil(props.children) ? value : props.children;\n\n if (_isFunction(formatter)) {\n return formatter(label);\n }\n\n return label;\n};\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\n\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var cx = viewBox.cx,\n cy = viewBox.cy,\n innerRadius = viewBox.innerRadius,\n outerRadius = viewBox.outerRadius,\n startAngle = viewBox.startAngle,\n endAngle = viewBox.endAngle,\n clockWise = viewBox.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = _isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: classNames('recharts-radial-bar-label', className)\n }), React.createElement(\"defs\", null, React.createElement(\"path\", {\n id: id,\n d: path\n })), React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\n\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var cx = viewBox.cx,\n cy = viewBox.cy,\n innerRadius = viewBox.innerRadius,\n outerRadius = viewBox.outerRadius,\n startAngle = viewBox.startAngle,\n endAngle = viewBox.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n\n var r = (innerRadius + outerRadius) / 2;\n\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\n\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sign = height >= 0 ? 1 : -1;\n\n if (position === 'top') {\n return {\n x: x + width / 2,\n y: y - sign * offset,\n textAnchor: 'middle',\n verticalAnchor: sign > 0 ? 'end' : 'start'\n };\n }\n\n if (position === 'bottom') {\n return {\n x: x + width / 2,\n y: y + height + sign * offset,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'left') {\n return {\n x: x - offset,\n y: y + height / 2,\n textAnchor: 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'right') {\n return {\n x: x + width + offset,\n y: y + height / 2,\n textAnchor: 'start',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'insideLeft') {\n return {\n x: x + offset,\n y: y + height / 2,\n textAnchor: 'start',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'insideRight') {\n return {\n x: x + width - offset,\n y: y + height / 2,\n textAnchor: 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'insideTop') {\n return {\n x: x + width / 2,\n y: y + sign * offset,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'insideBottom') {\n return {\n x: x + width / 2,\n y: y + height - sign * offset,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n\n if (position === 'insideTopLeft') {\n return {\n x: x + offset,\n y: y + sign * offset,\n textAnchor: 'start',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'insideTopRight') {\n return {\n x: x + width - offset,\n y: y + sign * offset,\n textAnchor: 'end',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'insideBottomLeft') {\n return {\n x: x + offset,\n y: y + height - sign * offset,\n textAnchor: 'start',\n verticalAnchor: 'end'\n };\n }\n\n if (position === 'insideBottomRight') {\n return {\n x: x + width - offset,\n y: y + height - sign * offset,\n textAnchor: 'end',\n verticalAnchor: 'end'\n };\n }\n\n if (_isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return {\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n };\n }\n\n return {\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\n\nvar isPolar = function isPolar(viewBox) {\n return isNumber(viewBox.cx);\n};\n\nfunction Label(props) {\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className;\n\n if (!viewBox || _isNil(value) && _isNil(children) && !isValidElement(content) && !_isFunction(content)) {\n return null;\n }\n\n if (isValidElement(content)) {\n return cloneElement(content, props);\n }\n\n var label;\n\n if (_isFunction(content)) {\n label = content(props);\n\n if (isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n\n var isPolarLabel = isPolar(viewBox);\n var attrs = getPresentationAttributes(props);\n\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return React.createElement(Text, _extends({\n className: classNames('recharts-label', className)\n }, attrs, positionAttrs), label);\n}\n\nLabel.displayName = 'Label';\nLabel.defaultProps = defaultProps;\nLabel.propTypes = propTypes;\n\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise;\n\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n\n if (props.viewBox) {\n return props.viewBox;\n }\n\n return {};\n};\n\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n\n if (isNumOrStr(label)) {\n return React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n\n if (isValidElement(label)) {\n if (label.type === Label) {\n return cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n\n return React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isFunction(label)) {\n return React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isObject(label)) {\n return React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n\n return null;\n};\n\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var ckeckPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && ckeckPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChilren = findAllByType(children, Label).map(function (child, index) {\n return cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n key: \"label-\".concat(index)\n });\n });\n\n if (!ckeckPropsLabel) {\n return explicitChilren;\n }\n\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChilren));\n};\n\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;\nexport default Label;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/component/Label.js\n// module id = 44\n// module chunks = 0","import _every from \"lodash/every\";\nimport _mapValues from \"lodash/mapValues\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var range, x, y, needSpace;\n\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0), offset.left + offset.width - (padding.right || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0), offset.top + offset.height - (padding.bottom || 0)];\n } else {\n range = axis.range;\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n\n var _parseScale = parseScale(axis, chartName),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread({}, axis, {\n realScaleType: realScaleType\n }));\n\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n\n var finalAxis = _objectSpread({}, axis, ticks, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n\n return _objectSpread({}, result, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\n\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper =\n/*#__PURE__*/\nfunction () {\n _createClass(ScaleHelper, null, [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n\n this.scale = scale;\n }\n\n _createClass(ScaleHelper, [{\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware;\n\n if (value === undefined) {\n return undefined;\n }\n\n if (bandAware) {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }, {\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }]);\n\n return ScaleHelper;\n}();\nScaleHelper.EPS = 1e-4;\nexport var LabeledScaleHelper =\n/*#__PURE__*/\nfunction () {\n _createClass(LabeledScaleHelper, null, [{\n key: \"create\",\n value: function create(obj) {\n return new this(obj);\n }\n }]);\n\n function LabeledScaleHelper(scales) {\n _classCallCheck(this, LabeledScaleHelper);\n\n this.scales = _mapValues(scales, ScaleHelper.create);\n Object.assign(this, this.scales);\n }\n\n _createClass(LabeledScaleHelper, [{\n key: \"apply\",\n value: function apply(coords) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware;\n\n var scales = this.scales;\n return _mapValues(coords, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware\n });\n });\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(coords) {\n var scales = this.scales;\n return _every(coords, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n }]);\n\n return LabeledScaleHelper;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/util/CartesianUtils.js\n// module id = 45\n// module chunks = 0","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_fails.js\n// module id = 46\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 47\n// module chunks = 0","export enum Scheme {\r\n http,\r\n https\r\n}\r\n\r\nexport interface Url {\r\n scheme: Scheme,\r\n hostname: string,\r\n port?: number\r\n path: string,\r\n query: string | { [key: string]: string }\r\n format(): string;\r\n}\r\n\r\n// regex to split urls into components\r\nconst urlregex = /^(http:\\/\\/|https:\\/\\/)([^:\\/]+)(:[0-9]+){0,1}(\\/[^?]*){0,1}(\\?[^#]*){0,1}/;\r\n\r\nexport function parseUrl(url: string): Url {\r\n var matches = urlregex.exec(url);\r\n if (matches) {\r\n var schemestring = matches[1].substr(0, matches[1].length - 3) as string;\r\n var host = matches[2];\r\n var port = matches[3];\r\n return {\r\n scheme: (Scheme as any)[schemestring],\r\n hostname: matches[2],\r\n port: matches[3] ? parseInt(matches[3].substr(1)) : undefined,\r\n path: matches[4],\r\n query: matches[5] ? parseQuery(matches[5].substr(1)) : undefined,\r\n format: function () { return formatUrl(this); }\r\n };\r\n }\r\n return null;\r\n}\r\n\r\nexport function parseQuery(query: string): { [key: string]: string } | undefined {\r\n if (!query)\r\n return undefined;\r\n\r\n return _.object(_.map(query.split('&'), exp => {\r\n return _.map(exp.split(/=(.+)?/, 2), (v, i) => i === 0 ? v : decodeURIComponent(v))\r\n })) as { [key: string]: string };\r\n}\r\n\r\nfunction formatUrl(url: Url): string {\r\n var querystring = '';\r\n if (url.query) {\r\n querystring = `?${_.isString(url.query) ? url.query : _.map(url.query as { [key: string]: string }, (val, name) => {\r\n return `${name}=${encodeURIComponent(val)}`;\r\n }).join('&')}`;\r\n }\r\n var schemestring = _.isString(url.scheme) ? url.scheme : Scheme[url.scheme];\r\n return `${schemestring}://${url.hostname}${_.isUndefined(url.port) ? '' : ':' + url.port}${url.path || ''}${querystring}`;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Utils/Url.ts","var array = Array.prototype;\n\nexport var map = array.map;\nexport var slice = array.slice;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/array.js\n// module id = 49\n// module chunks = 0","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport tickFormat from \"./tickFormat\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous(identity, identity);\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/linear.js\n// module id = 50\n// module chunks = 0","export default function(x) {\n return function constant() {\n return x;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/constant.js\n// module id = 51\n// module chunks = 0","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\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 = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getNative.js\n// module id = 52\n// module chunks = 0","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.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// ./~/lodash/identity.js\n// module id = 53\n// module chunks = 0","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isArrayLike.js\n// module id = 54\n// module chunks = 0","import _isNil from \"lodash/isNil\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport reduceCSSCalc from 'reduce-css-calc';\nimport classNames from 'classnames';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, isSsr } from '../util/ReactUtils';\nimport { getStringSize } from '../util/DOMUtils';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\n\nvar calculateWordWidths = function calculateWordWidths(props) {\n try {\n var words = !_isNil(props.children) ? props.children.toString().split(BREAKING_SPACES) : [];\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, props.style).width\n };\n });\n var spaceWidth = getStringSize(\"\\xA0\", props.style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\n\nvar Text =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Text, _Component);\n\n function Text() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Text);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Text)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n wordsByLines: []\n };\n return _this;\n }\n\n _createClass(Text, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this.updateWordsByLines(this.props, true);\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var needCalculate = this.props.children !== nextProps.children || this.props.style !== nextProps.style;\n this.updateWordsByLines(nextProps, needCalculate);\n }\n }, {\n key: \"updateWordsByLines\",\n value: function updateWordsByLines(props, needCalculate) {\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((props.width || props.scaleToFit) && !isSsr()) {\n if (needCalculate) {\n var wordWidths = calculateWordWidths(props);\n\n if (wordWidths) {\n var wordsWithComputedWidth = wordWidths.wordsWithComputedWidth,\n spaceWidth = wordWidths.spaceWidth;\n this.wordsWithComputedWidth = wordsWithComputedWidth;\n this.spaceWidth = spaceWidth;\n } else {\n this.updateWordsWithoutCalculate(props);\n return;\n }\n }\n\n var wordsByLines = this.calculateWordsByLines(this.wordsWithComputedWidth, this.spaceWidth, props.width);\n this.setState({\n wordsByLines: wordsByLines\n });\n } else {\n this.updateWordsWithoutCalculate(props);\n }\n }\n }, {\n key: \"updateWordsWithoutCalculate\",\n value: function updateWordsWithoutCalculate(props) {\n var words = !_isNil(props.children) ? props.children.toString().split(BREAKING_SPACES) : [];\n this.setState({\n wordsByLines: [{\n words: words\n }]\n });\n }\n }, {\n key: \"calculateWordsByLines\",\n value: function calculateWordsByLines(wordsWithComputedWidth, spaceWidth, lineWidth) {\n var scaleToFit = this.props.scaleToFit;\n return (wordsWithComputedWidth || []).reduce(function (result, _ref) {\n var word = _ref.word,\n width = _ref.width;\n var currentLine = result[result.length - 1];\n\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < lineWidth)) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n\n return result;\n }, []);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n dx = _this$props.dx,\n dy = _this$props.dy,\n textAnchor = _this$props.textAnchor,\n verticalAnchor = _this$props.verticalAnchor,\n scaleToFit = _this$props.scaleToFit,\n angle = _this$props.angle,\n lineHeight = _this$props.lineHeight,\n capHeight = _this$props.capHeight,\n className = _this$props.className,\n textProps = _objectWithoutProperties(_this$props, [\"dx\", \"dy\", \"textAnchor\", \"verticalAnchor\", \"scaleToFit\", \"angle\", \"lineHeight\", \"capHeight\", \"className\"]);\n\n var wordsByLines = this.state.wordsByLines;\n\n if (!isNumOrStr(textProps.x) || !isNumOrStr(textProps.y)) {\n return null;\n }\n\n var x = textProps.x + (isNumber(dx) ? dx : 0);\n var y = textProps.y + (isNumber(dy) ? dy : 0);\n var startDy;\n\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n\n var transforms = [];\n\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n transforms.push(\"scale(\".concat(this.props.width / lineWidth, \")\"));\n }\n\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n\n return React.createElement(\"text\", _extends({}, getPresentationAttributes(textProps), {\n x: x,\n y: y,\n className: classNames('recharts-text', className),\n textAnchor: textAnchor\n }), wordsByLines.map(function (line, index) {\n return React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: index\n }, line.words.join(' '));\n }));\n }\n }]);\n\n return Text;\n}(Component);\n\nText.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n scaleToFit: PropTypes.bool,\n angle: PropTypes.number,\n textAnchor: PropTypes.oneOf(['start', 'middle', 'end', 'inherit']),\n verticalAnchor: PropTypes.oneOf(['start', 'middle', 'end']),\n style: PropTypes.object\n});\nText.defaultProps = {\n x: 0,\n y: 0,\n lineHeight: '1em',\n capHeight: '0.71em',\n // Magic number from d3\n scaleToFit: false,\n textAnchor: 'start',\n verticalAnchor: 'end' // Maintain compat with existing charts / default SVG behavior\n\n};\nexport default Text;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/component/Text.js\n// module id = 55\n// module chunks = 0","var _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Dot\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport { getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\n\nvar Dot = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Dot, _Component);\n\n function Dot() {\n _classCallCheck(this, Dot);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Dot).apply(this, arguments));\n }\n\n _createClass(Dot, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n r = _this$props.r,\n className = _this$props.className;\n var layerClass = classNames('recharts-dot', className);\n\n if (cx === +cx && cy === +cy && r === +r) {\n return React.createElement(\"circle\", _extends({}, getPresentationAttributes(this.props), filterEventAttributes(this.props, null, true), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n\n return null;\n }\n }]);\n\n return Dot;\n}(Component), _class2.displayName = 'Dot', _class2.propTypes = {\n className: PropTypes.string,\n cx: PropTypes.number,\n cy: PropTypes.number,\n r: PropTypes.number\n}, _temp)) || _class;\n\nexport default Dot;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/shape/Dot.js\n// module id = 56\n// module chunks = 0","module.exports = jQuery;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"jQuery\"\n// module id = 57\n// module chunks = 0","/**\r\n * The type of header to display.\r\n */\r\nexport enum HeaderKind {\r\n None = 1,\r\n Small,\r\n Jumbo\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Utility/HeaderKind.ts","import * as Rest from \"../../Generated/RestClient\";\r\nimport getBotResourceId from \"./botResourceId\";\r\nimport {clientAppSettings} from \"../../Models/ClientAppSettings\";\r\n\r\nexport enum BladeType {\r\n _none,\r\n continuousIntegration,\r\n webConfig,\r\n appSettings,\r\n functionEditor,\r\n createAbs\r\n}\r\n\r\nfunction getEnvQuery() : string {\r\n const env = clientAppSettings.environment.toLowerCase();\r\n switch (env) {\r\n case 'scratch':\r\n case 'ppe':\r\n return `?appsvc.bots.env=${env}`;\r\n default:\r\n return ''\r\n }\r\n}\r\n\r\nexport function getAzurePortalBladeUrl(bot:Rest.BotService, \r\n domainName: string,\r\n bladType: BladeType) : string {\r\n const portalHostName = domainName === 'microsoft.onmicrosoft.com' ? 'ms.portal.azure.com' : 'portal.azure.com';\r\n const azureDomainRoot = `https://${portalHostName}/${domainName ? \"signin/index/@\" + domainName : \"\"}/${getEnvQuery()}`;\r\n const siteBladeUrl = `${azureDomainRoot}#resource${getBotResourceId(bot)}`;\r\n switch (bladType) {\r\n case BladeType.continuousIntegration:\r\n return `${siteBladeUrl}/DeploymentSource`;\r\n case BladeType.webConfig:\r\n return `${siteBladeUrl}/application`;\r\n case BladeType.createAbs:\r\n return `https://portal.azure.com/${getEnvQuery()}#create/Microsoft.BotApp`;\r\n case BladeType.appSettings:\r\n default:\r\n return siteBladeUrl;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Services/azurePortalLinks.ts","export * from './AnalyticsDashboard';\r\nexport * from './AzurePortalPage';\r\nexport * from './BotAppContinuousIntegration';\r\nexport * from './BotAppSettings';\r\nexport * from './BotChannelConfig';\r\nexport * from './BotChannels';\r\nexport * from './BotCodeEditor';\r\nexport * from './BotCreateSwitch';\r\nexport * from './BotEditor';\r\nexport * from './BotEditorRow';\r\nexport * from './BotPage';\r\nexport * from './BotPageBody';\r\nexport * from './BotPageHeader';\r\nexport * from './BotSettingsTab';\r\nexport * from './BotsPage';\r\nexport * from './ChevronDropdownControl';\r\nexport * from './CompactDropdownControl';\r\nexport * from './EmptyBotPage';\r\nexport * from './MasterPage';\r\nexport * from './MasterPageHeader';\r\nexport * from './RejectionDetailsPanel';\r\nexport * from './TabControl';\r\nexport * from './WebChat';\r\nexport * from './BotCodeSetup';\r\nexport * from './status/index';\r\nexport * from './BotMigrationDialog';\r\nexport * from './BotsPageRow';\r\nexport * from './BotOpenComposer';\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/index.ts","import * as $ from \"jquery\";\r\n\r\nexport interface ILogger {\r\n debug(...args: any[]) : void;\r\n}\r\n\r\nclass Logger implements ILogger {\r\n constructor() {\r\n }\r\n\r\n public debug(...args: any[]): void {\r\n // uncomment code below to get in page logger view\r\n /*\r\n let $con = $('.debug-console');\r\n if ($con.length === 0) {\r\n $con = $('
').appendTo($('body'));\r\n }\r\n $con.append($('

').text(args.toString()));\r\n */\r\n // console.log might not work, guard against failure\r\n try {\r\n console.log.apply(console, args);\r\n } catch (ignored) {\r\n }\r\n }\r\n}\r\n\r\nlet _logger = new Logger();\r\n\r\nexport default _logger;\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Utils/logger.ts","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\n\r\nexport interface ProgressRingControlProps extends React.Props {\r\n onMounted?: (div: HTMLDivElement) => void;\r\n onUnmount?: (div: HTMLDivElement) => void;\r\n className?: string;\r\n}\r\n \r\nexport class ProgressRingControl extends React.Component {\r\n private div: HTMLDivElement;\r\n\r\n constructor(props: ProgressRingControlProps) {\r\n super(props);\r\n }\r\n\r\n public componentDidMount() {\r\n if (this.props.onMounted) {\r\n this.props.onMounted(this.div);\r\n }\r\n }\r\n\r\n public componentWillUnmount() {\r\n if (this.props.onUnmount) {\r\n this.props.onUnmount(this.div);\r\n }\r\n }\r\n\r\n public render() : JSX.Element {\r\n return (\r\n
this.div = x}>\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
); \r\n }\r\n} \r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/ProgressRingControl.tsx","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/src/ascending.js\n// module id = 63\n// module chunks = 0","import constant from \"./constant\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/color.js\n// module id = 65\n// module chunks = 0","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Symbol.js\n// module id = 66\n// module chunks = 0","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\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 == null ? 0 : 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// ./~/lodash/_arrayMap.js\n// module id = 67\n// module chunks = 0","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\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 identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_copyObject.js\n// module id = 68\n// module chunks = 0","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/get.js\n// module id = 69\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isSymbol.js\n// module id = 70\n// module chunks = 0","var _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview X Axis\n */\nimport { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport pureRender from '../util/PureRender';\nimport { SCALE_TYPES } from '../util/ReactUtils';\n\nvar XAxis = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(XAxis, _Component);\n\n function XAxis() {\n _classCallCheck(this, XAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(XAxis).apply(this, arguments));\n }\n\n _createClass(XAxis, [{\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return XAxis;\n}(Component), _class2.displayName = 'XAxis', _class2.propTypes = {\n allowDecimals: PropTypes.bool,\n allowDuplicatedCategory: PropTypes.bool,\n hide: PropTypes.bool,\n // The name of data displayed in the axis\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unit of data displayed in the axis\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unique id of x-axis\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n domain: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func, PropTypes.oneOf(['auto', 'dataMin', 'dataMax'])])),\n // The key of data displayed in the axis\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n // The width of axis which is usually calculated internally\n width: PropTypes.number,\n // The height of axis, which need to be setted by user\n height: PropTypes.number,\n mirror: PropTypes.bool,\n // The orientation of axis\n orientation: PropTypes.oneOf(['top', 'bottom']),\n type: PropTypes.oneOf(['number', 'category']),\n // Ticks can be any type when the axis is the type of category\n // Ticks must be numbers when the axis is the type of number\n ticks: PropTypes.array,\n // The count of ticks\n tickCount: PropTypes.number,\n // The formatter function of tick\n tickFormatter: PropTypes.func,\n padding: PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number\n }),\n allowDataOverflow: PropTypes.bool,\n scale: PropTypes.oneOfType([PropTypes.oneOf(SCALE_TYPES), PropTypes.func]),\n tick: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.object, PropTypes.element]),\n axisLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n tickLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n minTickGap: PropTypes.number,\n tickSize: PropTypes.number,\n interval: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['preserveStart', 'preserveEnd', 'preserveStartEnd'])]),\n reversed: PropTypes.bool\n}, _class2.defaultProps = {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n domain: [0, 'auto'],\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n}, _temp)) || _class;\n\nexport default XAxis;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/cartesian/XAxis.js\n// module id = 71\n// module chunks = 0","var _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Y Axis\n */\nimport { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport pureRender from '../util/PureRender';\n\nvar YAxis = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(YAxis, _Component);\n\n function YAxis() {\n _classCallCheck(this, YAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(YAxis).apply(this, arguments));\n }\n\n _createClass(YAxis, [{\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return YAxis;\n}(Component), _class2.displayName = 'YAxis', _class2.propTypes = {\n allowDecimals: PropTypes.bool,\n allowDuplicatedCategory: PropTypes.bool,\n hide: PropTypes.bool,\n // The name of data displayed in the axis\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unit of data displayed in the axis\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unique id of y-axis\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n domain: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func, PropTypes.oneOf(['auto', 'dataMin', 'dataMax'])])),\n // The key of data displayed in the axis\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n // Ticks can be any type when the axis is the type of category\n // Ticks must be numbers when the axis is the type of number\n ticks: PropTypes.array,\n // The count of ticks\n tickCount: PropTypes.number,\n // The formatter function of tick\n tickFormatter: PropTypes.func,\n // The width of axis, which need to be setted by user\n width: PropTypes.number,\n // The height of axis which is usually calculated in Chart\n height: PropTypes.number,\n mirror: PropTypes.bool,\n // The orientation of axis\n orientation: PropTypes.oneOf(['left', 'right']),\n type: PropTypes.oneOf(['number', 'category']),\n padding: PropTypes.shape({\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n allowDataOverflow: PropTypes.bool,\n scale: PropTypes.oneOfType([PropTypes.oneOf(['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold']), PropTypes.func]),\n tick: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.object, PropTypes.element]),\n axisLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n tickLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n minTickGap: PropTypes.number,\n tickSize: PropTypes.number,\n interval: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['preserveStart', 'preserveEnd', 'preserveStartEnd'])]),\n reversed: PropTypes.bool\n}, _class2.defaultProps = {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n domain: [0, 'auto'],\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n}, _temp)) || _class;\n\nexport default YAxis;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/cartesian/YAxis.js\n// module id = 72\n// module chunks = 0","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * @fileOverview Cross\n */\nimport { PRESENTATION_ATTRIBUTES } from '../util/ReactUtils';\n\nfunction Cell() {\n return null;\n}\n\nCell.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES);\nCell.displayName = 'Cell';\nexport default Cell;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/component/Cell.js\n// module id = 73\n// module chunks = 0","import _isArray from \"lodash/isArray\";\nimport _isFunction from \"lodash/isFunction\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Curve\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'd3-shape';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\n\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\n\nvar getX = function getX(p) {\n return p.x;\n};\n\nvar getY = function getY(p) {\n return p.y;\n};\n\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (_isFunction(type)) {\n return type;\n }\n\n var name = \"curve\".concat(type.slice(0, 1).toUpperCase()).concat(type.slice(1));\n\n if (name === 'curveMonotone' && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n\n return CURVE_FACTORIES[name] || curveLinear;\n};\n\nvar Curve = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Curve, _Component);\n\n function Curve() {\n _classCallCheck(this, Curve);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Curve).apply(this, arguments));\n }\n\n _createClass(Curve, [{\n key: \"getPath\",\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n value: function getPath() {\n var _this$props = this.props,\n type = _this$props.type,\n points = _this$props.points,\n baseLine = _this$props.baseLine,\n layout = _this$props.layout,\n connectNulls = _this$props.connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n\n if (_isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread({}, entry, {\n base: formatBaseLine[index]\n });\n });\n\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n points = _this$props2.points,\n path = _this$props2.path,\n pathRef = _this$props2.pathRef;\n\n if ((!points || !points.length) && !path) {\n return null;\n }\n\n var realPath = points && points.length ? this.getPath() : path;\n return React.createElement(\"path\", _extends({}, getPresentationAttributes(this.props), filterEventAttributes(this.props, null, true), {\n className: classNames('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n }\n }]);\n\n return Curve;\n}(Component), _class2.displayName = 'Curve', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n className: PropTypes.string,\n type: PropTypes.oneOfType([PropTypes.oneOf(['basis', 'basisClosed', 'basisOpen', 'linear', 'linearClosed', 'natural', 'monotoneX', 'monotoneY', 'monotone', 'step', 'stepBefore', 'stepAfter']), PropTypes.func]),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n baseLine: PropTypes.oneOfType([PropTypes.number, PropTypes.array]),\n points: PropTypes.arrayOf(PropTypes.object),\n connectNulls: PropTypes.bool,\n path: PropTypes.string,\n pathRef: PropTypes.func\n}), _class2.defaultProps = {\n type: 'linear',\n points: [],\n connectNulls: false\n}, _temp)) || _class;\n\nexport default Curve;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/shape/Curve.js\n// module id = 74\n// module chunks = 0","var _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Rectangle\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport pureRender from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\n\nvar getRectangePath = function getRectangePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [];\n\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n\n return path;\n};\n\nvar Rectangle = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Rectangle, _Component);\n\n function Rectangle() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Rectangle);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Rectangle)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n totalLength: -1\n };\n return _this;\n }\n\n _createClass(Rectangle, [{\n key: \"componentDidMount\",\n\n /* eslint-disable react/no-did-mount-set-state */\n value: function componentDidMount() {\n if (this.node && this.node.getTotalLength) {\n try {\n var totalLength = this.node.getTotalLength();\n\n if (totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n } catch (err) {// calculate total length error\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n radius = _this$props.radius,\n className = _this$props.className;\n var totalLength = this.state.totalLength;\n var _this$props2 = this.props,\n animationEasing = _this$props2.animationEasing,\n animationDuration = _this$props2.animationDuration,\n animationBegin = _this$props2.animationBegin,\n isAnimationActive = _this$props2.isAnimationActive,\n isUpdateAnimationActive = _this$props2.isUpdateAnimationActive;\n\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-rectangle', className);\n\n if (!isUpdateAnimationActive) {\n return React.createElement(\"path\", _extends({}, getPresentationAttributes(this.props), filterEventAttributes(this.props), {\n className: layerClass,\n d: getRectangePath(x, y, width, height, radius)\n }));\n }\n\n return React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, React.createElement(\"path\", _extends({}, getPresentationAttributes(_this2.props), filterEventAttributes(_this2.props), {\n className: layerClass,\n d: getRectangePath(currX, currY, currWidth, currHeight, radius),\n ref: function ref(node) {\n _this2.node = node;\n }\n })));\n });\n }\n }]);\n\n return Rectangle;\n}(Component), _class2.displayName = 'Rectangle', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, {\n className: PropTypes.string,\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n radius: PropTypes.oneOfType([PropTypes.number, PropTypes.array]),\n isAnimationActive: PropTypes.bool,\n isUpdateAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear'])\n}), _class2.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n}, _temp)) || _class;\n\nexport default Rectangle;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/shape/Rectangle.js\n// module id = 75\n// module chunks = 0","/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format, a, b, c, d, e, f) {\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/util/LogUtils.js\n// module id = 76\n// module chunks = 0","// 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//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_descriptors.js\n// module id = 77\n// module chunks = 0","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_is-object.js\n// module id = 78\n// module chunks = 0","\r\n\r\nexport function combineClassNames(...arr: string[]): string {\r\n return arr.filter(s => s && s.length).join(\" \");\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Utils/ReactUtils.ts","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { TooltipControl, Borders } from \"../../../../Intercom.ReactUI/Views/TooltipControl\";\r\n\r\nexport interface BlockRowInputTooltipDisposer {\r\n (): void;\r\n}\r\n\r\nexport interface BlockRowInputLabelProps extends React.Props {\r\n text: string;\r\n\r\n for?: string;\r\n tip?: string;\r\n tipAsHtml?: boolean;\r\n required?: boolean,\r\n onTooltipVisibilityChanged?: (visible: boolean, closeTip: BlockRowInputTooltipDisposer) => void;\r\n}\r\n\r\ninterface BlockRowInputLabelState {\r\n showTooltip?: boolean;\r\n}\r\n\r\nexport class BlockRowInputLabel extends React.Component {\r\n private _onWindowClickHandler: () => void;\r\n\r\n constructor(props: BlockRowInputLabelProps) {\r\n super(props);\r\n\r\n this._onWindowClickHandler = this._onWindowClick.bind(this);\r\n\r\n this.state = {\r\n showTooltip: false\r\n };\r\n }\r\n\r\n public componentWillUnmount() {\r\n window.removeEventListener(\"click\", this._onWindowClickHandler);\r\n }\r\n\r\n private onHideToolTip = () => {\r\n this._setTooltipVisibility(false, false);\r\n }\r\n\r\n private notifyTooltipVisibilityChanged() {\r\n if (!this.props.onTooltipVisibilityChanged) {\r\n // TODO: add default behavior for modeless tooltip (single tip shown at any time, click off will dismiss\r\n return;\r\n }\r\n\r\n this.props.onTooltipVisibilityChanged(\r\n this.state.showTooltip,\r\n this.state.showTooltip ? this.onHideToolTip : null);\r\n }\r\n\r\n /**\r\n * Set the tooltip visibility and, optionally, invoke onTooltipVisibilityChanged.\r\n * @param visible New visibility state for the tooltip.\r\n * @param shouldNotifyChanged -should onTooltipVisibilityChanged be invoked.\r\n */\r\n private _setTooltipVisibility(visible: boolean, shouldNotifyChanged: boolean) {\r\n if (this.state.showTooltip === visible) {\r\n return;\r\n }\r\n\r\n this.setState({ showTooltip: visible }, () => {\r\n // When showTooltip is true the 'tooltip' control will be added - need to change it's position.\r\n const toolTipControl = this.refs['tooltip'] as TooltipControl;\r\n if (toolTipControl) {\r\n toolTipControl.anchorTo($(this.refs['upper-label'] as HTMLElement));\r\n\r\n window.addEventListener(\"click\", this._onWindowClickHandler);\r\n }\r\n else {\r\n window.removeEventListener(\"click\", this._onWindowClickHandler);\r\n }\r\n\r\n if (shouldNotifyChanged) {\r\n this.notifyTooltipVisibilityChanged();\r\n }\r\n });\r\n }\r\n\r\n private renderTooltip(): JSX.Element {\r\n let tipText = this.props.tip;\r\n if (!tipText || !this.state.showTooltip) {\r\n return null;\r\n }\r\n\r\n let tipContent: JSX.Element = null;\r\n if (this.props.tipAsHtml) {\r\n tipContent = ();\r\n } else {\r\n tipContent = {tipText};\r\n }\r\n\r\n return \r\n {tipContent}\r\n ;\r\n }\r\n\r\n public render() {\r\n return this._setTooltipVisibility(true, true), 100, true)}\r\n onMouseLeave={_.debounce(x => this._setTooltipVisibility(false, true), 100, true)}\r\n onFocus={_.debounce(x => this._setTooltipVisibility(true, true), 100, true)}\r\n onBlur={_.debounce(x => this._setTooltipVisibility(false, true), 100, true)}\r\n >\r\n {this.props.required ? '*' : ''} {this.props.text}\r\n {this.renderTooltip()}\r\n ;\r\n }\r\n\r\n private _onWindowClick() {\r\n this._setTooltipVisibility(false, true);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/Shared/BlockRowInputLabel.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport { BotSettingsTabProps} from \"./BotSettingsTab\";\r\nimport {BotCodeSetupProps} from \"./BotCodeSetup\";\r\nimport {BotPageHeader} from \"./BotPageHeader\";\r\nimport {BotPageBody} from \"./BotPageBody\";\r\nimport {BotEditorProps} from \"./BotEditor\";\r\nimport {ChannelConfigInterface} from \"./BotChannelConfig\";\r\nimport {BotCodeEditorProps} from \"./BotCodeEditor\";\r\nimport {BotAppSettings} from \"./BotAppSettings\";\r\nimport {ControllerBase} from \"../Controllers/ControllerBase\";\r\nimport {Route} from \"./BotPageHeader\";\r\nimport { BotTypes, BotUtilsV2 } from '../../Utils/BotUtils';\r\nimport { Environment } from \"../../../../Intercom.ReactUI/Utils/Environment\";\r\nimport { IAnnouncements } from \"../../DevPortalAppBase\";\r\nimport { clientAppSettings } from \"../../Models/ClientAppSettings\";\r\nimport { getAzureIbizaBotUrl } from \"../../Utils/Links\";\r\n\r\nexport interface IconFile extends Blob {\r\n preview: string;\r\n}\r\n\r\nexport interface SubscriptionsKeys {\r\n primary: string;\r\n}\r\n\r\nexport function getDeploymentState(bot: Rest._BotService = {}): string {\r\n const deployment = bot.ProvisionInfo ? bot.ProvisionInfo.Deployment : {};\r\n return deployment && deployment.properties ? deployment.properties.provisioningState : null;\r\n}\r\n\r\nexport function isDeploymentFinished(bot: Rest._BotService): boolean {\r\n const state = getDeploymentState(bot);\r\n const deployment = bot.ProvisionInfo ? bot.ProvisionInfo.Deployment : {};\r\n const pending = !bot.Endpoint && deployment && deployment.properties ? deployment.properties.intercom_pending_function_url : false;\r\n const finished = !pending && (state === \"Succeeded\" || state === \"Failed\");\r\n return finished;\r\n}\r\n\r\nexport function isStillDeploying(bot: Rest._BotService = {}): boolean {\r\n return bot.ProvisionInfo && !isDeploymentFinished(bot);\r\n}\r\n\r\n// Must be kept in sync with resourceStrings.v4.botPageTabs\r\nexport enum BotTabs {\r\n Build,\r\n Analytics,\r\n Settings,\r\n Channels,\r\n Develop // for ABSv1 bot\r\n}\r\n\r\nexport interface BotPageProps extends React.Props {\r\n controller: ControllerBase;\r\n botSettingsTabProps: BotSettingsTabProps;\r\n botEditorProps: BotEditorProps;\r\n botCodeEditorProps: BotCodeEditorProps;\r\n botCodeSetupProps: BotCodeSetupProps;\r\n tabClickHandler: (tab: BotTabs) => void;\r\n testClickHandler: () => void;\r\n importBotHandler: (file: any) => JQueryPromise;\r\n channelConfigClickHandler: (toChannel: string) => void;\r\n channelConfigInterface: ChannelConfigInterface;\r\n initialBot: Rest.BotService;\r\n initialSelectedTab?: number;\r\n initialSubkeys: SubscriptionsKeys;\r\n initialShowWebChat: boolean;\r\n initialChannel?: string;\r\n initialAuthoringDirty?: boolean;\r\n initialAuthoringError?: boolean;\r\n onSetBotAppSettings(botAppSettings: BotAppSettings);\r\n scmType?: () => string;\r\n routes(botType: BotTypes): Route[];\r\n azureToken: string;\r\n canWriteToBot: boolean;\r\n}\r\n\r\nexport interface BotPageState {\r\n bot?: Rest.BotService;\r\n subscriptionKeys?: SubscriptionsKeys;\r\n selectedTab?: number;\r\n showWebChat?: boolean;\r\n showWebChatPending?: boolean;\r\n authoringDirty?: boolean;\r\n authoringError?: boolean;\r\n reviewStatusDetail?: Rest.ReviewStatusDetail;\r\n channel?: string;\r\n announcements?: IAnnouncements;\r\n}\r\n\r\nexport class BotPage extends React.Component {\r\n constructor(props?: BotPageProps, context?: any) {\r\n super(props, context);\r\n this.state = {\r\n bot: props.initialBot,\r\n subscriptionKeys: props.initialSubkeys,\r\n selectedTab: props.initialSelectedTab,\r\n showWebChat: props.initialShowWebChat,\r\n channel: props.initialChannel || \"\",\r\n authoringDirty: props.initialAuthoringDirty,\r\n authoringError: props.initialAuthoringError\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n $('#page-content').scrollTop(0);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const renderWebChat = !Environment.isInBotFrameworkAzureExtension;\r\n\r\n const isAdmin = this.props.controller.isAdminOrSupport();\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/BotPage.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as Rest from '../Generated/ReactUI';\r\n\r\nexport interface BotImageProps extends React.Props {\r\n bot: Rest.IBot;\r\n defaultIconUrl: string;\r\n className?: string;\r\n transparentBackground?: boolean;\r\n}\r\n\r\nexport interface BotImageState {\r\n}\r\n\r\nexport class BotImageControl extends React.Component {\r\n constructor(props : BotImageProps) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n private static hashString(s: string): number {\r\n if (!s) {\r\n return 0;\r\n }\r\n var hash = 0;\r\n for (var i = 0; i < s.length; i++) {\r\n var chr = s.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + chr;\r\n hash |= 0; // ensure hash is integer;\r\n hash = Math.abs(hash);\r\n }\r\n return hash;\r\n }\r\n\r\n private isDefaultIcon() : boolean {\r\n const bot = this.props.bot;\r\n if (!bot || !bot.IconUrl) {\r\n return true;\r\n }\r\n const defaultIconUrl = this.props.defaultIconUrl;\r\n const prefix = defaultIconUrl.substr(0, defaultIconUrl.lastIndexOf('.'));\r\n return bot.IconUrl.indexOf(prefix) === 0;\r\n }\r\n\r\n private mapColorClassName(): string {\r\n var colorClass = \"two-tone-11\";\r\n const bot = this.props.bot;\r\n\r\n if (this.isDefaultIcon()) {\r\n const paletteIndex = BotImageControl.paletteIndex(bot);\r\n colorClass = `two-tone-${paletteIndex}`;\r\n } \r\n return colorClass;\r\n }\r\n\r\n private static skipConflictingColorClasses(classIndex: number): number{ \r\n if(classIndex === 6 || classIndex === 7 || classIndex === 8){\r\n return ((classIndex + 3) % 10) + 1;\r\n }\r\n return classIndex; \r\n }\r\n\r\n private static paletteIndex(bot: Rest.IBot): number {\r\n const paletteSize = 10;\r\n const classNum = (BotImageControl.hashString(bot.DefaultIconColorHash || bot.Id) % paletteSize) + 1;\r\n return BotImageControl.skipConflictingColorClasses(classNum);\r\n }\r\n\r\n public static hashDefaultIconFileName(bot: Rest.IBot): string {\r\n return `bot-framework-default-${BotImageControl.paletteIndex(bot)}.png`;\r\n }\r\n\r\n public render(): JSX.Element {\r\n var imageClass = `${this.props.className || ''} ${ this.props.transparentBackground ? '' :this.mapColorClassName()}`;\r\n\r\n return (\r\n
\r\n \"bot\r\n
\r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/BotImageControl.tsx","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-runtime/~/core-js/library/modules/$.core.js\n// module id = 83\n// module chunks = 0","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-runtime/~/core-js/library/modules/$.js\n// module id = 84\n// module chunks = 0","export default function(x) {\n return x === null ? NaN : +x;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/src/number.js\n// module id = 85\n// module chunks = 0","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/math.js\n// module id = 87\n// module chunks = 0","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/offset/none.js\n// module id = 88\n// module chunks = 0","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/order/none.js\n// module id = 89\n// module chunks = 0","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseEach.js\n// module id = 90\n// module chunks = 0","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseUnary.js\n// module id = 91\n// module chunks = 0","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given 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,\n * 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 ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isIterateeCall.js\n// module id = 92\n// module chunks = 0","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_toKey.js\n// module id = 93\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/object-assign/index.js\n// module id = 94\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-transition-group/~/prop-types/index.js\n// module id = 95\n// module chunks = 0","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Render a group of error bar\n*/\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Layer from '../container/Layer';\nimport { getPresentationAttributes } from '../util/ReactUtils';\n\nvar ErrorBar =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ErrorBar, _Component);\n\n function ErrorBar() {\n _classCallCheck(this, ErrorBar);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ErrorBar).apply(this, arguments));\n }\n\n _createClass(ErrorBar, [{\n key: \"renderErrorBars\",\n value: function renderErrorBars() {\n var _this$props = this.props,\n offset = _this$props.offset,\n layout = _this$props.layout,\n width = _this$props.width,\n dataKey = _this$props.dataKey,\n data = _this$props.data,\n dataPointFormatter = _this$props.dataPointFormatter,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis,\n others = _objectWithoutProperties(_this$props, [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"]);\n\n var props = getPresentationAttributes(others);\n return data.map(function (entry, i) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n\n if (!errorVal) {\n return null;\n }\n\n var xMid, yMid, xMin, yMin, xMax, yMax, scale, coordsTop, coordsMid, coordsBot, lowBound, highBound;\n\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n\n if (layout === 'vertical') {\n scale = xAxis.scale;\n xMid = value;\n yMid = y + offset;\n xMin = scale(xMid - lowBound);\n yMin = yMid + width;\n xMax = scale(xMid + highBound);\n yMax = yMid - width;\n coordsTop = {\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n };\n coordsMid = {\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n };\n coordsBot = {\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n };\n } else if (layout === 'horizontal') {\n scale = yAxis.scale;\n xMid = x + offset;\n yMid = value;\n xMin = xMid - width;\n xMax = xMid + width;\n yMin = scale(yMid - lowBound);\n yMax = scale(yMid + highBound);\n coordsTop = {\n x1: xMin,\n y1: yMax,\n x2: xMax,\n y2: yMax\n };\n coordsMid = {\n x1: xMid,\n y1: yMin,\n x2: xMid,\n y2: yMax\n };\n coordsBot = {\n x1: xMin,\n y1: yMin,\n x2: xMax,\n y2: yMin\n };\n }\n\n return React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(i)\n }, props), React.createElement(\"line\", coordsTop), React.createElement(\"line\", coordsMid), React.createElement(\"line\", coordsBot));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n return React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, this.renderErrorBars());\n }\n }]);\n\n return ErrorBar;\n}(Component);\n\nErrorBar.propTypes = {\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n data: PropTypes.array,\n xAxis: PropTypes.object,\n yAxis: PropTypes.object,\n layout: PropTypes.string,\n dataPointFormatter: PropTypes.func,\n stroke: PropTypes.string,\n strokeWidth: PropTypes.number,\n width: PropTypes.number,\n offset: PropTypes.number\n};\nErrorBar.defaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n};\nexport default ErrorBar;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/cartesian/ErrorBar.js\n// module id = 96\n// module chunks = 0","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { getPresentationAttributes } from '../util/ReactUtils';\nvar propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number\n }),\n className: PropTypes.string,\n style: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nfunction Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n others = _objectWithoutProperties(props, [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\"]);\n\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = classNames('recharts-surface', className);\n var attrs = getPresentationAttributes(others);\n return React.createElement(\"svg\", _extends({}, attrs, {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height),\n version: \"1.1\"\n }), children);\n}\n\nSurface.propTypes = propTypes;\nexport default Surface;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/container/Surface.js\n// module id = 97\n// module chunks = 0","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_core.js\n// module id = 98\n// module chunks = 0","import * as Rest from \"../../Generated/RestClient\";\r\nimport { FlagUtility } from \"./FlagUtility\";\r\nimport { clientAppSettings } from \"../../Models/ClientAppSettings\";\r\n\r\n/**\r\n * Utility to check for supported features.\r\n */\r\nexport class SupportedFeatureUtility {\r\n public static isSupported(feature: Rest.DevPortalFeatureFlags): boolean {\r\n return FlagUtility.hasFlag(clientAppSettings.enabledFeatures, feature);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Utility/SupportedFeatureUtility.ts","export * from \"./lazy\";\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Decorators/index.ts","/// \r\n\r\nimport * as KeyCodes from \"./KeyCodes\";\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { DialogStatus } from \"../v4/Views/status/index\";\r\n\r\n/** Base class for modal dialogs. */\r\nexport class DialogBase {\r\n protected $el: JQuery;\r\n private $mask: JQuery;\r\n private dfd = $.Deferred();\r\n private $okButton: JQuery;\r\n private $cancelButton: JQuery;\r\n private $dialogCloseButton: JQuery;\r\n private $statusPane: JQuery;\r\n private status: DialogStatus;\r\n private lastParentFocus: React.ReactInstance\r\n\r\n constructor() {\r\n this.$mask = $('
').appendTo($(document.body));\r\n this.$statusPane = $('
').appendTo($(this.$mask));\r\n this.$el = $('
').appendTo(this.$mask);\r\n }\r\n\r\n protected render(): void {\r\n }\r\n\r\n protected init(): void {\r\n this.$okButton = this.$el.find(\".ok-button\");\r\n this.$cancelButton = this.$el.find(\".cancel-button\");\r\n this.$dialogCloseButton = this.$el.find(\".dialog-close-button\");\r\n this.centerDialog();\r\n this.handleEvents();\r\n this.$okButton.focus();\r\n }\r\n\r\n protected handleEvents(): void {\r\n this.$okButton.click(() => this.onOK());\r\n this.$cancelButton.click(() => this.onCancel());\r\n this.$el.keydown(ev => this.onKeyDown(ev));\r\n }\r\n\r\n protected onKeyDown(ev: JQueryKeyEventObject): void {\r\n switch (ev.which) {\r\n case KeyCodes.KeyCodes.Enter:\r\n if (this.onEnterKeyPressed()) {\r\n ev.preventDefault();\r\n }\r\n break;\r\n case KeyCodes.KeyCodes.Escape:\r\n if (this.$cancelButton.is(\":visible\") || this.$dialogCloseButton.is(\":visible\")) {\r\n this.onEscapeKeyPressed();\r\n }\r\n ev.preventDefault();\r\n break;\r\n }\r\n }\r\n\r\n /** Handles enter key. May be Overridden to change default behavior. */\r\n protected onEnterKeyPressed(): boolean {\r\n if (this.$okButton.length > 0) {\r\n this.onOK();\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n /** Handles escape key. May be Overridden to change default behavior. */\r\n protected onEscapeKeyPressed(): void {\r\n this.onCancel();\r\n }\r\n\r\n private centerDialog(): void {\r\n var t = ($(window).height() - this.$el.outerHeight()) / 3;\r\n var l = ($(window).width() - this.$el.outerWidth()) / 2;\r\n t = Math.max(0, t);\r\n l = Math.max(0, l);\r\n this.$el.css({ top: t + 'px', left: l + 'px' });\r\n }\r\n\r\n public showDialog(_lastParentFocus?: React.ReactInstance): JQueryPromise {\r\n this.lastParentFocus = _lastParentFocus;\r\n this.render();\r\n return this.dfd.promise();\r\n }\r\n\r\n public closeDialog(): void {\r\n this.$el.remove();\r\n this.$statusPane.remove();\r\n this.$mask.remove();\r\n this.returnFocusToParent();\r\n }\r\n\r\n private returnFocusToParent(): void {\r\n if (this.lastParentFocus != null){ \r\n const lastParentFocusElement = ReactDOM.findDOMNode(this.lastParentFocus) as HTMLElement;\r\n lastParentFocusElement && lastParentFocusElement.focus();\r\n }\r\n }\r\n\r\n /** Hides the dialogue box and shows a progress spinner. */\r\n public showStatus(statusMessage?: string): void {\r\n if (!this.$el.hasClass(\"dialog-hidden\")) {\r\n this.$el.addClass(\"dialog-hidden\");\r\n }\r\n const status = React.createElement(DialogStatus, { statusMessage: statusMessage });\r\n this.status = ReactDOM.render(status, this.$statusPane[0]);\r\n this.status.setState({ showing: true });\r\n }\r\n\r\n /** Hides the progress spinner and status message, and shows the dialogue box */\r\n public hideStatus(): void {\r\n if (this.status) {\r\n this.status.setState({ showing: false });\r\n }\r\n\r\n if (this.$el.hasClass(\"dialog-hidden\")) {\r\n this.$el.removeClass(\"dialog-hidden\");\r\n }\r\n }\r\n\r\n protected onCancel(): void {\r\n this.closeDialog();\r\n this.dfd.reject();\r\n }\r\n\r\n /** Handles OK button. Override this method and get user input, then call this base class method. */\r\n protected onOK(): void {\r\n this.closeDialog();\r\n this.dfd.resolve();\r\n }\r\n\r\n protected resolve(...values: any[]): JQueryDeferred {\r\n return this.dfd.resolve.apply(this.dfd, values);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Dialogs/DialogBase.ts","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {DialogBase} from \"./DialogBase\";\r\n\r\nexport class GenericDialog

extends DialogBase {\r\n private options: GenericDialogOptions;\r\n protected panel: React.Component;\r\n\r\n constructor(private componentClass: React.ComponentClass

, private props: P, options?: GenericDialogOptions) {\r\n super();\r\n this.options = $.extend({}, DefaultGenericDialogOptions, options || {});\r\n if (this.options.dialogClass) {\r\n this.$el.addClass(this.options.dialogClass);\r\n }\r\n }\r\n\r\n protected render(): void {\r\n let element = React.createElement(this.componentClass, this.props);\r\n this.panel = ReactDOM.render(element, this.$el[0], () => {\r\n this.init();\r\n });\r\n }\r\n\r\n protected init(): void {\r\n // Call base class method to complete initialization.\r\n super.init();\r\n }\r\n\r\n protected handleEvents(): void {\r\n super.handleEvents();\r\n this.$el.on('click', '.dialog-close-button', () => {\r\n this.onCancel();\r\n });\r\n }\r\n}\r\n\r\nexport interface GenericDialogOptions {\r\n dialogClass?: string;\r\n}\r\n\r\nvar DefaultGenericDialogOptions: GenericDialogOptions = {\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Dialogs/GenericDialog.ts","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {DialogBase} from \"./DialogBase\";\r\nimport * as Views from \"../Views/ProgressPanel\";\r\nimport { Resources } from \"../Resources/Intercom.Resources.DevPortal\";\r\n\r\nexport class ProgressDialog extends DialogBase {\r\n private options: ProgressDialogOptions;\r\n\r\n constructor(options: ProgressDialogOptions) {\r\n super();\r\n this.options = $.extend({}, DefaultProgressDialogOptions, options);\r\n }\r\n\r\n protected render(): void {\r\n var props: Views.ProgressPanelProps = {\r\n message: this.options.message\r\n };\r\n var element = React.createElement(Views.ProgressPanel, props);\r\n ReactDOM.render(element, this.$el[0], () => {\r\n this.init();\r\n });\r\n }\r\n\r\n protected init(): void {\r\n // Call base class method to complete initialization.\r\n super.init();\r\n }\r\n\r\n /** Static method for displaying a simple message. */\r\n public static show(message: string): ProgressDialog {\r\n var dialog = new ProgressDialog({ message: message });\r\n dialog.showDialog();\r\n return dialog;\r\n }\r\n}\r\n\r\nexport interface ProgressDialogOptions {\r\n message?: string;\r\n}\r\n\r\nvar DefaultProgressDialogOptions: ProgressDialogOptions = {\r\n message: Resources.dialogPleaseWait\r\n};\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Dialogs/ProgressDialog.ts","/**\r\n * Define how we want to poll a rest api\r\n *\r\n * all number is milliseconds, except for maxPendingPollRequests\r\n */\r\nexport interface PollingModel {\r\n defaultInterval: number,\r\n // the max number of overlapping poll requests allowed\r\n maxPendingPollRequests: number\r\n}\r\n\r\nconst defaultPollingModel: PollingModel = {\r\n defaultInterval: 3000,\r\n maxPendingPollRequests: 1\r\n};\r\n\r\nexport class Poller {\r\n private model: PollingModel;\r\n private pending: number[];\r\n private currentInterval: number;\r\n private stopped: boolean;\r\n private subscribers: Function[] = [];\r\n\r\n constructor(model: PollingModel, private poll: () => JQueryPromise, private onResult: (data: T) => void) {\r\n this.model = _.extend({}, defaultPollingModel, model || undefined);\r\n this.pending = [];\r\n this.currentInterval = this.model.defaultInterval;\r\n this.stopped = true;\r\n }\r\n\r\n /**\r\n * TODO: adjust the current interval based on previous result\r\n */\r\n private getCurrentInterval(): number {\r\n return this.currentInterval;\r\n }\r\n\r\n private invokePoll(timeout: number) {\r\n this.poll().done((data: T) => {\r\n this.onResult(data);\r\n // clear the timeout\r\n this.pending = _.filter(this.pending, x => x !== timeout);\r\n // schedule for the next poll\r\n if (!this.stopped) {\r\n this.start();\r\n }\r\n });\r\n }\r\n\r\n public start() {\r\n this.stopped = false;\r\n if (this.pending.length < this.model.maxPendingPollRequests) {\r\n let cur = this;\r\n // NOTE: the following call to setTimeout must use \r\n // javascript function and var syntax to get the timeout\r\n // variable captured correctly, DO NOT change it to 'let' and lambda\r\n // expression.\r\n var timeout = setTimeout(function() {\r\n cur.invokePoll(timeout);\r\n }, this.getCurrentInterval()); \r\n this.pending.push(timeout);\r\n }\r\n }\r\n\r\n public stop() {\r\n this.stopped = true;\r\n _.each(this.pending, clearTimeout);\r\n this.pending = [];\r\n this.subscribers.forEach(fn => fn());\r\n }\r\n\r\n public isStopped(): boolean {\r\n return this.stopped;\r\n }\r\n\r\n public onStop(handler: Function) {\r\n this.subscribers.push(handler);\r\n }\r\n}\r\n\r\n\r\n/**\r\n * make function that return promise retriable on a schedule\r\n * \r\n * TODO: rewrite as decorator\r\n * @param inner inner function that try to resolve a promise\r\n * @param interval wait interval between retry\r\n * @param maxDuration maximum duration before rejecting\r\n */\r\nexport function pollerPromise(inner: () => JQueryPromise, interval: number, maxDuration: number): JQueryPromise {\r\n const deferred= $.Deferred();\r\n const start = new Date().getTime();\r\n const action = function() {\r\n inner().then(x => deferred.resolve(x), (e) => {\r\n const now = new Date().getTime();\r\n if (maxDuration > 0 && now - start >= maxDuration) {\r\n deferred.reject(e);\r\n } else {\r\n setTimeout(action, interval);\r\n }\r\n });\r\n };\r\n action();\r\n return deferred;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/Models/PollingModel.ts","// Simple global object used to store the culture info (name). This is used by the resource classes.\r\n// Todo: To share this across projects move this into an npm package (and resjson-to-typescript.* into a package that requires the \"Culture\" package).\r\nexport class Culture {\r\n private static _lang: string;\r\n private static _cutlureCode: string;\r\n\r\n // Set culture name: ie \"en\".\r\n static set Lang(lang: string) {\r\n this._lang = lang;\r\n }\r\n\r\n // Get culture name: ie \"en\".\r\n static get Lang(): string {\r\n return this._lang;\r\n }\r\n\r\n // Set culture name: ie \"en\".\r\n static set CultureCode(cultureCode: string) {\r\n this._cutlureCode = cultureCode;\r\n }\r\n\r\n // Get culture name: ie \"en\".\r\n static get CultureCode(): string {\r\n return this._cutlureCode;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Resources/Culture.ts","// Minimally this needs to support the list Azure supports - https://github.com/Azure/portaldocs/blob/master/portal-sdk/generated/portalfx-localization.md#understanding-localization-list-of-accepted-languages\r\n// These need to be lower cased to support lookup below.\r\nconst supportedLanguages = [\"en\", \"de\", \"es\", \"fr\", \"it\", \"id\",\"ja\", \"ko\", \"ru\", \"cs\", \"nl\", \"hu\", \"pl\", \"sv\", \"tr\", \"pt-br\", \"pt-pt\", \"zh-hans\", \"zh-hant\"];\r\n\r\nexport class CultureUtility {\r\n private static _rawLocale: string;\r\n private static _displayLanguage: string;\r\n private static _cultureCode: string;\r\n\r\n /**\r\n * The raw locale typically supplied by Azure on the query string (\"l\" parameter).\r\n */\r\n public static get rawLocale(): string | undefined {\r\n return this._rawLocale;\r\n }\r\n\r\n /**\r\n * One of the supported display languages or undefined. This will be set when setLocale is called.\r\n */\r\n public static get displayLanguage(): string | undefined {\r\n return this._displayLanguage;\r\n }\r\n\r\n public static get cultureCode(): string | undefined {\r\n return this._cultureCode;\r\n }\r\n\r\n public static setLocale(rawLocale: string) {\r\n this._rawLocale = rawLocale;\r\n this._displayLanguage = this.toSupportedDisplayLanguage(this._rawLocale);\r\n this._cultureCode = this.toCultureCode(this._rawLocale);\r\n }\r\n\r\n /**\r\n * Convert lang code to a supported language - or roughly language... one of the language codes supported by Azure.\r\n * @param langCode - Valid Locale ([.])\r\n * @returns - Display language if we can determine it from langCode otherwise undefined.\r\n */\r\n private static toSupportedDisplayLanguage(langCode: string): string | undefined {\r\n if (!langCode) {\r\n return undefined;\r\n }\r\n\r\n let displayLanguage: string;\r\n let parts = langCode.toLowerCase().split(\".\");\r\n if (parts.length > 2) {\r\n return undefined;\r\n }\r\n displayLanguage = parts[0];\r\n\r\n // Check for direct match before starting to guess.\r\n if (supportedLanguages.indexOf(displayLanguage) !== -1) {\r\n return displayLanguage;\r\n }\r\n\r\n // Perhaps it is one of our two letter languages with a -(other) - ie en-US, en-CA, etc... \r\n parts = displayLanguage.split(\"-\");\r\n if (parts.length === 2 && parts[0].length == 2 && supportedLanguages.indexOf(parts[0]) !== -1) {\r\n return parts[0];\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Converts the raw locale to a CultureCode (e.g. it-it, en-us, ja-jp)\r\n * @param rawLocale - Valid Azure effective Locale ([.])\r\n * @returns - CultureCode if it's available in the rawLocale otherwise undefined.\r\n */\r\n private static toCultureCode(rawLocale: string): string | undefined {\r\n if (!rawLocale) {\r\n return undefined;\r\n }\r\n\r\n let cultureCode: string;\r\n let parts = rawLocale.toLowerCase().split(\".\");\r\n\r\n // culturecode can be found in the rawLocale in these cases\r\n // lang.culturecode\r\n // culturecode\r\n if (parts.length == 1 || parts.length == 2) {\r\n cultureCode = parts[parts.length - 1];\r\n\r\n if (cultureCode.indexOf(\"-\") !== -1) {\r\n return cultureCode;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Resources/CultureUtility.ts","export enum Method {\r\n GET,\r\n PUT,\r\n DELETE,\r\n POST,\r\n PATCH,\r\n HEAD\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/Services/HttpMethods.ts","import * as Rest from \"../../Generated/RestClient\";\r\nimport {KuduClient} from \"../../Services/KuduApi\";\r\nimport {parseUrl} from \"../../../../Intercom.ReactUI/Utils/Url\";\r\nimport browserCaps from \"../../../../Intercom.ReactUI/Utils/browserCaps\";\r\n\r\n// set to true to force we use server proxy to download zip file\r\n// this should only be set to true when debug, as it forces us\r\n// to add roundtrip between the browser and kudu endpoint\r\nconst debugZipProxy = false;\r\n\r\nexport function downloadBotSource(kuduClient: JQueryPromise) : JQueryPromise {\r\n let client: KuduClient = null;\r\n return kuduClient.then(kc => {\r\n // check if we have a prepareSrc script\r\n client = kc;\r\n let uri = parseUrl(client.scmUri.format());\r\n uri.path = '/api/vfs/site/wwwroot/PostDeployScripts/prepareSrc.cmd';\r\n return client.get(uri.format())\r\n })\r\n .then(cmd => {\r\n // found the script call it\r\n return client.command(`PostDeployScripts\\\\prepareSrc.cmd ${client.publishPassword}`, 'site\\\\wwwroot')\r\n })\r\n .then((f) => {\r\n // script finished, download the zip directly\r\n return client.download('site/bot-src.zip');\r\n })\r\n .then(null, () => {\r\n // something went wrong, try zip the the wwwroot folder\r\n if (client) {\r\n return client.zip('site/wwwroot/');\r\n } else {\r\n return $.Deferred().reject('could not access azure resource');\r\n }\r\n });\r\n}\r\n\r\nexport function needZipProxy() : boolean {\r\n return (debugZipProxy || !browserCaps('a', 'download') && !navigator.msSaveBlob);\r\n}\r\n\r\nexport function getBotZipBlobUrl(botId: string, url: string): string {\r\n let result: string = null;\r\n result = url;\r\n if (!result && botId && needZipProxy()) {\r\n result = `/api/botApp/${botId}/zip/${botId}.zip`;\r\n }\r\n return result;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Services/downloadBotSrc.ts","function openTab(url: string) {\r\n let tab = window.open(url, '_blank');\r\n if (tab) {\r\n tab.focus();\r\n }\r\n}\r\n\r\nexport default openTab;\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Services/openTab.ts","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport {BladeType} from \"../Services/azurePortalLinks\";\r\nimport {DownloadLinkControl, ProgressBarControl, ProgressRingControl, TooltipParagrah} from \"../../../../Intercom.ReactUI/Views/index\";\r\nimport {defaultCIState} from \"./BotAppSettings\";\r\nimport {KuduClient, ArmClient, GithubApi, GithubUser, VsoApi, VsoAccount} from \"../../Services/index\";\r\nimport setupRemoteRepo from \"../Services/setupRemoteRepo\";\r\nimport openTab from \"../Services/openTab\";\r\nimport {parseUrl} from '../../../../Intercom.ReactUI/Utils/Url';\r\nimport {AbsCodeCIEnablePanel, AbsCodeCIEnbaleProps, AbsCodeCIEnbaleState} from \"./AbsCodeCIEnablePanel\";\r\nimport {InputDialogBase} from \"../../Dialogs/InputDialogBase\";\r\nimport {MessageBox} from \"../../Dialogs/MessageBox\";\r\n\r\nconst ScmTypeToIconNames = {\r\n bitbucketgit: 'bitbucket',\r\n bitbuckethg: 'bitbucket',\r\n dropbox: 'dropbox',\r\n externalgit: 'external_repo',\r\n externalhg: 'external_repo',\r\n github: 'github',\r\n localgit: 'local_git',\r\n onedrive: 'one_drive',\r\n tfs: 'visual_studio',\r\n vso: 'visual_studio',\r\n vstsrm: 'visual_studio'\r\n}\r\n\r\nexport function renderIconForScmType(scmType: string): JSX.Element {\r\n const iconName = ScmTypeToIconNames[scmType.toLowerCase()];\r\n if (iconName) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n return null;\r\n}\r\n\r\nexport type RepoProvider = 'github' | 'vso' | 'other';\r\n\r\nexport interface BotAppCIProps extends React.Props {\r\n openBlade(blade: BladeType): void;\r\n downloadZip(): JQueryPromise;\r\n onZipDownloaded(blobUrl: string): void;\r\n toggleTip(tip: JSX.Element, target: HTMLElement);\r\n bot: Rest.BotService;\r\n scmType: () => JQueryPromise;\r\n bladeUrl(blade: BladeType): JQueryPromise;\r\n botDeploymentLogFound: boolean;\r\n pendingDownload: boolean;\r\n blobUrl: string;\r\n kuduClient: () => JQueryPromise;\r\n armClient: () => JQueryPromise;\r\n botRsrcId: JQueryPromise;\r\n hideTitle?: boolean;\r\n expandoOpenedAlways?: boolean;\r\n showRepoUrl?: boolean;\r\n onRepoSetup?: () => void;\r\n}\r\n\r\nexport interface BotAppCIState {\r\n repoProvider: RepoProvider;\r\n repoUserName: string,\r\n repoToken: string,\r\n repoUrl?: string,\r\n hostUrl?: string,\r\n zipBlobUrl?: string,\r\n pendingEnabling?: boolean,\r\n srcChecked?: boolean;\r\n}\r\n\r\nexport function toggleContinuousIntegrationSettings($config : JQuery) {\r\n $config.toggleClass('closed open');\r\n $config.find('span.icon-font').text($config.hasClass('closed') ? '\\uE019' : '\\uE018');\r\n if ($config.hasClass('open')) {\r\n $config[0].scrollIntoView();\r\n }\r\n}\r\n\r\nexport class BotAppContinuousIntegration extends React.Component {\r\n constructor(props: BotAppCIProps) {\r\n super(props);\r\n this.state = _.extend({}, defaultCIState);\r\n }\r\n\r\n private _canSetupRepos = false;\r\n private fetchCanSetupRepos(): JQueryPromise {\r\n return this.props.kuduClient()\r\n .then(kc => {\r\n return kc.dir('site/wwwroot/PostDeployScripts/');\r\n })\r\n .then((files: Rest.VfsNodeInfo[]) => {\r\n const setupScripts = files.filter(file => file.name == 'setupVsoRemoteRepo.cmd' || file.name == 'setupGithubRemoteRepo.cmd');\r\n const found = setupScripts.length == 2;\r\n if (found !== this._canSetupRepos) {\r\n this._canSetupRepos = found;\r\n this.forceUpdate();\r\n }\r\n return $.Deferred().resolve(found);\r\n });\r\n }\r\n\r\n private get hasRepoInfo() : boolean {\r\n return this.hasRepoInfoForVso || this.hasRepoInfoForGithub;\r\n }\r\n\r\n private get hasRepoInfoForVso(): boolean {\r\n return this.state.repoProvider === 'vso' && !!this.state.hostUrl && !!this.state.repoToken;\r\n }\r\n\r\n private get hasRepoInfoForGithub() : boolean {\r\n return this.state.repoProvider === 'github' && !!this.state.repoToken;\r\n }\r\n\r\n private scmType: string = null;\r\n public resolveScmType() {\r\n this.props.scmType().then(x => {\r\n this.scmType = x;\r\n this.forceUpdate();\r\n });\r\n }\r\n\r\n private configBladeUrl: string = null;\r\n private resolveConfigBladeUrl() {\r\n this.props.bladeUrl(BladeType.continuousIntegration).then(x => {\r\n this.configBladeUrl = x;\r\n this.forceUpdate();\r\n })\r\n }\r\n\r\n private renderDownloadLink(): JSX.Element {\r\n let item =

  • Waiting for the bot to finish deploying before download the source code.
  • ;\r\n if (this.props.botDeploymentLogFound) {\r\n const fileName = `${this.props.bot.Id}.zip`;\r\n let link = this.props.downloadZip() }\r\n setBlobUrl={blobUrl => {\r\n this.props.onZipDownloaded(blobUrl);\r\n this.setState({zipBlobUrl: blobUrl});\r\n }}\r\n blobUrl={this.props.blobUrl || this.state.zipBlobUrl}\r\n pendingDownload={this.props.pendingDownload ? 'Generating zip file' : null}/>\r\n item =
  • download your source code:

    {link}

  • ;\r\n }\r\n return item;\r\n }\r\n\r\n private changeField(fld, val: string) {\r\n let obj : Pick = {} as any; \r\n obj[fld] = val;\r\n if (fld === 'repoProvider') {\r\n obj.repoToken = null;\r\n obj.repoUserName = null;\r\n }\r\n this.setState(obj);\r\n }\r\n\r\n private get githubClient() : JQueryPromise {\r\n if (this.state.repoProvider === 'github' && this.state.repoToken.length > 0) {\r\n return $.Deferred().resolve(new GithubApi(this.state.repoToken));\r\n }\r\n return $.Deferred().reject();\r\n }\r\n\r\n private get vsoClient(): JQueryPromise {\r\n /*\r\n // vso profile API requires OAuth2.0 auth \r\n if (this.state.repoProvider === 'vso' && this.state.repoToken.length > 0) {\r\n return $.Deferred().resolve(new VsoApi(this.state.repoToken));\r\n }\r\n */\r\n return $.Deferred().reject();\r\n }\r\n\r\n private get vsoSiteRootUrl() : string {\r\n if (this.state.hostUrl) {\r\n const uri = parseUrl(this.state.hostUrl);\r\n return uri ? `https://${uri.hostname}` : null;\r\n }\r\n return null;\r\n }\r\n\r\n private setupRepos() {\r\n let success = false;\r\n let dialog = new InputDialogBase(AbsCodeCIEnablePanel, {},\r\n { dialogClass: 'status-panel-dialog' });\r\n dialog.showDialog()\r\n .then((state: AbsCodeCIEnbaleState) => {\r\n this.setState({pendingEnabling: true});\r\n return $.when(this.props.kuduClient(), this.props.armClient(), this.props.botRsrcId);\r\n })\r\n .then((kc, ac, rsrcId) => {\r\n return setupRemoteRepo(kc, ac, rsrcId, this.state);\r\n })\r\n .then(state => {\r\n this.setState(state);\r\n success = true;\r\n })\r\n .fail((xhr: JQueryXHR, e: any, msg: string) => {\r\n let errorMessage: string = null;\r\n\r\n if (xhr.responseJSON) {\r\n let err = xhr.responseJSON;\r\n if (err.Message) {\r\n errorMessage = err.Message;\r\n }\r\n }\r\n if (msg && !errorMessage) {\r\n errorMessage = msg;\r\n }\r\n errorMessage = errorMessage || xhr.statusText || `Status code: ${xhr.status}`;\r\n // show error message, trim to the first line\r\n errorMessage = errorMessage.split(/[\\n\\r]/g)[0];\r\n MessageBox.show(errorMessage);\r\n })\r\n .always(() => { \r\n this.setState({pendingEnabling: false})\r\n if (success) {\r\n if (this.props.onRepoSetup) {\r\n this.props.onRepoSetup();\r\n } \r\n }\r\n });\r\n }\r\n\r\n private fetchRepo() {\r\n $.when(this.props.armClient(), this.props.botRsrcId)\r\n .then((ac: ArmClient, rsrcId: string) => {\r\n return ac.getSourceControl(rsrcId);\r\n })\r\n .then(sc => {\r\n if (sc && sc.properties && sc.properties.repoUrl)\r\n {\r\n this.setState({repoUrl: sc.properties.repoUrl});\r\n }\r\n });\r\n }\r\n\r\n private renderVsoSetup() : JSX.Element[] {\r\n return [\r\n this.changeField('hostUrl', x.target['value'])}/>,\r\n View Visual Studio Profile,\r\n /* \r\n this.changeField('repoUserName', x.target['value'])}/>,\r\n (this.vsoSiteRootUrl ? Get secondary user account name : null),\r\n */\r\n this.changeField('repoToken', x.target['value'])}/>,\r\n (this.vsoSiteRootUrl ? Generate personal access token : null)\r\n ];\r\n }\r\n\r\n private renderGithubSetup() : JSX.Element[] {\r\n return [\r\n this.changeField('repoUserName', x.target['value'])}/>,\r\n this.changeField('repoToken', x.target['value'])}/>,\r\n Generate personal access token\r\n ];\r\n }\r\n\r\n private renderCustomSetup() : JSX.Element[] {\r\n switch (this.state.repoProvider) {\r\n case 'vso':\r\n return this.renderVsoSetup();\r\n case 'github':\r\n return this.renderGithubSetup();\r\n case 'other':\r\n return [this.renderGenericCISetup()];\r\n }\r\n }\r\n\r\n private renderSetupReposFromBlank() : JSX.Element {\r\n const pending = this.state.pendingEnabling;\r\n return this._canSetupRepos \r\n ? \r\n
    \r\n

    Select a source control provider

    \r\n \r\n {this.renderCustomSetup()}\r\n {this.state.repoProvider != 'other' \r\n ?
    \r\n \r\n
    \r\n : null}\r\n { this.state.repoUrl \r\n ? {this.state.repoUrl}\r\n : null\r\n }\r\n
    \r\n :\r\n
    \r\n {this.renderGenericCISetup()}\r\n
    ;\r\n }\r\n\r\n private get canOpenConfigBlade() : boolean {\r\n return (this.state.srcChecked || this.scmType !== 'None') && (this.configBladeUrl !== null || !this.props.expandoOpenedAlways);\r\n }\r\n\r\n private openCIConfigBlade() {\r\n if (this.configBladeUrl) {\r\n openTab(this.configBladeUrl);\r\n } else {\r\n this.props.openBlade(BladeType.continuousIntegration) \r\n }\r\n }\r\n\r\n private renderSetupRepos() : JSX.Element {\r\n return (\r\n this.scmType === 'None'\r\n ?\r\n this.renderSetupReposFromBlank()\r\n :\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n }\r\n\r\n private renderGenericCISetup() : JSX.Element {\r\n const downloadLink = this.renderDownloadLink();\r\n return (\r\n
      \r\n {downloadLink}\r\n Add the files from the zip file into a folder or repository in your source control service. Learn more}>\r\n
    1. \r\n create a folder/repo for the source files in your preferred service\r\n
    2. \r\n
      \r\n

      \r\n this.setState({srcChecked: x.target['checked']})}/>\r\n \r\n

      \r\n Configure the source control service to publish to Azure when you check in code. Learn more}>\r\n
    3. Configure continuous deployment
    4. \r\n \r\n

      \r\n \r\n

      \r\n
    \r\n );\r\n }\r\n\r\n public componentDidMount() {\r\n if (this.props.expandoOpenedAlways) {\r\n this.fetchCanSetupRepos();\r\n }\r\n this.resolveScmType();\r\n this.resolveConfigBladeUrl();\r\n if (this.props.showRepoUrl) {\r\n this.fetchRepo();\r\n }\r\n }\r\n\r\n public componentDidUpdate(prevProps: BotAppCIProps, prevState: BotAppCIState) {\r\n if (!prevState.repoToken && this.state.repoToken) { \r\n if (this.state.repoProvider === 'github') {\r\n // get the github user login name\r\n this.githubClient\r\n .then(gc => {\r\n return gc.user;\r\n })\r\n .then((user: GithubUser) => {\r\n if (this.state.repoProvider === 'github') {\r\n this.setState({repoUserName: user.login});\r\n }\r\n }); \r\n } else if (this.state.repoProvider === 'vso') {\r\n this.setState({repoUserName: 'name'});\r\n this.vsoClient\r\n .then(vc => {\r\n return vc.accounts;\r\n })\r\n .then(accounts => {\r\n if (this.state.repoProvider === 'vso') {\r\n this.setState({repoUserName: accounts[0].AccountName});\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n const scm = this.scmType;\r\n let bot = this.props.bot;\r\n let scmInfo = scm === 'None' || !scm ? null : renderIconForScmType(scm);\r\n let linkText = scmInfo ? 'Edit' : 'Configure';\r\n return (
    \r\n
    \r\n {!this.props.hideTitle ?

    Continuous deployment

    : null}\r\n {!this.props.hideTitle \r\n ?

    Deploy your bot code from GitHub, Visual Studio Team Services, and more.

    \r\n : null\r\n }\r\n
    \r\n { \r\n let $config = $(e.currentTarget);\r\n this.fetchCanSetupRepos();\r\n if (!this.props.expandoOpenedAlways) {\r\n toggleContinuousIntegrationSettings($config);\r\n };\r\n }, 100, true) }>{linkText} {'\\uE019'}\r\n \r\n {scmInfo}\r\n {this.props.showRepoUrl && this.state.repoUrl ?

    {this.state.repoUrl}

    : null}\r\n
    \r\n {this.renderSetupRepos()}\r\n {this.props.hideTitle ? null :\r\n

    Note: After enabling continuous deployment, you will no longer be able to modify the code in Azure.

    \r\n }\r\n
    \r\n
    );\r\n }\r\n}\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/BotAppContinuousIntegration.tsx","\"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-runtime/helpers/class-call-check.js\n// module id = 111\n// module chunks = 0","\"use strict\";\n\nvar _Object$defineProperty = require(\"babel-runtime/core-js/object/define-property\")[\"default\"];\n\nexports[\"default\"] = (function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n\n _Object$defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n})();\n\nexports.__esModule = true;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/create-class.js\n// module id = 112\n// module chunks = 0","\"use strict\";\n\nvar _Object$getOwnPropertyDescriptor = require(\"babel-runtime/core-js/object/get-own-property-descriptor\")[\"default\"];\n\nexports[\"default\"] = function get(_x, _x2, _x3) {\n var _again = true;\n\n _function: while (_again) {\n var object = _x,\n property = _x2,\n receiver = _x3;\n _again = false;\n if (object === null) object = Function.prototype;\n\n var desc = _Object$getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n _x = parent;\n _x2 = property;\n _x3 = receiver;\n _again = true;\n desc = parent = undefined;\n continue _function;\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n }\n};\n\nexports.__esModule = true;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/get.js\n// module id = 113\n// module chunks = 0","\"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-runtime/helpers/inherits.js\n// module id = 114\n// module chunks = 0","\"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-runtime/helpers/interop-require-default.js\n// module id = 115\n// module chunks = 0","import formatDecimal from \"./formatDecimal\";\n\nexport default function(x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-format/src/exponent.js\n// module id = 116\n// module chunks = 0","export default function(a, b) {\n return a = +a, b -= a, function(t) {\n return a + b * t;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/number.js\n// module id = 117\n// module chunks = 0","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/curve/basis.js\n// module id = 118\n// module chunks = 0","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/curve/cardinal.js\n// module id = 119\n// module chunks = 0","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/curve/linear.js\n// module id = 120\n// module chunks = 0","export default function() {}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/noop.js\n// module id = 121\n// module chunks = 0","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_ListCache.js\n// module id = 122\n// module chunks = 0","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_assocIndexOf.js\n// module id = 123\n// module chunks = 0","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseExtremum.js\n// module id = 124\n// module chunks = 0","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseGet.js\n// module id = 125\n// module chunks = 0","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_castPath.js\n// module id = 126\n// module chunks = 0","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getMapData.js\n// module id = 127\n// module chunks = 0","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getTag.js\n// module id = 128\n// module chunks = 0","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_nativeCreate.js\n// module id = 129\n// module chunks = 0","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/eq.js\n// module id = 130\n// module chunks = 0","var isNumber = require('./isNumber');\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isNaN.js\n// module id = 131\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\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\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isNumber.js\n// module id = 132\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\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 * @static\n * @memberOf _\n * @since 0.8.0\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 if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isPlainObject.js\n// module id = 133\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, 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' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isString.js\n// module id = 134\n// module chunks = 0","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\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 * @since 3.0.0\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 return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/keysIn.js\n// module id = 135\n// module chunks = 0","var arrayMap = require('./_arrayMap'),\n baseClone = require('./_baseClone'),\n baseUnset = require('./_baseUnset'),\n castPath = require('./_castPath'),\n copyObject = require('./_copyObject'),\n customOmitClone = require('./_customOmitClone'),\n flatRest = require('./_flatRest'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nmodule.exports = omit;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/omit.js\n// module id = 136\n// module chunks = 0","import _intersection from \"lodash/intersection\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint no-console: 0 */\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nvar IN_LINE_PREFIX_LIST = ['-webkit-', '-moz-', '-o-', '-ms-'];\nvar IN_COMPATIBLE_PROPERTY = ['transform', 'transformOrigin', 'transition'];\nexport var getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return _intersection(Object.keys(preObj), Object.keys(nextObj));\n};\nexport var identity = function identity(param) {\n return param;\n};\n/*\n * @description: convert camel case to dash case\n * string => string\n */\n\nexport var getDashCase = function getDashCase(name) {\n return name.replace(/([A-Z])/g, function (v) {\n return \"-\".concat(v.toLowerCase());\n });\n};\n/*\n * @description: add compatible style prefix\n * (string, string) => object\n */\n\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (IN_COMPATIBLE_PROPERTY.indexOf(name) === -1) {\n return _defineProperty({}, name, value);\n }\n\n var isTransition = name === 'transition';\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var styleVal = value;\n return PREFIX_LIST.reduce(function (result, property, i) {\n if (isTransition) {\n styleVal = value.replace(/(transform|transform-origin)/gim, \"\".concat(IN_LINE_PREFIX_LIST[i], \"$1\"));\n }\n\n return _objectSpread({}, result, _defineProperty({}, property + camelName, styleVal));\n }, {});\n};\nexport var log = function log() {\n var _console;\n\n (_console = console).log.apply(_console, arguments);\n};\n/*\n * @description: log the value of a varible\n * string => any => any\n */\n\nexport var debug = function debug(name) {\n return function (item) {\n log(name, item);\n return item;\n };\n};\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\n\nexport var debugf = function debugf(tag, f) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var res = f.apply(void 0, args);\n var name = tag || f.name || 'anonymous function';\n var argNames = \"(\".concat(args.map(JSON.stringify).join(', '), \")\");\n log(\"\".concat(name, \": \").concat(argNames, \" => \").concat(JSON.stringify(res)));\n return res;\n };\n};\n/*\n * @description: map object on every element in this object.\n * (function, object) => object\n */\n\nexport var mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _objectSpread({}, res, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\n/*\n * @description: add compatible prefix to style\n * object => object\n */\n\nexport var translateStyle = function translateStyle(style) {\n return Object.keys(style).reduce(function (res, key) {\n return _objectSpread({}, res, generatePrefixStyle(key, res[key]));\n }, style);\n};\nexport var compose = function compose() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var getTransitionVal = function getTransitionVal(props, duration, easing) {\n return props.map(function (prop) {\n return \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing);\n }).join(',');\n};\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format, a, b, c, d, e, f) {\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-smooth/es6/util.js\n// module id = 137\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// returns a style object with a single concated prefixed value string\n\nexports.default = function (property, value) {\n var replacer = arguments.length <= 2 || arguments[2] === undefined ? function (prefix, value) {\n return prefix + value;\n } : arguments[2];\n return _defineProperty({}, property, ['-webkit-', '-moz-', ''].map(function (prefix) {\n return replacer(prefix, value);\n }));\n};\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/utils/joinPrefixedValue.js\n// module id = 138\n// module chunks = 0","var _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Z Axis\n */\nimport { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport pureRender from '../util/PureRender';\n\nvar ZAxis = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ZAxis, _Component);\n\n function ZAxis() {\n _classCallCheck(this, ZAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ZAxis).apply(this, arguments));\n }\n\n _createClass(ZAxis, [{\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return ZAxis;\n}(Component), _class2.displayName = 'ZAxis', _class2.propTypes = {\n type: PropTypes.oneOf(['number', 'category']),\n // The name of data displayed in the axis\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unit of data displayed in the axis\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unique id of z-axis\n zAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The key of data displayed in the axis\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n // The range of axis\n range: PropTypes.arrayOf(PropTypes.number),\n scale: PropTypes.oneOfType([PropTypes.oneOf(['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold']), PropTypes.func])\n}, _class2.defaultProps = {\n zAxisId: 0,\n range: [64, 64],\n scale: 'auto',\n type: 'number'\n}, _temp)) || _class;\n\nexport default ZAxis;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/cartesian/ZAxis.js\n// module id = 139\n// module chunks = 0","import _isNil from \"lodash/isNil\";\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Tooltip\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { translateStyle } from 'react-smooth';\nimport classNames from 'classnames';\nimport DefaultTooltipContent from './DefaultTooltipContent';\nimport { TOOLTIP_TYPES, isSsr } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\nimport pureRender from '../util/PureRender';\nvar CLS_PREFIX = 'recharts-tooltip-wrapper';\nvar EPS = 1;\n\nvar defaultUniqBy = function defaultUniqBy(entry) {\n return entry.dataKey;\n};\n\nvar getUniqPaylod = function getUniqPaylod(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n};\n\nvar propTypes = {\n content: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number\n }),\n active: PropTypes.bool,\n separator: PropTypes.string,\n formatter: PropTypes.func,\n offset: PropTypes.number,\n itemStyle: PropTypes.object,\n labelStyle: PropTypes.object,\n wrapperStyle: PropTypes.object,\n contentStyle: PropTypes.object,\n cursor: PropTypes.oneOfType([PropTypes.bool, PropTypes.element, PropTypes.object]),\n coordinate: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n label: PropTypes.any,\n payload: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.any,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.array]),\n unit: PropTypes.any,\n type: PropTypes.oneOf(TOOLTIP_TYPES)\n })),\n paylodUniqBy: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n isAnimationActive: PropTypes.bool,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n itemSorter: PropTypes.func,\n filterNull: PropTypes.bool,\n useTranslate3d: PropTypes.bool\n};\nvar defaultProps = {\n active: false,\n offset: 10,\n viewBox: {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n },\n coordinate: {\n x: 0,\n y: 0\n },\n cursorStyle: {},\n separator: ' : ',\n wrapperStyle: {},\n contentStyle: {},\n itemStyle: {},\n labelStyle: {},\n cursor: true,\n isAnimationActive: !isSsr(),\n animationEasing: 'ease',\n animationDuration: 400,\n filterNull: true,\n useTranslate3d: false\n};\n\nvar renderContent = function renderContent(content, props) {\n if (React.isValidElement(content)) {\n return React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return content(props);\n }\n\n return React.createElement(DefaultTooltipContent, props);\n};\n\nvar Tooltip = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Tooltip, _Component);\n\n function Tooltip() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Tooltip);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Tooltip)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n return _this;\n }\n\n _createClass(Tooltip, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: box.width,\n boxHeight: box.height\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames,\n _this2 = this;\n\n var _this$props = this.props,\n payload = _this$props.payload,\n isAnimationActive = _this$props.isAnimationActive,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n filterNull = _this$props.filterNull,\n paylodUniqBy = _this$props.paylodUniqBy;\n var finalPayload = getUniqPaylod(paylodUniqBy, filterNull && payload && payload.length ? payload.filter(function (entry) {\n return !_isNil(entry.value);\n }) : payload);\n var hasPayload = finalPayload && finalPayload.length;\n var _this$props2 = this.props,\n content = _this$props2.content,\n viewBox = _this$props2.viewBox,\n coordinate = _this$props2.coordinate,\n position = _this$props2.position,\n active = _this$props2.active,\n offset = _this$props2.offset,\n wrapperStyle = _this$props2.wrapperStyle;\n\n var outerStyle = _objectSpread({\n pointerEvents: 'none',\n visibility: active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0\n }, wrapperStyle);\n\n var translateX, translateY;\n\n if (position && isNumber(position.x) && isNumber(position.y)) {\n translateX = position.x;\n translateY = position.y;\n } else {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n\n if (boxWidth > 0 && boxHeight > 0 && coordinate) {\n translateX = position && isNumber(position.x) ? position.x : Math.max(coordinate.x + boxWidth + offset > viewBox.x + viewBox.width ? coordinate.x - boxWidth - offset : coordinate.x + offset, viewBox.x);\n translateY = position && isNumber(position.y) ? position.y : Math.max(coordinate.y + boxHeight + offset > viewBox.y + viewBox.height ? coordinate.y - boxHeight - offset : coordinate.y + offset, viewBox.y);\n } else {\n outerStyle.visibility = 'hidden';\n }\n }\n\n outerStyle = _objectSpread({}, outerStyle, translateStyle({\n transform: this.props.useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n }));\n\n if (isAnimationActive && active) {\n outerStyle = _objectSpread({}, outerStyle, translateStyle({\n transition: \"transform \".concat(animationDuration, \"ms \").concat(animationEasing)\n }));\n }\n\n var cls = classNames(CLS_PREFIX, (_classNames = {}, _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y), _classNames));\n return React.createElement(\"div\", {\n className: cls,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread({}, this.props, {\n payload: finalPayload\n })));\n }\n }]);\n\n return Tooltip;\n}(Component), _class2.displayName = 'Tooltip', _class2.propTypes = propTypes, _class2.defaultProps = defaultProps, _temp)) || _class;\n\nexport default Tooltip;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/component/Tooltip.js\n// module id = 140\n// module chunks = 0","import _isFunction from \"lodash/isFunction\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Axis of radial direction\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport pureRender from '../util/PureRender';\nimport Layer from '../container/Layer';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, SCALE_TYPES, getPresentationAttributes, filterEventsOfChild } from '../util/ReactUtils';\nimport Dot from '../shape/Dot';\nimport Polygon from '../shape/Polygon';\nimport Text from '../component/Text';\nimport { polarToCartesian } from '../util/PolarUtils';\nvar RADIAN = Math.PI / 180;\nvar eps = 1e-5;\n\nvar PolarAngleAxis = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(PolarAngleAxis, _Component);\n\n function PolarAngleAxis() {\n _classCallCheck(this, PolarAngleAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(PolarAngleAxis).apply(this, arguments));\n }\n\n _createClass(PolarAngleAxis, [{\n key: \"getTickLineCoord\",\n\n /**\n * Calculate the coordinate of line endpoint\n * @param {Object} data The Data if ticks\n * @return {Object} (x0, y0): The start point of text,\n * (x1, y1): The end point close to text,\n * (x2, y2): The end point close to axis\n */\n value: function getTickLineCoord(data) {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n radius = _this$props.radius,\n orientation = _this$props.orientation,\n tickLine = _this$props.tickLine;\n var tickLineSize = tickLine && tickLine.size || 8;\n var p1 = polarToCartesian(cx, cy, radius, data.coordinate);\n var p2 = polarToCartesian(cx, cy, radius + (orientation === 'inner' ? -1 : 1) * tickLineSize, data.coordinate);\n return {\n x1: p1.x,\n y1: p1.y,\n x2: p2.x,\n y2: p2.y\n };\n }\n /**\n * Get the text-anchor of each tick\n * @param {Object} data Data of ticks\n * @return {String} text-anchor\n */\n\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor(data) {\n var orientation = this.props.orientation;\n var cos = Math.cos(-data.coordinate * RADIAN);\n var textAnchor;\n\n if (cos > eps) {\n textAnchor = orientation === 'outer' ? 'start' : 'end';\n } else if (cos < -eps) {\n textAnchor = orientation === 'outer' ? 'end' : 'start';\n } else {\n textAnchor = 'middle';\n }\n\n return textAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props2 = this.props,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n radius = _this$props2.radius,\n axisLine = _this$props2.axisLine,\n axisLineType = _this$props2.axisLineType;\n\n var props = _objectSpread({}, getPresentationAttributes(this.props), {\n fill: 'none'\n }, getPresentationAttributes(axisLine));\n\n if (axisLineType === 'circle') {\n return React.createElement(Dot, _extends({\n className: \"recharts-polar-angle-axis-line\"\n }, props, {\n cx: cx,\n cy: cy,\n r: radius\n }));\n }\n\n var ticks = this.props.ticks;\n var points = ticks.map(function (entry) {\n return polarToCartesian(cx, cy, radius, entry.coordinate);\n });\n return React.createElement(Polygon, _extends({\n className: \"recharts-polar-angle-axis-line\"\n }, props, {\n points: points\n }));\n }\n }, {\n key: \"renderTicks\",\n value: function renderTicks() {\n var _this = this;\n\n var _this$props3 = this.props,\n ticks = _this$props3.ticks,\n tick = _this$props3.tick,\n tickLine = _this$props3.tickLine,\n tickFormatter = _this$props3.tickFormatter,\n stroke = _this$props3.stroke;\n var axisProps = getPresentationAttributes(this.props);\n var customTickProps = getPresentationAttributes(tick);\n\n var tickLineProps = _objectSpread({}, axisProps, {\n fill: 'none'\n }, getPresentationAttributes(tickLine));\n\n var items = ticks.map(function (entry, i) {\n var lineCoord = _this.getTickLineCoord(entry);\n\n var textAnchor = _this.getTickTextAnchor(entry);\n\n var tickProps = _objectSpread({\n textAnchor: textAnchor\n }, axisProps, {\n stroke: 'none',\n fill: stroke\n }, customTickProps, {\n index: i,\n payload: entry,\n x: lineCoord.x2,\n y: lineCoord.y2\n });\n\n return React.createElement(Layer, _extends({\n className: \"recharts-polar-angle-axis-tick\",\n key: \"tick-\".concat(i)\n }, filterEventsOfChild(_this.props, entry, i)), tickLine && React.createElement(\"line\", _extends({\n className: \"recharts-polar-angle-axis-tick-line\"\n }, tickLineProps, lineCoord)), tick && _this.constructor.renderTickItem(tick, tickProps, tickFormatter ? tickFormatter(entry.value) : entry.value));\n });\n return React.createElement(Layer, {\n className: \"recharts-polar-angle-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n ticks = _this$props4.ticks,\n radius = _this$props4.radius,\n axisLine = _this$props4.axisLine;\n\n if (radius <= 0 || !ticks || !ticks.length) {\n return null;\n }\n\n return React.createElement(Layer, {\n className: \"recharts-polar-angle-axis\"\n }, axisLine && this.renderAxisLine(), this.renderTicks());\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n\n if (React.isValidElement(option)) {\n tickItem = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = React.createElement(Text, _extends({}, props, {\n className: \"recharts-polar-angle-axis-tick-value\"\n }), value);\n }\n\n return tickItem;\n }\n }]);\n\n return PolarAngleAxis;\n}(Component), _class2.displayName = 'PolarAngleAxis', _class2.axisType = 'angleAxis', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, {\n type: PropTypes.oneOf(['number', 'category']),\n angleAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n dataKey: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.func]),\n cx: PropTypes.number,\n cy: PropTypes.number,\n radius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n hide: PropTypes.bool,\n scale: PropTypes.oneOfType([PropTypes.oneOf(SCALE_TYPES), PropTypes.func]),\n axisLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n axisLineType: PropTypes.oneOf(['polygon', 'circle']),\n tickLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n tick: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.object, PropTypes.element]),\n ticks: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.any,\n coordinate: PropTypes.number\n })),\n stroke: PropTypes.string,\n orientation: PropTypes.oneOf(['inner', 'outer']),\n tickFormatter: PropTypes.func,\n allowDuplicatedCategory: PropTypes.bool\n}), _class2.defaultProps = {\n type: 'category',\n angleAxisId: 0,\n scale: 'auto',\n cx: 0,\n cy: 0,\n domain: [0, 'auto'],\n orientation: 'outer',\n axisLine: true,\n tickLine: true,\n tick: true,\n hide: false,\n allowDuplicatedCategory: true\n}, _temp)) || _class;\n\nexport default PolarAngleAxis;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/polar/PolarAngleAxis.js\n// module id = 141\n// module chunks = 0","import _isFunction from \"lodash/isFunction\";\nimport _minBy from \"lodash/minBy\";\nimport _maxBy from \"lodash/maxBy\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview The axis of polar coordinate system\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport pureRender from '../util/PureRender';\nimport Text from '../component/Text';\nimport Label from '../component/Label';\nimport Layer from '../container/Layer';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, getPresentationAttributes, filterEventsOfChild } from '../util/ReactUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\n\nvar PolarRadiusAxis = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(PolarRadiusAxis, _Component);\n\n function PolarRadiusAxis() {\n _classCallCheck(this, PolarRadiusAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(PolarRadiusAxis).apply(this, arguments));\n }\n\n _createClass(PolarRadiusAxis, [{\n key: \"getTickValueCoord\",\n\n /**\n * Calculate the coordinate of tick\n * @param {Number} coordinate The radius of tick\n * @return {Object} (x, y)\n */\n value: function getTickValueCoord(_ref) {\n var coordinate = _ref.coordinate;\n var _this$props = this.props,\n angle = _this$props.angle,\n cx = _this$props.cx,\n cy = _this$props.cy;\n return polarToCartesian(cx, cy, coordinate, angle);\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var orientation = this.props.orientation;\n var textAnchor;\n\n switch (orientation) {\n case 'left':\n textAnchor = 'end';\n break;\n\n case 'right':\n textAnchor = 'start';\n break;\n\n default:\n textAnchor = 'middle';\n break;\n }\n\n return textAnchor;\n }\n }, {\n key: \"getViewBox\",\n value: function getViewBox() {\n var _this$props2 = this.props,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n angle = _this$props2.angle,\n ticks = _this$props2.ticks;\n\n var maxRadiusTick = _maxBy(ticks, function (entry) {\n return entry.coordinate || 0;\n });\n\n var minRadiusTick = _minBy(ticks, function (entry) {\n return entry.coordinate || 0;\n });\n\n return {\n cx: cx,\n cy: cy,\n startAngle: angle,\n endAngle: angle,\n innerRadius: minRadiusTick.coordinate || 0,\n outerRadius: maxRadiusTick.coordinate || 0\n };\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props3 = this.props,\n cx = _this$props3.cx,\n cy = _this$props3.cy,\n angle = _this$props3.angle,\n ticks = _this$props3.ticks,\n axisLine = _this$props3.axisLine,\n others = _objectWithoutProperties(_this$props3, [\"cx\", \"cy\", \"angle\", \"ticks\", \"axisLine\"]);\n\n var extent = ticks.reduce(function (result, entry) {\n return [Math.min(result[0], entry.coordinate), Math.max(result[1], entry.coordinate)];\n }, [Infinity, -Infinity]);\n var point0 = polarToCartesian(cx, cy, extent[0], angle);\n var point1 = polarToCartesian(cx, cy, extent[1], angle);\n\n var props = _objectSpread({}, getPresentationAttributes(others), {\n fill: 'none'\n }, getPresentationAttributes(axisLine), {\n x1: point0.x,\n y1: point0.y,\n x2: point1.x,\n y2: point1.y\n });\n\n return React.createElement(\"line\", _extends({\n className: \"recharts-polar-radius-axis-line\"\n }, props));\n }\n }, {\n key: \"renderTicks\",\n value: function renderTicks() {\n var _this = this;\n\n var _this$props4 = this.props,\n ticks = _this$props4.ticks,\n tick = _this$props4.tick,\n angle = _this$props4.angle,\n tickFormatter = _this$props4.tickFormatter,\n stroke = _this$props4.stroke,\n others = _objectWithoutProperties(_this$props4, [\"ticks\", \"tick\", \"angle\", \"tickFormatter\", \"stroke\"]);\n\n var textAnchor = this.getTickTextAnchor();\n var axisProps = getPresentationAttributes(others);\n var customTickProps = getPresentationAttributes(tick);\n var items = ticks.map(function (entry, i) {\n var coord = _this.getTickValueCoord(entry);\n\n var tickProps = _objectSpread({\n textAnchor: textAnchor,\n transform: \"rotate(\".concat(90 - angle, \", \").concat(coord.x, \", \").concat(coord.y, \")\")\n }, axisProps, {\n stroke: 'none',\n fill: stroke\n }, customTickProps, {\n index: i\n }, coord, {\n payload: entry\n });\n\n return React.createElement(Layer, _extends({\n className: \"recharts-polar-radius-axis-tick\",\n key: \"tick-\".concat(i)\n }, filterEventsOfChild(_this.props, entry, i)), _this.constructor.renderTickItem(tick, tickProps, tickFormatter ? tickFormatter(entry.value) : entry.value));\n });\n return React.createElement(Layer, {\n className: \"recharts-polar-radius-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props5 = this.props,\n ticks = _this$props5.ticks,\n axisLine = _this$props5.axisLine,\n tick = _this$props5.tick;\n\n if (!ticks || !ticks.length) {\n return null;\n }\n\n return React.createElement(Layer, {\n className: \"recharts-polar-radius-axis\"\n }, axisLine && this.renderAxisLine(), tick && this.renderTicks(), Label.renderCallByParent(this.props, this.getViewBox()));\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n\n if (React.isValidElement(option)) {\n tickItem = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = React.createElement(Text, _extends({}, props, {\n className: \"recharts-polar-radius-axis-tick-value\"\n }), value);\n }\n\n return tickItem;\n }\n }]);\n\n return PolarRadiusAxis;\n}(Component), _class2.displayName = 'PolarRadiusAxis', _class2.axisType = 'radiusAxis', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, {\n type: PropTypes.oneOf(['number', 'category']),\n cx: PropTypes.number,\n cy: PropTypes.number,\n hide: PropTypes.bool,\n radiusAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n angle: PropTypes.number,\n tickCount: PropTypes.number,\n ticks: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.any,\n coordinate: PropTypes.number\n })),\n orientation: PropTypes.oneOf(['left', 'right', 'middle']),\n axisLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n tick: PropTypes.oneOfType([PropTypes.bool, PropTypes.object, PropTypes.element, PropTypes.func]),\n stroke: PropTypes.string,\n tickFormatter: PropTypes.func,\n domain: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['auto', 'dataMin', 'dataMax'])])),\n scale: PropTypes.oneOfType([PropTypes.oneOf(['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold']), PropTypes.func]),\n allowDataOverflow: PropTypes.bool,\n allowDuplicatedCategory: PropTypes.bool\n}), _class2.defaultProps = {\n type: 'number',\n radiusAxisId: 0,\n cx: 0,\n cy: 0,\n angle: 0,\n orientation: 'right',\n stroke: '#ccc',\n axisLine: true,\n tick: true,\n tickCount: 5,\n domain: [0, 'auto'],\n allowDataOverflow: false,\n scale: 'auto',\n allowDuplicatedCategory: true\n}, _temp)) || _class;\n\nexport default PolarRadiusAxis;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/polar/PolarRadiusAxis.js\n// module id = 142\n// module chunks = 0","var _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Polygon\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\n\nvar getPolygonPoints = function getPolygonPoints(points) {\n return points.reduce(function (result, entry) {\n if (entry.x === +entry.x && entry.y === +entry.y) {\n result.push([entry.x, entry.y]);\n }\n\n return result;\n }, []).join(' ');\n};\n\nvar Polygon = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Polygon, _Component);\n\n function Polygon() {\n _classCallCheck(this, Polygon);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Polygon).apply(this, arguments));\n }\n\n _createClass(Polygon, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n points = _this$props.points,\n className = _this$props.className;\n\n if (!points || !points.length) {\n return null;\n }\n\n var layerClass = classNames('recharts-polygon', className);\n return React.createElement(\"polygon\", _extends({}, getPresentationAttributes(this.props), filterEventAttributes(this.props), {\n className: layerClass,\n points: getPolygonPoints(points)\n }));\n }\n }]);\n\n return Polygon;\n}(Component), _class2.displayName = 'Polygon', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n className: PropTypes.string,\n points: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }))\n}), _temp)) || _class;\n\nexport default Polygon;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/shape/Polygon.js\n// module id = 143\n// module chunks = 0","var _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Sector\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\n\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle); // The coordinate of point which is tangent to the circle\n\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle); // The coordinate of point which is tangent to the radius line\n\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\n\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle); // When the angle of sector equals to 360, star point and end point coincide\n\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n\n return path;\n};\n\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n\n var outerArcAngle = Math.abs(startAngle - endAngle) - sot - eot;\n\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n\n var innerArcAngle = Math.abs(startAngle - endAngle) - sit - eit;\n\n if (innerArcAngle < 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n\n return path;\n};\n\nvar Sector = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Sector, _Component);\n\n function Sector() {\n _classCallCheck(this, Sector);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Sector).apply(this, arguments));\n }\n\n _createClass(Sector, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n innerRadius = _this$props.innerRadius,\n outerRadius = _this$props.outerRadius,\n cornerRadius = _this$props.cornerRadius,\n forceCornerRadius = _this$props.forceCornerRadius,\n cornerIsExternal = _this$props.cornerIsExternal,\n startAngle = _this$props.startAngle,\n endAngle = _this$props.endAngle,\n className = _this$props.className;\n\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n\n var layerClass = classNames('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n\n return React.createElement(\"path\", _extends({}, getPresentationAttributes(this.props), filterEventAttributes(this.props), {\n className: layerClass,\n d: path\n }));\n }\n }]);\n\n return Sector;\n}(Component), _class2.displayName = 'Sector', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n className: PropTypes.string,\n cx: PropTypes.number,\n cy: PropTypes.number,\n innerRadius: PropTypes.number,\n outerRadius: PropTypes.number,\n startAngle: PropTypes.number,\n endAngle: PropTypes.number,\n cornerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n forceCornerRadius: PropTypes.bool,\n cornerIsExternal: PropTypes.bool\n}), _class2.defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n}, _temp)) || _class;\n\nexport default Sector;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/shape/Sector.js\n// module id = 144\n// module chunks = 0","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nimport { isSsr } from './ReactUtils';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\n\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n\n return value;\n}\n\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return _toConsumableArray(result).concat(['-', entry.toLowerCase()]);\n }\n\n return _toConsumableArray(result).concat([entry]);\n }, []);\n return formatStrs.join('');\n}\n\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (text === undefined || text === null || isSsr()) {\n return {\n width: 0,\n height: 0\n };\n }\n\n var str = \"\".concat(text);\n var styleString = getStyleString(style);\n var cacheKey = \"\".concat(str, \"-\").concat(styleString);\n\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n document.body.appendChild(measurementSpan);\n } // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n\n\n var measurementSpanStyle = _objectSpread({}, SPAN_STYLE, style);\n\n Object.keys(measurementSpanStyle).map(function (styleKey) {\n measurementSpan.style[styleKey] = measurementSpanStyle[styleKey];\n return styleKey;\n });\n measurementSpan.textContent = str;\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getOffset = function getOffset(el) {\n var html = el.ownerDocument.documentElement;\n var box = {\n top: 0,\n left: 0\n }; // If we don't have gBCR, just use 0,0 rather than error\n // BlackBerry 5, iOS 3 (original iPhone)\n\n if (typeof el.getBoundingClientRect !== 'undefined') {\n box = el.getBoundingClientRect();\n }\n\n return {\n top: box.top + window.pageYOffset - html.clientTop,\n left: box.left + window.pageXOffset - html.clientLeft\n };\n};\n/**\n * Calculate coordinate of cursor in chart\n * @param {Object} event Event object\n * @param {Object} offset The offset of main part in the svg element\n * @return {Object} {chartX, chartY}\n */\n\nexport var calculateChartCoordinate = function calculateChartCoordinate(event, offset) {\n return {\n chartX: Math.round(event.pageX - offset.left),\n chartY: Math.round(event.pageY - offset.top)\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/util/DOMUtils.js\n// module id = 145\n// module chunks = 0","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//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_an-object.js\n// module id = 146\n// module chunks = 0","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_has.js\n// module id = 147\n// module chunks = 0","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_to-integer.js\n// module id = 148\n// module chunks = 0","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\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\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 = 149\n// module chunks = 0","/// \r\n/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport Rest = require(\"../Generated/RestClient\");\r\nimport * as Views from \"../Views/MasterPage\";\r\nimport * as Dialogs from \"../Dialogs/MessageBox\";\r\nimport {resourceStrings} from \"../../../Intercom.ReactUI/Views/Strings\";\r\nimport {NavLinks} from \"../../../Intercom.ReactUI/Views/JumboHeadControl\";\r\nimport {DropdownMenu} from \"../Views/DropdownMenu\";\r\nimport {ProgressMaskDialog} from \"../Dialogs/ProgressMaskDialog\";\r\nimport {clientAppSettings} from \"../Models/ClientAppSettings\";\r\nimport {LogoutPanel, LogoutPanelProps} from \"../Views/LogoutPanel\";\r\nimport {DevPortalAppBase} from \"../DevPortalAppBase\";\r\nimport isInFrame from \"../../../Intercom.ReactUI/Utils/InFrame\";\r\nimport {relativeUrl} from \"../Utils/Links\";\r\nimport logger from \"../../../Intercom.ReactUI/Utils/logger\";\r\nimport {parseUserAgent, KnownBrowsers} from \"../../../Intercom.ReactUI/Utils/userAgent\";\r\n\r\nexport function isBrowserSupported(): boolean {\r\n /*\r\n // check result of parseUserAgent against KnownBrowsers to decide\r\n // whether we can support the browser or not. Currently we support all browsers\r\n // ideally we should use browserCaps instead of userAgent to decide\r\n let agent = parseUserAgent();\r\n if (agent[KnownBrowser[KnownBrowser.{UnSupportedBrowserBrand}]])\r\n return false;\r\n */\r\n return true;\r\n}\r\n\r\nexport function refreshClientAppSettings() : JQueryPromise {\r\n return Rest.AccountClient.getClientSettings().done(settings => {\r\n _.extend(clientAppSettings, settings, _.pick(clientAppSettings, 'homeUrl'));\r\n });\r\n}\r\n\r\n/**\r\n * This is the base class for all controllers in this app.\r\n * Here we render parts common to all pages, and handle events in those parts.\r\n */\r\nexport class ControllerBase extends SimpleMvc.Controller {\r\n protected pageContent: Element;\r\n protected masterPageState: Views.MasterPageState;\r\n protected params: SimpleMvc.QueryParams;\r\n private masterPageComponent: React.Component;\r\n private accessToken: string;\r\n\r\n constructor(public app: DevPortalAppBase) {\r\n super();\r\n }\r\n\r\n public isAdmin(): boolean {\r\n return this.app.signedInUser != null && this.app.signedInUser.Roles.indexOf('admin') >= 0;\r\n }\r\n\r\n public isReviewer(): boolean {\r\n return this.app.signedInUser != null && this.app.signedInUser.Roles.indexOf('reviewer') >= 0;\r\n }\r\n\r\n public setSearchState(search: string, searchOpened: boolean) {\r\n this.masterPageComponent.setState(_.extend(this.masterPageState, { searchString: search, expandSearch: searchOpened }));\r\n }\r\n\r\n public load(params: SimpleMvc.QueryParams): void {\r\n super.load(params);\r\n $(this.app.getAppBody()).off();\r\n\r\n this.params = params;\r\n\r\n if (this.pageRequiresSignIn()) {\r\n if (!isBrowserSupported()) {\r\n this.renderCommon(true);\r\n this.updateState(false, null, () => {\r\n // do nothing\r\n });\r\n } else if (this.app.signedInUser) {\r\n this.renderCommon();\r\n this.updateState(false, null, () => {\r\n this.render(params);\r\n });\r\n }\r\n else {\r\n Rest.AccountClient.getSignedInUser().done(user => {\r\n logger.debug('got signed in user');\r\n this.app.signedInUser = user;\r\n if (!this.setRequestVerificationHeader()) {\r\n logger.debug(\"ControllerBase v3: Failed to set request verification header when getting signed in user.\");\r\n }\r\n this.renderCommon();\r\n refreshClientAppSettings().then(\r\n () => {\r\n this.updateState(false, null, () => this.render(params))\r\n }\r\n );\r\n }).fail(() => {\r\n if (isInFrame()) {\r\n // we are in azure portal as iframe,\r\n logger.debug('wait for cross-frame message');\r\n } else {\r\n this.app.signedInUser = null;\r\n this.renderCommon(true);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n // check browser support and block if we are hosted by azure portal\r\n this.renderCommon(isInFrame());\r\n this.updateState(false, null, () => {\r\n this.render(params);\r\n });\r\n }\r\n\r\n this.addRemoveCssClass(true);\r\n\r\n // Load tracking code here if the user consent to our cookie policy\r\n this.app.trackingCookieConsent.loadPageTrackingIfInformed();\r\n }\r\n\r\n public unload(): void {\r\n this.addRemoveCssClass(false);\r\n this.app.trackingCookieConsent.markAsInformed();\r\n }\r\n\r\n private addRemoveCssClass(add: boolean): void {\r\n var cssClass = this.getCssClass();\r\n if (cssClass) {\r\n var $appBody = $(this.app.getAppBody());\r\n if (add) {\r\n $appBody.addClass(cssClass);\r\n }\r\n else {\r\n $appBody.removeClass(cssClass);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Controllers that want to add a custom CSS class to app-body any time they are loaded should override this method.\r\n */\r\n protected getCssClass(): string {\r\n return null;\r\n }\r\n\r\n protected pageRequiresSignIn(): boolean {\r\n return true;\r\n }\r\n\r\n protected refreshSignedInUser() {\r\n // synchronize csrf cookie and header value\r\n if (!this.setRequestVerificationHeader()) {\r\n logger.debug(\"ControllerBase v3: Failed to set request verification header when refreshing signed in user.\");\r\n }\r\n if (!this.app.signedInUser) {\r\n logger.debug('begin refresh signed user');\r\n this.load(this.params);\r\n }\r\n }\r\n\r\n /**\r\n * Renders parts common to all pages.\r\n * This method is called whether or not the user is signed in.\r\n */\r\n protected renderCommon(checkBrowserSupport?: boolean): void {\r\n var props: Views.MasterPageProps = {\r\n isAdmin: () => this.isAdmin(),\r\n isReviewer: () => this.isReviewer(),\r\n signInRequired: this.pageRequiresSignIn(),\r\n onSearch: (s) => this.handleSearch(s),\r\n onSignOutClicked: () => this.onSignOutClicked(),\r\n refreshSignedInUser: () => this.refreshSignedInUser(),\r\n isRoutableUrl: (url: string) => {\r\n var appPath = this.app.getAppPath();\r\n return !(/^https?:/i.test(url) || /^\\/\\//.test(url));\r\n }\r\n };\r\n var element = React.createElement(Views.MasterPage, props);\r\n this.masterPageComponent = ReactDOM.render(element, this.app.getAppBody(), () => {\r\n this.pageContent = $(\".page-content\")[0];\r\n this.attachHandlers();\r\n });\r\n\r\n this.masterPageComponent.setState({ unsupportedBrowser: checkBrowserSupport && !isBrowserSupported() } as any);\r\n }\r\n\r\n protected updateTitle(title: string) {\r\n $('head title').text(title || resourceStrings.botFrameworkExtended);\r\n }\r\n\r\n /**\r\n * This method is called if the user is signed in.\r\n * Subclasses should override this method.\r\n */\r\n protected render(params: SimpleMvc.QueryParams): void {\r\n this.updateTitle(null);\r\n $('.action-sheet').toggleClass(\"hidden\", true);\r\n }\r\n\r\n protected updateState(signInInProgress: boolean, signInError: string, callback?: () => void): void {\r\n var curActiveLink = this.masterPageState ? this.masterPageState.activeLink : NavLinks.root;\r\n\r\n this.masterPageState = {\r\n signInState: this.masterPageState ? this.masterPageState.signInState : null,\r\n signedInUser: this.app.signedInUser,\r\n signInInProgress: signInInProgress,\r\n signInError: signInError,\r\n activeLink: curActiveLink,\r\n searchString: null,\r\n }\r\n\r\n this.masterPageComponent.setState(this.masterPageState, () => {\r\n this.pageContent = $(\".page-content\")[0];\r\n if (callback)\r\n callback();\r\n });\r\n }\r\n\r\n protected setActiveJumboActiveLink(activeLink: NavLinks) {\r\n if (this.masterPageComponent) {\r\n this.masterPageState.activeLink = activeLink;\r\n this.masterPageComponent.setState(this.masterPageState);\r\n }\r\n }\r\n\r\n protected handleSearch(s: string) {\r\n if (s.trim()) {\r\n this.app.navigate(clientAppSettings.searchRoute || '/bots', { s: s });\r\n }\r\n }\r\n\r\n private attachHandlers(): void {\r\n var $appBody = $(this.app.getAppBody());\r\n $appBody.on('click', '.signed-in-user', () => this.onSignedInUserClicked());\r\n $appBody.on('click', '.waitlist-request', () => this.onWaitListButtonClicked());\r\n }\r\n\r\n private extractErrorFromXHR(xhr: JQueryXHR): string {\r\n if (xhr && xhr.responseText) {\r\n try {\r\n let error = $.parseJSON(xhr.responseText);\r\n if (error) {\r\n error = error.Errors && error.Errors.length > 0 ? error.Errors[0] : error;\r\n let message = error.Message || (error.Error ? error.Error.Message : null);\r\n if (message) {\r\n return message;\r\n }\r\n }\r\n }\r\n catch (ex) {\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n protected handleHttpResponseError(xhr: JQueryXHR): JQueryPromise {\r\n let errorMessage = this.extractErrorFromXHR(xhr);\r\n let promise: JQueryPromise;\r\n\r\n if (errorMessage) {\r\n promise = Dialogs.MessageBox.show(errorMessage);\r\n }\r\n else {\r\n switch (xhr.status) {\r\n case 400:\r\n promise = Dialogs.MessageBox.show(\"The action or the supplied values are invalid.\");\r\n break;\r\n case 401: {\r\n let deferred = $.Deferred();\r\n this.app.signedInUser = null;\r\n this.updateState(false, null, () => { deferred.resolve(null); });\r\n promise = deferred.promise();\r\n break;\r\n }\r\n case 403:\r\n promise = Dialogs.MessageBox.show(\"This item cannot be accessed or modified.\");\r\n break;\r\n case 404:\r\n promise = Dialogs.MessageBox.show(\"The item cannot be found.\");\r\n break;\r\n case 500:\r\n promise = Dialogs.MessageBox.show(\"An internal error occurred at the server.\");\r\n break;\r\n default:\r\n if (xhr.statusText)\r\n promise = Dialogs.MessageBox.show(\"Error: \" + xhr.statusText);\r\n else\r\n promise = Dialogs.MessageBox.show(\"An unknown error occurred.\");\r\n break;\r\n }\r\n }\r\n return promise;\r\n }\r\n\r\n public redirectIfNeeded(): boolean {\r\n var prefix = \"?appapiret=\";\r\n var index = window.location.href.indexOf(prefix);\r\n if (index === -1)\r\n return false;\r\n var ret = window.location.href.substr(index + prefix.length);\r\n if (ret) {\r\n window.location.assign(decodeURIComponent(ret));\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private onSignedInUserClicked(): void {\r\n var dropdownMenu = this.masterPageComponent.refs[\"userMenu\"];\r\n dropdownMenu.displayBelow($('.signed-in-user'));\r\n }\r\n\r\n /**\r\n * Removes unwanted characters from the message.\r\n */\r\n private cleanupErrorMessage(message: string): string {\r\n // Note that we don't want to decode the string because most of the time that will result in double decoding.\r\n return message.replace(/\\+/g, ' ');\r\n }\r\n\r\n /**\r\n * This method return false for default error message display to happen.\r\n */\r\n private handleIntercomLoginError(xhr: JQueryXHR, accessToken: string): boolean {\r\n var signInState = xhr.responseJSON.Message;\r\n switch (signInState) {\r\n case \"SignedUp\":\r\n case \"NotSignedUp\":\r\n this.accessToken = accessToken;\r\n this.masterPageState.signInState = signInState;\r\n this.updateState(false, null);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private onWaitListButtonClicked(): void {\r\n Rest.AccountClient.addUserToWaitlist().done(() => {\r\n this.masterPageState.signInState = \"SignedUp\";\r\n this.updateState(false, null);\r\n }).fail(xhr => {\r\n this.handleHttpResponseError(xhr);\r\n });\r\n }\r\n\r\n private onSignOutClicked(): void {\r\n var path = clientAppSettings.applicationPath === '/' ? '' : clientAppSettings.applicationPath;\r\n window.location.assign(path + '/signout_all.aspx');\r\n }\r\n\r\n protected setRequestVerificationHeader(): boolean {\r\n const requestVerificationToken = ControllerBase.readCookie('Csrf-Token');\r\n if (requestVerificationToken) {\r\n Rest.ajaxHeaders = _.extend(Rest.ajaxHeaders || {}, { 'X-Csrf-Token': requestVerificationToken });\r\n }\r\n\r\n return !!requestVerificationToken;\r\n }\r\n\r\n public static readCookie(name: string): string {\r\n var nameEquals = name + '=';\r\n var cookies = document.cookie.split(';');\r\n for (var i = 0; i < cookies.length; i++) {\r\n var cookie = cookies[i].replace(/^\\s+/, '');\r\n if (cookie.indexOf(nameEquals) === 0)\r\n return cookie.substring(nameEquals.length);\r\n }\r\n return null;\r\n }\r\n\r\n protected scrollToTop(): void {\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n public hasUnsavedChanges(): boolean {\r\n return false;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Controllers/ControllerBase.ts","import {GenericDialog} from \"./GenericDialog\";\r\n\r\nexport class InputDialogBase extends GenericDialog

    {\r\n public onOK() {\r\n this.closeDialog();\r\n this.resolve(this.panel.state);\r\n }\r\n public setPanelState(state: S, callback? : ()=> any) {\r\n this.panel.setState(state, callback);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/Dialogs/InputDialogBase.ts","import * as Rest from \"../Generated/RestClient\";\r\nimport {parseUrl, Url} from \"../../../Intercom.ReactUI/Utils/Url\";\r\nimport { Method } from './HttpMethods';\r\nimport { pollerPromise } from \"../Models/PollingModel\";\r\n\r\nexport interface Subscription {\r\n id: string,\r\n subscriptionId: string,\r\n displayName: string,\r\n state: string\r\n}\r\n\r\nexport interface Region {\r\n displayName: string,\r\n name: string\r\n}\r\n\r\nexport interface AppSerivcePlan {\r\n id: string,\r\n name: string,\r\n kind: string,\r\n location: string,\r\n sku: {\r\n name: string,\r\n tier: string,\r\n size: string,\r\n family: string,\r\n capacity: number\r\n }\r\n}\r\n\r\nexport interface WebAppService {\r\n id: string,\r\n name: string,\r\n type: string,\r\n kind: string,\r\n location: string,\r\n properties: {\r\n serverFarmId: string\r\n }\r\n}\r\n\r\nexport interface ArmResource {\r\n name: string,\r\n id: string,\r\n properties: T\r\n}\r\n\r\nexport interface SourceControl {\r\n repoUrl: string,\r\n branch: string,\r\n isManualIntegration: boolean,\r\n deploymentRollbackEnabled: boolean,\r\n isMercurial: boolean,\r\n provisioningState?: string\r\n token?: string\r\n}\r\n\r\nexport interface ArmResponse {\r\n value: T;\r\n}\r\n\r\nexport interface TenantId {\r\n id: string,\r\n tenantId: string,\r\n displayName: string,\r\n countryCode: string,\r\n domains: string[]\r\n}\r\n\r\nexport interface ResourceGroup {\r\n id: string;\r\n name: string;\r\n location: string;\r\n properties: {\r\n provisioningState: string;\r\n }\r\n}\r\n\r\nexport interface WebAppSettings {\r\n id: string;\r\n name: string;\r\n type: string;\r\n location: string;\r\n properties: {\r\n AzureWebJobsStorage?: string;\r\n AzureWebJobsDashboard?: string;\r\n AzureWebJobsDisableHomepage?: string;\r\n WEBSITE_CONTENTAZUREFILECONNECTIONSTRING_TEMP?: string;\r\n WEBSITE_CONTENTAZUREFILECONNECTIONSTRING?: string;\r\n WEBSITE_CONTENTSHARE?: string;\r\n FUNCTIONS_EXTENSION_VERSION?: string;\r\n WEBSITE_NODE_DEFAULT_VERSION?: string;\r\n BotId?: string;\r\n BotEnv?: string;\r\n BotStateEndpoint?: string;\r\n BotOpenIdMetadata?: string;\r\n MicrosoftAppId?: string;\r\n MicrosoftAppPassword?: string;\r\n SCM_POST_DEPLOYMENT_ACTIONS_PATH?: string;\r\n BotDevAppInsightKey?: string;\r\n BotDevAppInsightsKey?: string;\r\n BotDevAppInsightsName?: string;\r\n BotDevAppInsightsAppId?: string;\r\n LuisAppId?: string;\r\n LuisAPIKey?: string;\r\n LuisAPIHostName?: string;\r\n }\r\n}\r\n\r\nexport interface ApplicationInsights {\r\n id: string;\r\n name: string;\r\n type: string;\r\n location: string;\r\n tags: { [key: string]: string };\r\n kind: string;\r\n etag?: string;\r\n properties?: any;\r\n}\r\n\r\nexport type EtaggedResource = ApplicationInsights;\r\n\r\nexport interface DeploymentProperties {\r\n provisioningState: string,\r\n outputResources: {id: string}[]\r\n}\r\n\r\nconst armApiVersion = '2014-04-01'\r\nconst tenantApiVersion = '2018-01-01'\r\nconst storageApiVersion = '2015-05-01-preview';\r\nconst appInsightsApiVersion = '2015-05-01';\r\nconst websiteApiVersion = '2015-08-01';\r\nconst aspApiVersion = '2016-03-01';\r\nconst sourceControlApiVersion = '2016-08-01';\r\nconst deploymentApiVersion = '2017-05-10';\r\nconst botServiceApiVersion = '2017-12-01';\r\n\r\nexport class ArmClient {\r\n public armRoot: Url;\r\n constructor(private token: string) {\r\n this.armRoot = parseUrl('https://management.azure.com');\r\n }\r\n\r\n public get(url: string): JQueryPromise {\r\n return this.request(url, Method.GET);\r\n }\r\n\r\n public post(url: string, data?: any): JQueryPromise {\r\n return this.request(url, Method.POST, data);\r\n }\r\n\r\n public patch(url: string, data?: any): JQueryPromise {\r\n return this.request(url, Method.PATCH, data);\r\n }\r\n\r\n public delete(url: string): JQueryPromise {\r\n return this.request(url, Method.DELETE);\r\n }\r\n\r\n public put(url: string, data?: any, includeIfMatch: boolean = true): JQueryPromise {\r\n return this.request(url, Method.PUT, data, includeIfMatch);\r\n }\r\n\r\n public head(url: string): JQueryPromise {\r\n return this.request(url, Method.HEAD);\r\n }\r\n\r\n public getSubscriptions(): JQueryPromise> {\r\n const url = `${this.armRoot.format()}/subscriptions?api-version=${armApiVersion}`;\r\n return this.get(url);\r\n }\r\n\r\n public getSubscription(subscriptionId: string) : JQueryPromise {\r\n const url = `${this.armRoot.format()}/subscriptions/${subscriptionId}?api-version=${armApiVersion}`;\r\n return this.get(url);\r\n }\r\n\r\n public getRegions(subscriptionId: string): JQueryPromise[]>> {\r\n const url = `${this.armRoot.format()}/subscriptions/${subscriptionId}/providers/Microsoft.Web/georegions?sku=Dynamic&api-version=${websiteApiVersion}`;\r\n return this.get(url);\r\n }\r\n\r\n public getAppServicePlans(subscriptionId: string) : JQueryPromise> {\r\n const url = `${this.armRoot.format()}/subscriptions/${subscriptionId}/providers/Microsoft.Web/serverfarms?api-version=${aspApiVersion}`;\r\n return this.get(url);\r\n }\r\n\r\n public getResourceGroups(subscriptionId: string): JQueryPromise> {\r\n const url = `${this.armRoot.format()}/subscriptions/${subscriptionId}/resourceGroups?api-version=${armApiVersion}`;\r\n return this.get(url);\r\n }\r\n\r\n public getWebAppService(rsrcId: string) : JQueryPromise {\r\n const url = `${this.armRoot.format()}${rsrcId}?api-version=${websiteApiVersion}`;\r\n return this.get(url);\r\n }\r\n\r\n public getWebAppSettings(subId: string, rgName: string, appId: string) : JQueryPromise {\r\n const url = `${this.armRoot.format()}/subscriptions/${subId}/resourceGroups/${rgName}/providers/Microsoft.Web/sites/${appId}/config/appsettings/list?api-version=${websiteApiVersion}`;\r\n return this.post(url);\r\n }\r\n\r\n public getAppInsights(subId: string, rgName: string, insightsName: string) : JQueryPromise {\r\n const url = `${this.armRoot.format()}/subscriptions/${subId}/resourceGroups/${rgName}/providers/microsoft.insights/components/${insightsName}?api-version=${appInsightsApiVersion}`;\r\n return this.get(url);\r\n }\r\n \r\n public updateAppInsightsTags(subId: string, rgName: string, insightsName: string, tags: { [key: string]: string }): JQueryPromise {\r\n const url = `${this.armRoot.format()}/subscriptions/${subId}/resourceGroups/${rgName}/providers/microsoft.insights/components/${insightsName}?api-version=${appInsightsApiVersion}`;\r\n return this.patch(url, {\r\n tags: tags\r\n });\r\n }\r\n\r\n public isAppNameAvailable(subscriptionId: string, appName: string): JQueryPromise> {\r\n const url = `${this.armRoot.format()}/subscriptions/${subscriptionId}/providers/Microsoft.Web/ishostnameavailable/${appName}?api-version=${websiteApiVersion}`;\r\n return this.get(url);\r\n }\r\n\r\n public deleteDeployment(deploymentId: string): JQueryPromise {\r\n const url = `${this.armRoot.format()}${deploymentId}?api-version=${deploymentApiVersion}`;\r\n // delete call does not return JSON which makes JQuery AJAX throw an error resulting in hitting a .fail() method\r\n return this.requestVoidResult(url, Method.DELETE);\r\n }\r\n\r\n public deleteWebApp(subscriptionId: string, rgName: string, appName: string): JQueryPromise {\r\n const url = `${this.armRoot.format()}/subscriptions/${subscriptionId}/resourceGroups/${rgName}/providers/Microsoft.Web/sites/${appName}?api-version=${sourceControlApiVersion}`;\r\n // delete call does not return JSON which makes JQuery AJAX throw an error resulting in hitting a .fail() method\r\n return this.requestVoidResult(url, Method.DELETE);\r\n }\r\n\r\n public createResourceGroup(subId: string, rgName: string, locationName: string): JQueryPromise {\r\n const url = `${this.armRoot.format()}/subscriptions/${subId}/resourceGroups/${rgName}?api-version=${deploymentApiVersion}`;\r\n return this.put(url, { location: locationName });\r\n }\r\n\r\n public checkResourceGroupExists(subId: string, rgName: string): JQueryPromise {\r\n const url = `${this.armRoot.format()}/subscriptions/${subId}/resourceGroups/${rgName}?api-version=${deploymentApiVersion}`;\r\n var $deferred = $.Deferred();\r\n // will return 204 if the RG exists; 404 if it doesn't\r\n this.head(url)\r\n .done(() => $deferred.resolve(true))\r\n .fail(() => $deferred.resolve(false));\r\n\r\n return $deferred;\r\n }\r\n\r\n public checkDeploymentResult(deployment: ArmResource) : JQueryPromise> {\r\n const url = `${this.armRoot.format()}${deployment.id}?api-version=${deploymentApiVersion}`;\r\n const result = $.Deferred>();\r\n this.get(url).then((x: ArmResource) => {\r\n const curState = x.properties ? x.properties.provisioningState : null;\r\n if (curState === 'Failed' || curState === 'Succeeded') {\r\n result.resolve(x);\r\n } else {\r\n result.reject(curState);\r\n }\r\n }, e => result.reject(e));\r\n return result;\r\n }\r\n\r\n public putBotService(subId: string, rgName: string, deploymentName: string, data?: any): JQueryPromise {\r\n const url = `${this.armRoot.format()}/subscriptions/${subId}/resourcegroups/${rgName}/providers/microsoft.resources/deployments/${deploymentName}?api-version=${deploymentApiVersion}`;\r\n const deployment = this.put(url, data, false);\r\n const checkDeployment = deployment.then((newDeployment: ArmResource) => pollerPromise(() => this.checkDeploymentResult(newDeployment), 5000, 120000));\r\n const fetchBotResource = checkDeployment\r\n .then((deploymentResult: ArmResource) => {\r\n if (deploymentResult.properties.provisioningState === 'Succeeded') {\r\n const botResourceId = deploymentResult.properties.outputResources[0].id;\r\n const botResourceUrl = `${this.armRoot.format()}${botResourceId}?api-version=${botServiceApiVersion}`;\r\n return this.get(botResourceUrl);\r\n } else {\r\n return $.Deferred().reject(deploymentResult);\r\n }\r\n });\r\n return fetchBotResource;\r\n }\r\n\r\n public setupContinuousIntegration(rsrcId: string, sourceControl: SourceControl) : JQueryPromise> {\r\n const url = `${this.armRoot.format()}/${rsrcId}/sourcecontrols/web?api-version=${sourceControlApiVersion}`;\r\n return this.request(url, Method.PUT, {\r\n id: rsrcId,\r\n type: \"Microsoft.Web/sites/sourcecontrols\",\r\n properties: sourceControl\r\n });\r\n }\r\n\r\n public getSourceControl(rsrcId: string) : JQueryPromise> {\r\n const url = `${this.armRoot.format()}/${rsrcId}/sourcecontrols/web?api-version=${sourceControlApiVersion}`;\r\n return this.get(url);\r\n }\r\n\r\n public get tenants() : JQueryPromise {\r\n const url = `${this.armRoot.format()}/tenants?api-version=${tenantApiVersion}`;\r\n return this.get(url)\r\n .then((x : ArmResponse) => {\r\n return $.Deferred().resolve(x.value);\r\n });\r\n }\r\n \r\n private request(url: string, method: Method, data?: any, includeIfMatch: boolean = true): JQueryPromise {\r\n this.valideUrl(url);\r\n const reqHeaders = includeIfMatch ? \r\n {\r\n 'Authorization': this.getAuthHeader(),\r\n 'If-Match': '*',\r\n 'Accept': 'application/json,*/*'\r\n } :\r\n {\r\n 'Authorization': this.getAuthHeader(),\r\n 'Accept': 'application/json,*/*'\r\n };\r\n\r\n return $.ajax({\r\n url: url,\r\n type: Method[method] as string,\r\n headers: reqHeaders,\r\n dataType: 'json',\r\n contentType: 'application/json',\r\n beforeSend: () => Rest.showNetworkIcon(true),\r\n data: data ? JSON.stringify(data) : data\r\n }).always(() => Rest.showNetworkIcon(false));\r\n }\r\n\r\n private requestVoidResult(url: string, method: Method, data?: any): JQueryPromise {\r\n this.valideUrl(url);\r\n const reqHeaders = {\r\n 'Authorization': this.getAuthHeader(),\r\n 'If-Match': '*',\r\n 'Accept': 'application/json,*/*'\r\n };\r\n\r\n return $.ajax({\r\n url: url,\r\n type: Method[method] as string,\r\n headers: reqHeaders,\r\n dataType: 'text',\r\n contentType: 'application/json',\r\n beforeSend: () => Rest.showNetworkIcon(true),\r\n data: data ? JSON.stringify(data) : data\r\n }).always(() => Rest.showNetworkIcon(false));\r\n }\r\n\r\n private valideUrl(url: string) {\r\n const uri = parseUrl(url);\r\n if (uri.scheme != this.armRoot.scheme || uri.hostname != this.armRoot.hostname) {\r\n throw 'non conforming url';\r\n }\r\n }\r\n\r\n private getAuthHeader(): string {\r\n return `Bearer ${this.token}`;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Services/ArmApi.ts","import * as Rest from \"../Generated/RestClient\";\r\nimport {parseUrl, Url} from \"../../../Intercom.ReactUI/Utils/Url\";\r\nimport {Poller, PollingModel} from \"../Models/PollingModel\";\r\nimport downloadBlob from \"../../../Intercom.ReactUI/Utils/downloadBlob\";\r\n\r\nenum Method {\r\n GET,\r\n PUT,\r\n DELETE,\r\n POST\r\n}\r\n\r\ninterface KeyInfo {\r\n name: string;\r\n value: string;\r\n}\r\n\r\n/**\r\n * repository type from Kudu\r\n https://github.com/projectkudu/kudu/blob/2ea953e532d0a44afe291dc4b9e370df9fc51686/Kudu.Contracts/SourceControl/RepositoryType.cs\r\n */\r\nexport enum RepositoryType {\r\n None,\r\n Git,\r\n Mercurial\r\n}\r\n\r\nexport interface ScmInfo {\r\n Type: RepositoryType;\r\n GitUrl: string;\r\n}\r\n\r\nexport class KuduClient {\r\n public scmUri: Url;\r\n private statusPoller: Poller;\r\n private masterKey;\r\n private authz;\r\n\r\n public static createFromScmAuthorization(authz: Rest.ScmAuthorization): KuduClient {\r\n const kuduClient = new KuduClient();\r\n kuduClient.authz = authz;\r\n kuduClient.scmUri = parseUrl(authz.Url);\r\n return kuduClient;\r\n }\r\n\r\n public static createFromArmToken(kuduUri: string, armToken: string): KuduClient {\r\n if (!kuduUri) {\r\n throw new Error(\"kuduUri must be defined\");\r\n }\r\n if (!armToken) {\r\n throw new Error(\"armToken must be defined\");\r\n }\r\n const kuduClient = new KuduClient();\r\n kuduClient.scmUri = parseUrl(kuduUri);\r\n kuduClient.authz = armToken;\r\n return kuduClient;\r\n }\r\n\r\n /**\r\n * For a bot get the kudu uri (ie https://.scm.azurewebsites.net).\r\n */\r\n public static getKuduSiteName(bot: Rest.BotService): string {\r\n if (!bot) {\r\n throw new Error(\"bot must be defined\");\r\n }\r\n if (!bot.Endpoint) {\r\n throw new Error(\"bot must have an Endpoint\");\r\n }\r\n\r\n const siteUrl: Url = parseUrl(bot.Endpoint);\r\n const siteName = siteUrl.hostname.substring(0, siteUrl.hostname.indexOf(\".\"));\r\n return `https://${siteName}.scm.azurewebsites.net`;\r\n }\r\n\r\n private get rootUri() : Url {\r\n return parseUrl(this.scmUri.format());\r\n }\r\n\r\n public command(script: string, folder: string) : JQueryPromise {\r\n let uri = this.rootUri;\r\n uri.path = '/api/command';\r\n return this.request(uri.format(), Method.POST, true, {command: script, dir: folder});\r\n }\r\n\r\n public get(url: string): JQueryPromise {\r\n const isFolder = url[url.length - 1] === '/';\r\n return isFolder ? this.request(url, Method.GET, isFolder) :\r\n this.request(url, Method.GET, isFolder);\r\n }\r\n\r\n public dir(path: string): JQueryPromise {\r\n if (path.length && path[path.length-1] !== '/') {\r\n path = `${path}/`;\r\n }\r\n let uri = this.rootUri;\r\n uri.path = `/api/vfs/${path}`;\r\n return this.get(uri.format());\r\n }\r\n\r\n public get scmInfo(): JQueryPromise {\r\n let uri = this.rootUri;\r\n uri.path ='/api/scm/info'\r\n return this.request(uri.format(), Method.GET, true);\r\n }\r\n\r\n public get settings(): JQueryPromise<{[key:string]: string}> {\r\n let uri = this.rootUri;\r\n uri.path = `/api/settings`;\r\n return this.request(uri.format(), Method.GET, true);\r\n }\r\n\r\n public put(url: string, content: string): JQueryPromise {\r\n return this.request(url, Method.PUT, false, content);\r\n }\r\n\r\n public del(url: string): JQueryPromise {\r\n return this.request(url, Method.DELETE);\r\n }\r\n\r\n public download(path: string) : JQueryPromise {\r\n let uri = this.rootUri;\r\n uri.path = `/api/vfs/${path}`;\r\n\r\n return downloadBlob({\r\n url: uri.format(),\r\n type: 'GET',\r\n headers: {\r\n 'Authorization': this.getAuthHeader(),\r\n 'If-Match': '*',\r\n 'Accept': 'application/zip, application/octet-stream'\r\n },\r\n beforeSend: () => Rest.showNetworkIcon(true),\r\n }).always(() => { \r\n Rest.showNetworkIcon(false);\r\n }); \r\n }\r\n\r\n public zip(path : string) : JQueryPromise {\r\n let uri = this.rootUri;\r\n uri.path = `/api/zip/${path}`;\r\n\r\n return downloadBlob({\r\n url: uri.format(),\r\n type: 'GET',\r\n headers: {\r\n 'Authorization': this.getAuthHeader(),\r\n 'If-Match': '*',\r\n 'Accept': 'application/zip, application/octet-stream'\r\n },\r\n beforeSend: () => Rest.showNetworkIcon(true),\r\n }).always(() => { \r\n Rest.showNetworkIcon(false);\r\n });\r\n }\r\n\r\n public logStream(functionName: string, onData: (log: string) => void): Poller {\r\n let logstreamUri = this.rootUri;\r\n logstreamUri.path = `/api/logstream/application/functions/function/${functionName}`;\r\n let xhr = new XMLHttpRequest();\r\n xhr.open('GET', logstreamUri.format(), true);\r\n xhr.setRequestHeader('Authorization', this.getAuthHeader());\r\n xhr.setRequestHeader('FunctionsPortal', '1');\r\n xhr.send(null);\r\n let prevLength = xhr.responseText ? xhr.responseText.length : 0;\r\n let poller = new Poller(null,\r\n () => {\r\n let deferred = $.Deferred();\r\n const curLength = xhr.responseText.length;\r\n if (curLength > prevLength) {\r\n deferred.resolve(xhr.responseText.substr(prevLength));\r\n prevLength = curLength;\r\n } else {\r\n if (xhr.readyState == XMLHttpRequest.DONE) {\r\n poller.stop();\r\n }\r\n deferred.resolve(null);\r\n }\r\n return deferred.promise();\r\n },\r\n onData);\r\n // log stream requires we keep a connection to the function host/admin/host/status \r\n // open, create a poller here to do so\r\n if (!this.statusPoller) {\r\n this.pingHostStatus();\r\n this.statusPoller = new Poller(\r\n { defaultInterval: 60000, maxPendingPollRequests: 1 },\r\n _.bind(this.pingHostStatus, this), d => { });\r\n this.statusPoller.start();\r\n }\r\n\r\n return poller; \r\n }\r\n\r\n public get publishPassword() : string {\r\n return this.authz.Password;\r\n }\r\n\r\n private getFunctionToken(): JQueryPromise {\r\n let tokenUri = this.rootUri;\r\n tokenUri.path = '/api/functions/admin/token';\r\n return this.request(tokenUri.format(), Method.GET, true);\r\n }\r\n\r\n private getMasterKey(): JQueryPromise {\r\n if (this.masterKey) {\r\n let deferred = $.Deferred();\r\n deferred.resolve(this.masterKey);\r\n return deferred;\r\n } else {\r\n return this.getFunctionToken().then(token => {\r\n let keyUrl = this.rootUri;\r\n keyUrl.hostname = keyUrl.hostname.replace(\".scm\", \"\");\r\n keyUrl.path = \"/admin/host/systemkeys/_master\";\r\n return this.request(keyUrl.format(), Method.GET, true, null, token);\r\n }).then(keyInfo => {\r\n this.masterKey = keyInfo.value;\r\n return $.Deferred().resolve(this.masterKey);\r\n });\r\n }\r\n }\r\n\r\n private pingHostStatus(): JQueryPromise {\r\n return this.getMasterKey().then((key: string) => {\r\n let statusUri = this.rootUri;\r\n statusUri.hostname = statusUri.hostname.replace(\".scm\", \"\");\r\n statusUri.path = '/admin/host/status';\r\n return $.ajax({\r\n url: statusUri.format(),\r\n type: \"GET\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json,*/*\",\r\n \"x-functions-key\": key,\r\n }\r\n });\r\n });\r\n }\r\n\r\n private request(url: string, method: Method, isFolder?: boolean, data?: any, token?: string): JQueryPromise {\r\n this.validateUrl(url);\r\n const postingData = data && method == Method.POST;\r\n return $.ajax({\r\n url: url,\r\n type: Method[method] as string,\r\n headers: {\r\n 'Authorization': this.getAuthHeader(token),\r\n 'If-Match': '*',\r\n 'Accept': 'application/json,*/*'\r\n },\r\n dataType: isFolder ? 'json' : 'text',\r\n beforeSend: () => Rest.showNetworkIcon(true),\r\n data: postingData ? JSON.stringify(data) : data,\r\n contentType: postingData ? 'application/json' : undefined\r\n }).always(() => Rest.showNetworkIcon(false));\r\n }\r\n\r\n private validateUrl(url: string) {\r\n const uri = parseUrl(url);\r\n if (!uri || uri.scheme != this.scmUri.scheme ||\r\n (uri.hostname != this.scmUri.hostname && \r\n uri.hostname != this.scmUri.hostname.replace('.scm', ''))) {\r\n throw 'non conforming url';\r\n }\r\n }\r\n\r\n private getAuthHeader(token?: string): string {\r\n if (token) {\r\n return `Bearer ${token}`;\r\n }\r\n if (_.isString(this.authz)) {\r\n return `Bearer ${this.authz}`;\r\n } else if (_.isObject(this.authz)) {\r\n const authText = `${this.authz.UserName}:${this.authz.Password}`;\r\n return `Basic ${btoa(authText)}`;\r\n }\r\n throw \"no authz info available\";\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Services/KuduApi.ts","export * from \"./HttpMethods\";\r\nexport * from \"./ArmApi\";\r\nexport * from \"./KuduApi\";\r\nexport * from \"./GraphApi\";\r\nexport * from \"./GithubApi\";\r\nexport * from \"./VsoApi\";\n\n\n// WEBPACK FOOTER //\n// ./Client/Services/index.ts","import { clientAppSettings } from '../Models/ClientAppSettings';\r\n\r\nexport class Environment {\r\n /**\r\n * Get the base Azure portal Url (no trailing /).\r\n */\r\n public static azurePortalUrl(): string {\r\n const env = (clientAppSettings.environment).toLowerCase();\r\n switch (env) {\r\n case \"scratch\":\r\n case \"ppe\":\r\n default:\r\n return \"https://portal.azure.com\";\r\n case \"usgovppe\":\r\n case \"usgovprd\":\r\n return \"https://portal.azure.us\";\r\n }\r\n }\r\n\r\n /**\r\n * Get the url to create a new bot in Azure.\r\n */\r\n public static azureCreateBotUrl(): string {\r\n const env = (clientAppSettings.environment || 'prod').toLowerCase();\r\n switch (env) {\r\n case \"scratch\":\r\n return \"https://aka.ms/azure/bots/create/devportal-scratch\";\r\n case \"ppe\":\r\n return \"https://aka.ms/azure/bots/create/devportal-ppe\";\r\n case \"usgovppe\":\r\n return \"https://aka.ms/azure/bots/create/devportal-usgovppe\";\r\n case \"usgovprd\":\r\n return \"https://aka.ms/azure/bots/create/devportal-usgovprod\";\r\n default:\r\n return \"https://aka.ms/azure/bots/create/devportal\";\r\n }\r\n }\r\n\r\n /**\r\n * Get the current portal environment.\r\n */\r\n public static portalEnvironment(): string { \r\n return (clientAppSettings.environment).toLowerCase(); \r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Utils/Environment.ts","import { clientAppSettings } from '../Models/ClientAppSettings';\r\n\r\nexport class FlightUtils {\r\n public static get IsFirstPartyAuthFlighted(): boolean {\r\n const features = clientAppSettings.flightedFeatures;\r\n return _.contains(features, \"firstPartyAuth\");\r\n }\r\n\r\n public static get areMigrationRequiredBotsDisabled(): boolean {\r\n const features = clientAppSettings.flightedFeatures;\r\n return _.contains(features, \"disableMigrationRequiredBots\");\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/Utils/FlightUtils.ts","/**\r\n * Current page status.\r\n */\r\nexport enum PageStatusFlags {\r\n Ready = 0,\r\n LoadingBot = 1,\r\n LoggingIn = 1 << 1,\r\n WaitingForBotReady = 1 << 2,\r\n WaitingForAppInsightsReady = 1 << 3,\r\n WaitingForWebChatToken = 1 << 4\r\n}\r\n\r\n/**\r\n * Page loading status.\r\n */\r\nexport interface IPageStatus {\r\n hasPageStatusFlag(flag: PageStatusFlags): boolean;\r\n isReady(): boolean;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/ComponentDataModels/IPageStatus.ts","import * as Rest from \"../../Generated/RestClient\";\r\nfunction getAzureResourceId(bot: Rest._BotService) : string {\r\n \r\n return bot && bot.ProvisionInfo ?\r\n `/subscriptions/${bot.ProvisionInfo.SubscriptionId}/resourceGroups/${bot.ProvisionInfo.ResourceGroupName}/providers/Microsoft.Web/sites/${bot.ProvisionInfo.SiteName}`\r\n : null\r\n}\r\n\r\nexport default getAzureResourceId;\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Services/botResourceId.ts","/// \r\n\r\nimport Rest = require(\"../../Generated/RestClient\");\r\nimport { readCookie } from \"../../../../Intercom.ReactUI/Utils/Cookies\";\r\n\r\n/**\r\n * General Authentication helpers.\r\n */\r\nexport class AuthenticationUtility {\r\n /**\r\n * Replace the signed in user auth token and \"bind\" the token to the ajax rest headers.\r\n */\r\n public static bindAzureAccessToken(signedInUser: Rest.AuthData, authenticationToken: string, fixTenantId: boolean = false): void {\r\n if (!authenticationToken) {\r\n throw new Error(\"authenticationToken must be defined.\");\r\n }\r\n if (!signedInUser) {\r\n throw new Error(\"signedInUser must be defined.\");\r\n }\r\n\r\n signedInUser.AzureToken = authenticationToken;\r\n const headers = fixTenantId ? { \"X-BF-OAUTH-TOKEN\": authenticationToken, \"X-BF-TenantId\": signedInUser.TenantId } \r\n : { \"X-BF-OAUTH-TOKEN\": authenticationToken };\r\n Rest.ajaxHeaders = _.extend(Rest.ajaxHeaders || {}, headers);\r\n }\r\n\r\n /**\r\n * Copy the CSRF token in the cookie to the ajax rest headers.\r\n * @returns true if there was a token to copy otherwise false.\r\n */\r\n public static setRequestVerificationHeader(): boolean {\r\n const requestVerificationToken = this.getCsrfToken();\r\n if (requestVerificationToken) {\r\n Rest.ajaxHeaders = _.extend(Rest.ajaxHeaders || {}, { 'X-Csrf-Token': requestVerificationToken });\r\n }\r\n\r\n return !!requestVerificationToken;\r\n }\r\n\r\n /*\r\n * Gets the CSRF form token from the client-accessible cookie.\r\n */\r\n public static getCsrfToken(): string {\r\n return readCookie('Csrf-Token');\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Utility/AuthenticationUtility.ts","import * as React from \"react\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport { BotTab } from \"../../Views/BotTab\";\r\nimport { BlockRowInputTooltipDisposer, BlockRowInputLabel } from \"../../Views/Shared/BlockRowInputLabel\";\r\nimport { IconFile } from \"./BotPage\";\r\nimport { BotAppContinuousIntegration, BotAppCIState } from \"./BotAppContinuousIntegration\";\r\nimport {BotUtils} from \"../../Utils/BotUtils\";\r\nimport {KuduClient,ArmClient} from \"../../Services/index\";\r\nimport getBotResourceId from \"../Services/botResourceId\";\r\nimport { BladeType } from \"../Services/azurePortalLinks\";\r\nimport {getBotZipBlobUrl} from \"../Services/downloadBotSrc\";\r\n\r\nexport interface BotAppSettingsProps extends React.Props {\r\n openBlade(bladType: BladeType): void;\r\n handleChange(field: string, value: string): void;\r\n onSave(): void;\r\n onDropIcon(files: IconFile[]): void;\r\n downloadZip(): JQueryPromise;\r\n onZipDownloaded(blobUrl: string): void;\r\n initialBot: Rest.BotService;\r\n scmType: JQueryPromise;\r\n v4UI?: boolean;\r\n kuduClient: JQueryPromise;\r\n armClient: JQueryPromise;\r\n}\r\n\r\nexport interface BotAppSettingsState {\r\n bot?: Rest.BotService;\r\n botDeploymentLogFound?: boolean;\r\n pendingZipDownload?: boolean;\r\n zipBlobUrl?: string;\r\n scmType?: string;\r\n}\r\n\r\nexport const defaultCIState : BotAppCIState = {\r\n repoProvider: 'vso',\r\n repoToken: '',\r\n repoUserName: ''\r\n};\r\n\r\nexport class BotAppSettings extends React.Component\r\n implements BotTab {\r\n private prevToolTipCloser: BlockRowInputTooltipDisposer;\r\n\r\n constructor(props: BotAppSettingsProps) {\r\n super(props);\r\n this.state = { bot: props.initialBot };\r\n }\r\n\r\n public setBotId(botId: string) {\r\n // do nothing\r\n }\r\n\r\n public setBot(bot: Rest.BotService) {\r\n this.setState({ bot: bot } as any);\r\n }\r\n\r\n private onTooltipVisibilityChanged(visible: boolean, closer: BlockRowInputTooltipDisposer) {\r\n if (visible) {\r\n if (this.prevToolTipCloser) {\r\n this.prevToolTipCloser();\r\n this.prevToolTipCloser = null;\r\n }\r\n this.prevToolTipCloser = closer;\r\n }\r\n }\r\n\r\n public componentWillUpdate(nextProps: BotAppSettingsProps, nextState: BotAppSettingsState)\r\n {\r\n if (nextState.scmType && this.state.scmType != nextState.scmType)\r\n {\r\n this._scmType = nextState.scmType;\r\n }\r\n }\r\n\r\n public componentDidUpdate(prevProps: BotAppSettingsProps, prevState: BotAppSettingsState) {\r\n if (this.botCI && this._scmType) {\r\n this.botCI.resolveScmType();\r\n this._scmType = null;\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n return this.renderAzureSettings();\r\n }\r\n\r\n private get isABSv1Bot() : boolean {\r\n return BotUtils.isABSv1Bot(this.state.bot) && !BotUtils.isABSCodeBot(this.state.bot);\r\n }\r\n\r\n private _scmType: string;\r\n private get scmType() : JQueryPromise {\r\n return this._scmType ? $.Deferred().resolve(this._scmType) : this.props.scmType;\r\n }\r\n \r\n private botCI : BotAppContinuousIntegration;\r\n\r\n private showFunctionEditor = false;\r\n private debugContinuousIntegration = false;\r\n private renderAzureSettings(): JSX.Element {\r\n\r\n return (\r\n

    \r\n {\r\n this.isABSv1Bot || this.debugContinuousIntegration ?\r\n ( this.props.openBlade(blade) }\r\n downloadZip={this.props.downloadZip}\r\n bot={this.state.bot}\r\n scmType={() => this.scmType}\r\n bladeUrl={() => $.Deferred().resolve('')}\r\n botDeploymentLogFound={this.state && this.state.botDeploymentLogFound}\r\n pendingDownload={this.state && this.state.pendingZipDownload}\r\n blobUrl={getBotZipBlobUrl(this.state.bot ? this.state.bot.Id : null, this.state.zipBlobUrl)}\r\n onZipDownloaded={this.props.onZipDownloaded}\r\n kuduClient={() => this.props.kuduClient}\r\n armClient={() => this.props.armClient}\r\n botRsrcId={$.Deferred().resolve(getBotResourceId(this.state.bot))}\r\n toggleTip={null}\r\n ref={x => this.botCI = x}\r\n />)\r\n : null\r\n }\r\n {\r\n this.isABSv1Bot && this.showFunctionEditor ?\r\n (
    \r\n
    \r\n

    Edit as Azure function

    \r\n

    Open bot code as Azure function (experimental)

    \r\n
    \r\n \r\n
    \r\n )\r\n : null\r\n }\r\n
    \r\n
    \r\n

    Application settings

    \r\n

    Manage environment variables and connection strings for your bot app.

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    Advanced settings

    \r\n

    Manage your bot like any other App Service instance.

    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/BotAppSettings.tsx","import * as React from \"react\";\r\n\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport {clientAppSettings} from \"../../Models/ClientAppSettings\";\r\nimport {GenericDialog} from \"../../Dialogs/GenericDialog\";\r\nimport * as RejectionDetailsView from \"./RejectionDetailsPanel\";\r\nimport {ChannelLogPanelProps} from \"../../Views/ChannelLogPanel\";\r\nimport {ChannelEnabledPanelProps} from \"../../Views/ChannelEnabledPanel\";\r\nimport {BotTab} from \"../../Views/BotTab\";\r\n\r\nimport { Resources } from \"../../Resources/Intercom.Resources.DevPortal\";\r\n\r\nexport interface ChannelDataHandlers {\r\n showEmbedHandler: (_lastFocus: React.ReactInstance) => void;\r\n refreshChannelLogs: (bot: Rest.BotService) => void;\r\n channelStateChangeHandler: (column: string, id: string, isOn: boolean) => void;\r\n channelLogs: Rest.BotLog[];\r\n channelLogDisplayHandler: (channelLogDisplay: ChannelLogPanelProps) => void;\r\n channelEnabledDisplayHandler: (channelEnabledDisplay: ChannelEnabledPanelProps) => void;\r\n getChannelPublishStatus: (channelId: string) => Rest.ReviewStatusDetail;\r\n}\r\n\r\nexport interface BotChannelsProps extends React.Props {\r\n bot: Rest.BotService;\r\n userCanWriteBot: boolean;\r\n className?: string;\r\n channelDataHandlers: ChannelDataHandlers;\r\n channelConfigClickHandler?: (string) => void;\r\n}\r\n\r\ninterface IssuePrompt {\r\n (issues: any[], template: string): string;\r\n}\r\n\r\ninterface TryOnChannel {\r\n (channel: Rest.Channel, template: string): string;\r\n}\r\n\r\nexport interface BotChannelsState {\r\n}\r\n\r\n// These channels should not be shown in the dev portal\r\n// omnichannel and searchassistant only support the Ibiza react config page\r\n// conversationconductor and conversationconductorivr doesn't have UI\r\n// Skypeforbusiness, kik and kaizala are deprecated\r\nexport const hiddenChannels = [\r\n 'omnichannel',\r\n 'searchassistant',\r\n 'skypeforbusiness',\r\n 'kik',\r\n 'kaizala',\r\n 'conversationconductor',\r\n 'conversationconductorivr'\r\n]\r\n\r\n// These channels are hidden in unconfigured channels list\r\nexport const hiddenChannelsForNew = [\r\n 'telephony'\r\n]\r\n\r\nexport class BotChannels extends React.Component implements BotTab {\r\n lastFocus?: React.ReactInstance;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n private statusClassNameForSeverity(sev: Rest.SeverityType): string {\r\n switch (sev) {\r\n case Rest.SeverityType.Error:\r\n return 'bot-status-color-error';\r\n case Rest.SeverityType.Warning:\r\n return 'bot-status-color-warning';\r\n default:\r\n return 'bot-status-color-ok';\r\n }\r\n }\r\n\r\n private getChannelLogEntries(channelId: string): Rest.BotLog[] {\r\n if (this.props.channelDataHandlers.channelLogs) {\r\n return this.props.channelDataHandlers.channelLogs.filter(entry => { return entry.ChannelId === channelId; });\r\n }\r\n return [];\r\n }\r\n\r\n private isChannelEnabled(channelId: string): boolean {\r\n return this.props.bot.EnabledChannels.indexOf(channelId) >= 0;\r\n }\r\n\r\n private _issuePrompt: IssuePrompt;\r\n private get issuePrompt(): IssuePrompt {\r\n if (!this._issuePrompt) {\r\n this._issuePrompt = (issues: any[], template: string) => {\r\n let issueTemplate = _.template(Resources.issuesTemplate);\r\n let warningTemplate = _.template(Resources.warningTemplate);\r\n switch (template) {\r\n case Resources.issuesTemplate:\r\n return issueTemplate(issues);\r\n case Resources.warningTemplate:\r\n return warningTemplate(issues);\r\n default:\r\n return issues ? Resources.running : '';\r\n }\r\n }\r\n }\r\n return this._issuePrompt;\r\n }\r\n\r\n private getChannelLogDisplay(channelId: string, channelName: string): ChannelLogPanelProps {\r\n\r\n let channelLog = this.getChannelLogEntries(channelId);\r\n\r\n let statusClassName = 'bot-status-color-ok';\r\n if (channelLog.length > 0) {\r\n let maxSeverityLogEntry = channelLog.reduce((prev, curr, i, arr) => { return prev.Severity > curr.Severity ? prev : curr; });\r\n statusClassName = this.statusClassNameForSeverity(maxSeverityLogEntry.Severity);\r\n }\r\n\r\n let issueTemplateName = Resources.running;\r\n switch (statusClassName) {\r\n case 'bot-status-color-warning':\r\n issueTemplateName = Resources.warningTemplate;\r\n break;\r\n case 'bot-status-color-error':\r\n issueTemplateName = Resources.issuesTemplate;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n let title = this.issuePrompt(channelLog, issueTemplateName);\r\n\r\n return {\r\n botId: this.props.bot.Id,\r\n channelId: channelId,\r\n title: title,\r\n channelLog: channelLog,\r\n statusClassName: statusClassName,\r\n channelName: channelName,\r\n channelLogChangeHandler: () => { this.props.channelDataHandlers.refreshChannelLogs(this.props.bot); },\r\n dialog: null\r\n };\r\n }\r\n\r\n private getChannelLog(channelId: string, channelName: string): JSX.Element {\r\n\r\n var channelLogDisplay = this.getChannelLogDisplay(channelId, channelName);\r\n\r\n if (channelLogDisplay.channelLog.length > 0) {\r\n return (\r\n this.props.channelDataHandlers.channelLogDisplayHandler(channelLogDisplay) }\r\n >\r\n {channelLogDisplay.title}\r\n \r\n );\r\n }\r\n else {\r\n return (\r\n \r\n {channelLogDisplay.title}\r\n \r\n );\r\n }\r\n }\r\n\r\n private getContact(channelId: string): Rest.ContactInfo {\r\n var contacts = this.props.bot.Contacts;\r\n for (var i = 0; i < contacts.length; i++) {\r\n if (contacts[i].ChannelId === channelId) {\r\n return contacts[i];\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public static getConfigUrl(botId: string, channelId: string): string {\r\n var path = clientAppSettings.applicationPath === '/' ? '' : clientAppSettings.applicationPath;\r\n return `${path}/bots/channels?id=${botId}&channelId=${channelId}`;\r\n }\r\n\r\n private getConfigLink(channel: Rest.Channel, innerElement: JSX.Element, labelledby: string): JSX.Element {\r\n if (this.props.bot.Id) {\r\n var path = clientAppSettings.applicationPath === '/' ? '' : clientAppSettings.applicationPath;\r\n var configUrl;\r\n var target;\r\n var handle;\r\n if (channel.DeveloperConfigurationUrl) {\r\n configUrl = `${path}/ConfigChannel.aspx?botId=${this.props.bot.Id}&channelId=${channel.Id}`;\r\n target = '_blank';\r\n handle = false;\r\n } else {\r\n configUrl = BotChannels.getConfigUrl(this.props.bot.Id, channel.Id);\r\n target = '_self';\r\n handle = true;\r\n }\r\n\r\n // disable the config link if user can't write the bot\r\n let disabled = !this.props.userCanWriteBot;\r\n // for v1 bot, skype channel is no longer editable\r\n // unless it has previously been configured successfully (based on the\r\n // presence of skype contact info)\r\n if (!disabled && this.props.bot.Version === \"1.0\" && channel.Id === \"skype\") {\r\n disabled = !this.getContact(channel.Id);\r\n }\r\n\r\n return {\r\n if (disabled) {\r\n x.preventDefault();\r\n } else if (handle) {\r\n x.preventDefault();\r\n this.props.channelConfigClickHandler(channel.Id);\r\n } else {\r\n window.open(configUrl, target).focus();\r\n }\r\n }\r\n }\r\n >{innerElement};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private renderChannelPublishStatus(channel: Rest.Channel): JSX.Element {\r\n\r\n const reviewStatus = this.props.channelDataHandlers.getChannelPublishStatus(channel.Id);\r\n if (!reviewStatus) {\r\n return --;\r\n }\r\n\r\n let className = '';\r\n switch (reviewStatus.ReviewStatus) {\r\n case Rest.ReviewStatus.InReview:\r\n className = 'publish-in-review';\r\n break;\r\n case Rest.ReviewStatus.Rejected:\r\n className = 'publish-rejected';\r\n break;\r\n case Rest.ReviewStatus.NotSubmitted:\r\n className = '';\r\n break;\r\n case Rest.ReviewStatus.Approved:\r\n className = 'publish-approved';\r\n break;\r\n }\r\n\r\n if (reviewStatus.ReviewStatus === Rest.ReviewStatus.Rejected) {\r\n return (\r\n
    \r\n this.togglePublishPopoutVisibility()}>{Resources.channelRejected}\r\n \r\n \r\n\r\n
    \r\n {\r\n this.togglePublishPopoutVisibility();\r\n this.showRejectionComments(reviewStatus.Comment);\r\n }}>{Resources.channelMoreDetails}\r\n\r\n {\r\n location.href = \"/bots/channels?id=\" + this.props.bot.Id + \"&channelId=\" + channel.Id;\r\n }\r\n }>{Resources.channelResubmit}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n {Rest.ReviewStatus[reviewStatus.ReviewStatus]}\r\n );\r\n }\r\n\r\n private showRejectionComments(comment: string): void {\r\n let dialog = new GenericDialog(RejectionDetailsView.RejectionDetailsPanel, {\r\n message: comment\r\n }, { dialogClass: 'rejection-details-dialog' });\r\n dialog.showDialog();\r\n }\r\n\r\n private togglePublishPopoutVisibility() {\r\n let content = $(\".m-temp-popout-content\");\r\n\r\n if (content.hasClass(\"visible\")) {\r\n content.removeClass(\"visible\");\r\n } else {\r\n content.addClass(\"visible\");\r\n }\r\n }\r\n\r\n private _tryOn: TryOnChannel;\r\n private get tryOn(): TryOnChannel {\r\n if (!this._tryOn) {\r\n this._tryOn = (channel: Rest.Channel, template: string) => {\r\n let channelTemplate = _.template(Resources.tryOnChannel);\r\n if (template === Resources.tryOnChannel) {\r\n return channelTemplate(channel);\r\n } else {\r\n return '';\r\n }\r\n }\r\n }\r\n return this._tryOn;\r\n }\r\n\r\n private renderConfiguredChannels(channels: Rest.Channel[]): JSX.Element {\r\n let configuredChannels: JSX.Element[] = [];\r\n\r\n channels.forEach(channel => {\r\n if (hiddenChannels.indexOf(channel.Id.toLowerCase()) >= 0) {\r\n return;\r\n }\r\n let contact = this.getContact(channel.Id);\r\n\r\n let contactHref = this.getContactHref(contact);\r\n let channelDisplayName = channel.Name;\r\n if (channel.Id.toLowerCase() === 'skypeforbusiness') {\r\n channelDisplayName = `${channelDisplayName} ${Resources.deprecatedChannel}`;\r\n }\r\n\r\n let anchorTitle = this.tryOn(channel, Resources.tryOnChannel);\r\n\r\n let configuredChannelMobile = (\r\n
    \r\n
    \r\n {channel.Name}\r\n {\r\n contactHref\r\n ? {channelDisplayName}\r\n : {channelDisplayName}\r\n }\r\n
    \r\n {\r\n this.isChannelEnabled(channel.Id)\r\n ? (
    {this.getChannelLog(channel.Id, channel.Name)}
    )\r\n : (--)\r\n }\r\n
    {this.renderChannelPublishStatus(channel)}
    \r\n
    \r\n {\r\n this.props.userCanWriteBot ? this.getConfigLink(channel, (\r\n \r\n { Resources.channelEdit } { channel.Name }\r\n \r\n \r\n ), \"\") : null\r\n }\r\n
    \r\n
    \r\n );\r\n\r\n // Only add other channels if bot is not isolated or the channel is Direct Line\r\n if ( this.props.bot.IsIsolated !== true || channel.Id.toLowerCase() === 'directline') {\r\n configuredChannels.push(configuredChannelMobile);\r\n }\r\n });\r\n\r\n if (configuredChannels.length > 0) {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {configuredChannels}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n {Resources.NoChannelsConfigured}\r\n
    \r\n );\r\n }\r\n\r\n private renderUnconfiguredChannels(channels: Rest.Channel[]): JSX.Element {\r\n if (channels.length === 0) {\r\n return null;\r\n }\r\n\r\n // Only show the Direct Line channel if the bot is isolated to disable adding other channels.\r\n const featuredChannelsNames = this.props.bot.IsIsolated === true ? [\"directline\"] : [\"directline\", \"msteams\", \"webchat\", \"searchassistant\"];\r\n\r\n const featuredChannels: JSX.Element[] = [];\r\n const otherChannels: JSX.Element[] = [];\r\n channels.forEach(channel => {\r\n if (hiddenChannels.indexOf(channel.Id.toLowerCase()) >= 0) {\r\n return;\r\n }\r\n if (hiddenChannelsForNew.indexOf(channel.Id.toLowerCase()) >= 0) {\r\n return;\r\n }\r\n let channelDisplayName = channel.Name;\r\n // Featured channels:\r\n if (featuredChannelsNames.indexOf(channel.Id) > -1) {\r\n const iconLabelName: string = channel.Id + \"-icon-label\";\r\n const tile: JSX.Element = (\r\n
    \r\n \r\n { channelDisplayName }\r\n
    \r\n );\r\n const addLink: JSX.Element = this.getConfigLink(channel, tile, \"featured-channel-header\");\r\n if (addLink) {\r\n featuredChannels.push(addLink);\r\n }\r\n // Regular, unconfigured channels:\r\n } else if (this.props.bot.IsIsolated !== true) {\r\n const iconLabelName: string = channel.Id + \"-icon-label\";\r\n const tile: JSX.Element = (\r\n
    \r\n \r\n {channelDisplayName}\r\n
    \r\n );\r\n const addLink: JSX.Element = this.getConfigLink(channel, tile, \"more-channels-header\");\r\n if (addLink) {\r\n otherChannels.push(addLink);\r\n }\r\n }\r\n });\r\n\r\n if ((featuredChannels.length + otherChannels.length > 0) && this.props.bot.Version !== '1.0') {\r\n let featuredChannelsHeader: JSX.Element = null;\r\n let featuredChannelsElement: JSX.Element = null;\r\n if (featuredChannels.length > 0) {\r\n featuredChannelsHeader = (

    {Resources.AddAFeaturedChannelTitle}

    );\r\n featuredChannelsElement = (\r\n
    \r\n {featuredChannels}\r\n
    \r\n );\r\n }\r\n let otherChannelsHeader: JSX.Element = null;\r\n let otherChannelsElement: JSX.Element = null;\r\n if (otherChannels.length > 0 && this.props.bot.IsIsolated !== true) {\r\n otherChannelsHeader = (

    {Resources.MoreChannelsTitle}

    );\r\n otherChannelsElement = (\r\n
    \r\n {otherChannels}\r\n
    \r\n );\r\n }\r\n return (\r\n
    \r\n {featuredChannelsHeader}\r\n {featuredChannelsElement}\r\n {otherChannelsHeader}\r\n {otherChannelsElement}\r\n
    \r\n );\r\n }\r\n return null;\r\n }\r\n\r\n private _tempDOMElement: HTMLDivElement;\r\n\r\n private get tempDOMElement(): HTMLDivElement {\r\n if (!this._tempDOMElement) {\r\n this._tempDOMElement = document.createElement(\"div\");\r\n }\r\n return this._tempDOMElement;\r\n }\r\n\r\n private getContactHtml(contact: Rest.ContactInfo) : string {\r\n if (contact && contact.HtmlLink) {\r\n\r\n this.tempDOMElement.innerHTML = contact.HtmlLink;\r\n var aa = this.tempDOMElement.getElementsByTagName('a');\r\n if (aa) {\r\n var a = aa[0] as HTMLAnchorElement;\r\n var href = a.href;\r\n if (a.href.indexOf('http') === 0) {\r\n a.target = '_blank';\r\n }\r\n return this.tempDOMElement.innerHTML;\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n private getContactHref(contact: Rest.ContactInfo): string {\r\n const contactHtml = this.getContactHtml(contact);\r\n if (contactHtml) {\r\n return $(this.tempDOMElement).find('a').attr('href');\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n private getChannelIconUrl(channel: Rest.Channel): string {\r\n return channel.IconUrl;\r\n }\r\n\r\n public render(): JSX.Element {\r\n const allChannels = clientAppSettings.channels;\r\n const configuredChannelIds = this.props.bot.ConfiguredChannels;\r\n const configuredChannelInfos = allChannels.filter(channel => configuredChannelIds.indexOf(channel.Id) >= 0);\r\n const unconfiguredChannelInfos = allChannels.filter(channel => configuredChannelIds.indexOf(channel.Id) < 0);\r\n\r\n let embedCodeLink = null;\r\n // embedCode is retrieved via POST which implies write access\r\n if (configuredChannelInfos.length > 0 && this.props.userCanWriteBot && this.props.bot.IsIsolated !== true) {\r\n embedCodeLink =
    \r\n \r\n
    ;\r\n }\r\n\r\n return (\r\n
    \r\n

    {Resources.ConnectToChannelsTitle}

    \r\n {this.renderConfiguredChannels(configuredChannelInfos)}\r\n {embedCodeLink}\r\n\r\n {\r\n this.props.userCanWriteBot\r\n ? this.renderUnconfiguredChannels(unconfiguredChannelInfos)\r\n :null\r\n }\r\n
    \r\n );\r\n }\r\n\r\n public setBotId(botId: string) {\r\n // do nothing\r\n }\r\n\r\n public setBot(bot: Rest.BotService) {\r\n this.setState(_.extend({}, this.state, { bot: bot }));\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/BotChannels.tsx","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\n\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport { resourceStrings, AutoResizeTextArea, FooterControl } from \"../../../../Intercom.ReactUI/Views/index\";\r\nimport { clientAppSettings } from \"../../Models/ClientAppSettings\";\r\nimport { IconFile, SubscriptionsKeys } from \"./BotPage\";\r\nimport { BotEditorRow } from \"./BotEditorRow\";\r\nimport { BotVersionEditor } from \"../../Views/BotVersionEditor\";\r\nimport { BotIconControl } from \"../Views/BotIconControl\";\r\nimport * as Editor from '../../Views/Shared/IBotEditor';\r\nimport { BlockRowInputTooltipDisposer, BlockRowInputLabel } from '../../Views/Shared/BlockRowInputLabel';\r\nimport { UserAgreementConsentFormFields } from '../../Views/UserAgreementConsentFormFields';\r\nimport { BotAppSettings, BotAppSettingsProps } from \"./BotAppSettings\";\r\nimport { BotUtils } from \"../../Utils/BotUtils\";\r\nimport isInFrame from \"../../../../Intercom.ReactUI/Utils/InFrame\";\r\n\r\nexport interface BotEditorProps extends React.Props {\r\n initialBot: Rest.BotService;\r\n inCreateMode: boolean;\r\n isAdmin: boolean;\r\n botAppSettingsProps: BotAppSettingsProps;\r\n onDropIcon: (files: IconFile[]) => void;\r\n isFeatureFlighted: (feature: string) => boolean;\r\n onSystemTagsChange(tags: string): void;\r\n onClickButton: React.EventHandler>;\r\n onSetEditor: (editor: BotEditor) => void;\r\n onSetBotAppSettings(botAppSettings: BotAppSettings);\r\n}\r\n\r\nexport interface BotEditorState {\r\n bot?: Rest.BotService;\r\n termAcknowledged?: boolean;\r\n iconFile?: IconFile;\r\n subscriptionKeys?: SubscriptionsKeys;\r\n errors?: Editor.ErrorDict;\r\n isBusy?: boolean;\r\n previousTooltipDisposer?: BlockRowInputTooltipDisposer;\r\n}\r\n\r\nexport class BotEditor extends React.Component implements Editor.IBotEditor {\r\n public static createNewState(bot: Rest.BotService): BotEditorState {\r\n return {\r\n bot: bot,\r\n errors: {}\r\n };\r\n }\r\n\r\n constructor(props: BotEditorProps) {\r\n super(props);\r\n\r\n this.state = BotEditor.createNewState(props.initialBot);\r\n }\r\n\r\n private onTooltipVisiblityChanged = (visible: boolean, disposer: BlockRowInputTooltipDisposer) => {\r\n if (this.state.previousTooltipDisposer === disposer) {\r\n return;\r\n }\r\n\r\n // If it's a different element call disposer for old one first\r\n if (this.state.previousTooltipDisposer) {\r\n this.state.previousTooltipDisposer();\r\n }\r\n\r\n this.setState({previousTooltipDisposer: disposer});\r\n };\r\n\r\n private handleArrayIndexedObjectChange(fieldName: string, index: number, childFieldName: string, ev: React.ChangeEvent): void {\r\n this.state.bot[fieldName][index][childFieldName] = ev.target.value;\r\n if (ev.target.value) {\r\n delete this.state.errors['#' + ev.target.id];\r\n }\r\n this.setState(this.state);\r\n }\r\n\r\n private handleCheckboxChange(fieldName: string, ev: React.ChangeEvent): void {\r\n this.state.bot[fieldName] = ev.target.checked;\r\n this.setState(this.state);\r\n }\r\n\r\n public handleChange = (fieldName: string, ev) => {\r\n this.state.bot[fieldName] = ev.target.value;\r\n if (ev.target.value) {\r\n delete this.state.errors['#' + ev.target.id];\r\n }\r\n this.setState(this.state);\r\n }\r\n\r\n public handleArrayChange = (fieldName: string, ev) => {\r\n this.state.bot[fieldName] = ev.target.value.split(',');\r\n if (ev.target.value) {\r\n delete this.state.errors['#' + ev.target.id];\r\n }\r\n this.setState(this.state);\r\n }\r\n\r\n componentDidMount() {\r\n $('#page-content').scrollTop(0);\r\n }\r\n\r\n public render(): JSX.Element {\r\n var buttons = this.renderButtons();\r\n const header: JSX.Element = this.props.inCreateMode ?

    Tell us about your bot

    : undefined;\r\n return (\r\n
    \r\n
    \r\n {header}\r\n {this.renderFields()}\r\n {buttons}\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n private hasVersionEndpoint(version: string) {\r\n for (var i = 0; i < this.state.bot.Endpoints.length; i++) {\r\n if (this.state.bot.Endpoints[i].Version === version) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private renderAppInsightsDashboardFields(x: Rest.BotService, reflectedName: any): JSX.Element {\r\n return (\r\n
    \r\n Learn more\"\r\n tipAsHtml={true}\r\n inputPlaceholder=\"API key (User-Generated Application Insights API key)\"\r\n onTooltipVisibilityChanged={this.onTooltipVisiblityChanged}\r\n password={true} />\r\n\r\n Learn more\"\r\n tipAsHtml={true}\r\n inputPlaceholder=\"Application ID (Application Insights Application ID)\"\r\n onTooltipVisibilityChanged={this.onTooltipVisiblityChanged} />\r\n
    );\r\n }\r\n\r\n private renderFields(): JSX.Element {\r\n var x = {} as Rest.BotService;\r\n\r\n function reflectedName(value: any) {\r\n for (var key in x) {\r\n delete x[key];\r\n return key;\r\n }\r\n return null;\r\n }\r\n\r\n // get errors\r\n var agentDescError = this.state.errors[reflectedName(x.Description = null)];\r\n\r\n // set up error classes\r\n const errorClass = \" input-in-error\";\r\n var agentDescErrorClass = agentDescError ? errorClass : '';\r\n\r\n var behavior: JSX.Element;\r\n if (this.hasVersionEndpoint('1.0')) {\r\n var behaviorDisabled = (this.state.bot.Version !== '1.0');\r\n var behaviorNote = this.state.bot.Endpoints.length > 1 ? Version 1.0 only : null;\r\n var behavior = (\r\n
    \r\n

    Behavior {behaviorNote}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    Even if your bot isn't addressed directly, it will be able to listen and respond to all messages in the conversation.
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    Translation provided by Bing Translate (privacy at http://aka.ms/translatorprivacy) and requires\r\n an additional update to your privacy statement. See the Bot Framework Developer Code of Conduct for details.
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n const azureSettings = this.renderAzureSettings();\r\n\r\n return (\r\n
    \r\n {\r\n azureSettings ?\r\n
    \r\n {azureSettings}\r\n
    \r\n : null\r\n }\r\n
    \r\n

    Bot profile

    \r\n \r\n \r\n\r\n \r\n\r\n
    \r\n \r\n this.handleChange('Description', ev)} />\r\n
    {agentDescError}
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n

    Configuration

    \r\n ) => this.handleChange(fieldName, ev)}\r\n handleArrayIndexedObjectChange={(fieldName: string, index: number, childFieldName: string, ev: React.ChangeEvent) => this.handleArrayIndexedObjectChange(fieldName, index, childFieldName, ev)}\r\n handleCheckboxChange = {(fieldName: string, ev: React.ChangeEvent) => this.handleCheckboxChange(fieldName, ev)}\r\n v1Secret={this.state.subscriptionKeys ? this.state.subscriptionKeys.primary : ''}\r\n isAppTypeFlighted={this.props.isFeatureFlighted('appTypeEnabled')}\r\n errors={this.state.errors} />\r\n
    \r\n {behavior}\r\n\r\n
    \r\n

    Analytics

    \r\n

    Enable Analytics for your bot via Azure Application Insights. \r\n Learn more.\r\n

    \r\n Learn more\"\r\n tipAsHtml={true}\r\n inputPlaceholder=\"Instrumentation key (Azure Application Insights key)\"\r\n onTooltipVisibilityChanged={this.onTooltipVisiblityChanged} />\r\n\r\n {this.renderAppInsightsDashboardFields(x, reflectedName) }\r\n
    \r\n\r\n
    \r\n

    Admin

    \r\n\r\n \r\n\r\n
    \r\n\r\n {this.renderAdminTile() }\r\n
    \r\n );\r\n }\r\n\r\n private renderAzureSettings(): JSX.Element {\r\n return (this.props.botAppSettingsProps ?\r\n \r\n : null);\r\n }\r\n\r\n private renderAdminTile(): JSX.Element {\r\n if (!this.props.isAdmin) {\r\n return null;\r\n }\r\n return (\r\n
    \r\n

    BF Admin

    \r\n {this.renderBlockedRow()}\r\n {this.renderSystemTagsEditor()}\r\n
    \r\n );\r\n }\r\n\r\n /**\r\n * TODO: move all system tags (featured, blocked, approved, rejected, feature display order, etc)\r\n * editing rendering to a derived admin editor page and move the code to AdminClient to avoid info disclosure.\r\n */\r\n private renderSystemTagAsCheckbox(tag: string, prompt: string): JSX.Element {\r\n let ref = `checkbox_${tag}`;\r\n let id = `agent_${tag}`;\r\n let checked = this.state.bot.SystemHashtags && this.state.bot.SystemHashtags.indexOf(tag) >= 0;\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n this.syncSystemTag(e, tag, ref)} />\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n private renderBlockedRow(): JSX.Element {\r\n return this.renderSystemTagAsCheckbox('blocked', 'Block bot in ' + resourceStrings.botDirectory + ' and switch');\r\n }\r\n\r\n private onSystemTagsChange(x: React.FormEvent) {\r\n let text = x.currentTarget['value'];\r\n let tags = text.split(',').map(x => x.trim());\r\n this.props.onSystemTagsChange(tags);\r\n }\r\n\r\n private renderSystemTagsEditor(): JSX.Element {\r\n return (\r\n
    \r\n \r\n this.onSystemTagsChange(x)} />\r\n
    \r\n );\r\n }\r\n\r\n private syncSystemTag(e: React.FormEvent, tag: string, ref: string) {\r\n var $tags = $(ReactDOM.findDOMNode(this.refs['systemTags']));\r\n var $checkbox = $(ReactDOM.findDOMNode(this.refs[ref]));\r\n var on = !!$checkbox.is(':checked');\r\n var tags = $tags.val().split(',').filter(t => t.length);\r\n if (on) {\r\n tags.push(tag);\r\n } else {\r\n tags = tags.filter(t => t != tag);\r\n }\r\n this.props.onSystemTagsChange(tags);\r\n }\r\n\r\n private getSystemTags(): string {\r\n return this.state.bot.SystemHashtags ? this.state.bot.SystemHashtags.join(',') : '';\r\n }\r\n\r\n private onAgreementChanged = (enabled: boolean) => {\r\n let mutatedState = _.extend({}, this.state) as BotEditorState;\r\n if (mutatedState) {\r\n mutatedState.termAcknowledged = enabled;\r\n }\r\n\r\n this.setState(mutatedState);\r\n }\r\n\r\n private renderButtons(): JSX.Element {\r\n //\r\n // Do not remove cancel-button/register-button/delete-button from the classnames below unless you update BotEditController::onButtonClicked\r\n //\r\n var cancelButton = ;\r\n\r\n if (this.props.inCreateMode) {\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n { resourceStrings.register }\r\n \r\n {cancelButton}\r\n
    \r\n );\r\n }\r\n else {\r\n var deleteButton = null as JSX.Element;\r\n var actionButton = null as JSX.Element;\r\n\r\n deleteButton = (\r\n isInFrame() ? null :\r\n ()\r\n );\r\n\r\n actionButton = (\r\n \r\n );\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {cancelButton}\r\n {actionButton}\r\n
    \r\n
    \r\n {deleteButton}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/BotEditor.tsx","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\n\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport {NavLinks, HeaderControl, SmallHeaderNavLinks, SearchControl, JumboHeadControl, resourceStrings} from \"../../../../Intercom.ReactUI/Views/index\";\r\nimport {clientAppSettings} from \"../../Models/ClientAppSettings\";\r\nimport {DropdownMenu, DropdownMenuItem} from \"../../Views/DropdownMenu\";\r\nimport {ControllerBase, isBrowserSupported} from \"../Controllers/ControllerBase\";\r\nimport {getSignInUrl} from \"../../Utils/Links\";\r\nimport {SearchablePageProps} from \"./MasterPage\";\r\nimport { IAnnouncements } from \"../../DevPortalAppBase\";\r\n\r\nexport interface MasterPageHeaderProps extends SearchablePageProps {\r\n controller: ControllerBase;\r\n showLinks: boolean;\r\n showJumboHeader: boolean;\r\n showUserMenu: boolean;\r\n showSearch: boolean;\r\n showEnvironment: boolean;\r\n showMainNavLink: boolean;\r\n isReviewer: () => boolean;\r\n isAdmin: () => boolean;\r\n signedInUser: () => Rest.AuthData;\r\n renderHiddenFrameToCheckAzureSingleSignOn: () => JSX.Element;\r\n onSignOutClicked: () => void;\r\n onAccountClicked: () => void;\r\n isRoutableUrl: (url: string) => boolean;\r\n announcements: IAnnouncements;\r\n}\r\n\r\nexport interface MasterPageHeaderState {\r\n searchString?: string;\r\n expandSearch?: boolean;\r\n}\r\n\r\nfunction SeverityEnumToIcon(s: Rest.AnnouncementSeverity): string {\r\n switch (s) {\r\n case Rest.AnnouncementSeverity.Error:\r\n return 'm-icon-AlertCircle severity-error';\r\n case Rest.AnnouncementSeverity.Good:\r\n return 'm-icon-CompletedSolid severity-good';\r\n case Rest.AnnouncementSeverity.Information:\r\n return 'm-icon-InfoSolid severity-info';\r\n case Rest.AnnouncementSeverity.Warning:\r\n return 'm-icon-AlertTriangle severity-warn';\r\n }\r\n return '';\r\n}\r\n\r\nfunction SeverityEnumToText(s: Rest.AnnouncementSeverity): string {\r\n switch (s) {\r\n case Rest.AnnouncementSeverity.Error:\r\n return resourceStrings.announcements.types.error;\r\n case Rest.AnnouncementSeverity.Good:\r\n return resourceStrings.announcements.types.good;\r\n case Rest.AnnouncementSeverity.Information:\r\n return resourceStrings.announcements.types.info;\r\n case Rest.AnnouncementSeverity.Warning:\r\n return resourceStrings.announcements.types.warn;\r\n }\r\n return '';\r\n}\r\n\r\nexport class MasterPageHeader extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n };\r\n }\r\n\r\n private smallHeaderNavClick(index) {\r\n switch (index) {\r\n case SmallHeaderNavLinks.root:\r\n this.props.controller.app.navigate('/');\r\n break;\r\n case SmallHeaderNavLinks.mybots:\r\n this.props.controller.app.navigate('/bots');\r\n break;\r\n case SmallHeaderNavLinks.documentation:\r\n window.open('https://docs.microsoft.com/en-us/bot-framework/', '_blank');\r\n break;\r\n case SmallHeaderNavLinks.blog:\r\n window.open('https://blog.botframework.com', '_blank');\r\n break;\r\n case SmallHeaderNavLinks.register:\r\n this.props.controller.app.navigate('/bots/new');\r\n break;\r\n case SmallHeaderNavLinks.create:\r\n this.props.controller.app.navigate('/bots/provision');\r\n break;\r\n }\r\n }\r\n\r\n private toggleSearch() {\r\n var opened = _.isUndefined(this.state.expandSearch) ? true : !this.state.expandSearch;\r\n this.setState(_.extend(this.state, { expandSearch: opened }));\r\n }\r\n\r\n render(): JSX.Element {\r\n let navLinks: string[] = [];\r\n let bell = null as JSX.Element;\r\n let userInfo = null as JSX.Element;\r\n let searchControl = null as JSX.Element;\r\n\r\n const announcements = this.props.announcements && this.props.announcements.all || [];\r\n const announcementsIdCounts = this.props.announcements && this.props.announcements.shownIdCount || {};\r\n\r\n if (this.props.showLinks) {\r\n navLinks = [\r\n '/bots',\r\n 'https://docs.microsoft.com/en-us/bot-framework/',\r\n clientAppSettings.homeUrl,\r\n 'https://blog.botframework.com'\r\n ];\r\n\r\n if (this.props.showUserMenu && this.props.signedInUser) {\r\n let signedInUser = this.props.signedInUser();\r\n if (signedInUser) {\r\n userInfo = (\r\n \r\n );\r\n }\r\n else {\r\n userInfo = (\r\n );\r\n }\r\n\r\n if (this.props.announcements && this.props.announcements.isFeatureFlighted) {\r\n const hasUnreadAnnouncements = announcements.reduce((accumulator, current) => (accumulator || announcementsIdCounts[current.Id] == 0), false);\r\n const bellIconId = hasUnreadAnnouncements ? \"svgicon-bell-dot\" : \"svgicon-bell\";\r\n bell = (\r\n \r\n );\r\n }\r\n }\r\n\r\n if (this.props.showSearch) {\r\n searchControl = this.props.isAdmin() || this.props.isReviewer() ? (\r\n \r\n ) : null;\r\n }\r\n }\r\n\r\n let userMenu: JSX.Element = null;\r\n if (this.props.showUserMenu && this.props.signedInUser) {\r\n let signedInUser = this.props.signedInUser();\r\n if (signedInUser) {\r\n userMenu = (\r\n \r\n \r\n
    {signedInUser.FirstName} {signedInUser.LastName}
    \r\n
    {signedInUser.EmailAddress}
    \r\n
    \r\n this.props.onSignOutClicked() }>\r\n Sign out\r\n \r\n
    \r\n );\r\n }\r\n }\r\n\r\n const announcementsMenuItem = (a: Rest._Announcement) => {\r\n const link = a.LinkUrl ? : null;\r\n\r\n const classNames = 'announcement ' + (announcementsIdCounts[a.Id] < 2 ? \"unread\" : \"read\");\r\n return (\r\n \r\n
    \r\n \r\n {SeverityEnumToText(a.Severity)}\r\n
    \r\n
    \r\n {a.ProductArea}\r\n
    \r\n
    \r\n {a.Text}\r\n
    \r\n {link}\r\n
    \r\n );\r\n }\r\n\r\n const announcementsMenu = (\r\n \r\n {announcements.length > 0 ? announcements.map(announcementsMenuItem) : announcementsMenuItem({ Id: \"0\", Severity: Rest.AnnouncementSeverity.Good, ProductArea: resourceStrings.announcements.ok.productArea, Text: resourceStrings.announcements.ok.text })}\r\n \r\n );\r\n\r\n let jumboHeader = (this.props.showJumboHeader) ? (\r\n \r\n {searchControl}\r\n \r\n ) : null;\r\n\r\n let features = clientAppSettings.flightedFeatures || [];\r\n let environment = (this.props.showEnvironment) ? clientAppSettings.environment : null;\r\n const skipToMainClick = (ev: React.MouseEvent) => {\r\n ev.preventDefault();\r\n location.hash=\"\";\r\n location.hash=\"#page-content\";\r\n }\r\n return (\r\n
    \r\n {/* href do not works here */}\r\n Skip to main content\r\n this.smallHeaderNavClick(index)}\r\n environment={environment}>\r\n {this.props.showJumboHeader ? null : searchControl}\r\n
    \r\n {userMenu}\r\n {announcementsMenu}\r\n {bell}\r\n {userInfo}\r\n
    \r\n \r\n {jumboHeader}\r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/MasterPageHeader.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport { clientAppSettings } from \"../../Models/ClientAppSettings\";\r\nimport { CultureUtility } from '../../Resources/CultureUtility';\r\nimport { Resources } from \"../../Resources/Intercom.Resources.DevPortal\";\r\n\r\nexport interface WebChatProps extends React.Props {\r\n bot: Rest.BotService;\r\n authoringDirty: boolean;\r\n authoringError: boolean;\r\n className?: string;\r\n}\r\n\r\nexport interface WebChatState {\r\n token: string;\r\n}\r\n\r\nexport class WebChat extends React.Component {\r\n\r\n constructor(props: WebChatProps) {\r\n super(props);\r\n\r\n this.state = { token: null };\r\n\r\n this.retrieveWebChatToken();\r\n }\r\n\r\n public render(): JSX.Element {\r\n if (!this.state.token) {\r\n return null;\r\n }\r\n\r\n let frameSrc = `${clientAppSettings.webChatUrl}embed/${this.props.bot.Id}?t=${this.state.token}`;\r\n if (CultureUtility.rawLocale)\r\n frameSrc += `&l=${CultureUtility.rawLocale}`;\r\n\r\n return (\r\n
    \r\n
    \r\n
    {Resources.test}
    \r\n \r\n
    \r\n \r\n
    \r\n {this.renderUnsavedWarnings()}\r\n {this.renderError()}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n private retrieveWebChatToken() {\r\n Rest.BotManagerClient.getWebChatToken(this.props.bot.Id).done(token => {\r\n this.setState({ token: token });\r\n });\r\n }\r\n\r\n private renderUnsavedWarnings(): JSX.Element {\r\n if (this.props.authoringDirty) {\r\n return (\r\n
    \r\n \r\n You have unsaved changes in BUILD. Testing won’t reflect those changes. \r\n
    \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private renderError(): JSX.Element {\r\n if (this.props.authoringError) {\r\n return (\r\n
    \r\n \r\n You have errors in BUILD. Please fix these changes before continuing.\r\n
    \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/WebChat.tsx","export * from './BotProgress';\r\nexport * from './CookieInform';\r\nexport * from './ExpiredSubscription';\r\nexport * from './V3Update';\r\nexport * from './DialogStatus';\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/status/index.ts","export interface Cookie {\r\n name: string;\r\n value: string;\r\n path: string;\r\n expires: Date;\r\n sameSite: string;\r\n secure: boolean;\r\n}\r\n\r\nexport function readCookie(name: string): string {\r\n const nameEquals = name + \"=\";\r\n const cookies = document.cookie.split(\";\");\r\n for (let i = 0; i < cookies.length; i++) {\r\n const cookie = cookies[i].replace(/^\\s+/, \"\");\r\n if (cookie.indexOf(nameEquals) === 0) {\r\n return cookie.substring(nameEquals.length);\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport function setCookie(cookie: Cookie): void {\r\n document.cookie = `${cookie.name}=${cookie.value};expires=${cookie.expires.toUTCString()};path=${cookie.path};secure=${cookie.secure};samesite=${cookie.sameSite}`;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Utils/Cookies.ts","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {resourceStrings} from \"./Strings\";\r\nimport isInFrame from \"../Utils/InFrame\";\r\n\r\nexport enum NavLinks {\r\n root,\r\n mybots,\r\n register,\r\n docs,\r\n directory,\r\n blog,\r\n admin,\r\n reviewbots\r\n}\r\n\r\nexport interface JumboHeadProps extends React.Props {\r\n navLinks: string[];\r\n rootUrl: string;\r\n defaultLink: NavLinks;\r\n isRoutable: (url: string) => boolean;\r\n showFrame?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport interface JumboHeadState {\r\n activeLink?: NavLinks\r\n}\r\n\r\n//these should be kept in sync with the NavLinks enumeration\r\nconst navLinkNames = ['', 'My bots', 'Register a bot', 'Documentation', resourceStrings.botDirectory, 'Blog'];\r\n\r\nexport function getLinkDisplayText(navLink: NavLinks): string {\r\n return navLinkNames[navLink];\r\n}\r\n\r\nexport function normalizeExternalRouteUrl(root: string, route: string) : string {\r\n if (root && root.length) {\r\n if (root.charAt(root.length - 1) !== '/') {\r\n return `${root}/${route}`;\r\n } else {\r\n return `${root}${route}`;\r\n }\r\n }\r\n return route;\r\n}\r\n\r\nexport class JumboHeadControl extends React.Component { \r\n constructor(props: JumboHeadProps) {\r\n super(props);\r\n this.state = { activeLink: props.defaultLink };\r\n }\r\n\r\n private toggleNavList() {\r\n $(ReactDOM.findDOMNode(this.refs['navList'])).toggleClass('expand');\r\n }\r\n\r\n public render(): JSX.Element {\r\n if (!this.props.showFrame && isInFrame()) {\r\n return null;\r\n }\r\n let rootUrlClassName = this.props.isRoutable(this.props.rootUrl) ? \"appnav\" : null;\r\n return (\r\n
    \r\n
    \r\n \r\n
      \r\n {this.props.navLinks.map((href, link) => {\r\n var linkEnum = link + 1;\r\n var activeLink = this.state.activeLink;\r\n if (_.isUndefined(activeLink)) {\r\n activeLink = this.props.defaultLink;\r\n }\r\n var className = linkEnum === activeLink ? \"active\" : null;\r\n var linkClassName = this.props.isRoutable(href) ? \"appnav\" : null;\r\n return (
    • {navLinkNames[linkEnum]}
    • );\r\n })}\r\n
    \r\n {this.props.children}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/JumboHeadControl.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nexport interface ProgressBarControlProps extends React.Props {\r\n loading?: boolean\r\n}\r\n\r\n// TODO: unify with ProgressRingControl since the html structures are pretty much the same \r\nexport class ProgressBarControl extends React.Component {\r\n constructor(props: ProgressBarControlProps) {\r\n super(props);\r\n }\r\n \r\n public render(): JSX.Element {\r\n let className = \"loading-animation progress-bar\";\r\n if (this.props.loading) {\r\n className = `${className} loading`;\r\n }\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ); \r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/ProgressBarControl.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { RuntimeConnectedShadeUtils } from \"../../Utils/RuntimeConnectedShadeUtils\";\r\n\r\nexport interface RuntimeConnectedShadeProps extends React.Props {\r\n visibilityChange?: (visible: boolean) => any;\r\n}\r\n\r\nexport interface RuntimeConnectedShadeState {\r\n visible: boolean;\r\n}\r\n\r\nexport class RuntimeConnectedShade extends React.Component {\r\n constructor(props: RuntimeConnectedShadeProps) {\r\n super(props);\r\n this.state = {\r\n visible: false\r\n };\r\n\r\n RuntimeConnectedShadeUtils.initialize();\r\n }\r\n\r\n componentWillMount() {\r\n RuntimeConnectedShadeUtils.on(RuntimeConnectedShadeUtils.ModalVisibleEventName, this.onChildMessage);\r\n }\r\n\r\n componentWillUnmount() {\r\n RuntimeConnectedShadeUtils.off(RuntimeConnectedShadeUtils.ModalVisibleEventName, this.onChildMessage);\r\n }\r\n\r\n onChildMessage = (e: JQueryEventObject, visibleData: any) => {\r\n console.log(visibleData, e);\r\n this.setState({\r\n visible: visibleData && visibleData.visibility\r\n });\r\n }\r\n\r\n render(): JSX.Element {\r\n if (!this.state.visible) {\r\n return null;\r\n }\r\n\r\n return
    ;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/v4/RuntimeConnectedShade.tsx","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/assign.js\n// module id = 170\n// module chunks = 0","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-runtime/~/core-js/library/modules/$.export.js\n// module id = 171\n// module chunks = 0","import number from \"./number\";\n\nexport default function(values, p, valueof) {\n if (valueof == null) valueof = number;\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/src/quantile.js\n// module id = 172\n// module chunks = 0","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-collection/src/map.js\n// module id = 173\n// module chunks = 0","import define, {extend} from \"./define\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex3 = /^#([0-9a-f]{3})$/,\n reHex6 = /^#([0-9a-f]{6})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: function() {\n return this.rgb().hex();\n },\n toString: function() {\n return this.rgb() + \"\";\n }\n});\n\nexport default function color(format) {\n var m;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00\n : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format])\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: function() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n },\n toString: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-color/src/color.js\n// module id = 174\n// module chunks = 0","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-color/src/define.js\n// module id = 175\n// module chunks = 0","// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nexport default function(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-format/src/formatDecimal.js\n// module id = 176\n// module chunks = 0","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/basis.js\n// module id = 177\n// module chunks = 0","import {color} from \"d3-color\";\nimport rgb from \"./rgb\";\nimport array from \"./array\";\nimport date from \"./date\";\nimport number from \"./number\";\nimport object from \"./object\";\nimport string from \"./string\";\nimport constant from \"./constant\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : Array.isArray(b) ? array\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/value.js\n// module id = 178\n// module chunks = 0","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice\";\nimport {copy, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i < j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/log.js\n// module id = 179\n// module chunks = 0","import {linearish} from \"./linear\";\nimport {copy, identity, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/pow.js\n// module id = 180\n// module chunks = 0","import {linearish} from \"./linear\";\nimport {copy, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/symlog.js\n// module id = 181\n// module chunks = 0","import {epsilon} from \"../math\";\nimport {Cardinal} from \"./cardinal\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/curve/catmullRom.js\n// module id = 182\n// module chunks = 0","import {path} from \"d3-path\";\nimport constant from \"./constant\";\nimport curveLinear from \"./curve/linear\";\nimport {x as pointX, y as pointY} from \"./point\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/line.js\n// module id = 184\n// module chunks = 0","import none from \"./none\";\n\nexport default function(series) {\n var sums = series.map(sum);\n return none(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nexport function sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/order/ascending.js\n// module id = 185\n// module chunks = 0","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/point.js\n// module id = 186\n// module chunks = 0","import formatLocale from \"./locale\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time-format/src/defaultLocale.js\n// module id = 187\n// module chunks = 0","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Map.js\n// module id = 189\n// module chunks = 0","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_MapCache.js\n// module id = 190\n// module chunks = 0","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_SetCache.js\n// module id = 191\n// module chunks = 0","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Stack.js\n// module id = 192\n// module chunks = 0","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayPush.js\n// module id = 193\n// module chunks = 0","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseAssignValue.js\n// module id = 194\n// module chunks = 0","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseFlatten.js\n// module id = 195\n// module chunks = 0","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsEqual.js\n// module id = 196\n// module chunks = 0","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\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 */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseRest.js\n// module id = 197\n// module chunks = 0","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cacheHas.js\n// module id = 198\n// module chunks = 0","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cloneArrayBuffer.js\n// module id = 199\n// module chunks = 0","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getPrototype.js\n// module id = 200\n// module chunks = 0","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getSymbols.js\n// module id = 201\n// module chunks = 0","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\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 var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isIndex.js\n// module id = 202\n// module chunks = 0","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\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 if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isKey.js\n// module id = 203\n// module chunks = 0","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isPrototype.js\n// module id = 204\n// module chunks = 0","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_nodeUtil.js\n// module id = 205\n// module chunks = 0","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_setToArray.js\n// module id = 206\n// module chunks = 0","var arrayEach = require('./_arrayEach'),\n baseEach = require('./_baseEach'),\n castFunction = require('./_castFunction'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/forEach.js\n// module id = 207\n// module chunks = 0","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isArguments.js\n// module id = 208\n// module chunks = 0","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isBuffer.js\n// module id = 209\n// module chunks = 0","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isLength.js\n// module id = 210\n// module chunks = 0","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/sortBy.js\n// module id = 211\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/index.js\n// module id = 212\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 213\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-resize-detector/~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 214\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-smooth/~/prop-types/index.js\n// module id = 215\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-smooth/~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 216\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
    \n * I'm a fade Transition!\n *
    \n * )}\n *
    \n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
    \n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-transition-group/Transition.js\n// module id = 217\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
    ` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
    ` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-transition-group/TransitionGroup.js\n// module id = 218\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-transition-group/~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 219\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n// helper to capitalize strings\n\nexports.default = function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n};\n\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/utils/capitalizeString.js\n// module id = 220\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (value) {\n if (Array.isArray(value)) value = value.join(',');\n\n return value.match(/-webkit-|-moz-|-ms-/) !== null;\n};\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/utils/isPrefixedValue.js\n// module id = 221\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cssRuleSetToString;\n\nvar _appendPxIfNeeded = require('./append-px-if-needed');\n\nvar _appendPxIfNeeded2 = _interopRequireDefault(_appendPxIfNeeded);\n\nvar _camelCasePropsToDashCase = require('./camel-case-props-to-dash-case');\n\nvar _camelCasePropsToDashCase2 = _interopRequireDefault(_camelCasePropsToDashCase);\n\nvar _mapObject = require('./map-object');\n\nvar _mapObject2 = _interopRequireDefault(_mapObject);\n\nvar _prefixer = require('./prefixer');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createMarkupForStyles(style) {\n return Object.keys(style).map(function (property) {\n return property + ': ' + style[property] + ';';\n }).join('\\n');\n}\n\nfunction cssRuleSetToString(selector, rules, userAgent) {\n if (!rules) {\n return '';\n }\n\n var rulesWithPx = (0, _mapObject2.default)(rules, function (value, key) {\n return (0, _appendPxIfNeeded2.default)(key, value);\n });\n var prefixedRules = (0, _prefixer.getPrefixedStyle)(rulesWithPx, userAgent);\n var cssPrefixedRules = (0, _camelCasePropsToDashCase2.default)(prefixedRules);\n var serializedRules = createMarkupForStyles(cssPrefixedRules);\n\n return selector + '{' + serializedRules + '}';\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/css-rule-set-to-string.js\n// module id = 222\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /**\n * Based on https://github.com/jsstyles/css-vendor, but without having to\n * convert between different cases all the time.\n *\n * \n */\n\nexports.getPrefixedKeyframes = getPrefixedKeyframes;\nexports.getPrefixedStyle = getPrefixedStyle;\n\nvar _inlineStylePrefixer = require('inline-style-prefixer');\n\nvar _inlineStylePrefixer2 = _interopRequireDefault(_inlineStylePrefixer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction transformValues(style) {\n return Object.keys(style).reduce(function (newStyle, key) {\n var value = style[key];\n if (Array.isArray(value)) {\n value = value.join(';' + key + ':');\n } else if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && typeof value.toString === 'function') {\n value = value.toString();\n }\n\n newStyle[key] = value;\n return newStyle;\n }, {});\n}\n\nvar _hasWarnedAboutUserAgent = false;\nvar _lastUserAgent = void 0;\nvar _cachedPrefixer = void 0;\n\nfunction getPrefixer(userAgent) {\n var actualUserAgent = userAgent || global && global.navigator && global.navigator.userAgent;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!actualUserAgent && !_hasWarnedAboutUserAgent) {\n /* eslint-disable no-console */\n console.warn('Radium: userAgent should be supplied for server-side rendering. See ' + 'https://github.com/FormidableLabs/radium/tree/master/docs/api#radium ' + 'for more information.');\n /* eslint-enable no-console */\n _hasWarnedAboutUserAgent = true;\n }\n }\n\n if (!_cachedPrefixer || actualUserAgent !== _lastUserAgent) {\n if (actualUserAgent === 'all') {\n _cachedPrefixer = {\n prefix: _inlineStylePrefixer2.default.prefixAll,\n prefixedKeyframes: 'keyframes'\n };\n } else {\n _cachedPrefixer = new _inlineStylePrefixer2.default({ userAgent: actualUserAgent });\n }\n _lastUserAgent = actualUserAgent;\n }\n return _cachedPrefixer;\n}\n\nfunction getPrefixedKeyframes(userAgent) {\n return getPrefixer(userAgent).prefixedKeyframes;\n}\n\n// Returns a new style object with vendor prefixes added to property names\n// and values.\nfunction getPrefixedStyle(style, userAgent) {\n var styleWithFallbacks = transformValues(style);\n var prefixer = getPrefixer(userAgent);\n var prefixedStyle = prefixer.prefix(styleWithFallbacks);\n return prefixedStyle;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/prefixer.js\n// module id = 223\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar StyleKeeper = function () {\n function StyleKeeper(userAgent) {\n _classCallCheck(this, StyleKeeper);\n\n this._userAgent = userAgent;\n this._listeners = [];\n this._cssSet = {};\n }\n\n StyleKeeper.prototype.subscribe = function subscribe(listener) {\n var _this = this;\n\n if (this._listeners.indexOf(listener) === -1) {\n this._listeners.push(listener);\n }\n\n return {\n // Must be fat arrow to capture `this`\n remove: function remove() {\n var listenerIndex = _this._listeners.indexOf(listener);\n if (listenerIndex > -1) {\n _this._listeners.splice(listenerIndex, 1);\n }\n }\n };\n };\n\n StyleKeeper.prototype.addCSS = function addCSS(css) {\n var _this2 = this;\n\n if (!this._cssSet[css]) {\n this._cssSet[css] = true;\n this._emitChange();\n }\n\n return {\n // Must be fat arrow to capture `this`\n remove: function remove() {\n delete _this2._cssSet[css];\n _this2._emitChange();\n }\n };\n };\n\n StyleKeeper.prototype.getCSS = function getCSS() {\n return Object.keys(this._cssSet).join('\\n');\n };\n\n StyleKeeper.prototype._emitChange = function _emitChange() {\n this._listeners.forEach(function (listener) {\n return listener();\n });\n };\n\n return StyleKeeper;\n}();\n\nexports.default = StyleKeeper;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/style-keeper.js\n// module id = 224\n// module chunks = 0","import _isEqual from \"lodash/isEqual\";\nimport _isNaN from \"lodash/isNaN\";\nimport _max from \"lodash/max\";\nimport _isFunction from \"lodash/isFunction\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\nimport _isArray from \"lodash/isArray\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Area\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport Curve from '../shape/Curve';\nimport Dot from '../shape/Dot';\nimport Layer from '../container/Layer';\nimport LabelList from '../component/LabelList';\nimport pureRender from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, LEGEND_TYPES, TOOLTIP_TYPES, getPresentationAttributes, isSsr, filterEventAttributes } from '../util/ReactUtils';\nimport { isNumber, uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\n\nvar Area = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Area, _Component);\n\n function Area() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Area);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Area)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: true\n };\n _this.id = uniqueId('recharts-area-');\n\n _this.cachePrevData = function (points, baseLine) {\n _this.setState({\n prevPoints: points,\n prevBaseLine: baseLine\n });\n };\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (_isFunction(onAnimationEnd)) {\n onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n var onAnimationStart = _this.props.onAnimationStart;\n\n _this.setState({\n isAnimationFinished: false\n });\n\n if (_isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Area, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n points = _this$props.points,\n baseLine = _this$props.baseLine;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(points, baseLine);\n }\n }\n }, {\n key: \"renderDots\",\n value: function renderDots(needClip, clipPathId) {\n var _this2 = this;\n\n var isAnimationActive = this.props.isAnimationActive;\n var isAnimationFinished = this.state.isAnimationFinished;\n\n if (isAnimationActive && !isAnimationFinished) {\n return null;\n }\n\n var _this$props2 = this.props,\n dot = _this$props2.dot,\n points = _this$props2.points,\n dataKey = _this$props2.dataKey;\n var areaProps = getPresentationAttributes(this.props);\n var customDotProps = getPresentationAttributes(dot);\n var dotEvents = filterEventAttributes(dot);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, areaProps, customDotProps, dotEvents, {\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n value: entry.value,\n payload: entry.payload\n });\n\n return _this2.constructor.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return React.createElement(Layer, _extends({\n className: \"recharts-area-dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderHorizontalRect\",\n value: function renderHorizontalRect(alpha) {\n var _this$props3 = this.props,\n baseLine = _this$props3.baseLine,\n points = _this$props3.points,\n strokeWidth = _this$props3.strokeWidth;\n var startX = points[0].x;\n var endX = points[points.length - 1].x;\n var width = alpha * Math.abs(startX - endX);\n\n var maxY = _max(points.map(function (entry) {\n return entry.y || 0;\n }));\n\n if (isNumber(baseLine)) {\n maxY = Math.max(baseLine, maxY);\n } else if (baseLine && _isArray(baseLine) && baseLine.length) {\n maxY = Math.max(_max(baseLine.map(function (entry) {\n return entry.y || 0;\n })), maxY);\n }\n\n if (isNumber(maxY)) {\n return React.createElement(\"rect\", {\n x: startX < endX ? startX : startX - width,\n y: 0,\n width: width,\n height: parseInt(maxY + (strokeWidth || 1), 10)\n });\n }\n\n return null;\n }\n }, {\n key: \"renderVerticalRect\",\n value: function renderVerticalRect(alpha) {\n var _this$props4 = this.props,\n baseLine = _this$props4.baseLine,\n points = _this$props4.points,\n strokeWidth = _this$props4.strokeWidth;\n var startY = points[0].y;\n var endY = points[points.length - 1].y;\n var height = alpha * Math.abs(startY - endY);\n\n var maxX = _max(points.map(function (entry) {\n return entry.x || 0;\n }));\n\n if (isNumber(baseLine)) {\n maxX = Math.max(baseLine, maxX);\n } else if (baseLine && _isArray(baseLine) && baseLine.length) {\n maxX = Math.max(_max(baseLine.map(function (entry) {\n return entry.x || 0;\n })), maxX);\n }\n\n if (isNumber(maxX)) {\n return React.createElement(\"rect\", {\n x: 0,\n y: startY < endY ? startY : startY - height,\n width: maxX + (strokeWidth || 1),\n height: parseInt(height, 10)\n });\n }\n\n return null;\n }\n }, {\n key: \"renderClipRect\",\n value: function renderClipRect(alpha) {\n var layout = this.props.layout;\n\n if (layout === 'vertical') {\n return this.renderVerticalRect(alpha);\n }\n\n return this.renderHorizontalRect(alpha);\n }\n }, {\n key: \"renderAreaStatically\",\n value: function renderAreaStatically(points, baseLine, needClip, clipPathId) {\n var _this$props5 = this.props,\n layout = _this$props5.layout,\n type = _this$props5.type,\n stroke = _this$props5.stroke,\n connectNulls = _this$props5.connectNulls,\n isRange = _this$props5.isRange;\n return React.createElement(Layer, {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, React.createElement(Curve, _extends({}, this.props, {\n points: points,\n baseLine: baseLine,\n stroke: \"none\",\n className: \"recharts-area-area\"\n })), stroke !== 'none' && React.createElement(Curve, _extends({}, getPresentationAttributes(this.props), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: points\n })), stroke !== 'none' && isRange && React.createElement(Curve, _extends({}, getPresentationAttributes(this.props), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: baseLine\n })));\n }\n }, {\n key: \"renderAreaWithAnimation\",\n value: function renderAreaWithAnimation(needClip, clipPathId) {\n var _this3 = this;\n\n var _this$props6 = this.props,\n points = _this$props6.points,\n baseLine = _this$props6.baseLine,\n isAnimationActive = _this$props6.isAnimationActive,\n animationBegin = _this$props6.animationBegin,\n animationDuration = _this$props6.animationDuration,\n animationEasing = _this$props6.animationEasing,\n animationId = _this$props6.animationId;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n prevBaseLine = _this$state.prevBaseLine; // const clipPathId = _.isNil(id) ? this.id : id;\n\n return React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"area-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length; // update animtaion\n\n var stepPoints = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread({}, entry, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n return entry;\n });\n var stepBaseLine;\n\n if (isNumber(baseLine)) {\n var interpolator = interpolateNumber(prevBaseLine, baseLine);\n stepBaseLine = interpolator(t);\n } else if (_isNil(baseLine) || _isNaN(baseLine)) {\n var _interpolator = interpolateNumber(prevBaseLine, 0);\n\n stepBaseLine = _interpolator(t);\n } else {\n stepBaseLine = baseLine.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\n if (prevBaseLine[prevPointIndex]) {\n var prev = prevBaseLine[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread({}, entry, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n return entry;\n });\n }\n\n return _this3.renderAreaStatically(stepPoints, stepBaseLine, needClip, clipPathId);\n }\n\n return React.createElement(Layer, null, React.createElement(\"defs\", null, React.createElement(\"clipPath\", {\n id: \"animationClipPath-\".concat(clipPathId)\n }, _this3.renderClipRect(t))), React.createElement(Layer, {\n clipPath: \"url(#animationClipPath-\".concat(clipPathId, \")\")\n }, _this3.renderAreaStatically(points, baseLine, needClip, clipPathId)));\n });\n }\n }, {\n key: \"renderArea\",\n value: function renderArea(needClip, clipPathId) {\n var _this$props7 = this.props,\n points = _this$props7.points,\n baseLine = _this$props7.baseLine,\n isAnimationActive = _this$props7.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n prevBaseLine = _this$state2.prevBaseLine,\n totalLength = _this$state2.totalLength;\n\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !_isEqual(prevPoints, points) || !_isEqual(prevBaseLine, baseLine))) {\n return this.renderAreaWithAnimation(needClip, clipPathId);\n }\n\n return this.renderAreaStatically(points, baseLine, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props8 = this.props,\n hide = _this$props8.hide,\n dot = _this$props8.dot,\n points = _this$props8.points,\n className = _this$props8.className,\n top = _this$props8.top,\n left = _this$props8.left,\n xAxis = _this$props8.xAxis,\n yAxis = _this$props8.yAxis,\n width = _this$props8.width,\n height = _this$props8.height,\n isAnimationActive = _this$props8.isAnimationActive,\n id = _this$props8.id;\n\n if (hide || !points || !points.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = classNames('recharts-area', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = _isNil(id) ? this.id : id;\n return React.createElement(Layer, {\n className: layerClass\n }, needClip ? React.createElement(\"defs\", null, React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: parseInt(height, 10)\n }))) : null, !hasSinglePoint ? this.renderArea(needClip, clipPathId) : null, (dot || hasSinglePoint) && this.renderDots(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }]);\n\n return Area;\n}(Component), _class2.displayName = 'Area', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, {\n className: PropTypes.string,\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n type: PropTypes.oneOfType([PropTypes.oneOf(['basis', 'basisClosed', 'basisOpen', 'linear', 'linearClosed', 'natural', 'monotoneX', 'monotoneY', 'monotone', 'step', 'stepBefore', 'stepAfter']), PropTypes.func]),\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n yAxis: PropTypes.object,\n xAxis: PropTypes.object,\n stackId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n tooltipType: PropTypes.oneOf(TOOLTIP_TYPES),\n connectNulls: PropTypes.bool,\n activeDot: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool]),\n // dot configuration\n dot: PropTypes.oneOfType([PropTypes.func, PropTypes.element, PropTypes.object, PropTypes.bool]),\n label: PropTypes.oneOfType([PropTypes.func, PropTypes.element, PropTypes.object, PropTypes.bool]),\n hide: PropTypes.bool,\n // have curve configuration\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n baseLine: PropTypes.oneOfType([PropTypes.number, PropTypes.array]),\n isRange: PropTypes.bool,\n points: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.array])\n })),\n onAnimationStart: PropTypes.func,\n onAnimationEnd: PropTypes.func,\n animationId: PropTypes.number,\n isAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n id: PropTypes.string\n}), _class2.defaultProps = {\n stroke: '#3182bd',\n fill: '#3182bd',\n fillOpacity: 0.6,\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'line',\n connectNulls: false,\n // points of area\n points: [],\n dot: false,\n activeDot: true,\n hide: false,\n isAnimationActive: !isSsr(),\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n}, _class2.getBaseValue = function (props, xAxis, yAxis) {\n var layout = props.layout,\n baseValue = props.baseValue;\n\n if (isNumber(baseValue)) {\n return baseValue;\n }\n\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var max = Math.max(domain[0], domain[1]);\n var min = Math.min(domain[0], domain[1]);\n\n if (baseValue === 'dataMin') {\n return min;\n }\n\n if (baseValue === 'dataMax') {\n return max;\n }\n\n return max < 0 ? max : Math.max(Math.min(domain[0], domain[1]), 0);\n }\n\n if (baseValue === 'dataMin') {\n return domain[0];\n }\n\n if (baseValue === 'dataMax') {\n return domain[1];\n }\n\n return domain[0];\n}, _class2.getComposedData = function (_ref2) {\n var props = _ref2.props,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n bandSize = _ref2.bandSize,\n dataKey = _ref2.dataKey,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var layout = props.layout;\n var hasStack = stackedData && stackedData.length;\n var baseValue = Area.getBaseValue(props, xAxis, yAxis);\n var isRange = false;\n var points = displayedData.map(function (entry, index) {\n var value;\n\n if (hasStack) {\n value = stackedData[dataStartIndex + index];\n } else {\n value = getValueByDataKey(entry, dataKey);\n\n if (!_isArray(value)) {\n value = [baseValue, value];\n } else {\n isRange = true;\n }\n }\n\n if (layout === 'horizontal') {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: _isNil(value[1]) ? null : yAxis.scale(value[1]),\n value: value,\n payload: entry\n };\n }\n\n return {\n x: _isNil(value[1]) ? null : xAxis.scale(value[1]),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n var baseLine;\n\n if (hasStack || isRange) {\n baseLine = points.map(function (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.x,\n y: !_isNil(_get(entry, 'value[0]')) ? yAxis.scale(_get(entry, 'value[0]')) : null\n };\n }\n\n return {\n x: !_isNil(_get(entry, 'value[0]')) ? xAxis.scale(_get(entry, 'value[0]')) : null,\n y: entry.y\n };\n });\n } else if (layout === 'horizontal') {\n baseLine = yAxis.scale(baseValue);\n } else {\n baseLine = xAxis.scale(baseValue);\n }\n\n return _objectSpread({\n points: points,\n baseLine: baseLine,\n layout: layout,\n isRange: isRange\n }, offset);\n}, _class2.renderDotItem = function (option, props) {\n var dotItem;\n\n if (React.isValidElement(option)) {\n dotItem = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dotItem = option(props);\n } else {\n dotItem = React.createElement(Dot, _extends({}, props, {\n className: \"recharts-area-dot\"\n }));\n }\n\n return dotItem;\n}, _temp)) || _class;\n\nexport default Area;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/cartesian/Area.js\n// module id = 225\n// module chunks = 0","import _isNil from \"lodash/isNil\";\nimport _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isArray from \"lodash/isArray\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Render a group of bar\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport Rectangle from '../shape/Rectangle';\nimport Layer from '../container/Layer';\nimport ErrorBar from './ErrorBar';\nimport Cell from '../component/Cell';\nimport LabelList from '../component/LabelList';\nimport pureRender from '../util/PureRender';\nimport { uniqueId, mathSign, interpolateNumber } from '../util/DataUtils';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, LEGEND_TYPES, TOOLTIP_TYPES, findAllByType, getPresentationAttributes, filterEventsOfChild, isSsr } from '../util/ReactUtils';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar, findPositionOfBar } from '../util/ChartUtils';\n\nvar Bar = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Bar, _Component);\n\n function Bar() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Bar);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Bar)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: false\n };\n _this.id = uniqueId('recharts-bar-');\n\n _this.cachePrevData = function (data) {\n _this.setState({\n prevData: data\n });\n };\n\n _this.handleAnimationEnd = function () {\n _this.setState({\n isAnimationFinished: true\n });\n\n _this.props.onAnimationEnd();\n };\n\n _this.handleAnimationStart = function () {\n _this.setState({\n isAnimationFinished: false\n });\n\n _this.props.onAnimationStart();\n };\n\n return _this;\n }\n\n _createClass(Bar, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n data = _this$props.data;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(data);\n }\n }\n }, {\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n\n var shape = this.props.shape;\n var baseProps = getPresentationAttributes(this.props);\n return data && data.map(function (entry, i) {\n var props = _objectSpread({}, baseProps, entry, {\n index: i\n });\n\n return React.createElement(Layer, _extends({\n className: \"recharts-bar-rectangle\"\n }, filterEventsOfChild(_this2.props, entry, i), {\n key: \"rectangle-\".concat(i)\n }), _this2.constructor.renderRectangle(shape, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n\n var _this$props2 = this.props,\n data = _this$props2.data,\n layout = _this$props2.layout,\n isAnimationActive = _this$props2.isAnimationActive,\n animationBegin = _this$props2.animationBegin,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n animationId = _this$props2.animationId;\n var prevData = this.state.prevData;\n return React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"bar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n\n if (prev) {\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n var interpolatorWidth = interpolateNumber(prev.width, entry.width);\n var interpolatorHeight = interpolateNumber(prev.height, entry.height);\n return _objectSpread({}, entry, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n\n if (layout === 'horizontal') {\n var _interpolatorHeight = interpolateNumber(0, entry.height);\n\n var h = _interpolatorHeight(t);\n\n return _objectSpread({}, entry, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n\n var interpolator = interpolateNumber(0, entry.width);\n var w = interpolator(t);\n return _objectSpread({}, entry, {\n width: w\n });\n });\n return React.createElement(Layer, null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props3 = this.props,\n data = _this$props3.data,\n isAnimationActive = _this$props3.isAnimationActive;\n var prevData = this.state.prevData;\n\n if (isAnimationActive && data && data.length && (!prevData || !_isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n\n var data = this.props.data;\n var backgroundProps = getPresentationAttributes(this.props.background);\n return data.map(function (entry, i) {\n // eslint-disable-next-line no-unused-vars\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, [\"value\", \"background\"]);\n\n if (!background) {\n return null;\n }\n\n var props = _objectSpread({}, rest, {\n fill: '#eee'\n }, background, backgroundProps, filterEventsOfChild(_this4.props, entry, i), {\n index: i,\n key: \"background-bar-\".concat(i),\n className: 'recharts-bar-background-rectangle'\n });\n\n return _this4.constructor.renderRectangle(_this4.props.background, props);\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar() {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props4 = this.props,\n data = _this$props4.data,\n xAxis = _this$props4.xAxis,\n yAxis = _this$props4.yAxis,\n layout = _this$props4.layout,\n children = _this$props4.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n\n if (!errorBarItems) {\n return null;\n }\n\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n\n function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n }\n\n return errorBarItems.map(function (item, i) {\n return React.cloneElement(item, {\n key: \"error-bar-\".concat(i),\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props5 = this.props,\n hide = _this$props5.hide,\n data = _this$props5.data,\n className = _this$props5.className,\n xAxis = _this$props5.xAxis,\n yAxis = _this$props5.yAxis,\n left = _this$props5.left,\n top = _this$props5.top,\n width = _this$props5.width,\n height = _this$props5.height,\n isAnimationActive = _this$props5.isAnimationActive,\n background = _this$props5.background,\n id = _this$props5.id;\n\n if (hide || !data || !data.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = classNames('recharts-bar', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = _isNil(id) ? this.id : id;\n return React.createElement(Layer, {\n className: layerClass\n }, needClip ? React.createElement(\"defs\", null, React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: height\n }))) : null, React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"renderRectangle\",\n value: function renderRectangle(option, props) {\n var rectangle;\n\n if (React.isValidElement(option)) {\n rectangle = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = React.createElement(Rectangle, props);\n }\n\n return rectangle;\n }\n }]);\n\n return Bar;\n}(Component), _class2.displayName = 'Bar', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, {\n className: PropTypes.string,\n layout: PropTypes.oneOf(['vertical', 'horizontal']),\n xAxisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxis: PropTypes.object,\n xAxis: PropTypes.object,\n stackId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n barSize: PropTypes.number,\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n tooltipType: PropTypes.oneOf(TOOLTIP_TYPES),\n minPointSize: PropTypes.number,\n maxBarSize: PropTypes.number,\n hide: PropTypes.bool,\n shape: PropTypes.oneOfType([PropTypes.func, PropTypes.element]),\n data: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n radius: PropTypes.oneOfType([PropTypes.number, PropTypes.array]),\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.array])\n })),\n onAnimationStart: PropTypes.func,\n onAnimationEnd: PropTypes.func,\n animationId: PropTypes.number,\n isAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n id: PropTypes.string\n}), _class2.defaultProps = {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n // data of bar\n data: [],\n layout: 'vertical',\n isAnimationActive: !isSsr(),\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease',\n onAnimationStart: function onAnimationStart() {},\n onAnimationEnd: function onAnimationEnd() {}\n}, _class2.getComposedData = function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = findPositionOfBar(barPosition, item);\n\n if (!pos) {\n return [];\n }\n\n var layout = props.layout;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n children = _item$props.children,\n minPointSize = _item$props.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n props: props,\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n\n if (!_isArray(value)) {\n value = [baseValue, value];\n }\n }\n\n if (layout === 'horizontal') {\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = yAxis.scale(value[1]);\n width = pos.size;\n height = yAxis.scale(value[0]) - yAxis.scale(value[1]);\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n x = xAxis.scale(value[0]);\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = xAxis.scale(value[1]) - xAxis.scale(value[0]);\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n\n width += _delta;\n }\n }\n\n return _objectSpread({}, entry, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props);\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n}, _temp)) || _class;\n\nexport default Bar;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/cartesian/Bar.js\n// module id = 226\n// module chunks = 0","import _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Line\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Animate from 'react-smooth';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport Curve from '../shape/Curve';\nimport Dot from '../shape/Dot';\nimport Layer from '../container/Layer';\nimport LabelList from '../component/LabelList';\nimport ErrorBar from './ErrorBar';\nimport { uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, LEGEND_TYPES, TOOLTIP_TYPES, filterEventAttributes, getPresentationAttributes, isSsr, findAllByType } from '../util/ReactUtils';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\n\nvar Line = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Line, _Component);\n\n function Line() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Line);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Line)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: true,\n totalLength: 0\n };\n _this.id = uniqueId('recharts-line-');\n\n _this.cachePrevData = function (points) {\n _this.setState({\n prevPoints: points\n });\n };\n\n _this.pathRef = function (node) {\n _this.mainCurve = node;\n };\n\n _this.handleAnimationEnd = function () {\n _this.setState({\n isAnimationFinished: true\n });\n\n _this.props.onAnimationEnd();\n };\n\n _this.handleAnimationStart = function () {\n _this.setState({\n isAnimationFinished: false\n });\n\n _this.props.onAnimationStart();\n };\n\n return _this;\n }\n\n _createClass(Line, [{\n key: \"componentDidMount\",\n\n /* eslint-disable react/no-did-mount-set-state */\n value: function componentDidMount() {\n if (!this.props.isAnimationActive) {\n return;\n }\n\n var totalLength = this.getTotalLength();\n this.setState({\n totalLength: totalLength\n });\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n points = _this$props.points;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(points);\n }\n }\n }, {\n key: \"getTotalLength\",\n value: function getTotalLength() {\n var curveDom = this.mainCurve;\n\n try {\n return curveDom && curveDom.getTotalLength && curveDom.getTotalLength() || 0;\n } catch (err) {\n return 0;\n }\n }\n }, {\n key: \"getStrokeDasharray\",\n value: function getStrokeDasharray(length, totalLength, lines) {\n var lineLength = lines.reduce(function (pre, next) {\n return pre + next;\n });\n var count = parseInt(length / lineLength, 10);\n var remainLength = length % lineLength;\n var restLength = totalLength - length;\n var remainLines = [];\n\n for (var i = 0, sum = 0;; sum += lines[i], ++i) {\n if (sum + lines[i] > remainLength) {\n remainLines = _toConsumableArray(lines.slice(0, i)).concat([remainLength - sum]);\n break;\n }\n }\n\n var emptyLines = remainLines.length % 2 === 0 ? [0, restLength] : [restLength];\n return _toConsumableArray(this.constructor.repeat(lines, count)).concat(_toConsumableArray(remainLines), emptyLines).map(function (line) {\n return \"\".concat(line, \"px\");\n }).join(', ');\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar() {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props2 = this.props,\n points = _this$props2.points,\n xAxis = _this$props2.xAxis,\n yAxis = _this$props2.yAxis,\n layout = _this$props2.layout,\n children = _this$props2.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n\n if (!errorBarItems) {\n return null;\n }\n\n function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint.payload, dataKey)\n };\n }\n\n return errorBarItems.map(function (item, i) {\n return React.cloneElement(item, {\n key: i,\n data: points,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n dataPointFormatter: dataPointFormatter\n });\n });\n }\n }, {\n key: \"renderDots\",\n value: function renderDots(needClip, clipPathId) {\n var _this2 = this;\n\n var isAnimationActive = this.props.isAnimationActive;\n\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props3 = this.props,\n dot = _this$props3.dot,\n points = _this$props3.points,\n dataKey = _this$props3.dataKey;\n var lineProps = getPresentationAttributes(this.props);\n var customDotProps = getPresentationAttributes(dot);\n var dotEvents = filterEventAttributes(dot);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, lineProps, customDotProps, dotEvents, {\n value: entry.value,\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n payload: entry.payload\n });\n\n return _this2.constructor.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return React.createElement(Layer, _extends({\n className: \"recharts-line-dots\",\n key: \"dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderCurveStatically\",\n value: function renderCurveStatically(points, needClip, clipPathId, props) {\n var _this$props4 = this.props,\n type = _this$props4.type,\n layout = _this$props4.layout,\n connectNulls = _this$props4.connectNulls;\n\n var curveProps = _objectSpread({}, getPresentationAttributes(this.props), filterEventAttributes(this.props), {\n fill: 'none',\n className: 'recharts-line-curve',\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null,\n points: points\n }, props, {\n type: type,\n layout: layout,\n connectNulls: connectNulls\n });\n\n return React.createElement(Curve, _extends({}, curveProps, {\n pathRef: this.pathRef\n }));\n }\n }, {\n key: \"renderCurveWithAnimation\",\n value: function renderCurveWithAnimation(needClip, clipPathId) {\n var _this3 = this;\n\n var _this$props5 = this.props,\n points = _this$props5.points,\n strokeDasharray = _this$props5.strokeDasharray,\n isAnimationActive = _this$props5.isAnimationActive,\n animationBegin = _this$props5.animationBegin,\n animationDuration = _this$props5.animationDuration,\n animationEasing = _this$props5.animationEasing,\n animationId = _this$props5.animationId,\n width = _this$props5.width,\n height = _this$props5.height;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n totalLength = _this$state.totalLength;\n return React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"line-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length;\n var stepData = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread({}, entry, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n } // magic number of faking previous x and y location\n\n\n if (_this3.animateNewValues) {\n var _interpolatorX = interpolateNumber(width * 2, entry.x);\n\n var _interpolatorY = interpolateNumber(height / 2, entry.y);\n\n return _objectSpread({}, entry, {\n x: _interpolatorX(t),\n y: _interpolatorY(t)\n });\n }\n\n return _objectSpread({}, entry, {\n x: entry.x,\n y: entry.y\n });\n });\n return _this3.renderCurveStatically(stepData, needClip, clipPathId);\n }\n\n var interpolator = interpolateNumber(0, totalLength);\n var curLength = interpolator(t);\n var currentStrokeDasharray;\n\n if (strokeDasharray) {\n var lines = strokeDasharray.split(/[,\\s]+/gim).map(function (num) {\n return parseFloat(num);\n });\n currentStrokeDasharray = _this3.getStrokeDasharray(curLength, totalLength, lines);\n } else {\n currentStrokeDasharray = \"\".concat(curLength, \"px \").concat(totalLength - curLength, \"px\");\n }\n\n return _this3.renderCurveStatically(points, needClip, clipPathId, {\n strokeDasharray: currentStrokeDasharray\n });\n });\n }\n }, {\n key: \"renderCurve\",\n value: function renderCurve(needClip, clipPathId) {\n var _this$props6 = this.props,\n points = _this$props6.points,\n isAnimationActive = _this$props6.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n totalLength = _this$state2.totalLength;\n\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !_isEqual(prevPoints, points))) {\n return this.renderCurveWithAnimation(needClip, clipPathId);\n }\n\n return this.renderCurveStatically(points, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n hide = _this$props7.hide,\n dot = _this$props7.dot,\n points = _this$props7.points,\n className = _this$props7.className,\n xAxis = _this$props7.xAxis,\n yAxis = _this$props7.yAxis,\n top = _this$props7.top,\n left = _this$props7.left,\n width = _this$props7.width,\n height = _this$props7.height,\n isAnimationActive = _this$props7.isAnimationActive,\n id = _this$props7.id;\n\n if (hide || !points || !points.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = classNames('recharts-line', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = _isNil(id) ? this.id : id;\n return React.createElement(Layer, {\n className: layerClass\n }, needClip ? React.createElement(\"defs\", null, React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: height\n }))) : null, !hasSinglePoint && this.renderCurve(needClip, clipPathId), this.renderErrorBar(), (hasSinglePoint || dot) && this.renderDots(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"repeat\",\n value: function repeat(lines, count) {\n var linesUnit = lines.length % 2 !== 0 ? _toConsumableArray(lines).concat([0]) : lines;\n var result = [];\n\n for (var i = 0; i < count; ++i) {\n result = _toConsumableArray(result).concat(_toConsumableArray(linesUnit));\n }\n\n return result;\n }\n }, {\n key: \"renderDotItem\",\n value: function renderDotItem(option, props) {\n var dotItem;\n\n if (React.isValidElement(option)) {\n dotItem = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dotItem = option(props);\n } else {\n var className = classNames('recharts-line-dot', option ? option.className : '');\n dotItem = React.createElement(Dot, _extends({}, props, {\n className: className\n }));\n }\n\n return dotItem;\n }\n }]);\n\n return Line;\n}(Component), _class2.displayName = 'Line', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, {\n className: PropTypes.string,\n type: PropTypes.oneOfType([PropTypes.oneOf(['basis', 'basisClosed', 'basisOpen', 'linear', 'linearClosed', 'natural', 'monotoneX', 'monotoneY', 'monotone', 'step', 'stepBefore', 'stepAfter']), PropTypes.func]),\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n yAxis: PropTypes.object,\n xAxis: PropTypes.object,\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n tooltipType: PropTypes.oneOf(TOOLTIP_TYPES),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n connectNulls: PropTypes.bool,\n hide: PropTypes.bool,\n // whether have dot in line\n activeDot: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool]),\n dot: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool]),\n top: PropTypes.number,\n left: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n points: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n value: PropTypes.value\n })),\n onAnimationStart: PropTypes.func,\n onAnimationEnd: PropTypes.func,\n isAnimationActive: PropTypes.bool,\n animateNewValues: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n animationId: PropTypes.number,\n id: PropTypes.string\n}), _class2.defaultProps = {\n xAxisId: 0,\n yAxisId: 0,\n connectNulls: false,\n activeDot: true,\n dot: true,\n legendType: 'line',\n stroke: '#3182bd',\n strokeWidth: 1,\n fill: '#fff',\n points: [],\n isAnimationActive: !isSsr(),\n animateNewValues: true,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n hide: false,\n onAnimationStart: function onAnimationStart() {},\n onAnimationEnd: function onAnimationEnd() {}\n}, _class2.getComposedData = function (_ref2) {\n var props = _ref2.props,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n dataKey = _ref2.dataKey,\n bandSize = _ref2.bandSize,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var layout = props.layout;\n var points = displayedData.map(function (entry, index) {\n var value = getValueByDataKey(entry, dataKey);\n\n if (layout === 'horizontal') {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: _isNil(value) ? null : yAxis.scale(value),\n value: value,\n payload: entry\n };\n }\n\n return {\n x: _isNil(value) ? null : xAxis.scale(value),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n return _objectSpread({\n points: points,\n layout: layout\n }, offset);\n}, _temp)) || _class;\n\nexport default Line;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/cartesian/Line.js\n// module id = 227\n// module chunks = 0","import _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Render a group of scatters\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Animate from 'react-smooth';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport Layer from '../container/Layer';\nimport LabelList from '../component/LabelList';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, LEGEND_TYPES, TOOLTIP_TYPES, getPresentationAttributes, filterEventsOfChild, isSsr, findAllByType } from '../util/ReactUtils';\nimport ZAxis from './ZAxis';\nimport Curve from '../shape/Curve';\nimport Symbols from '../shape/Symbols';\nimport ErrorBar from './ErrorBar';\nimport Cell from '../component/Cell';\nimport { uniqueId, interpolateNumber, getLinearRegression } from '../util/DataUtils';\nimport { getValueByDataKey, getCateCoordinateOfLine } from '../util/ChartUtils';\n\nvar Scatter = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Scatter, _Component);\n\n function Scatter() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Scatter);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Scatter)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: false\n };\n\n _this.cachePrevPoints = function (points) {\n _this.setState({\n prevPoints: points\n });\n };\n\n _this.handleAnimationEnd = function () {\n _this.setState({\n isAnimationFinished: true\n });\n };\n\n _this.handleAnimationStart = function () {\n _this.setState({\n isAnimationFinished: false\n });\n };\n\n _this.id = uniqueId('recharts-scatter-');\n return _this;\n }\n\n _createClass(Scatter, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n points = _this$props.points;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevPoints(points);\n }\n }\n }, {\n key: \"renderSymbolsStatically\",\n value: function renderSymbolsStatically(points) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n shape = _this$props2.shape,\n activeShape = _this$props2.activeShape,\n activeIndex = _this$props2.activeIndex;\n var baseProps = getPresentationAttributes(this.props);\n return points.map(function (entry, i) {\n var props = _objectSpread({\n key: \"symbol-\".concat(i)\n }, baseProps, entry);\n\n return React.createElement(Layer, _extends({\n className: \"recharts-scatter-symbol\"\n }, filterEventsOfChild(_this2.props, entry, i), {\n key: \"symbol-\".concat(i)\n }), _this2.constructor.renderSymbolItem(activeIndex === i ? activeShape : shape, props));\n });\n }\n }, {\n key: \"renderSymbolsWithAnimation\",\n value: function renderSymbolsWithAnimation() {\n var _this3 = this;\n\n var _this$props3 = this.props,\n points = _this$props3.points,\n isAnimationActive = _this$props3.isAnimationActive,\n animationBegin = _this$props3.animationBegin,\n animationDuration = _this$props3.animationDuration,\n animationEasing = _this$props3.animationEasing,\n animationId = _this$props3.animationId;\n var prevPoints = this.state.prevPoints;\n return React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"pie-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = points.map(function (entry, index) {\n var prev = prevPoints && prevPoints[index];\n\n if (prev) {\n var interpolatorCx = interpolateNumber(prev.cx, entry.cx);\n var interpolatorCy = interpolateNumber(prev.cy, entry.cy);\n var interpolatorSize = interpolateNumber(prev.size, entry.size);\n return _objectSpread({}, entry, {\n cx: interpolatorCx(t),\n cy: interpolatorCy(t),\n size: interpolatorSize(t)\n });\n }\n\n var interpolator = interpolateNumber(0, entry.size);\n return _objectSpread({}, entry, {\n size: interpolator(t)\n });\n });\n return React.createElement(Layer, null, _this3.renderSymbolsStatically(stepData));\n });\n }\n }, {\n key: \"renderSymbols\",\n value: function renderSymbols() {\n var _this$props4 = this.props,\n points = _this$props4.points,\n isAnimationActive = _this$props4.isAnimationActive;\n var prevPoints = this.state.prevPoints;\n\n if (isAnimationActive && points && points.length && (!prevPoints || !_isEqual(prevPoints, points))) {\n return this.renderSymbolsWithAnimation();\n }\n\n return this.renderSymbolsStatically(points);\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar() {\n var isAnimationActive = this.props.isAnimationActive;\n\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props5 = this.props,\n points = _this$props5.points,\n xAxis = _this$props5.xAxis,\n yAxis = _this$props5.yAxis,\n children = _this$props5.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n\n if (!errorBarItems) {\n return null;\n }\n\n function dataPointFormatterY(dataPoint, dataKey) {\n return {\n x: dataPoint.cx,\n y: dataPoint.cy,\n value: dataPoint.y,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n }\n\n function dataPointFormatterX(dataPoint, dataKey) {\n return {\n x: dataPoint.cx,\n y: dataPoint.cy,\n value: dataPoint.x,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n }\n\n return errorBarItems.map(function (item, i) {\n var direction = item.props.direction;\n return React.cloneElement(item, {\n key: i,\n data: points,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: direction === 'x' ? 'vertical' : 'horizontal',\n dataPointFormatter: direction === 'x' ? dataPointFormatterX : dataPointFormatterY\n });\n });\n }\n }, {\n key: \"renderLine\",\n value: function renderLine() {\n var _this$props6 = this.props,\n points = _this$props6.points,\n line = _this$props6.line,\n lineType = _this$props6.lineType,\n lineJointType = _this$props6.lineJointType;\n var scatterProps = getPresentationAttributes(this.props);\n var customLineProps = getPresentationAttributes(line);\n var linePoints, lineItem;\n\n if (lineType === 'joint') {\n linePoints = points.map(function (entry) {\n return {\n x: entry.cx,\n y: entry.cy\n };\n });\n } else if (lineType === 'fitting') {\n var _getLinearRegression = getLinearRegression(points),\n xmin = _getLinearRegression.xmin,\n xmax = _getLinearRegression.xmax,\n a = _getLinearRegression.a,\n b = _getLinearRegression.b;\n\n var linearExp = function linearExp(x) {\n return a * x + b;\n };\n\n linePoints = [{\n x: xmin,\n y: linearExp(xmin)\n }, {\n x: xmax,\n y: linearExp(xmax)\n }];\n }\n\n var lineProps = _objectSpread({}, scatterProps, {\n fill: 'none',\n stroke: scatterProps && scatterProps.fill\n }, customLineProps, {\n points: linePoints\n });\n\n if (React.isValidElement(line)) {\n lineItem = React.cloneElement(line, lineProps);\n } else if (_isFunction(line)) {\n lineItem = line(lineProps);\n } else {\n lineItem = React.createElement(Curve, _extends({}, lineProps, {\n type: lineJointType\n }));\n }\n\n return React.createElement(Layer, {\n className: \"recharts-scatter-line\",\n key: \"recharts-scatter-line\"\n }, lineItem);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n hide = _this$props7.hide,\n points = _this$props7.points,\n line = _this$props7.line,\n className = _this$props7.className,\n xAxis = _this$props7.xAxis,\n yAxis = _this$props7.yAxis,\n left = _this$props7.left,\n top = _this$props7.top,\n width = _this$props7.width,\n height = _this$props7.height,\n id = _this$props7.id;\n\n if (hide || !points || !points.length) {\n return null;\n }\n\n var _this$state = this.state,\n isAnimationActive = _this$state.isAnimationActive,\n isAnimationFinished = _this$state.isAnimationFinished;\n var layerClass = classNames('recharts-scatter', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = _isNil(id) ? this.id : id;\n return React.createElement(Layer, {\n className: layerClass,\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, needClip ? React.createElement(\"defs\", null, React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: height\n }))) : null, line && this.renderLine(), this.renderErrorBar(), React.createElement(Layer, {\n key: \"recharts-scatter-symbols\"\n }, this.renderSymbols()), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"renderSymbolItem\",\n value: function renderSymbolItem(option, props) {\n var symbol;\n\n if (React.isValidElement(option)) {\n symbol = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n symbol = option(props);\n } else {\n symbol = React.createElement(Symbols, _extends({}, props, {\n type: option\n }));\n }\n\n return symbol;\n }\n }]);\n\n return Scatter;\n}(Component), _class2.displayName = 'Scatter', _class2.propTypes = _objectSpread({}, EVENT_ATTRIBUTES, PRESENTATION_ATTRIBUTES, {\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n zAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n line: PropTypes.oneOfType([PropTypes.bool, PropTypes.object, PropTypes.func, PropTypes.element]),\n lineType: PropTypes.oneOf(['fitting', 'joint']),\n lineJointType: PropTypes.oneOfType([PropTypes.oneOf(['basis', 'basisClosed', 'basisOpen', 'linear', 'linearClosed', 'natural', 'monotoneX', 'monotoneY', 'monotone', 'step', 'stepBefore', 'stepAfter']), PropTypes.func]),\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n tooltipType: PropTypes.oneOf(TOOLTIP_TYPES),\n className: PropTypes.string,\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n activeIndex: PropTypes.number,\n activeShape: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.element]),\n shape: PropTypes.oneOfType([PropTypes.oneOf(['circle', 'cross', 'diamond', 'square', 'star', 'triangle', 'wye']), PropTypes.element, PropTypes.func]),\n points: PropTypes.arrayOf(PropTypes.shape({\n cx: PropTypes.number,\n cy: PropTypes.number,\n size: PropTypes.number,\n node: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n z: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n payload: PropTypes.any\n })),\n hide: PropTypes.bool,\n isAnimationActive: PropTypes.bool,\n animationId: PropTypes.number,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear'])\n}), _class2.defaultProps = {\n xAxisId: 0,\n yAxisId: 0,\n zAxisId: 0,\n legendType: 'circle',\n lineType: 'joint',\n lineJointType: 'linear',\n data: [],\n shape: 'circle',\n hide: false,\n isAnimationActive: !isSsr(),\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'linear'\n}, _class2.getComposedData = function (_ref2) {\n var xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n zAxis = _ref2.zAxis,\n item = _ref2.item,\n displayedData = _ref2.displayedData,\n onItemMouseLeave = _ref2.onItemMouseLeave,\n onItemMouseEnter = _ref2.onItemMouseEnter,\n offset = _ref2.offset,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks;\n var tooltipType = item.props.tooltipType;\n var cells = findAllByType(item.props.children, Cell);\n var xAxisDataKey = _isNil(xAxis.dataKey) ? item.props.dataKey : xAxis.dataKey;\n var yAxisDataKey = _isNil(yAxis.dataKey) ? item.props.dataKey : yAxis.dataKey;\n var zAxisDataKey = zAxis && zAxis.dataKey;\n var defaultRangeZ = zAxis ? zAxis.range : ZAxis.defaultProps.range;\n var defaultZ = defaultRangeZ && defaultRangeZ[0];\n var xBandSize = xAxis.scale.bandwidth ? xAxis.scale.bandwidth() : 0;\n var yBandSize = yAxis.scale.bandwidth ? yAxis.scale.bandwidth() : 0;\n var points = displayedData.map(function (entry, index) {\n var x = entry[xAxisDataKey];\n var y = entry[yAxisDataKey];\n var z = !_isNil(zAxisDataKey) && entry[zAxisDataKey] || '-';\n var tooltipPayload = [{\n name: xAxis.name || xAxis.dataKey,\n unit: xAxis.unit || '',\n value: x,\n payload: entry,\n dataKey: xAxisDataKey,\n type: tooltipType\n }, {\n name: yAxis.name || yAxis.dataKey,\n unit: yAxis.unit || '',\n value: y,\n payload: entry,\n dataKey: yAxisDataKey,\n type: tooltipType\n }];\n\n if (z !== '-') {\n tooltipPayload.push({\n name: zAxis.name || zAxis.dataKey,\n unit: zAxis.unit || '',\n value: z,\n payload: entry,\n dataKey: zAxisDataKey,\n type: tooltipType\n });\n }\n\n var cx = getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: xBandSize,\n entry: entry,\n index: index,\n dataKey: xAxisDataKey\n });\n var cy = getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: yBandSize,\n entry: entry,\n index: index,\n dataKey: yAxisDataKey\n });\n var size = z !== '-' ? zAxis.scale(z) : defaultZ;\n var radius = Math.sqrt(Math.max(size, 0) / Math.PI);\n return _objectSpread({}, entry, {\n cx: cx,\n cy: cy,\n x: cx - radius,\n y: cy - radius,\n xAxis: xAxis,\n yAxis: yAxis,\n zAxis: zAxis,\n width: 2 * radius,\n height: 2 * radius,\n size: size,\n node: {\n x: x,\n y: y,\n z: z\n },\n tooltipPayload: tooltipPayload,\n tooltipPosition: {\n x: cx,\n y: cy\n },\n payload: entry\n }, cells && cells[index] && cells[index].props);\n });\n return _objectSpread({\n onMouseLeave: onItemMouseLeave,\n onMouseEnter: onItemMouseEnter,\n points: points\n }, offset);\n}, _temp)) || _class;\n\nexport default Scatter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/cartesian/Scatter.js\n// module id = 228\n// module chunks = 0","import _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Legend\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport pureRender from '../util/PureRender';\nimport DefaultLegendContent from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\nimport { LEGEND_TYPES } from '../util/ReactUtils';\n\nvar defaultUniqBy = function defaultUniqBy(entry) {\n return entry.value;\n};\n\nvar getUniqPaylod = function getUniqPaylod(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n};\n\nvar renderContent = function renderContent(content, props) {\n if (React.isValidElement(content)) {\n return React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return content(props);\n }\n\n return React.createElement(DefaultLegendContent, props);\n};\n\nvar EPS = 1;\nvar ICON_TYPES = LEGEND_TYPES.filter(function (type) {\n return type !== 'none';\n});\n\nvar Legend = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Legend, _Component);\n\n function Legend() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Legend);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Legend)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n return _this;\n }\n\n _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (boxWidth >= 0 && boxHeight >= 0) {\n return {\n width: boxWidth,\n height: boxHeight\n };\n }\n\n return null;\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var box = this.getBBox() || {\n width: 0\n };\n hPos = {\n left: ((chartWidth || 0) - box.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box = this.getBBox() || {\n height: 0\n };\n\n vPos = {\n top: ((chartHeight || 0) - _box.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n\n return _objectSpread({}, hPos, vPos);\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n var onBBoxUpdate = this.props.onBBoxUpdate;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: box.width,\n boxHeight: box.height\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(box);\n }\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n paylodUniqBy = _this$props2.paylodUniqBy,\n payload = _this$props2.payload;\n\n var outerStyle = _objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle), wrapperStyle);\n\n return React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread({}, this.props, {\n payload: getUniqPaylod(paylodUniqBy, payload)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var layout = item.props.layout;\n\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n\n return null;\n }\n }]);\n\n return Legend;\n}(Component), _class2.displayName = 'Legend', _class2.propTypes = {\n content: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n wrapperStyle: PropTypes.object,\n chartWidth: PropTypes.number,\n chartHeight: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n iconSize: PropTypes.number,\n iconType: PropTypes.oneOf(ICON_TYPES),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n align: PropTypes.oneOf(['center', 'left', 'right']),\n verticalAlign: PropTypes.oneOf(['top', 'bottom', 'middle']),\n margin: PropTypes.shape({\n top: PropTypes.number,\n left: PropTypes.number,\n bottom: PropTypes.number,\n right: PropTypes.number\n }),\n payload: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.any,\n id: PropTypes.any,\n type: PropTypes.oneOf(LEGEND_TYPES)\n })),\n paylodUniqBy: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n formatter: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onClick: PropTypes.func,\n onBBoxUpdate: PropTypes.func\n}, _class2.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n}, _temp)) || _class;\n\nexport default Legend;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/component/Legend.js\n// module id = 229\n// module chunks = 0","var _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Curve\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'd3-shape';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\nvar SYMBOL_FACTORIES = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\n\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(type.slice(0, 1).toUpperCase()).concat(type.slice(1));\n return SYMBOL_FACTORIES[name] || symbolCircle;\n};\n\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n\n case 'square':\n return size * size;\n\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n\n default:\n return Math.PI * size * size / 4;\n }\n};\n\nvar Symbols = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Symbols, _Component);\n\n function Symbols() {\n _classCallCheck(this, Symbols);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Symbols).apply(this, arguments));\n }\n\n _createClass(Symbols, [{\n key: \"getPath\",\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n value: function getPath() {\n var _this$props = this.props,\n size = _this$props.size,\n sizeType = _this$props.sizeType,\n type = _this$props.type;\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n size = _this$props2.size;\n\n if (cx === +cx && cy === +cy && size === +size) {\n return React.createElement(\"path\", _extends({}, getPresentationAttributes(this.props), filterEventAttributes(this.props), {\n className: classNames('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: this.getPath()\n }));\n }\n\n return null;\n }\n }]);\n\n return Symbols;\n}(Component), _class2.displayName = 'Symbols', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n className: PropTypes.string,\n type: PropTypes.oneOf(['circle', 'cross', 'diamond', 'square', 'star', 'triangle', 'wye']),\n cx: PropTypes.number,\n cy: PropTypes.number,\n size: PropTypes.number,\n sizeType: PropTypes.oneOf(['area', 'diameter'])\n}), _class2.defaultProps = {\n type: 'circle',\n size: 64,\n sizeType: 'area'\n}, _temp)) || _class;\n\nexport default Symbols;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/shape/Symbols.js\n// module id = 230\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_cof.js\n// module id = 231\n// module chunks = 0","// 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//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_defined.js\n// module id = 232\n// module chunks = 0","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_enum-bug-keys.js\n// module id = 233\n// module chunks = 0","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_math-expm1.js\n// module id = 234\n// module chunks = 0","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_math-sign.js\n// module id = 235\n// module chunks = 0","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_object-dp.js\n// module id = 236\n// module chunks = 0","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_string-trim.js\n// module id = 237\n// module chunks = 0","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_string-ws.js\n// module id = 238\n// module chunks = 0","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_to-iobject.js\n// module id = 239\n// module chunks = 0","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_to-primitive.js\n// module id = 240\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 241\n// module chunks = 0","'use strict';\n\n// Shim to avoid requiring Velocity in Node environments, since it\n// requires window. Note that this just no-ops the components so\n// that they'll render, rather than doing something clever like\n// statically rendering the end state of any provided animations.\n//\n// TODO(finneganh): Circle back on jsdom to see if we can run full\n// Velocity with it in place. This come up in:\n// https://github.com/twitter-fabric/velocity-react/issues/119\n// but there may have been different loading issues in that case,\n// not a global incompatibility with jsdom.\nif (typeof window === 'undefined' || typeof navigator === 'undefined' || navigator.userAgent.indexOf('Node.js') !== -1 || navigator.userAgent.indexOf('jsdom') !== -1) {\n var Velocity = function Velocity() {};\n Velocity.Utilities = {};\n Velocity.Utilities.removeData = function () {};\n Velocity.velocityReactServerShim = true;\n module.exports = Velocity;\n} else {\n // this is how velocity-ui finds the Velocity instance, so lets make sure we find the right instance\n var g = window.jQuery || window.Zepto || window;\n\n // require Velocity if it doesn't already exist\n module.exports = g.Velocity ? g.Velocity : require('velocity-animate');\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/velocity-react/lib/velocity-animate-shim.js\n// module id = 242\n// module chunks = 0","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as $ from \"jquery\";\r\nimport Rest = require(\"../../Generated/RestClient\");\r\nimport {\r\n AzurePortalPage, AzurePortalPageProps, AzurePortalPageState,\r\n BotAppSettings, BotAppSettingsProps\r\n} from \"../Views/index\";\r\nimport {BotControllerBase} from \"./BotControllerBase\";\r\nimport { DevPortalAppBase } from \"../../DevPortalAppBase\";\r\nimport {BotController} from \"./BotController\";\r\nimport isInFrame from \"../../../../Intercom.ReactUI/Utils/InFrame\";\r\nimport {downloadBotSource} from \"../Services/downloadBotSrc\";\r\nimport logger from \"../../../../Intercom.ReactUI/Utils/logger\";\r\nimport { Environment } from \"../../../../Intercom.ReactUI/Utils/Environment\";\r\nimport {KuduClient} from \"../../Services/KuduApi\";\r\nimport {Poller, PollingModel} from \"../../Models/PollingModel\";\r\nimport {clientAppSettings} from \"../../Models/ClientAppSettings\";\r\nimport {ArmClient, WebAppService} from \"../../Services/ArmApi\";\r\nimport {BladeType} from \"../Services/azurePortalLinks\";\r\nimport {lazy} from \"../../Decorators/index\";\r\nimport {BotProgress} from \"../Views/status/BotProgress\";\r\n\r\nimport { AuthenticationUtility } from \"../Utility/AuthenticationUtility\";\r\n\r\nexport class Verbs {\r\n // Initialization verbs\r\n public static message = \"message\";\r\n public static ready = \"ready\";\r\n\r\n // Requests from iframe\r\n public static getStartupInfo = \"get-startup-info\";\r\n public static openBlade = \"open-blade\";\r\n public static openBladeWithInputs = \"open-blade-inputs\";\r\n public static logAction = \"log-action\";\r\n public static logMessage = \"log-message\";\r\n public static setDirtyState = \"set-dirtystate\";\r\n\r\n // Requests from Ibiza\r\n public static sendStartupInfo = \"send-startup-info\";\r\n public static sendResourceId = \"send-resourceId\";\r\n public static sendInputs = \"send-inputs\";\r\n public static sendAppSettingName = \"send-appSettingName\";\r\n public static sendToken = \"send-token\";\r\n public static sendToken2 = \"send-token2\";\r\n}\r\n\r\nexport interface IbizaMessage {\r\n signature: string;\r\n kind: string;\r\n data: any;\r\n}\r\n\r\nexport interface IbizaEvent {\r\n data: IbizaMessage;\r\n}\r\n\r\nexport interface StartupInfo {\r\n sessionId: string,\r\n token: string,\r\n selfToken?: string,\r\n effectiveLocale: string,\r\n ignoreSendToken?: boolean\r\n}\r\n\r\nexport interface IbizaBlade {\r\n detailBlade: string,\r\n detailBladeInputs: any,\r\n extension: string\r\n}\r\n\r\nconst BladeNames = {\r\n continuousIntegration: 'ContinuousDeploymentListBlade',\r\n webConfig: 'SiteConfigSettingsFrameBlade',\r\n appSettings: 'AppsOverviewBlade',\r\n functionEditor: 'FunctionsIFrameBlade'\r\n}\r\n\r\n/**\r\n * for creating cross frame message between azure portal and our bot page\"\r\n */\r\nconst portalSignature = \"FxAppBlade\";\r\n\r\nexport class AzurePortalPageController extends BotControllerBase {\r\n private component: AzurePortalPage;\r\n private state: AzurePortalPageState;\r\n private shellSrc: string;\r\n private rsrcId: string;\r\n private startupInfo: StartupInfo;\r\n private messageHandler: EventListener;\r\n private _scmPoller: Poller;\r\n private _deployPoller: Poller;\r\n private deploymentLog: Rest.VfsNodeInfo;\r\n private _botAppSettings: BotAppSettings;\r\n\r\n protected setBotAppSettings(x: any) {\r\n this._botAppSettings = x;\r\n if (this._botAppSettings) {\r\n logger.debug('hooking up botAppSettings');\r\n this._botAppSettings.setState(this.state);\r\n }\r\n }\r\n\r\n private get botAppSettings(): BotAppSettings {\r\n return this._botAppSettings;\r\n }\r\n\r\n constructor(app: DevPortalAppBase) {\r\n super(app);\r\n\r\n Environment.isInAzurePortal = true;\r\n\r\n $('body').toggleClass(\"inframe\", isInFrame());\r\n window.refreshBot = () => {\r\n this.fetchBot();\r\n };\r\n }\r\n\r\n protected pageRequiresSignIn(): boolean {\r\n // require sign in if we are not hosted in azure portal, or we got the token from azure portal already\r\n return !isInFrame() || !!(this.startupInfo && this.startupInfo.token);\r\n }\r\n\r\n // override controller base updateState for inframe sign in, we need to get the botId to complete loading the page\r\n protected updateState(signInInProgress: boolean, signInError: string, callback?: () => void): void{\r\n logger.debug('updateState is called on tabpagecontroller');\r\n var wrapped = callback ? _.wrap(callback, fn => {\r\n fn();\r\n logger.debug('signInInProgress = ', signInInProgress, 'signInError = ', signInError);\r\n if (isInFrame()) {\r\n if (this.app.signedInUser && this.startupInfo && this.startupInfo.token) {\r\n logger.debug('set signedInUser.AzureToken = this.startupInfo.token in updateState');\r\n this.app.signedInUser.AzureToken = this.startupInfo.token;\r\n }\r\n if (this.app.signedInUser && !this.botId) {\r\n this.loadAzureResource();\r\n } else if (!this.app.signedInUser) {\r\n logger.debug('missing this.app.signedInUser');\r\n }\r\n }\r\n }) : undefined;\r\n super.updateState(signInInProgress, signInError, wrapped as any);\r\n }\r\n\r\n get scmPoller(): Poller {\r\n if (!this._scmPoller) {\r\n this._scmPoller = new Poller({ defaultInterval: 10000, maxPendingPollRequests: 1 },\r\n () => this.pollScmType(),\r\n scmType => {\r\n if (scmType != this.state.scmType) {\r\n this.scmPoller.stop();\r\n console.log(`set state.scmType = ${scmType}`);\r\n this.state.scmType = scmType;\r\n this.syncState();\r\n if (this.botAppSettings) {\r\n this.botAppSettings.setState(this.state);\r\n }\r\n if (this.botController) {\r\n this.botController.refreshScmType();\r\n }\r\n }\r\n });\r\n }\r\n return this._scmPoller;\r\n }\r\n\r\n public refreshScmType() {\r\n this.pollScmType().then(scmType => this.state.scmType = scmType);\r\n }\r\n\r\n private pingDeployLog(): JQueryPromise {\r\n let result = $.Deferred();\r\n this.kuduClient\r\n .then(kc => {\r\n kc.get(`${kc.scmUri.format()}/api/vfs/site/`).then(\r\n (nodes: any) => {\r\n let node = _.find(nodes, (x: Rest.VfsNodeInfo) => x.name.toLowerCase() == \"deployment.log\");\r\n result.resolve(!!node);\r\n }\r\n ).fail(\r\n () => { result.resolve(false) });\r\n });\r\n\r\n return result;\r\n }\r\n\r\n get deployPoller(): Poller {\r\n if (!this._deployPoller) {\r\n let pollSetting: PollingModel = this.deploymentLog ? {\r\n defaultInterval: 60000, // 1 minute\r\n maxPendingPollRequests: 1\r\n } : {\r\n defaultInterval: 10000, // 10 seconds\r\n maxPendingPollRequests: 1\r\n };\r\n\r\n this._deployPoller = new Poller(pollSetting,\r\n () => this.pingDeployLog(),\r\n found => {\r\n const prevFound = this.state.botDeploymentLogFound;\r\n this.state.botDeploymentLogFound = found;\r\n if (!prevFound && found) {\r\n this.syncState();\r\n if (this.botAppSettings) {\r\n this.botAppSettings.setState(this.state);\r\n }\r\n this.deployPoller.stop();\r\n if (this.state.scmType !== 'none') {\r\n // we have continuous integration on, poll to check if\r\n // there is a new deployment pushed\r\n this._deployPoller = null;\r\n this.deployPoller.start();\r\n }\r\n }\r\n });\r\n }\r\n return this._deployPoller;\r\n }\r\n\r\n private setupCrossFrameMessaging() : void {\r\n if (isInFrame() && !this.messageHandler) {\r\n try {\r\n logger.debug('bind message handler');\r\n logger.debug('continue logging');\r\n this.messageHandler = _.bind(this.onReceiveMessage, this);\r\n } catch (ex) {\r\n logger.debug(`bound messageHandler error ${ex}`);\r\n }\r\n logger.debug('bound messageHandler');\r\n logger.debug('add inframe listener');\r\n window.addEventListener(Verbs.message, this.messageHandler, false);\r\n logger.debug('done window.addEventListener');\r\n // This is a required message. It tells the shell that your iframe is ready to receive messages.\r\n this.postMessage(Verbs.ready, null);\r\n this.postMessage(Verbs.getStartupInfo, null);\r\n } else {\r\n if (!isInFrame()) {\r\n logger.debug('we are not in an iframe');\r\n } else if (this.messageHandler) {\r\n logger.debug('cross frame message handler already setup');\r\n }\r\n }\r\n }\r\n\r\n public render(params: SimpleMvc.QueryParams): void {\r\n super.render(params);\r\n\r\n this.shellSrc = this.shellSrc || params[\"shellSrc\"];\r\n this.rsrcId = this.rsrcId || params[\"rsrcId\"];\r\n\r\n this.botId = params[\"id\"];\r\n this.state = {\r\n botId: this.botId,\r\n scmType: 'none'\r\n }\r\n\r\n if (this.app.signedInUser && this.botId) {\r\n this.fetchBot();\r\n }\r\n\r\n this.setupCrossFrameMessaging();\r\n\r\n logger.debug('AzurePortalPageController loaded');\r\n }\r\n\r\n public unload() {\r\n logger.debug('AzurePortalPageController unloaded');\r\n if (this.messageHandler) {\r\n window.removeEventListener(Verbs.message, this.messageHandler, false);\r\n this.messageHandler = null;\r\n }\r\n super.unload();\r\n }\r\n\r\n private pollScmType(): JQueryPromise {\r\n return this.kuduClient.then(client => {\r\n return client.settings;\r\n }).then(settings => {\r\n return $.Deferred().resolve(settings['ScmType']);\r\n });\r\n }\r\n\r\n public get botAppSettingsProps(): BotAppSettingsProps {\r\n if (!isInFrame()) {\r\n return null;\r\n }\r\n return {\r\n openBlade: _.bind(this.openBlade, this),\r\n handleChange: null,\r\n onDropIcon: null,\r\n onSave: null,\r\n downloadZip: _.bind(this.downloadZip, this),\r\n onZipDownloaded: blobUrl => { },\r\n scmType: this.pollScmType(),\r\n initialBot: this.botSub ? this.botSub.Bot : null,\r\n v4UI: true,\r\n kuduClient: this.kuduClient,\r\n armClient: $.Deferred().resolve(this.armClient)\r\n };\r\n }\r\n\r\n public openBlade(bladeType: BladeType) {\r\n const bladeName = BladeNames[BladeType[bladeType]];\r\n let bladeInputs: any;\r\n console.log(`bladeName=${bladeName}`);\r\n\r\n switch (bladeType) {\r\n case BladeType.appSettings:\r\n bladeInputs = { id: this.rsrcId };\r\n break;\r\n case BladeType.webConfig:\r\n bladeInputs = { id: this.rsrcId };\r\n break;\r\n case BladeType.continuousIntegration:\r\n bladeInputs = { ResourceId: this.rsrcId, id: this.rsrcId };\r\n break;\r\n case BladeType.functionEditor:\r\n bladeInputs = { id: this.rsrcId, resourceId: this.rsrcId };\r\n break;\r\n }\r\n\r\n // we don't have a way to register blade close event handler\r\n // so we just use polling here to watch if user has changed scmType\r\n if (bladeType == BladeType.continuousIntegration) {\r\n // start polling scmType change\r\n if (this.scmPoller.isStopped()) {\r\n this.scmPoller.start();\r\n }\r\n } else {\r\n // heuristically stop polling when user opens another blade\r\n this.scmPoller.stop();\r\n }\r\n\r\n const blade: IbizaBlade = {\r\n detailBlade: bladeName,\r\n detailBladeInputs: bladeInputs,\r\n extension: 'WebsitesExtension'\r\n };\r\n this.postMessage(Verbs.openBlade, blade);\r\n }\r\n\r\n private updateBot(bot: Rest.BotService, reviewStatus: Rest.ReviewStatusDetail) {\r\n this.state = _.extend(this.state, {\r\n bot: bot\r\n });\r\n\r\n this.botSub.Bot = bot;\r\n this.botSub.ReviewStatusDetail = reviewStatus;\r\n this.syncState();\r\n if (this.botAppSettings) {\r\n this.botAppSettings.setState(this.state);\r\n }\r\n }\r\n\r\n @lazy()\r\n private get kuduClient(): JQueryPromise {\r\n return Rest.CodeClient.getScmAuthz(this.botId).then(x => {\r\n return $.Deferred().resolve(KuduClient.createFromScmAuthorization(x));\r\n }).fail(xhr => {\r\n this.handleHttpResponseError(xhr);\r\n });\r\n }\r\n\r\n private downloadZip(): JQueryPromise {\r\n return downloadBotSource(this.kuduClient);\r\n }\r\n\r\n protected saveBotStateAndRender(botSub: Rest.BotSubscription) {\r\n if (botSub.Bot) {\r\n logger.debug('saveBotStateAndRender', botSub.Bot.Id);\r\n (this.botController as any).saveBotStateAndRender(botSub);\r\n }\r\n }\r\n\r\n @lazy()\r\n private get botController(): BotController {\r\n return new BotController(this.app, this, this.botAppSettingsProps);\r\n }\r\n\r\n private get AzureBotServiceVersion(): string {\r\n return window.location.pathname.indexOf('codev2') >= 0 ? \"ABSv2\" : \"ABSv1\";\r\n }\r\n\r\n private get hosting() : JQueryPromise {\r\n return this.webApp.then(app => {\r\n return $.Deferred().resolve(app.kind.split(',').indexOf('app') >= 0 ? 'webapp' : undefined);\r\n }, () => {\r\n return $.Deferred().resolve(undefined);\r\n });\r\n }\r\n\r\n private get serverFarmId() : JQueryPromise {\r\n return this.webApp.then(app => {\r\n return $.Deferred().resolve(app.properties.serverFarmId);\r\n }, () => {\r\n return $.Deferred().resolve(undefined);\r\n }); \r\n }\r\n\r\n private get location(): JQueryPromise {\r\n return this.webApp.then(app => {\r\n return $.Deferred().resolve(app.location);\r\n }, () => {\r\n return $.Deferred().resolve(undefined);\r\n }); \r\n }\r\n\r\n private renderPage() : JQueryPromise {\r\n \r\n let element = React.createElement(AzurePortalPage, {\r\n botPageProps: this.botSub ? this.botController.getBotPageProps(this.botSub) : null,\r\n onSetComponent: x => {\r\n this.component = x;\r\n if (x) {\r\n x.setState(this.state);\r\n }\r\n }\r\n });\r\n ReactDOM.render(element, this.pageContent);\r\n return $.Deferred().resolve(this.component); \r\n }\r\n\r\n private getShellSrc() {\r\n if (!this.shellSrc && isInFrame()) {\r\n this.shellSrc = window.location.search.match(/=(.+)/)[1];\r\n }\r\n return this.shellSrc;\r\n }\r\n\r\n private postMessage(verb: string, data: string | IbizaBlade) {\r\n if (isInFrame()) {\r\n logger.debug(`post message ${verb}`);\r\n window.parent.postMessage({\r\n signature: portalSignature,\r\n kind: verb,\r\n data: _.isString(data) ? data : JSON.stringify(data)\r\n }, this.getShellSrc());\r\n }\r\n }\r\n\r\n private setBotId(botId: string) {\r\n if (this.botId !== botId) {\r\n this.botId = botId;\r\n this.state.botId = botId;\r\n this.statusBar = React.createElement(BotProgress, {progress: 'Loading bot'});\r\n this.renderPage().then(comp => {\r\n comp.setState(this.state, () => {\r\n if (botId) {\r\n this.fetchBot().then(() => {\r\n this.statusBar = null;\r\n });\r\n } else {\r\n this.statusBar = null;\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n private syncState() {\r\n if (this.component) {\r\n this.component.setState(this.state);\r\n }\r\n }\r\n\r\n private fetchBot(): JQueryPromise {\r\n logger.debug('AzurePortalPageController fetchBot');\r\n\r\n Rest.BotManagerClient.getConfigSettings(this.botId).then(config => {\r\n this.state.scmType = config.properties.scmType;\r\n this.syncState();\r\n });\r\n\r\n return Rest.BotManagerClient.getById(this.botId)\r\n .then(botSub => {\r\n this.botSub = botSub;\r\n return this.botController.loadBotState(botSub.Bot);\r\n })\r\n .then(()=> {\r\n return $.Deferred().resolve(this.botSub);\r\n })\r\n .done(botSub => {\r\n this.saveBotStateAndRender(botSub);\r\n this.pingDeployLog().then(found => {\r\n if (found) {\r\n this.state.botDeploymentLogFound = true;\r\n this.syncState();\r\n }\r\n if (!found || this.state.scmType !== 'none') {\r\n this.deployPoller.start();\r\n }\r\n });\r\n })\r\n .fail(xhr => {\r\n if (xhr.status == 404 && isInFrame()) {\r\n // this is the create flow\r\n logger.debug(`can't locate bot for ${this.botId}`);\r\n this.botId = null;\r\n this.state.botId = null;\r\n this.syncState();\r\n } else {\r\n this.handleHttpResponseError(xhr)\r\n }\r\n });\r\n }\r\n\r\n private bindAzureAccessToken() {\r\n const token = this.startupInfo.token;\r\n if (token) {\r\n const authData = this.app.signedInUser;\r\n if (authData) {\r\n authData.AzureToken = token;\r\n } else {\r\n logger.debug('this.app.signedInUser not set');\r\n }\r\n // when hosted in Azure portal, the tenant Id of the user\r\n // is the one we want to use by definition\r\n const headers = { \r\n 'X-BF-OAUTH-TOKEN': token, \r\n 'X-BF-TenantId' : this.app.signedInUser.TenantId \r\n };\r\n Rest.ajaxHeaders = _.extend(Rest.ajaxHeaders || {}, headers);\r\n } else {\r\n logger.debug('this.starupInfo.token not set');\r\n }\r\n }\r\n\r\n private handleRefreshAuthFailure() {\r\n if (!this.component) {\r\n this.renderPage().then(comp => {\r\n comp.setState(this.state);\r\n });\r\n } else {\r\n this.syncState();\r\n }\r\n }\r\n\r\n private refreshAuthToken(useSelfToken: boolean = true) {\r\n if (isInFrame()) {\r\n const csrfToken = AuthenticationUtility.getCsrfToken()\r\n if (!csrfToken) {\r\n logger.debug(\"AzurePortalPageController: Failed to get CSRF token from cookie.\");\r\n this.handleRefreshAuthFailure();\r\n return;\r\n }\r\n\r\n $.ajax('/refreshLogin', {\r\n data: {\r\n token: useSelfToken ? this.startupInfo.selfToken || this.startupInfo.token : this.startupInfo.token,\r\n '__RequestVerificationToken': csrfToken\r\n },\r\n type: 'POST'\r\n })\r\n .then(() => Rest.AccountClient.getSignedInUser())\r\n .then(() => {\r\n // refresh successful\r\n if (!this.app.signedInUser) {\r\n logger.debug('reload BotTabPageController');\r\n this.refreshSignedInUser();\r\n this.bindAzureAccessToken();\r\n // reload the controller which will get the signed in user\r\n if (this.component) {\r\n this.component.forceUpdate();\r\n }\r\n } else {\r\n logger.debug('user already signed in');\r\n this.bindAzureAccessToken();\r\n if (!this.botId) {\r\n logger.debug('load azure reosurce');\r\n this.loadAzureResource();\r\n }\r\n }\r\n })\r\n .fail(xhr => {\r\n this.handleHttpResponseError(xhr);\r\n });\r\n }\r\n }\r\n\r\n @lazy()\r\n private get armClient() : ArmClient {\r\n return new ArmClient(this.startupInfo.token);\r\n }\r\n\r\n @lazy()\r\n private get webApp() : JQueryPromise {\r\n if (this.rsrcId && this.startupInfo && this.startupInfo.token) {\r\n return this.armClient.getWebAppService(this.rsrcId);\r\n }\r\n return $.Deferred().reject('no startupInfo or rsrcId');\r\n }\r\n\r\n private loadAzureResource() {\r\n if (this.app.signedInUser && this.startupInfo.token && this.rsrcId) {\r\n logger.debug('AzurePortalPageController loadAzureResource');\r\n Rest.CodeClient.fetchBotId(this.rsrcId, this.startupInfo.token).done(botId => {\r\n this.setBotId(botId)\r\n }).fail(xhr => {\r\n if (xhr.status == 404 && isInFrame()) {\r\n // this is the create flow\r\n logger.debug(`can't locate bot for rsrcId ${this.rsrcId}`);\r\n this.webApp.always(() => {\r\n this.setBotId(null);\r\n })\r\n } else {\r\n this.handleHttpResponseError(xhr)\r\n }\r\n });\r\n }\r\n }\r\n\r\n private get isFirstPartyAuth() : boolean {\r\n return clientAppSettings.flightedFeatures.indexOf('firstPartyAuth') >= 0;\r\n }\r\n\r\n private onReceiveMessage(event: IbizaEvent) {\r\n if (!event || !event.data || event.data.signature !== portalSignature) {\r\n return;\r\n }\r\n\r\n let data = event.data.data;\r\n let methodName = event.data.kind;\r\n\r\n logger.debug(\"[iFrame] Received mesg: \" + methodName);\r\n\r\n switch (methodName) {\r\n case Verbs.sendResourceId:\r\n this.rsrcId = data;\r\n break;\r\n case Verbs.sendInputs:\r\n this.rsrcId = data['resourceId'];\r\n break;\r\n case Verbs.sendStartupInfo:\r\n {\r\n const si = data;\r\n let refreshToken = true;\r\n if (this.botId && si && si.token && this.startupInfo && si.token === this.startupInfo.token) {\r\n refreshToken = false;\r\n }\r\n\r\n this.startupInfo = si;\r\n this.statusBar = React.createElement(BotProgress, {progress: 'Initializing'});\r\n if (this.startupInfo.token && refreshToken) {\r\n this.refreshAuthToken(this.isFirstPartyAuth);\r\n }\r\n }\r\n break;\r\n case Verbs.sendAppSettingName:\r\n // TODO: manage app setting namges\r\n break;\r\n case Verbs.sendToken:\r\n {\r\n if (this.startupInfo && !this.startupInfo.ignoreSendToken) {\r\n this.startupInfo.token = data;\r\n this.refreshAuthToken(false);\r\n } \r\n }\r\n break;\r\n case Verbs.sendToken2:\r\n {\r\n if (this.startupInfo && this.isFirstPartyAuth) {\r\n this.startupInfo.ignoreSendToken = true;\r\n this.startupInfo.selfToken = data.selfToken;\r\n this.startupInfo.token = data.token;\r\n this.refreshAuthToken();\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Controllers/AzurePortalPageController.ts","/// \r\n/// \r\n\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { MessageBox } from './../../Dialogs/MessageBox';\r\n\r\nimport { PageStatusFlags } from \"./ControllerBase\";\r\nimport { BotControllerBase } from \"./BotControllerBase\";\r\nimport { DevPortalAppBase, IAnnouncements } from \"../../DevPortalAppBase\";\r\nimport { DevPortalApp } from \"../DevPortalApp\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport * as Dialogs from \"../../Dialogs/MessageBox\";\r\nimport { ProgressDialog } from \"../../Dialogs/ProgressDialog\";\r\nimport { GenericDialog } from \"../../Dialogs/GenericDialog\";\r\nimport { NavLinks } from \"../../../../Intercom.ReactUI/Views/index\";\r\nimport { Resources } from \"../../Resources/Intercom.Resources.DevPortal\";\r\nimport { clientAppSettings } from \"../../Models/ClientAppSettings\";\r\nimport { BotUtils, BotTypes, BotUtilsV2, RollbackEndpointVersionName } from \"../../Utils/BotUtils\";\r\nimport { BotEditController } from \"./BotEditController\";\r\nimport {\r\n BotProgress, V3Update, EmptyBotPage,\r\n BotTabs, BotPage, isStillDeploying, isDeploymentFinished, BotPageProps, BotPageState,\r\n BotAppSettingsProps, BotAppSettings, BotAppCIProps,\r\n Route\r\n} from \"../Views/index\";\r\nimport { WebChatPage, WebChatPageProps } from \"../Views/WebChatPage\";\r\nimport { BotCodeEditorController } from \"./BotCodeEditorController\";\r\nimport isInFrame from \"../../../../Intercom.ReactUI/Utils/InFrame\";\r\nimport { BotPageTab } from \"../../Views/BotTabPage\";\r\nimport * as EmbedCodeView from \"../Views/EmbedCodePanel\";\r\nimport { RuntimeConnectedShadeUtils } from \"../../../../Intercom.ReactUI/Utils/RuntimeConnectedShadeUtils\";\r\nimport { Environment } from \"../../../../Intercom.ReactUI/Utils/Environment\";\r\nimport { Poller, PollingModel } from \"../../Models/PollingModel\";\r\nimport { KuduClient, ArmClient, GraphApi, TenantInfo } from \"../../Services/index\";\r\nimport { downloadBotSource } from \"../Services/downloadBotSrc\";\r\nimport { parseApiError } from \"../Services/parseApiError\";\r\nimport { BotCodeSetupController } from \"./BotCodeSetupController\";\r\nimport getBotResourceId from \"../Services/botResourceId\";\r\nimport { getAzurePortalBladeUrl, BladeType } from \"../Services/azurePortalLinks\";\r\nimport openTab from \"../Services/openTab\";\r\nimport {relativeUrl} from \"../../Utils/Links\";\r\nimport {AzurePortalPageController} from \"./AzurePortalPageController\";\r\nimport { readCookie } from \"../../../../Intercom.ReactUI/Utils/Cookies\";\r\nimport {lazy} from \"../../Decorators/index\";\r\nimport { FlightUtils } from \"../../Utils/FlightUtils\";\r\n\r\n// 15 seconds polling interval to check deployment status\r\nexport const deploymentPollingInterval = 15000;\r\n\r\n// Must be kept in sync with enum BotTabs of Client/Views/v4/BotPage.tsx\r\nconst ServiceBotRoutes: Route[] = [\r\n {\r\n tab: BotTabs.Build,\r\n route: '/bots/build'\r\n },\r\n {\r\n tab: BotTabs.Channels,\r\n route: '/bots/channels'\r\n },\r\n {\r\n tab: BotTabs.Analytics,\r\n route: '/bots/analytics'\r\n },\r\n {\r\n tab: BotTabs.Settings,\r\n route: '/bots/settings'\r\n }\r\n];\r\n\r\n// Must be kept in sync with enum BotTabs of Client/Views/v4/BotPage.tsx (subset ok)\r\nconst SDKBotRoutes: Route[] = [\r\n {\r\n tab: BotTabs.Channels,\r\n route: '/bots/channels'\r\n },\r\n {\r\n tab: BotTabs.Analytics,\r\n route: '/bots/analytics'\r\n },\r\n {\r\n tab: BotTabs.Settings,\r\n route: '/bots/settings'\r\n }\r\n];\r\n\r\nconst ABSv1Routes: Route[] = [{\r\n tab: BotTabs.Develop,\r\n route: '/bots/code'\r\n}].concat(SDKBotRoutes);\r\n\r\nconst ABSCodeRoutes: Route[] = [{\r\n tab: BotTabs.Build,\r\n route: '/bots/codesetup'\r\n}].concat(SDKBotRoutes);\r\n\r\nexport function Routes(botType: BotTypes): Route[] {\r\n switch (botType) {\r\n case BotTypes.ABSCode:\r\n return ABSCodeRoutes;\r\n case BotTypes.ABSv1:\r\n return isInFrame() ? ABSv1Routes : SDKBotRoutes;\r\n case BotTypes.ABSv2:\r\n return ServiceBotRoutes;\r\n case BotTypes.SDK:\r\n return SDKBotRoutes;\r\n default:\r\n return [];\r\n }\r\n}\r\n\r\n// set to true to debug app settings section without being hosted in azure portal\r\nconst debugAppSettings = false;\r\n\r\nexport class BotController extends BotControllerBase {\r\n private component: BotPage;\r\n private _botEditController: BotEditController;\r\n private _botCodeEditorController: BotCodeEditorController;\r\n private _deployPoller: Poller;\r\n private botAppSettings: BotAppSettings;\r\n private botPageState: BotPageState;\r\n private _armClient: ArmClient;\r\n\r\n private set waitingForDeployment(val: boolean) {\r\n if (val) {\r\n this.statusBar = React.createElement(BotProgress, {});\r\n } else {\r\n this.statusBar = null;\r\n }\r\n }\r\n\r\n private get deployPoller(): Poller {\r\n if (!this._deployPoller) {\r\n const pollSetting: PollingModel = {\r\n defaultInterval: deploymentPollingInterval,\r\n maxPendingPollRequests: 1\r\n };\r\n this._deployPoller = new Poller(pollSetting,\r\n () => this.pollDeploymentStatus(),\r\n deployed => {\r\n if (deployed) {\r\n this.waitingForDeployment = false;\r\n this.deployPoller.stop();\r\n if (this.component) {\r\n this.component.setState(this.botPageState);\r\n }\r\n }\r\n });\r\n }\r\n return this._deployPoller;\r\n }\r\n\r\n @lazy()\r\n private get kuduClient(): JQueryPromise {\r\n // In azure we already have the arm auth token - just use it directly.\r\n if (Environment.isInBotFrameworkAzureExtension) {\r\n // If we don't have a bot or access token yet just fall back to the old code - we should not need a kuduClient but to be safe leaving it for now.\r\n if (this.botSub && this.botSub.Bot && this.botSub.Bot.Endpoint && this.app.signedInUser && this.app.signedInUser.AzureToken) {\r\n const kuduUri = KuduClient.getKuduSiteName(this.botSub.Bot);\r\n return $.Deferred().resolve(KuduClient.createFromArmToken(kuduUri, this.app.signedInUser.AzureToken));\r\n }\r\n }\r\n\r\n return Rest.CodeClient.getScmAuthz(this.botId)\r\n .then(authz => {\r\n return $.Deferred().resolve(KuduClient.createFromScmAuthorization(authz));\r\n });\r\n }\r\n\r\n constructor(app: DevPortalAppBase, container?: BotControllerBase,\r\n private _botAppSettingsProps?: BotAppSettingsProps) {\r\n super(app);\r\n\r\n this.botPageState = {\r\n showWebChat: false,\r\n showWebChatPending: true,\r\n announcements: (this.app as DevPortalApp).announcements\r\n };\r\n\r\n this.containerController = container;\r\n\r\n window.refreshBot = () => {\r\n this.refreshFromRemote();\r\n };\r\n\r\n window.onbeforeunload = (event) => {\r\n if (this.component && this.component.state.authoringDirty) {\r\n const message = \"You have unsaved changes in bot. Please click 'Save' button to save and train your bot. Otherwise you will lose all your changes. \";\r\n if (typeof event === 'undefined') {\r\n event = window.event;\r\n }\r\n\r\n if (event) {\r\n event.returnValue = message;\r\n }\r\n\r\n return message;\r\n }\r\n };\r\n\r\n RuntimeConnectedShadeUtils.on(RuntimeConnectedShadeUtils.AuthoringToolDirtyEventName, this.onDirtyMessage);\r\n RuntimeConnectedShadeUtils.on(RuntimeConnectedShadeUtils.AuthoringToolMaskEventName, this.onMaskMessage);\r\n RuntimeConnectedShadeUtils.on(RuntimeConnectedShadeUtils.AuthoringToolErrorEventName, this.onErrorMessage);\r\n }\r\n\r\n private get botAppSettingsProps(): BotAppSettingsProps {\r\n return this._botAppSettingsProps || (debugAppSettings ? {\r\n openBlade: this.openBlade.bind(this),\r\n handleChange: this.noop.bind(this),\r\n onSave: this.noop.bind(this),\r\n onDropIcon: this.noop.bind(this),\r\n downloadZip: this.downloadZip.bind(this),\r\n onZipDownloaded: this.noop.bind(this),\r\n initialBot: null,\r\n scmType: this.scmType,\r\n v4UI: true,\r\n kuduClient: this.kuduClient,\r\n armClient: this.armClient\r\n } : null);\r\n }\r\n\r\n private openBlade(bladeType: BladeType) {\r\n if (!isInFrame()) {\r\n this.getAzureBladeUrl(bladeType)\r\n .then(tabUrl => {\r\n openTab(tabUrl);\r\n })\r\n .fail(() => {\r\n const tabUrl = getAzurePortalBladeUrl(this.botSub.Bot, null, bladeType);\r\n openTab(tabUrl);\r\n });\r\n } else if (this.containerController && this.containerController instanceof AzurePortalPageController) {\r\n this.containerController.openBlade(bladeType);\r\n }\r\n }\r\n\r\n private getAzureBladeUrl(bladeType: BladeType): JQueryPromise {\r\n return this.graphClient.then(gc => {\r\n return gc.getTenantDetails(this.tenantId);\r\n })\r\n .then((tenantInfo: TenantInfo) => {\r\n const domainName = tenantInfo.DomainName;\r\n const tabUrl = getAzurePortalBladeUrl(this.botSub.Bot, domainName, bladeType);\r\n return $.Deferred().resolve(tabUrl);\r\n });\r\n }\r\n\r\n private get botAppCIProps(): BotAppCIProps {\r\n return {\r\n openBlade: this.openBlade.bind(this),\r\n downloadZip: this.downloadZip.bind(this),\r\n bot: this.botSub ? this.botSub.Bot : null,\r\n scmType: () => this.scmType,\r\n bladeUrl: blade =>\r\n isInFrame() ? $.Deferred().resolve('') : this.getAzureBladeUrl(blade),\r\n kuduClient: () => this.kuduClient,\r\n armClient: () => this.armClient,\r\n botRsrcId: $.Deferred().resolve(this.botSub ? getBotResourceId(this.botSub.Bot) : null),\r\n botDeploymentLogFound: !!this.botSub,\r\n pendingDownload: false,\r\n blobUrl: null,\r\n onZipDownloaded: this.noop.bind(this),\r\n expandoOpenedAlways: true,\r\n hideTitle: true,\r\n toggleTip: null\r\n };\r\n }\r\n\r\n @lazy()\r\n private get armClient(): JQueryPromise {\r\n return Rest.AccountClient.exchangeArmToken(this.tenantId).then(token => {\r\n return $.Deferred().resolve(new ArmClient(token));\r\n });\r\n }\r\n\r\n private get tenantId(): string {\r\n return this.botSub && this.botSub.Bot && this.botSub.Bot.ProvisionInfo ?\r\n this.botSub.Bot.ProvisionInfo.TenantId : null;\r\n }\r\n\r\n @lazy()\r\n private get graphClient(): JQueryPromise {\r\n // exchange our token for a graph token\r\n return Rest.AccountClient.exchangeGraphToken(this.tenantId).then(token => {\r\n return $.Deferred().resolve(new GraphApi(token));\r\n });\r\n }\r\n\r\n private noop(): void {\r\n // no-op\r\n }\r\n\r\n private downloadZip(): JQueryPromise {\r\n return downloadBotSource(this.kuduClient);\r\n }\r\n\r\n public unload() {\r\n if (this._deployPoller && !this._deployPoller.isStopped()) {\r\n this._deployPoller.stop();\r\n }\r\n super.unload();\r\n }\r\n\r\n public isUnloadable(callback: (unloadable: boolean) => void): void {\r\n if (this.hasUnsavedChanges()) {\r\n Dialogs.MessageBox.ask(\"Unsaved changes will be lost. Are you sure?\").done(() => {\r\n callback(true);\r\n }).fail(() => {\r\n callback(false);\r\n });\r\n }\r\n else {\r\n callback(true);\r\n }\r\n }\r\n\r\n public hasUnsavedChanges(): boolean {\r\n return (this._botEditController && this._botEditController.hasUnsavedChanges()) ||\r\n (this._botCodeEditorController && this._botCodeEditorController.hasUnsavedChanges()) ||\r\n (this.component && this.component.state.authoringDirty);\r\n }\r\n\r\n public render(params: SimpleMvc.QueryParams): void {\r\n super.render(params);\r\n\r\n this.botId = params[\"id\"];\r\n this.channel = params[\"channelId\"];\r\n\r\n this.renderPage(this.botId);\r\n\r\n this.setActiveJumboActiveLink(NavLinks.mybots);\r\n }\r\n\r\n\r\n private handleTenantSwitching(xhr: JQueryXHR): boolean {\r\n const apiErr = parseApiError(xhr);\r\n if (apiErr && apiErr.code === 401 && apiErr.message.indexOf('/login?') >= 0) {\r\n window.location.href = apiErr.message;\r\n return true;\r\n }\r\n if (apiErr && apiErr.code === 'ExpiredAuthenticationToken') {\r\n // token expired, refresh\r\n const curUrl = relativeUrl(window.location);\r\n window.location.href = `/login?requestUrl=${encodeURIComponent(curUrl)}`;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private checkBotDeployStatus(bot: Rest.BotService): void {\r\n if (Environment.isInBotFrameworkAzureExtension) {\r\n // In Azure Ibiza we get notification from the Blade when the bot is ready to receive messages. So just wait for that.\r\n return;\r\n }\r\n\r\n if (isStillDeploying(bot)) {\r\n this.waitingForDeployment = true;\r\n this.deployPoller.start();\r\n } else if (this.botPageState.showWebChatPending) {\r\n this.pollDeploymentStatus().then(ready => {\r\n if (!ready) {\r\n this.deployPoller.start();\r\n }\r\n });\r\n }\r\n\r\n if (this.statusBar == null) {\r\n this.statusBar = React.createElement(V3Update, { bot: bot });\r\n }\r\n }\r\n\r\n private renderPage(botId: string): void {\r\n if (botId) {\r\n this.botId = botId;\r\n this.statusBar = React.createElement(BotProgress, { progress: Resources.loadingBot });\r\n this.setPageStatusFlag(PageStatusFlags.LoadingBot);\r\n\r\n Rest.BotManagerClient.getById(botId)\r\n .then(botSubscription => {\r\n if (!this.isLoaded()) {\r\n return;\r\n }\r\n\r\n this.botSub = botSubscription;\r\n\r\n return this.loadBotState(botSubscription.Bot);\r\n //this.checkBotDeployStatus(botSubscription.Bot);\r\n })\r\n .done(() => {\r\n this.statusBar = null;\r\n if (this.clearPageStatusFlag(PageStatusFlags.LoadingBot)) {\r\n this.renderCommon();\r\n }\r\n\r\n this.saveBotStateAndRender(this.botSub);\r\n })\r\n .fail((jqXHR: JQueryXHR, textStatus, errorThrown) => {\r\n this.statusBar = null;\r\n if (this.clearPageStatusFlag(PageStatusFlags.LoadingBot)) {\r\n this.renderCommon();\r\n }\r\n\r\n if (!this.handleTenantSwitching(jqXHR)) {\r\n this.handleHttpResponseError(jqXHR);\r\n }\r\n });\r\n }\r\n\r\n if (!this.botSub) {\r\n // bot not yet loaded, render the empty page\r\n ReactDOM.render(React.createElement(EmptyBotPage, {}), this.pageContent, () => {\r\n this.scrollToTop();\r\n });\r\n }\r\n }\r\n\r\n public loadBotState(bot: Rest.BotService): JQueryPromise {\r\n const p1 = this.getBotLogs(bot.Id);\r\n return $.when(p1);\r\n }\r\n\r\n private get botEditorController(): BotEditController {\r\n if (!this._botEditController) {\r\n this._botEditController = new BotEditController(this.app, this, this.botAppSettingsProps);\r\n }\r\n return this._botEditController;\r\n }\r\n\r\n private get botCodeEditorController(): BotCodeEditorController {\r\n if (!this._botCodeEditorController) {\r\n this._botCodeEditorController = new BotCodeEditorController(this.app, this);\r\n if (this.botId) {\r\n this._botCodeEditorController.setBotId(this.botId,\r\n this.botSub && this.botSub.Bot && this.botSub.Bot.ProvisionInfo ?\r\n this.botSub.Bot.ProvisionInfo.SubscriptionId : null);\r\n }\r\n }\r\n return this._botCodeEditorController;\r\n }\r\n\r\n @lazy()\r\n private get botCodeSetupController(): BotCodeSetupController {\r\n return new BotCodeSetupController(this.app, this);\r\n }\r\n\r\n private get scmType(): JQueryPromise {\r\n return this.kuduClient\r\n .then(client => client.settings)\r\n .then(settings => $.Deferred().resolve(settings['ScmType']));\r\n }\r\n\r\n public getBotPageProps(botSub: Rest.BotSubscription): BotPageProps {\r\n let bot = botSub.Bot;\r\n let botType = BotUtils.getBotType(bot);\r\n let subscriptionKey = { primary: botSub.PrimarySubscriptionKey }\r\n this.channelDataHandlers.showEmbedHandler = (_lastFocus) => this.showEmbedCodes(_lastFocus);\r\n return {\r\n controller: this,\r\n routes: Routes,\r\n botSettingsTabProps: {\r\n bot: bot,\r\n subscriptionKeys: subscriptionKey,\r\n channelDataHandlers: this.channelDataHandlers,\r\n isAdmin: () => this.isAdminOrSupport(),\r\n isReviewer: () => this.isReviewer(),\r\n isSubmitForReviewFlighted: this.app.isSubmitForReviewFlighted(),\r\n isUserV3Flighted: this.app.isUserFeatureFlighted('v3'),\r\n configuredChannels: BotController.getConfiguredChannels(bot),\r\n reviewStatusDetail: botSub.ReviewStatusDetail,\r\n },\r\n botEditorProps: this.botEditorController.getBotEditorProps(bot,\r\n this.botAppSettingsProps,\r\n editor => { this.botEditorController.setComponent(editor); }),\r\n botCodeEditorProps: this.botCodeEditorController.getBotCodeEditorProps({\r\n scmType: () => {\r\n if (this.containerController) {\r\n return this.containerController['state'].scmType;\r\n }\r\n return 'None';\r\n },\r\n openTab: _.bind(this.openTab, this),\r\n onSetCodeEditor: editor => { this.botCodeEditorController.setComponent(editor); }\r\n }),\r\n botCodeSetupProps: {\r\n scmType: () => this.scmType,\r\n ciProps: this.botAppCIProps,\r\n setCodeSetup: x => {\r\n this.botCodeSetupController.component = x;\r\n if (this.botSub && this.botSub.Bot && x) {\r\n x.setState({ bot: this.botSub.Bot });\r\n }\r\n },\r\n setLoading: f => {\r\n this.statusBar = f ? React.createElement(BotProgress, { progress: Resources.loadingBot}) : null;\r\n },\r\n onScmTypeChange: () => {\r\n if (this.containerController) {\r\n if (this.containerController instanceof AzurePortalPageController) {\r\n this.containerController.refreshScmType();\r\n }\r\n }\r\n }\r\n },\r\n tabClickHandler: tab => this.onTabClick(tab),\r\n testClickHandler: () => this.onTestClick(),\r\n importBotHandler: (f) => this.onImportBot(f),\r\n channelConfigClickHandler: s => this.onChannelConfigNav(s),\r\n channelConfigInterface: {\r\n leaveChannelConfig: () => this.onChannelConfigLeave(),\r\n reloadBot: () => this.reloadBot(),\r\n },\r\n initialBot: bot,\r\n initialSelectedTab: this.tabFromPath(this.app.getCurrentPagePath(), botType),\r\n initialSubkeys: subscriptionKey,\r\n initialShowWebChat: this.botPageState.showWebChat,\r\n initialChannel: this.channel,\r\n initialAuthoringDirty: false,\r\n initialAuthoringError: false,\r\n onSetBotAppSettings: x => { this.setBotAppSettings(x) },\r\n azureToken: this.app.signedInUser.AzureToken,\r\n canWriteToBot: botSub.CanWriteToBot\r\n };\r\n }\r\n\r\n protected setBotAppSettings(x: any) {\r\n if (this.containerController) {\r\n super.setBotAppSettings(x);\r\n } else {\r\n this.botAppSettings = x;\r\n if (this.botAppSettings) {\r\n this.botAppSettings.setState(\r\n {\r\n bot: this.botSub ? this.botSub.Bot : null,\r\n botDeploymentLogFound: true,\r\n });\r\n }\r\n }\r\n }\r\n\r\n protected saveBotStateAndRender(botSub: Rest.BotSubscription) {\r\n let bot = botSub.Bot;\r\n let botType = BotUtils.getBotType(bot);\r\n let channelReviewStatuses = botSub.ReviewStatuses;\r\n\r\n this.botId = bot.Id;\r\n if (!this.botSub) {\r\n this.botSub = botSub;\r\n if (this.clearPageStatusFlag(PageStatusFlags.LoadingBot)) {\r\n this.renderCommon();\r\n }\r\n }\r\n\r\n this.channelDataHandlers.getChannelPublishStatus = (channelId: string) => {\r\n return channelReviewStatuses[channelId];\r\n };\r\n\r\n // if we finished the deployment without getting endpoint poll again\r\n if (!bot.Endpoint && bot.ProvisionInfo && isDeploymentFinished(bot)) {\r\n this.waitingForDeployment = true;\r\n this.deployPoller.start();\r\n }\r\n\r\n this.checkBotDeployStatus(bot);\r\n\r\n if (this.isWebChatRoute(this.app.getCurrentPagePath())) {\r\n // Webchat route used by Ibiza\r\n const element = React.createElement(WebChatPage, { bot: bot} as WebChatPageProps);\r\n ReactDOM.render(element, this.pageContent);\r\n }\r\n else {\r\n // Standard bot page.\r\n const props: BotPageProps = this.getBotPageProps(botSub);\r\n const element = React.createElement(BotPage, props);\r\n\r\n this.updateTitle(bot.Name);\r\n\r\n this.component = ReactDOM.render(element, this.pageContent, () => {\r\n this.scrollToTop();\r\n this.setupEventHandlers();\r\n }) as BotPage;\r\n // When pressing browser back to switch between tabs of this page React reuses existing component.\r\n // So we have to update the state of the existing component.\r\n this.component.setState({\r\n bot: bot,\r\n selectedTab: this.tabFromPath(this.app.getCurrentPagePath(), botType),\r\n channel: this.channel,\r\n reviewStatusDetail: botSub.ReviewStatusDetail\r\n });\r\n if (this.botCodeSetupController.component) {\r\n this.botCodeSetupController.component.setState({ bot: bot });\r\n }\r\n if (botType === BotTypes.ABSv1) {\r\n this.botCodeEditorController.setBotId(bot.Id, bot.ProvisionInfo ? bot.ProvisionInfo.SubscriptionId : null);\r\n }\r\n }\r\n }\r\n\r\n private onImportBot(file: any): JQueryPromise {\r\n var requestVerificationToken = readCookie('Csrf-Token');\r\n var def = $.Deferred();\r\n $.ajax({\r\n type: 'POST',\r\n url: `/api/botApp/${this.botId}/import`,\r\n contentType: file.type,\r\n headers: _.extend(Rest.ajaxHeaders || {}, { 'X-Csrf-Token': requestVerificationToken }),\r\n data: file,\r\n processData: false,\r\n success: r => def.resolve(r),\r\n error: e => def.reject(e)\r\n });\r\n\r\n this.showProgressMask = true;\r\n def.always(() => {\r\n this.showProgressMask = false;\r\n });\r\n\r\n return def;\r\n }\r\n\r\n private tabFromPath(path: string, botType: BotTypes): BotTabs {\r\n path = path ? path.toLowerCase().trim() : path;\r\n let tab;\r\n if (path !== '/bots') {\r\n tab = Routes(botType)\r\n .filter(entry => entry.route === path)\r\n .map(entry => entry.tab)\r\n .shift();\r\n }\r\n if (_.isUndefined(tab)) {\r\n if (!isInFrame()) {\r\n tab = botType == BotTypes.ABSv2 ? BotTabs.Build : BotTabs.Channels;\r\n } else {\r\n switch (botType) {\r\n case BotTypes.ABSCode:\r\n case BotTypes.ABSv2:\r\n tab = BotTabs.Build;\r\n break;\r\n case BotTypes.ABSv1:\r\n tab = BotTabs.Develop;\r\n break;\r\n default:\r\n tab = BotTabs.Channels;\r\n break;\r\n }\r\n }\r\n }\r\n return tab;\r\n }\r\n\r\n private openTab(tab: BotPageTab, callback?: Function) {\r\n if (tab == BotPageTab.settings) {\r\n this.onTabClick(BotTabs.Settings, callback)\r\n }\r\n }\r\n\r\n private onTabClick(tab: BotTabs, callback?: Function): void {\r\n this.component.setState({\r\n selectedTab: tab,\r\n channel: \"\"\r\n }, () => {\r\n if (callback) {\r\n callback();\r\n }\r\n });\r\n\r\n let botType = BotUtils.getBotType(this.component.state.bot);\r\n let route = Routes(botType)\r\n .filter(entry => entry.tab === tab)\r\n .map(entry => entry.route)\r\n .shift() || '/bots';\r\n if (this.containerController) {\r\n // the bot controller is hosted by another controller (should be AzurePortalPageController)\r\n // we don't want to have the router routes away and lose our inter-frame communication\r\n // with azure portal\r\n } else if (route === '/bots') {\r\n this.app.navigate(route, _.omit(this.params, \"channelId\"));\r\n } else {\r\n history.pushState(null, null, `${route}?id=${this.botId}`);\r\n }\r\n }\r\n\r\n private onTestClick() {\r\n this.botPageState.showWebChat = !this.botPageState.showWebChat;\r\n this.component.setState(this.botPageState);\r\n }\r\n\r\n private onChannelConfigNav(toChannel: string): void {\r\n const allowedChannels = BotUtilsV2.migrationOptionalChannels;\r\n // if this channel is already configured, not much point in giving the error. Shouldn't matter except for 'bingbizbot's\r\n const channelIsConfigured = this.botSub.Bot.ConfiguredChannels.indexOf(toChannel.toLowerCase()) >= 0;\r\n const requireABS = BotUtilsV2.isMigrationOptional(this.botSub.Bot) && allowedChannels.indexOf(toChannel.toLowerCase()) < 0;\r\n const disabled = FlightUtils.areMigrationRequiredBotsDisabled;\r\n if (!channelIsConfigured && requireABS && disabled) {\r\n // show error about non-migrated bot being disabled.\r\n const mb = new Dialogs.MessageBox({\r\n okButtonLabel: Resources.okButtonText\r\n });\r\n mb.message = Resources.channelRequiresABSBot;\r\n mb.showDialog();\r\n } else {\r\n this.channelConfigNav(toChannel);\r\n }\r\n }\r\n\r\n private channelConfigNav(toChannel: string): void {\r\n this.component.setState({ channel: toChannel, selectedTab: BotTabs.Channels });\r\n let botType = BotUtils.getBotType(this.component.state.bot);\r\n let route = Routes(botType)\r\n .filter(entry => entry.tab === BotTabs.Channels)\r\n .map(entry => entry.route)\r\n .shift() || '/bots';\r\n history.pushState(null, null, `${route}?id=${this.botId}&channelId=${toChannel}`);\r\n }\r\n\r\n private onChannelConfigLeave() {\r\n this.component.setState({ channel: \"\", selectedTab: BotTabs.Channels });\r\n let botType = BotUtils.getBotType(this.component.state.bot);\r\n let route = Routes(botType)\r\n .filter(entry => entry.tab === BotTabs.Channels)\r\n .map(entry => entry.route)\r\n .shift() || '/bots';\r\n history.pushState(null, null, `${route}?id=${this.botId}`);\r\n }\r\n\r\n private reloadBot() {\r\n Rest.BotManagerClient.getById(this.botId).then(botSubscription => {\r\n this.botSub = botSubscription;\r\n this.component.setState({ bot: botSubscription.Bot });\r\n this.botEditorController.updateBot(botSubscription.Bot);\r\n });\r\n }\r\n\r\n private refreshFromRemote() {\r\n this.renderPage(this.component.state.bot.Id);\r\n }\r\n\r\n private setupEventHandlers(): void {\r\n var $page = $(this.pageContent);\r\n $page.off();\r\n $page.on('click', '.regenerate-link', ev => this.onRegenerateKeyClicked(ev));\r\n $page.on('click', '.perform-test', ev => this.onPerformTest());\r\n $page.on('click', '.maximize', ev => this.onToggleMaximize(ev));\r\n $page.on('click', '.refresh-channels', ev => this.refreshFromRemote());\r\n }\r\n\r\n private pollDeploymentStatus(): JQueryPromise {\r\n let deferred = $.Deferred();\r\n let bot: Rest._BotService = this.component ? this.component.state.bot : null;\r\n bot = bot || (this.botSub ? this.botSub.Bot : {});\r\n const isSDKBot = BotUtils.isSDKBot(bot);\r\n if (bot.Id && !isSDKBot) {\r\n Rest.BotManagerClient.getProgress(bot.Id, false)\r\n .then(x => {\r\n if (isDeploymentFinished(x)) {\r\n if (BotUtils.isABSv1Bot(x)) {\r\n // for ABSv1 bot poll deployment.log to make sure the bot is fully deployed\r\n return this.kuduClient;\r\n }\r\n else {\r\n this.botPageState.showWebChatPending = false;\r\n return deferred.resolve(true);\r\n }\r\n } else {\r\n return deferred.resolve(false);\r\n }\r\n }, (xhr) => {\r\n if (xhr && !this.handleTenantSwitching(xhr)) {\r\n // we may not have access to the Azure resource\r\n // to check bot deployment status, assume it is deployed fine\r\n this.botPageState.showWebChatPending = false;\r\n return $.Deferred().resolve(true);\r\n }\r\n })\r\n .then((x: any) => {\r\n if (_.isBoolean(x)) {\r\n return deferred;\r\n }\r\n if (x instanceof KuduClient) {\r\n const client = x;\r\n client.get(`${client.scmUri.format()}/api/vfs/site/deployment.log`)\r\n .then(log => {\r\n this.botPageState.showWebChatPending = false;\r\n deferred.resolve(true);\r\n })\r\n .fail((xhr) => {\r\n if (xhr && xhr.status == 404 && client) {\r\n deferred.resolve(false);\r\n } else {\r\n deferred.reject(xhr || 'failed to ping bot deployment log');\r\n }\r\n })\r\n }\r\n })\r\n .fail(xhr => {\r\n this.waitingForDeployment = false;\r\n if (xhr && !this.handleTenantSwitching(xhr)) {\r\n this.handleHttpResponseError(xhr);\r\n }\r\n });\r\n } else {\r\n this.botPageState.showWebChatPending = !isSDKBot;\r\n deferred.resolve(isSDKBot);\r\n }\r\n return deferred;\r\n }\r\n\r\n private onToggleMaximize(ev: JQueryEventObject) {\r\n\r\n var $page = $(this.pageContent);\r\n\r\n //find the card which is being maximize-toggled\r\n var $card = $(ev.currentTarget).parent('.grid-card');\r\n\r\n var maxPage = 'maximized';\r\n var maxCard = 'grid-card-full-width';\r\n\r\n if ($page.hasClass(maxPage)) {\r\n $card.removeClass(maxCard);\r\n $page.removeClass(maxPage);\r\n } else {\r\n $card.addClass(maxCard);\r\n $page.addClass(maxPage);\r\n }\r\n }\r\n\r\n private onRegenerateKeyClicked(ev: JQueryEventObject): void {\r\n if (this.component.state.bot && this.component.state.bot.Id) {\r\n ev.preventDefault();\r\n var isPrimary = $(ev.target).hasClass('primary');\r\n Dialogs.MessageBox.ask(\"Are you sure you want to regenerate this key?\").done(() => {\r\n this.regenerateKey(isPrimary);\r\n });\r\n }\r\n }\r\n\r\n private regenerateKey(isPrimary: boolean) {\r\n var progressDialog = ProgressDialog.show(\"Regenerating secret...\");\r\n Rest.BotManagerClient.regenerateSubscriptionKey(this.component.state.bot.Id, isPrimary).done(botSubscription => {\r\n if (this.isLoaded()) {\r\n progressDialog.closeDialog();\r\n this.component.setState({\r\n bot: botSubscription.Bot,\r\n subscriptionKeys: {\r\n primary: botSubscription.PrimarySubscriptionKey\r\n }\r\n });\r\n }\r\n }).fail(xhr => {\r\n progressDialog.closeDialog();\r\n this.handleHttpResponseError(xhr);\r\n });\r\n }\r\n\r\n private onPerformTest(): void {\r\n var $page = $(this.pageContent);\r\n var inputText = $page.find(\".test-input\").val();\r\n var $output = $page.find(\".test-output\");\r\n $output.text('');\r\n Rest.BotManagerClient.testBot(this.component.state.bot.Id, inputText).done(json => {\r\n if (!this.isLoaded())\r\n return;\r\n try {\r\n var obj = JSON.parse(json);\r\n if (obj) {\r\n var s = JSON.stringify(obj, null, 4);\r\n $output.text(s);\r\n }\r\n }\r\n catch (ex) {\r\n $output.text(json);\r\n }\r\n }).fail(xhr => {\r\n this.handleHttpResponseError(xhr);\r\n });\r\n }\r\n\r\n private onDirtyMessage = (e: JQueryEventObject, dirtyData: any) => {\r\n if (dirtyData) {\r\n if (this.component && this.component.state.authoringDirty !== dirtyData.dirty) {\r\n this.component.setState({ authoringDirty: dirtyData.dirty });\r\n }\r\n }\r\n }\r\n\r\n private onMaskMessage = (e: JQueryEventObject, maskData: any) => {\r\n if (maskData && maskData.inProcess) {\r\n this.statusBar = React.createElement(BotProgress, { progress: maskData.context });\r\n this.showProgressMask = true;\r\n } else {\r\n this.statusBar = null;\r\n this.showProgressMask = false;\r\n }\r\n }\r\n\r\n private onErrorMessage = (e: JQueryEventObject, errorData: any) => {\r\n if (errorData) {\r\n if (this.component && this.component.state.authoringError !== errorData.hasError) {\r\n this.component.setState({ authoringError: errorData.hasError });\r\n }\r\n }\r\n }\r\n\r\n public refreshScmType() {\r\n const codeSetup = this.botCodeSetupController.component;\r\n if (codeSetup) {\r\n codeSetup.refreshScmType();\r\n }\r\n }\r\n\r\n public static getConfiguredChannels(bot: Rest.BotService): Rest.Channel[] {\r\n\r\n if (bot.ConfiguredChannels) {\r\n return clientAppSettings.channels.filter(ch => bot.ConfiguredChannels.indexOf(ch.Id) != -1);\r\n }\r\n return [];\r\n }\r\n\r\n public setAnnouncementState(announcements: IAnnouncements) {\r\n super.setAnnouncementState(announcements);\r\n\r\n this.botPageState.announcements = announcements;\r\n if (this.component) {\r\n this.component.setState({ announcements });\r\n this.component.forceUpdate();\r\n }\r\n }\r\n\r\n protected showEmbedCodes(_lastFocus: React.ReactInstance): void {\r\n let progressDialog = ProgressDialog.show(Resources.embedPanelGettingCodes);\r\n Rest.BotManagerClient.getBotContactCard(this.botId).done(contactCard => {\r\n progressDialog.closeDialog();\r\n if (!contactCard.Contacts.length) {\r\n Dialogs.MessageBox.show(Resources.embedPanelNoCodeAvailable);\r\n }\r\n else {\r\n\r\n let dialog = new GenericDialog(EmbedCodeView.EmbedCodePanel, {\r\n botId: this.botId,\r\n contacts: contactCard.Contacts,\r\n webChatClick: () => {\r\n dialog.closeDialog();\r\n this.onChannelConfigNav(\"webchat\")\r\n }\r\n }, { dialogClass: 'embed-code-dialog' });\r\n dialog.showDialog(_lastFocus);\r\n }\r\n }).fail(xhr => {\r\n progressDialog.closeDialog();\r\n this.handleHttpResponseError(xhr);\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Controllers/BotController.ts","/// \r\n\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { ControllerBase } from \"./ControllerBase\";\r\nimport { DevPortalAppBase } from \"../../DevPortalAppBase\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport * as Editor from '../../Views/Shared/IBotEditor';\r\nimport * as Views from \"../Views/BotEditor\";\r\nimport * as Dialogs from \"../../Dialogs/MessageBox\";\r\nimport * as Links from \"../../Utils/Links\";\r\nimport { ProgressDialog } from \"../../Dialogs/ProgressDialog\";\r\nimport { NavLinks, resourceStrings, BotImageControl } from \"../../../../Intercom.ReactUI/Views/index\";\r\nimport { IconFile } from \"../Views/BotPage\";\r\nimport { clientAppSettings } from \"../../Models/ClientAppSettings\";\r\nimport { BotVersionEditor } from \"../../Views/BotVersionEditor\";\r\nimport { log } from \"../../../../Intercom.ReactUI/Utils/clacky\";\r\nimport { BotAppSettingsProps } from \"../Views/index\";\r\n\r\nexport class BotEditController extends ControllerBase {\r\n private state: Views.BotEditorState;\r\n private initialBot: Rest.BotService;\r\n private component: React.Component;\r\n\r\n constructor(app: DevPortalAppBase, containerController?: ControllerBase,\r\n private botAppSettingsProps?: BotAppSettingsProps) {\r\n super(app);\r\n this.containerController = containerController;\r\n\r\n window.refreshBotMsaApp = (appId: string) => {\r\n log('/bots/new#closeMSAPage', 'Back from MSA dialog');\r\n this.state.bot.MsaAppId = appId;\r\n this.component.setState(this.state);\r\n };\r\n\r\n }\r\n\r\n public setComponent(editor: Views.BotEditor) {\r\n if (editor == null && this.hasUnsavedChanges()) {\r\n // probably switching tab with unsaved changes\r\n this.pendingUnsavedChanges = true;\r\n }\r\n this.component = editor;\r\n if (this.component) {\r\n this.component.setState(this.state);\r\n if (!this.initialBot) {\r\n this.initialBot = _.extend({}, this.state.bot);\r\n }\r\n }\r\n }\r\n\r\n private pendingUnsavedChanges = false;\r\n public hasUnsavedChanges(): boolean {\r\n if (!this.initialBot) {\r\n return false;\r\n }\r\n if (!this.component) {\r\n return this.pendingUnsavedChanges;\r\n }\r\n let updatedBot = $.extend({}, this.initialBot);\r\n this.gatherFormValues(updatedBot);\r\n\r\n for (let field in updatedBot) {\r\n if (updatedBot.hasOwnProperty(field)) {\r\n let oldValue = this.initialBot[field];\r\n let newValue = updatedBot[field];\r\n\r\n if (newValue === '') {\r\n if (_.isString(oldValue) && oldValue.length) { // Note: if oldValue is null or undefined, that's not considered a diff.\r\n return true;\r\n }\r\n }\r\n else {\r\n if ($.isArray(newValue)) {\r\n if (newValue.length === 0) {\r\n if ($.isArray(oldValue) && oldValue.length) { // old oldValue is null or undefined, that's not considered a diff.\r\n return true;\r\n }\r\n }\r\n else {\r\n if (!$.isArray(oldValue))\r\n return true;\r\n let newValueJSON = JSON.stringify(newValue);\r\n let oldValueJSON = JSON.stringify(oldValue);\r\n if (newValueJSON != oldValueJSON)\r\n return true;\r\n }\r\n }\r\n else {\r\n // number, boolean, null, non-empty string\r\n if (newValue != oldValue)\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public isUnloadable(callback: (unloadable: boolean) => void): void {\r\n if (this.hasUnsavedChanges()) {\r\n Dialogs.MessageBox.ask(\"Unsaved changes will be lost. Are you sure?\").done(() => {\r\n callback(true);\r\n }).fail(() => {\r\n callback(false);\r\n });\r\n }\r\n else {\r\n callback(true);\r\n }\r\n }\r\n\r\n public render(params: SimpleMvc.QueryParams): void {\r\n let botId = params[\"id\"];\r\n\r\n super.render(params);\r\n\r\n this.state = Views.BotEditor.createNewState(null);\r\n\r\n this.renderPage(botId);\r\n }\r\n\r\n public updateBot(newBot: Rest.BotService): void {\r\n if (this.state && this.state.bot) {\r\n this.state.bot = newBot;\r\n }\r\n }\r\n\r\n private ensureCurrentVersionEndpoint(currVersion: string, endpoints: Rest.Endpoint[]): Rest.Endpoint[] {\r\n var result: Rest.Endpoint[] = [];\r\n\r\n var hasCurrentVersion = false;\r\n\r\n result = endpoints.map(function (endpoint) {\r\n if (endpoint.Version === currVersion) {\r\n hasCurrentVersion = true;\r\n }\r\n return endpoint;\r\n });\r\n\r\n if (!hasCurrentVersion) {\r\n result.push({ Url: '', Version: currVersion });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private onSystemTagsChange(tags: string[]) {\r\n if (this.state.bot) {\r\n this.state.bot.SystemHashtags = tags;\r\n this.component.setState(this.state);\r\n }\r\n }\r\n\r\n public getBotEditorProps(bot: Rest.BotService,\r\n botAppSettingsProps: BotAppSettingsProps,\r\n onSetEditor: (editor: Views.BotEditor) => void): Views.BotEditorProps {\r\n if (!this.state) {\r\n this.state = Views.BotEditor.createNewState(bot);\r\n } else {\r\n this.state.bot = bot;\r\n }\r\n return {\r\n initialBot: this.state.bot,\r\n inCreateMode: false,\r\n botAppSettingsProps: botAppSettingsProps,\r\n isAdmin: this.isAdminOrSupport(),\r\n onSetEditor: onSetEditor,\r\n onClickButton: _.debounce(x => this.onButtonClicked(x), 500, true),\r\n onDropIcon: (files: IconFile[]) => this.onDropIcon(files),\r\n isFeatureFlighted: this.app.isFeatureFlighted,\r\n onSystemTagsChange: _.bind(this.onSystemTagsChange, this),\r\n onSetBotAppSettings: x => this.setBotAppSettings(x)\r\n }\r\n };\r\n\r\n private renderPage(botId: string): void {\r\n if (botId) {\r\n this.setActiveJumboActiveLink(NavLinks.mybots);\r\n Rest.BotManagerClient.getById(botId).done(botSubscription => {\r\n if (!this.isLoaded())\r\n return;\r\n this.state.bot = botSubscription.Bot;\r\n\r\n this.state.subscriptionKeys = {\r\n primary: botSubscription.PrimarySubscriptionKey\r\n };\r\n\r\n //only allow users with v3 flight to upgrade\r\n if (this.app.isUserFeatureFlighted('v3')) {\r\n\r\n //add the latest version to the array here so that the login in hasUnsavedChanges will detect the new info\r\n this.state.bot.Endpoints = this.ensureCurrentVersionEndpoint('3.0', this.state.bot.Endpoints);\r\n }\r\n\r\n if (this.state.bot.MsaAppId) {\r\n this.state.bot.MsaAppId = this.state.bot.MsaAppId.toLowerCase();\r\n }\r\n\r\n //make a copy of the bot for change comparisons - after we have made any adjustments\r\n this.initialBot = $.extend({}, this.state.bot);\r\n\r\n this.updateTitle(`${this.state.bot.Name} | edit details`);\r\n\r\n var props = this.getBotEditorProps(this.state.bot, this.botAppSettingsProps, x => { });\r\n var element = React.createElement(Views.BotEditor, props);\r\n this.component = ReactDOM.render(element, this.pageContent, () => this.setupEventHandlers());\r\n\r\n // When pressing browser back to switch between tabs of this page React reuses existing component.\r\n // So we have to update the state of the existing component.\r\n this.component.setState(this.state);\r\n }).fail((jqXHR: JQueryXHR, textStatus, errorThrown) => {\r\n this.handleHttpResponseError(jqXHR);\r\n });\r\n } else {\r\n this.setActiveJumboActiveLink(NavLinks.mybots);\r\n\r\n var email = this.app.signedInUser ? this.app.signedInUser.EmailAddress : '';\r\n let defaultIconUrl = clientAppSettings.defaultIconUrl;\r\n \r\n // everyone gets new bots except people in the v1 flight\r\n var newBotVersion = this.app.isUserFeatureFlighted('v1') ? '1.0' : '3.0';\r\n\r\n let endpoints: Rest.Endpoint[] = [\r\n { Url: '', Version: newBotVersion }\r\n ];\r\n\r\n let newBot = {\r\n Name: '',\r\n Description: '',\r\n PublisherEmail: email,\r\n Endpoint: '',\r\n Publisher: '',\r\n Website: '',\r\n SystemHashtags: [],\r\n OwnerIds: [email],\r\n Languages: ['en'],\r\n Listed: false,\r\n IconUrl: defaultIconUrl,\r\n DefaultIconColorHash: `${new Date().getTime()}`,\r\n DeveloperAppInsightKey: '',\r\n DeveloperAppInsightsAPIKey: '',\r\n DeveloperAppInsightsApplicationId: '',\r\n DeveloperBotPrivacyUrl: '',\r\n Id: '',\r\n MsaAppId: '',\r\n ListedMarkets: this.app.isFeatureFlighted('markets') ? ['*'] : null,\r\n Version: newBotVersion,\r\n Endpoints: endpoints\r\n };\r\n newBot.IconUrl = `${defaultIconUrl.substr(0, defaultIconUrl.lastIndexOf('/'))}/${BotImageControl.hashDefaultIconFileName(newBot)}`;\r\n this.initialBot = $.extend({}, newBot);\r\n this.updateTitle(`Register | my bots`);\r\n\r\n var props: Views.BotEditorProps = {\r\n initialBot: newBot,\r\n inCreateMode: true,\r\n botAppSettingsProps: this.botAppSettingsProps,\r\n onDropIcon: (files: IconFile[]) => this.onDropIcon(files),\r\n onClickButton: _.debounce(x => this.onButtonClicked(x), 500, true),\r\n onSetEditor: x => { },\r\n isFeatureFlighted: this.app.isFeatureFlighted,\r\n isAdmin: this.isAdminOrSupport(),\r\n onSystemTagsChange: _.bind(this.onSystemTagsChange, this),\r\n onSetBotAppSettings: x => this.setBotAppSettings(x)\r\n };\r\n\r\n var element = React.createElement(Views.BotEditor, props);\r\n this.component = ReactDOM.render(element, this.pageContent, () => this.setupEventHandlers());\r\n this.state.bot = props.initialBot;\r\n this.component.setState(this.state);\r\n }\r\n }\r\n\r\n private onDropIcon(files: IconFile[]) {\r\n if (files && files.length) {\r\n var file = files[0];\r\n var reader = new FileReader();\r\n reader.onload = (ev: Event) => {\r\n Rest.BotManagerClient.setBotIcon(ev.target['result'], this.state.bot ? this.state.bot.Id : null).done(url => {\r\n var nextState = _.extend({}, this.state);\r\n nextState.bot.IconUrl = url;\r\n this.component.setState(nextState);\r\n }).fail((xhr) => {\r\n this.handleHttpResponseError(xhr);\r\n });\r\n };\r\n\r\n reader.readAsDataURL(file);\r\n // create a clone of state so that incremental render will trigger\r\n this.component.setState(_.extend({}, this.state, { iconFile: file }));\r\n }\r\n }\r\n\r\n private setupEventHandlers(): void {\r\n }\r\n\r\n private onButtonClicked(ev: Event) {\r\n let $button = $(ev.target);\r\n if ($button.hasClass('register-button')) {\r\n this.onRegisterClicked();\r\n } else if ($button.hasClass('delete-button')) {\r\n this.onDeleteClicked();\r\n } else if ($button.hasClass('save-button')) {\r\n this.onSaveClicked();\r\n } else if ($button.hasClass('get-agent-appId')) {\r\n this.onGetAppIdClicked(ev);\r\n } else if ($button.hasClass('regenerate-link')) {\r\n this.onRegenerateKeyClicked(ev)\r\n } else if ($button.hasClass('cancel-button')) {\r\n this.onCancel();\r\n }\r\n\r\n }\r\n private onCancel(): void {\r\n if (this.component.props.inCreateMode)\r\n this.app.navigate(\"/bots/provision\");\r\n else\r\n this.app.navigate(Links.botViewLink(this.state.bot));\r\n }\r\n\r\n private isValidEmail(email: string): boolean {\r\n return email.match(\"^[^@]+@[^@]+\\.[^@]+$\") !== null;\r\n }\r\n\r\n private validateEmailList(s: string): string {\r\n let error = null;\r\n let list = s.split(/[;,]+/);\r\n if (s.match(/@/g).length > 1 && list.length < 2)\r\n return 'Incorrect separator for the owner email';\r\n for (let email of list) {\r\n if (!this.isValidEmail(email)) {\r\n return 'One or more email addresses are not valid.';\r\n }\r\n }\r\n return error;\r\n }\r\n\r\n private isValidNameFieldLength(value: string): boolean {\r\n return (value.length >= Editor.MIN_NAME_LEN && value.length <= Editor.MAX_NAME_LEN);\r\n }\r\n\r\n private gatherFormValues(bot: Rest.BotService): Editor.ErrorDict {\r\n var errors = {} as Editor.ErrorDict;\r\n var requiredFieldError = \"* Required field\";\r\n var displayNameLengthError = \"* Display name must be between \" + Editor.MIN_NAME_LEN + \" and \" + Editor.MAX_NAME_LEN + \" characters\"; \r\n var botHandleLengthError = \"* Bot handle must be between \" + Editor.MIN_NAME_LEN + \" and \" + Editor.MAX_NAME_LEN + \" characters\"; \r\n\r\n var $page = $(this.pageContent);\r\n\r\n //helper to get a string of a strongly typed name\r\n var x = {} as Rest.BotService;\r\n\r\n function name(value: any) {\r\n for (var key in x) {\r\n delete x[key];\r\n return key;\r\n }\r\n return null;\r\n }\r\n\r\n if (this.state.bot.Endpoints.length > 1) {\r\n bot.Version = $page.find('[name=input-Version]:radio').filter(':checked').val();\r\n } else {\r\n bot.Version = this.state.bot.Version;\r\n }\r\n\r\n var endpoints: Rest.Endpoint[] = [];\r\n this.state.bot.Endpoints.map(function (endpoint, index) {\r\n endpoint.Url = $page.find('#' + BotVersionEditor.endpointId(index)).val();\r\n endpoints.push(endpoint);\r\n\r\n if (endpoint.Version === bot.Version) {\r\n bot.Endpoint = endpoint.Url;\r\n }\r\n });\r\n\r\n bot.Endpoints = endpoints;\r\n\r\n // keys of values to copy\r\n var copy = {\r\n DeveloperAppInsightKey: null,\r\n DeveloperAppInsightsAPIKey: null,\r\n DeveloperAppInsightsApplicationId: null,\r\n MsaAppId: null,\r\n MsaAppType: null,\r\n MsaAppMSIResourceId: null,\r\n MsaAppTenantId: null,\r\n Description: null\r\n } as Rest.BotService;\r\n\r\n for (var key in copy) {\r\n let value = $page.find(\"#input-\" + key).val();\r\n if (!_.isUndefined(value)) {\r\n bot[key] = value;\r\n }\r\n }\r\n\r\n //keys of required values\r\n var required = {\r\n Name: null,\r\n Id: null\r\n } as Rest.BotService;\r\n\r\n //not required for v1\r\n if (bot.Version === '3.0') {\r\n required.MsaAppId = null;\r\n }\r\n\r\n for (var key in required) {\r\n bot[key] = $page.find(\"#input-\" + key).val();\r\n if (!bot[key]) {\r\n errors[key] = requiredFieldError;\r\n }\r\n // if the bot is new \r\n if (typeof bot.LastSavedDate === \"undefined\") {\r\n if (key === 'Name' && !this.isValidNameFieldLength(bot[key])) \r\n errors[key] = displayNameLengthError;\r\n if (key === 'Id' && !this.isValidNameFieldLength(bot[key])) \r\n errors[key] = botHandleLengthError;\r\n }\r\n }\r\n\r\n bot.IconUrl = $page.find(\"#agent-icon-url\").val();\r\n bot.DefaultIconColorHash = $page.find(\"#agent-icon-default-hash\").val();\r\n\r\n let $sysTags = $page.find('#agent-systemHashtags');\r\n if ($sysTags.length) {\r\n bot.SystemHashtags = $sysTags.val().split(',').filter(t => t.length);\r\n }\r\n var ownerIds: string = $page.find(\"#input-OwnerIds\").val();\r\n if (ownerIds) {\r\n var ownerIdsError = this.validateEmailList(ownerIds);\r\n if (ownerIdsError)\r\n errors[name(x.OwnerIds = null)] = ownerIdsError;\r\n else\r\n bot.OwnerIds = ownerIds.split(/[;,]+/).map(email => email.trim());\r\n }\r\n\r\n return errors;\r\n }\r\n\r\n private onRegenerateKeyClicked(ev: Event): void {\r\n if (this.state.bot && this.state.bot.Id) {\r\n ev.preventDefault();\r\n var isPrimary = $(ev.target).hasClass('primary');\r\n Dialogs.MessageBox.ask(\"Are you sure you want to regenerate this key?\").done(() => {\r\n this.regenerateKey(isPrimary);\r\n });\r\n }\r\n }\r\n\r\n private regenerateKey(isPrimary: boolean) {\r\n var progressDialog = ProgressDialog.show(\"Regenerating secret...\");\r\n Rest.BotManagerClient.regenerateSubscriptionKey(this.state.bot.Id, isPrimary).done(botSubscription => {\r\n if (this.isLoaded()) {\r\n progressDialog.closeDialog();\r\n\r\n var newState: Views.BotEditorState = {\r\n subscriptionKeys: {\r\n primary: botSubscription.PrimarySubscriptionKey\r\n }\r\n };\r\n\r\n this.component.setState(newState);\r\n }\r\n }).fail(xhr => {\r\n this.handleHttpResponseError(xhr);\r\n });\r\n }\r\n\r\n private onRegisterClicked(): void {\r\n var bot = {};\r\n if (!this.component.state.termAcknowledged) {\r\n $('#agreeToTerms').addClass('must-check');\r\n Dialogs.MessageBox.show(resourceStrings.errors.agreementNotChecked);\r\n return;\r\n }\r\n\r\n var errors = this.gatherFormValues(bot);\r\n if (!$.isEmptyObject(errors)) {\r\n this.state.errors = errors;\r\n } else {\r\n this.state.errors = {};\r\n }\r\n\r\n var progressDialog = ProgressDialog.show(\"Saving...\");\r\n\r\n Rest.BotManagerClient.create(bot).done(createdBot => {\r\n log('/bots/new#created', 'bot registered');\r\n if (!this.isLoaded())\r\n return;\r\n if (!this.redirectIfNeeded()) {\r\n this.state.bot = createdBot;\r\n this.initialBot = $.extend({}, createdBot);\r\n\r\n // The DevPortalLib service may add system hashtags that don't exist in the bot registration form.\r\n // This causes client side logic to flag the new bot as having unsaved changes. Solution here is\r\n // to add the new system hashtags to the form hasUnsavedChanges() doesn't erroneously flag it.\r\n const $page = $(this.pageContent);\r\n const $sysTags = $page.find('#agent-systemHashtags');\r\n if ($sysTags) {\r\n const val = $sysTags.val() || '';\r\n let tags = val\r\n .split(',')\r\n .concat(this.initialBot.SystemHashtags)\r\n .map(item => item.trim());\r\n tags = tags.filter((item, pos) => item.length && tags.indexOf(item) == pos)\r\n $sysTags.val(tags.join(','));\r\n }\r\n\r\n progressDialog.closeDialog();\r\n Dialogs.MessageBox.show(\"Bot created\").done(() => {\r\n this.app.navigate('/bots', { id: createdBot.Id });\r\n });\r\n }\r\n }).fail(xhr => {\r\n progressDialog.closeDialog();\r\n this.handleHttpResponseError(xhr);\r\n });\r\n }\r\n\r\n protected handleHttpResponseError(xhr: JQueryXHR): JQueryPromise {\r\n let errors: Rest.FieldValidationError[] = null;\r\n\r\n if (xhr && xhr.responseText) {\r\n try {\r\n var errorObj: Rest.FormValidationErrors = $.parseJSON(xhr.responseText);\r\n errors = errorObj.Errors;\r\n }\r\n catch (ex) {\r\n }\r\n }\r\n if (!errors || !errors.length) {\r\n return super.handleHttpResponseError(xhr);\r\n }\r\n\r\n // map errors array to dictionary\r\n var errorMap: { [key: string]: string } = {};\r\n errors.forEach(error => {\r\n let fieldId = error.Field;\r\n if (!errorMap[fieldId]) {\r\n errorMap[fieldId] = error.Message;\r\n }\r\n });\r\n\r\n this.state.errors = _.extend(errorMap, this.state.errors || {});\r\n\r\n this.component.setState(this.state);\r\n return Dialogs.MessageBox.show(\"Please correct the errors and try again.\").done(() => {\r\n let $field = $('.error-info:visible').closest('.detail-row');\r\n if ($field.length) {\r\n $field[0].scrollIntoView();\r\n }\r\n });\r\n }\r\n\r\n private onDeleteClicked(): void {\r\n if (this.state.bot && this.state.bot.Id) {\r\n var options: Dialogs.IMessageBoxOptions = {\r\n okButtonLabel: resourceStrings.deleteBot,\r\n cancelButtonLabel: resourceStrings.cancel,\r\n className: 'danger'\r\n };\r\n if (this.isAdminOrSupport() && $.inArray(this.app.signedInUser.EmailAddress, this.state.bot.OwnerIds) == -1) {\r\n if (!confirm(\"You are not the owner of \" + this.state.bot.Id + \". Are you sure that you want to delete \" + this.state.bot.Id +\"?\")) {\r\n return;\r\n } \r\n }\r\n var mb = new Dialogs.MessageBox(options);\r\n mb.header = \"You are about to delete this bot\";\r\n mb.message = \"This action will erase all data associated with this bot and cannot be undone. Are you sure?\";\r\n mb.showDialog().done(() => {\r\n this.performDeleteBot();\r\n });\r\n }\r\n }\r\n\r\n private performDeleteBot(): void {\r\n var progressDialog = ProgressDialog.show(\"Deleting bot...\");\r\n Rest.BotManagerClient.delete(this.state.bot.Id).done(() => {\r\n if (this.isLoaded()) {\r\n progressDialog.closeDialog();\r\n Dialogs.MessageBox.show(\"Bot deleted\").done(() => {\r\n this.app.navigate(\"/bots\");\r\n });\r\n }\r\n }).fail(xhr => {\r\n progressDialog.closeDialog();\r\n this.handleHttpResponseError(xhr);\r\n });\r\n }\r\n\r\n private onGetAppIdClicked(ev: Event) {\r\n var errors = this.gatherFormValues(this.state.bot);\r\n\r\n //only need to validate bot name\r\n if (\"Name\" in errors) {\r\n ev.preventDefault();\r\n\r\n var newErrors: Editor.ErrorDict = { \"Name\": errors[\"Name\"] };\r\n\r\n $(\"#agent-details-card\")[0].scrollIntoView();\r\n\r\n this.state.errors = newErrors;\r\n this.component.setState(this.state);\r\n Dialogs.MessageBox.show(\"Please enter a bot name.\");\r\n }\r\n }\r\n\r\n private onSaveClicked(): void {\r\n if (this.state.bot && this.state.bot.Id) {\r\n var errors = this.gatherFormValues(this.state.bot);\r\n if (!$.isEmptyObject(errors)) {\r\n this.state.errors = errors;\r\n } else {\r\n this.state.errors = {};\r\n }\r\n this.state.isBusy = true;\r\n this.component.setState(this.state);\r\n\r\n Rest.BotManagerClient.update(this.state.bot, false).done(bot => {\r\n this.initialBot = $.extend({}, bot);\r\n this.pendingUnsavedChanges = false;\r\n if (this.isLoaded()) {\r\n this.state.bot = bot;\r\n }\r\n }).fail(xhr => {\r\n this.handleHttpResponseError(xhr);\r\n }).always(() => {\r\n if (this.isLoaded()) {\r\n this.state.isBusy = false;\r\n this.component.setState(this.state);\r\n }\r\n });\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Controllers/BotEditController.ts","/// \r\n\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\n\r\nimport Rest = require(\"../../Generated/RestClient\");\r\n\r\nimport { Resources } from \"../../Resources/Intercom.Resources.DevPortal\";\r\n\r\nimport { DevPortalAppBase } from \"../../DevPortalAppBase\";\r\nimport { clientAppSettings } from \"../../Models/ClientAppSettings\";\r\nimport logger from \"../../../../Intercom.ReactUI/Utils/logger\";\r\nimport { AzurePortalMessenger, InfoResult, AccessTokensResult, EndpointStatusResult, DefaultPortalSignature } from \"../Utility/AzurePortalMessenger\";\r\nimport { AuthenticationUtility } from \"../Utility/AuthenticationUtility\";\r\n\r\nimport { StateStore } from \"../Store/StateStore\";\r\nimport { Actions } from \"../Actions/Actions\";\r\nimport { Reducers } from \"../Reducers/Reducers\";\r\n\r\nimport { StateStoreUtility } from \"../Store/StateStoreUtility\";\r\n\r\nimport { PageStatusFlags, IPageStatus } from \"../ComponentDataModels/IPageStatus\";\r\n\r\nimport { IbizaWebChatPage, IbizaWebChatPageProps } from \"./../Views/IbizaWebChatPage\";\r\n\r\n/**\r\n * Page loading status.\r\n */\r\nexport class PageStatus implements IPageStatus {\r\n private _pageStatus: PageStatusFlags = PageStatusFlags.Ready;\r\n\r\n public constructor(pageStatus: PageStatusFlags) {\r\n this._pageStatus = pageStatus;\r\n }\r\n\r\n public hasPageStatusFlag(flag: PageStatusFlags): boolean {\r\n return (this._pageStatus & flag) === flag;\r\n }\r\n\r\n public isReady(): boolean {\r\n return this._pageStatus === PageStatusFlags.Ready;\r\n }\r\n}\r\n\r\n/**\r\n * Web Chat controller.\r\n * This is used by the Ibiza Azure portal.\r\n */\r\nexport class WebChatController extends SimpleMvc.Controller {\r\n private _azurePortalMessenger: AzurePortalMessenger;\r\n private _onReceiveInfo: (info: InfoResult) => void;\r\n private _onReceiveAzureToken: (tokens: AccessTokensResult) => void;\r\n private _onReceiveEndpointStatus: (status: EndpointStatusResult) => void;\r\n\r\n private _reactComponent: IbizaWebChatPage;\r\n\r\n //#region - Component props/store - these could move out of here but the component bootstraps things for now.\r\n\r\n private _store: StateStore;\r\n private _actions: Actions;\r\n\r\n //#endregion - Component props/store\r\n\r\n constructor(public app: DevPortalAppBase) {\r\n super();\r\n }\r\n\r\n /**\r\n * See SimpleMvc.Controller.load\r\n */\r\n public load(params: SimpleMvc.QueryParams): void {\r\n super.load(params);\r\n const botId = params[\"id\"];\r\n const location = params[\"location\"];\r\n if (!botId) {\r\n throw new Error(\"Bot id is required.\");\r\n }\r\n\r\n // Initialize state store and wire up component actions.\r\n this._store = { botId: botId, location: location, pageStatus: PageStatusFlags.LoggingIn | PageStatusFlags.WaitingForBotReady | PageStatusFlags.WaitingForWebChatToken };\r\n this._actions = { onWebChatNewConversation: () => { this._onWebChatNewConversation(); } };\r\n\r\n // todo: Parse locale here instead of in DevPortalAppBase ctor.\r\n\r\n this._createAzurePortalMessenger();\r\n this._initializePageDependencies();\r\n\r\n this._render();\r\n }\r\n\r\n /**\r\n * See SimpleMvc.Controller.unload\r\n */\r\n public unload(): void {\r\n this._teardownAzureMessenger();\r\n ReactDOM.unmountComponentAtNode(this.app.getAppBody());\r\n super.unload();\r\n }\r\n\r\n private _render(): void {\r\n // Overwrite the app body content with new content.\r\n const props = StateStoreUtility.mapStateAndDispatchToProps(this._store, this._actions);\r\n\r\n const element = React.createElement(IbizaWebChatPage, props);\r\n this._reactComponent = ReactDOM.render(element, this.app.getAppBody());\r\n }\r\n\r\n private _createAzurePortalMessenger(): void {\r\n if (this._azurePortalMessenger) {\r\n throw new Error(\"_azurePortalMessenger already created\");\r\n }\r\n\r\n // Azure always sends us a trusted authority for x-frame messages. If we don't get this then error out.\r\n const trustedAuthorityMatches = decodeURIComponent(window.location.search).match(/trustedAuthority=([^&]+)/);\r\n if (!trustedAuthorityMatches) {\r\n throw new Error(\"Unsupported URI - missing trustedAuthority\");\r\n }\r\n\r\n logger.debug(\"WebChatController: Starting to listen to Azure cross frame messages\");\r\n const trustedAuthority = trustedAuthorityMatches[1];\r\n \r\n const signatureMatches = decodeURIComponent(window.location.search).match(/framesignature=([^&]+)/);\r\n let signature = DefaultPortalSignature;\r\n if (signatureMatches) {\r\n signature = signatureMatches[1];\r\n }\r\n\r\n this._azurePortalMessenger = new AzurePortalMessenger(trustedAuthority, signature);\r\n }\r\n\r\n private _initializePageDependencies(): void {\r\n if (!this._azurePortalMessenger) {\r\n throw new Error(\"Must initialize azure portal messenger.\");\r\n }\r\n\r\n // Get the version info from our Ibiza blade.\r\n this._onReceiveInfo = this._onReceiveInfoFromIFrame.bind(this);\r\n this._azurePortalMessenger.listenForInfo(this._onReceiveInfo);\r\n\r\n // Log the user in and listen for auth token changes - these can be refreshed periodically without corresponding requestAuthenticationTokens calls.\r\n this._onReceiveAzureToken = this._onReceiveAuthenticationTokensFromIFrame.bind(this);\r\n this._azurePortalMessenger.listenForAuthenticationTokens(this._onReceiveAzureToken);\r\n\r\n // Want to wait until we get a \"bot ready\" message from Azure. This lets us know the bot is ready to receive messages.\r\n // Note: In reality Azure sends this when a ping returns or after a timeout - so we are not assured the bot is ready.\r\n this._onReceiveEndpointStatus = this._onReceiveEndpointStatusFromIFrame.bind(this);\r\n this._azurePortalMessenger.listenForEndpointStatus(this._onReceiveEndpointStatus);\r\n\r\n // Tell Azure we are ready to get messages.\r\n this._azurePortalMessenger.postReady();\r\n this._azurePortalMessenger.initializationComplete();\r\n\r\n // Request all the info we need and trigger auto-refresh of that data.\r\n this._azurePortalMessenger.requestInfo();\r\n this._azurePortalMessenger.requestAuthenticationTokens();\r\n this._azurePortalMessenger.requestEndpointStatus();\r\n }\r\n\r\n private _teardownAzureMessenger(): void {\r\n if (this._onReceiveInfo) {\r\n this._azurePortalMessenger.unlistenForInfo(this._onReceiveInfo);\r\n this._onReceiveInfo = undefined;\r\n }\r\n if (this._onReceiveAzureToken) {\r\n this._azurePortalMessenger.unlistenForAuthenticationTokens(this._onReceiveAzureToken);\r\n this._onReceiveAzureToken = undefined;\r\n }\r\n if (this._onReceiveEndpointStatus) {\r\n this._azurePortalMessenger.unlistenForEndpointStatus(this._onReceiveEndpointStatus);\r\n this._onReceiveEndpointStatus = undefined;\r\n }\r\n if (this._azurePortalMessenger) {\r\n this._azurePortalMessenger = undefined;\r\n }\r\n }\r\n\r\n private _getWebChatToken(): void {\r\n Rest.BotManagerClient.getWebChatToken(this._store.botId).done(token => {\r\n if (!this.isLoaded()) {\r\n return;\r\n }\r\n\r\n logger.debug(\"WebChatController: Got WebChat token\");\r\n\r\n this._store = Reducers.getWebChatTokenCompleted(this._store, token);\r\n this._render();\r\n }).fail( (error) => {\r\n if (!this.isLoaded()) {\r\n return;\r\n }\r\n\r\n logger.debug(\"WebChatController: Failed to get web chat token. \" + error);\r\n\r\n this._store = Reducers.getWebChatTokenFailed(this._store, Resources.getChatTokenFailure);\r\n this._render();\r\n });\r\n }\r\n\r\n //#region - Actions\r\n\r\n /**\r\n * Starts a new conversation - clears the current web chat token and gets a new one.\r\n */\r\n private _onWebChatNewConversation() {\r\n this._store = Reducers.clearWebChatTokenAndUpdateState(this._store);\r\n this._getWebChatToken();\r\n this._render();\r\n }\r\n\r\n //#endregion - Actions\r\n\r\n //#region - Azure portal message handlers.\r\n\r\n /**\r\n * Callback for Info message from Azure portal.\r\n */\r\n private _onReceiveInfoFromIFrame(info: InfoResult): void {\r\n if (!this.isLoaded()) {\r\n return;\r\n }\r\n\r\n // We can do something here in the future based on the version... for now just output the value.\r\n logger.debug(\"WebChatController: Got Azure Extension version: \" + info.version);\r\n this._azurePortalMessenger.unlistenForInfo(this._onReceiveInfo);\r\n this._onReceiveInfo = undefined;\r\n }\r\n\r\n private _handleFailedAuthRefresh() {\r\n this.app.signedInUser = null;\r\n this._store = Reducers.loginFailed(this._store, Resources.signInFailure);\r\n this._render();\r\n }\r\n\r\n /**\r\n * Callback whenever we get authentication tokens from the Azure portal. This refreshes the local tokens/user info.\r\n */\r\n private _onReceiveAuthenticationTokensFromIFrame(tokens: AccessTokensResult): void {\r\n if (!this.isLoaded()) {\r\n return;\r\n }\r\n\r\n const armToken = tokens.armToken;\r\n const selfToken = tokens.selfToken;\r\n\r\n const useSelfToken = selfToken && clientAppSettings.flightedFeatures.indexOf(\"firstPartyAuth\") >= 0;\r\n const token = useSelfToken ? selfToken : armToken;\r\n logger.debug(\"WebChatController: Azure sent us Authentication tokens - Refreshing.\");\r\n\r\n const csrfToken = AuthenticationUtility.getCsrfToken();\r\n if (!csrfToken) {\r\n logger.debug(\"WebChatController: Failed getting csrfToken from cookie\");\r\n this._handleFailedAuthRefresh();\r\n return;\r\n }\r\n $.ajax(\"/refreshLogin\", {\r\n data: { token, '__RequestVerificationToken': csrfToken },\r\n type: \"POST\"\r\n })\r\n .then(() => {\r\n if (!this.isLoaded()) {\r\n return;\r\n }\r\n\r\n Rest.ajaxHeaders = _.extend(Rest.ajaxHeaders || {}, { Authorization: `Bearer ${token}`});\r\n // Get the signed in user.\r\n logger.debug(\"WebChatController: Getting signed in user.\");\r\n return Rest.AccountClient.getSignedInUser();\r\n })\r\n .then((authData: Rest.AuthData) => {\r\n if (!this.isLoaded()) {\r\n return;\r\n }\r\n\r\n logger.debug(\"WebChatController: Got authenticated user.\");\r\n\r\n if (!this.app.signedInUser) {\r\n this.app.signedInUser = authData;\r\n }\r\n\r\n AuthenticationUtility.bindAzureAccessToken(this.app.signedInUser, armToken, true);\r\n\r\n this._store = Reducers.loginComplete(this._store);\r\n this._render();\r\n\r\n // If we don't have a web chat token yet kick off the process to get one.\r\n if (!this._store.webChatToken) {\r\n this._getWebChatToken();\r\n }\r\n })\r\n .fail(xhr => {\r\n if (!this.isLoaded()) {\r\n return;\r\n }\r\n\r\n logger.debug(\"WebChatController: Failed authorization web call:\" + xhr);\r\n this._handleFailedAuthRefresh();\r\n });\r\n }\r\n\r\n private _onReceiveEndpointStatusFromIFrame(status: EndpointStatusResult): void {\r\n if (!this.isLoaded()) {\r\n return;\r\n }\r\n\r\n logger.debug(\"WebChatController: Got new bot status from Azure: \" + status.status);\r\n\r\n switch (status.status) {\r\n case \"not-ready\":\r\n this._store = Reducers.onBotEndpointNotReady(this._store);\r\n break;\r\n case \"ready\":\r\n case \"no-endpoint\":\r\n case \"error\":\r\n default:\r\n this._store = Reducers.onBotEndpointReady(this._store);\r\n break;\r\n }\r\n\r\n this._render();\r\n }\r\n\r\n //#endregion - Azure portal message handlers\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Controllers/WebChatController.ts","import { EmailSubscriptionConsentForm, EmailSubscriptionConsentFormProps, EmailSubscriptionConsentFormState } from '../Views/EmailSubscriptionConsentForm';\r\nimport { EmailSubscriptionInfo, EmailSubscriptionClient, UserAgreementConsentInfo, UserAgreementConsentVersion } from '../Generated/RestClient';\r\nimport { MessageBox } from '../Dialogs/MessageBox';\r\nimport { clientAppSettings } from '../Models/ClientAppSettings';\r\nimport { resourceStrings } from \"../../../Intercom.ReactUI/Views/Strings\";\r\nimport { InputDialogBase } from '../Dialogs/InputDialogBase';\r\nimport isInFrame from \"../../../Intercom.ReactUI/Utils/InFrame\";\r\n\r\n/**\r\n * Email subscription dialog class\r\n */\r\nclass EmailSubscriptionDialog extends InputDialogBase {\r\n private isShown: boolean;\r\n\r\n protected panel: EmailSubscriptionConsentForm;\r\n\r\n get visible(): boolean {\r\n return this.isShown;\r\n }\r\n \r\n constructor(props: EmailSubscriptionConsentFormProps) {\r\n super(EmailSubscriptionConsentForm, props);\r\n }\r\n\r\n public showDialog(): JQueryPromise {\r\n this.isShown = true;\r\n return super.showDialog();\r\n }\r\n\r\n public closeDialog(): void {\r\n this.isShown = false;\r\n super.closeDialog();\r\n }\r\n}\r\n\r\n/**\r\n * Email subscription consent conductor \r\n */\r\nexport class EmailSubscriptionConsentConductor {\r\n public static UserHasConsented(info: EmailSubscriptionInfo): boolean {\r\n if (info.Subscription && info.Subscription.HasConsent) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static UserHasAgreed(info: UserAgreementConsentInfo): boolean {\r\n if (!info || info.ConsentVersion < UserAgreementConsentVersion.V2) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private dialog: EmailSubscriptionDialog;\r\n\r\n private get allowShowDialog(): boolean {\r\n // Don't show the dialog if the system is loaded in Azure iframe\r\n if (isInFrame()) {\r\n return false;\r\n }\r\n\r\n // If user has not consented or the dialog is not visible\r\n if (clientAppSettings.hasCollectedConsent || (this.dialog && this.dialog.visible)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private onSave = (updated: EmailSubscriptionInfo) => {\r\n this.dialog.closeDialog();\r\n\r\n EmailSubscriptionClient.updateAgreement(true)\r\n .fail(xhr => {\r\n MessageBox.show(resourceStrings.subscriptionConsentDialog.updateErrorMessage);\r\n });\r\n }\r\n\r\n private onCancel = () => {\r\n this.dialog.closeDialog();\r\n }\r\n\r\n private onUserAgreementLoaded = (info: UserAgreementConsentInfo) => {\r\n if (EmailSubscriptionConsentConductor.UserHasAgreed(info)) {\r\n return;\r\n }\r\n\r\n if (!this.dialog) {\r\n this.dialog = new EmailSubscriptionDialog({\r\n subscriptionInfo: null,\r\n askUserAgreement: true,\r\n onSave: this.onSave,\r\n onCancel: this.onCancel\r\n } as EmailSubscriptionConsentFormProps);\r\n }\r\n\r\n this.dialog.showDialog();\r\n }\r\n\r\n public showIfRequired() {\r\n if (!this.allowShowDialog) {\r\n return;\r\n }\r\n\r\n clientAppSettings.hasCollectedConsent = true;\r\n\r\n EmailSubscriptionClient.getUserAgreement()\r\n .then(this.onUserAgreementLoaded)\r\n .fail(xhr => clientAppSettings.hasCollectedConsent = false);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/Controllers/EmailSubscriptionConsent.ts","export enum KeyCodes {\r\n Backspace = 8,\r\n Tab = 9,\r\n Enter = 13,\r\n Escape = 27,\r\n Space = 32,\r\n PageUp = 33,\r\n PageDown = 34,\r\n End = 35,\r\n Home = 36,\r\n LeftArrow = 37,\r\n UpArrow = 38,\r\n RightArrow = 39,\r\n DownArrow = 40,\r\n Delete = 46\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Dialogs/KeyCodes.ts","export enum BotPageTab {\r\n develop,\r\n channels,\r\n settings,\r\n publishing\r\n}\r\nexport const debugAllTabs = false;\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/BotTabPage.tsx","/// \r\nimport * as React from \"react\";\r\n\r\nimport * as Rest from \"../Generated/RestClient\";\r\nimport { resourceStrings } from \"../../../Intercom.ReactUI/Views/Strings\";\r\nimport { SecretControl } from \"./SecretControl\";\r\nimport { clientAppSettings } from \"../Models/ClientAppSettings\";\r\nimport { ErrorDict } from \"./Shared/IBotEditor\";\r\nimport reflectName from \"../../../Intercom.ReactUI/Utils/NameReflector\";\r\nimport { BotMsaEditor, BotMsaEditorProps } from \"./BotMsaEditor\";\r\nimport { BlockRowInputLabel } from './Shared/BlockRowInputLabel';\r\nimport { RollbackEndpointVersionName } from \"../Utils/BotUtils\"\r\n\r\ninterface OptionProps {\r\n name: string,\r\n val: T,\r\n selected: boolean;\r\n}\r\n\r\nexport interface BotVersionEditorProps extends React.Props {\r\n bot: Rest.BotService;\r\n inCreateMode: boolean;\r\n handleChange: (fieldName: string, ev: React.ChangeEvent) => void;\r\n handleArrayIndexedObjectChange: (fieldName: string, index: number, childFieldName: string, ev: React.ChangeEvent) => void;\r\n handleCheckboxChange: (fieldName: string, ev: React.ChangeEvent) => void;\r\n v1Secret: string;\r\n errors: ErrorDict;\r\n isAppTypeFlighted: boolean;\r\n}\r\n\r\nexport interface BotVersionEditorState {\r\n uniqueId: string;\r\n SchemaTransformationVersionList: OptionProps[];\r\n}\r\n\r\nexport class BotVersionEditor extends React.Component {\r\n\r\n static versionToClassname(version: string) {\r\n return 'version_' + version.replace('.', '_');\r\n }\r\n\r\n static versionToDisplayText(version: string) {\r\n return 'Version ' + version;\r\n }\r\n\r\n public static endpointId(index: number) {\r\n return \"input-endpoints-\" + index;\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n uniqueId: 'VersionEditor' + new Date().valueOf(),\r\n SchemaTransformationVersionList: []\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.loadChannelSchemaTransformationInfo();\r\n }\r\n\r\n private versionRadio(index: number) {\r\n var endpoint = this.props.bot.Endpoints[index];\r\n var enabled = (this.props.bot.Version === endpoint.Version);\r\n\r\n return (\r\n
    \r\n \r\n {this.versionContent(index, enabled)}\r\n
    \r\n );\r\n };\r\n\r\n private versionContent(index: number, enabled: boolean) {\r\n const errorClass = \" input-in-error\";\r\n\r\n var endpoint = this.props.bot.Endpoints[index];\r\n var content: JSX.Element[];\r\n\r\n var x = {} as Rest.BotService;\r\n\r\n function reflectedName(value: any) {\r\n return reflectName(() => x);\r\n }\r\n\r\n switch (endpoint.Version) {\r\n case '1.0':\r\n\r\n content = [];\r\n\r\n if (!this.props.inCreateMode) {\r\n content.push(\r\n
    \r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n //we do not want the \"input-appId\" field to appear twice. Usually this is in the V3 ui below.\r\n //however there are some v1 bots which have appId populated through a flight, so keep their data.\r\n //only do this if we are not showing a v3 option on this page.\r\n if (this.props.bot.Endpoints.length === 1 && index === 0) {\r\n content.push();\r\n }\r\n\r\n break;\r\n\r\n case '3.0':\r\n default:\r\n const msaEditor = React.createElement(BotMsaEditor, _.extend({ key: \"bot-msa-editor-\" + index}, this.props) as BotMsaEditorProps);\r\n content = [msaEditor];\r\n break;\r\n }\r\n\r\n //only show errors on the currently selected version\r\n var endpointError = '';\r\n if (this.props.bot.Version === endpoint.Version) {\r\n endpointError = this.props.errors[reflectedName(x.Endpoint = null)];\r\n }\r\n var belowEndpointField = [endpointError ?
    {endpointError}
    : null,
    HTTPS Rest endpoint that the bot implements to send and receive messages.
    ];\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n this.props.handleArrayIndexedObjectChange('Endpoints', index, 'Url', ev)}\r\n />\r\n {belowEndpointField}\r\n
    \r\n {this.isStreamingSupported() ? \r\n
    \r\n
    \r\n this.props.handleCheckboxChange('IsStreamingSupported', ev)}\r\n />\r\n
    \r\n \r\n
    : null }\r\n {content}\r\n
    \r\n \r\n
    \r\n this.props.handleChange('SchemaTransformationVersion', ev)}>\r\n {\r\n this.state.SchemaTransformationVersionList.map((option, i) => ())\r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n private getSTVDisplayString(version: Rest.SchemaTransformationVersion): string {\r\n return \"V\" + version.Major + '.' + version.Minor;\r\n }\r\n\r\n private loadChannelSchemaTransformationInfo(): void {\r\n Rest.BotManagerClient.getAvailableSchemaTransformationVersionList().then(list => {\r\n var options = _.map(list, (version) => { return { name: this.getSTVDisplayString(version), val: JSON.stringify(version), selected: false }; });\r\n\r\n if (this.props.bot.SchemaTransformationVersion == null && options.length > 0) {\r\n // Set the min version as selected when stv version = null\r\n options[0].selected = true;\r\n } else {\r\n var botVersionJson = JSON.stringify(this.props.bot.SchemaTransformationVersion);\r\n options.forEach(item => {\r\n if (item.val === botVersionJson) {\r\n item.selected = true;\r\n }\r\n });\r\n }\r\n\r\n this.setState({\r\n SchemaTransformationVersionList: options\r\n });\r\n });\r\n }\r\n\r\n private isStreamingSupported() {\r\n if(clientAppSettings.flightedFeatures.some(f => f == \"speechchannel\")){\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public render() {\r\n\r\n if (this.props.bot.Endpoints.length > 1) {\r\n\r\n var radios = this.props.bot.Endpoints.filter(endpt => endpt.Version !== RollbackEndpointVersionName)\r\n .map((endpoint, index) => {\r\n return this.versionRadio(index);\r\n });\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    The version of the {resourceStrings.botFramework} rest API that your bot supports.
    \r\n
    \r\n
    \r\n {radios}\r\n
    \r\n
    \r\n );\r\n\r\n } else {\r\n return
    {this.versionContent(0, true)}
    ;\r\n }\r\n\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/BotVersionEditor.tsx","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\n\r\nimport * as Dialogs from \"../Dialogs/KeyCodes\";\r\n\r\nexport interface DropdownMenuProps extends React.Props {\r\n onItemSelected?: (selectedIndex: number) => void;\r\n classNames?: string;\r\n}\r\n\r\ninterface DropdownMenuState {\r\n visible: boolean;\r\n selectedIndex?: number;\r\n}\r\n\r\nconst MENU_CSS = \"dropdown-menu\";\r\nconst MENU_ITEM_CSS = \"dropdown-menu-item\";\r\nconst HIGLIGHTED_MENU_ITEM_CSS = \"dropdown-menu-item-highlight\";\r\n\r\nexport class DropdownMenu extends React.Component {\r\n private $el: JQuery;\r\n private $anchor: JQuery;\r\n private children: JSX.Element[];\r\n private checkForOutsideEvent: (e: MouseEvent) => void;\r\n\r\n static defaultState(): DropdownMenuState {\r\n return { visible: true, selectedIndex: -1 };\r\n }\r\n\r\n constructor(props, context) {\r\n super(props, context);\r\n\r\n this.state = {\r\n visible: false,\r\n selectedIndex: -1\r\n };\r\n\r\n this.children = React.Children.toArray(this.props.children) as JSX.Element[];\r\n\r\n this.checkForOutsideEvent = (e) => {\r\n //see if the event element is within this menu's subtree\r\n var closest = $(e.target).closest(this.$el);\r\n if (closest.length == 0) {\r\n //hide if the event happened outside of this menu's subtree\r\n this.hide();\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Positions the menu below the supplied anchor, and shows the menu.\r\n */\r\n public displayBelow($anchor: JQuery, $alignTo?: JQuery): void {\r\n this.setState(DropdownMenu.defaultState(), () => {\r\n $alignTo = $alignTo || $anchor;\r\n var alignOffset = $alignTo.offset();\r\n var alignHeight = $alignTo.height();\r\n var alignRight = alignOffset.left + $alignTo.outerWidth(false);\r\n var menuWidth = this.$el.outerWidth(false);\r\n var offsetParent = this.$el.offsetParent();\r\n var parentOffset = offsetParent.offset();\r\n this.$el.css({ left: (alignRight - menuWidth - parentOffset.left) + 'px', top: (alignOffset.top + alignHeight - parentOffset.top) + 'px' });\r\n\r\n this.increment(1, this.children.length, 0);\r\n this.$anchor = $anchor;\r\n this.$anchor.addClass('dropdown-anchor-active');\r\n });\r\n\r\n //do not attach while on this thread, because we don't want to handle immediately\r\n setTimeout(() => this.AttachClickOutListeners(), 0);\r\n }\r\n\r\n private AttachClickOutListeners() {\r\n document.body.addEventListener('focus', this.checkForOutsideEvent, true);\r\n document.body.addEventListener('click', this.checkForOutsideEvent);\r\n }\r\n\r\n private DetachClickOutListeners() {\r\n document.body.removeEventListener('focus', this.checkForOutsideEvent, true);\r\n document.body.removeEventListener('click', this.checkForOutsideEvent);\r\n }\r\n\r\n public hide(): void {\r\n this.setState({ visible: false });\r\n \r\n this.$anchor.removeClass('dropdown-anchor-active');\r\n this.$anchor.focus();\r\n this.DetachClickOutListeners();\r\n }\r\n\r\n private onItemSelected(selectedIndex: number): void {\r\n var selectedChild = React.Children.toArray(this.props.children)[selectedIndex] as JSX.Element;\r\n if (selectedChild) {\r\n var childProps = selectedChild.props as DropdownMenuItemProps;\r\n\r\n if (childProps.notSelectable) return;\r\n\r\n this.hide();\r\n\r\n if (this.props.onItemSelected) {\r\n this.props.onItemSelected(selectedIndex);\r\n }\r\n\r\n if (childProps.onSelected) {\r\n childProps.onSelected();\r\n }\r\n }\r\n }\r\n\r\n private increment(step: number, limit: number, rollover: number) {\r\n var selectedIndex = this.state.selectedIndex;\r\n\r\n selectedIndex += step;\r\n if (selectedIndex == limit) {\r\n selectedIndex = rollover;\r\n } else if (selectedIndex < 0 || selectedIndex >= this.children.length) {\r\n selectedIndex = 0;\r\n }\r\n var selectedChild = this.children[selectedIndex];\r\n var selectedProps = selectedChild.props as DropdownMenuItemProps;\r\n if (selectedProps.notSelectable) {\r\n this.$el.focus();\r\n return;\r\n }\r\n\r\n var newState: DropdownMenuState = { visible: true, selectedIndex: selectedIndex };\r\n this.setState(newState);\r\n $(this.$el[0].childNodes[selectedIndex]).focus(); // This will affect narrator\r\n }\r\n\r\n private highlightItem(selectedIndex: number) {\r\n var highlightedItem = this.children[selectedIndex];\r\n if (!highlightedItem) {\r\n selectedIndex = -1;\r\n } else {\r\n var selectedProps = this.children[selectedIndex].props as DropdownMenuItemProps;\r\n if (selectedProps.notSelectable) {\r\n selectedIndex = -1;\r\n }\r\n }\r\n var newState: DropdownMenuState = { visible: true, selectedIndex: selectedIndex };\r\n this.setState(newState);\r\n }\r\n\r\n private onKeyDown(ev: React.KeyboardEvent): void {\r\n switch (ev.which) {\r\n case Dialogs.KeyCodes.Escape:\r\n this.hide();\r\n break;\r\n case Dialogs.KeyCodes.Enter:\r\n this.onItemSelected(this.state.selectedIndex);\r\n break;\r\n case Dialogs.KeyCodes.Tab:\r\n this.increment(1, this.children.length, 0);\r\n break;\r\n }\r\n ev.preventDefault();\r\n \r\n //ev.stopPropagation(); // This will affect narrator\r\n }\r\n\r\n public render(): JSX.Element {\r\n var style = {\r\n display: this.state.visible ? \"block\" : \"none\"\r\n };\r\n\r\n var items: JSX.Element[] = [];\r\n\r\n React.Children.forEach(this.props.children, (child: JSX.Element, index: number) => {\r\n\r\n var oldProps = child.props as DropdownMenuItemProps;\r\n var newProps: DropdownMenuItemProps = {\r\n classNames: 'dropdown-menu-item ' + (oldProps.classNames || ''),\r\n key: index,\r\n highlighted: (index === this.state.selectedIndex),\r\n onMouseOver: () => this.highlightItem(index),\r\n onSelected: () => this.onItemSelected(index)\r\n };\r\n\r\n items.push(React.cloneElement(child, newProps));\r\n });\r\n\r\n return (\r\n
    this.highlightItem(-1) }\r\n ref={el => this.$el = $(el) }\r\n onKeyDown={ev => this.onKeyDown(ev) }>\r\n {items}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport interface DropdownMenuItemProps extends React.Props {\r\n highlighted?: boolean;\r\n onSelected?: () => void;\r\n onMouseOver?: () => void;\r\n classNames?: string;\r\n notSelectable?: boolean;\r\n ariaLabel?: string;\r\n}\r\n\r\nexport class DropdownMenuItem extends React.Component {\r\n\r\n public render(): JSX.Element {\r\n var classNames = (this.props.classNames || '') + ' ' + MENU_ITEM_CSS;\r\n\r\n if (this.props.highlighted) {\r\n classNames += ' ' + HIGLIGHTED_MENU_ITEM_CSS;\r\n }\r\n return (\r\n
    this.props.onSelected() } aria-label={this.props.ariaLabel} onMouseOver={() => this.props.onMouseOver() } tabIndex={0} >\r\n {this.props.children}\r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/DropdownMenu.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {ProgressRingControl} from \"../../../Intercom.ReactUI/Views/ProgressRingControl\";\r\n\r\nexport enum LogoutPanelStatus {\r\n InProgress, Success, Failure\r\n}\r\n\r\nexport interface LogoutPanelProps extends React.Props {\r\n title: string;\r\n status: LogoutPanelStatus;\r\n }\r\n\r\n export interface LogoutPanelState {\r\n }\r\n\r\n export class LogoutPanel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n status: LogoutPanelStatus.InProgress\r\n };\r\n }\r\n\r\n public render(): JSX.Element {\r\n let stateCSSClass: string;\r\n switch (this.props.status) {\r\n case LogoutPanelStatus.InProgress:\r\n stateCSSClass = \"logout-progress\";\r\n break;\r\n case LogoutPanelStatus.Failure:\r\n stateCSSClass = \"logout-failure\";\r\n break;\r\n case LogoutPanelStatus.Success:\r\n stateCSSClass = \"logout-success\";\r\n break;\r\n }\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {this.props.title}\r\n
    \r\n
    \r\n );\r\n }\r\n }\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/LogoutPanel.tsx","\r\nimport * as Rest from \"../../Generated/RestClient\";\r\n\r\nexport const MAX_NAME_LEN = 35;\r\nexport const MIN_NAME_LEN = 1;\r\nexport const MAX_ID_LEN = 35;\r\nexport const MIN_ID_LEN = 4;\r\nexport const MAX_DESC_LEN = 512;\r\n\r\nexport interface ErrorDict {\r\n [fieldName: string]: string;\r\n}\r\n\r\nexport interface IBotEditor {\r\n handleChange: (fieldName: string, ev) => void;\r\n handleArrayChange: (fieldName: string, ev) => void;\r\n state: { bot?: Rest.BotService, errors?: ErrorDict };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/Shared/IBotEditor.ts","import * as React from 'react';\r\n\r\nimport { clientAppSettings } from \"../Models/ClientAppSettings\";\r\nimport { UserAgreementConsentInfo } from '../Generated/RestClient';\r\nimport { resourceStrings } from '../../../Intercom.ReactUI/Views/Strings';\r\n\r\nexport interface UserAgreementConsentFormFieldsProps {\r\n showLuisTerms?: boolean;\r\n onAgreeToTermsChanged?: (boolean) => any;\r\n}\r\n\r\nexport interface UserAgreementConsentFormFieldsState {\r\n botFrameworkTermsAgreed: boolean;\r\n luisTermsAgreed: boolean;\r\n\r\n botFrameworkAgreementLabelContent: { __html: string };\r\n luisAgreementLabelContent: { __html: string };\r\n}\r\n\r\nexport class UserAgreementConsentFormFields extends React.Component {\r\n constructor(props?: UserAgreementConsentFormFieldsProps, context?: any) {\r\n super(props, context);\r\n\r\n const strs = resourceStrings.subscriptionConsentDialog;\r\n\r\n this.state = {\r\n botFrameworkTermsAgreed: false,\r\n luisTermsAgreed: false,\r\n\r\n botFrameworkAgreementLabelContent: { __html: strs.agreementLabelHtml },\r\n luisAgreementLabelContent: { __html: strs.luisAgreementLabelHtml }\r\n };\r\n }\r\n\r\n public static defaultProps: Partial = {\r\n showLuisTerms: false\r\n }\r\n\r\n private mutateState(mutator: (UserAgreementConsentFormFieldsState) => void) {\r\n this.setState(state => {\r\n const mutatedState = _.extend({}, state) as UserAgreementConsentFormFieldsState;\r\n\r\n mutator(mutatedState);\r\n\r\n return mutatedState;\r\n }, () => this.props.onAgreeToTermsChanged && this.props.onAgreeToTermsChanged(this.state.botFrameworkTermsAgreed && (!this.props.showLuisTerms || this.state.luisTermsAgreed)));\r\n }\r\n\r\n private onAgreeToBotFrameworkTerms = (e: React.FormEvent) => {\r\n const target = e.target as HTMLInputElement;\r\n\r\n this.mutateState(state => state.botFrameworkTermsAgreed = target.checked);\r\n }\r\n\r\n private onAgreeToLuisTerms = (e: React.FormEvent) => {\r\n let t = e.target as HTMLInputElement;\r\n\r\n this.mutateState(state => state.luisTermsAgreed = t.checked);\r\n }\r\n\r\n public render() {\r\n return (\r\n
    \r\n \r\n {\r\n !!this.props.showLuisTerms &&\r\n \r\n }\r\n
    \r\n );\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/UserAgreementConsentFormFields.tsx","/// \r\n/// \r\n\r\nimport * as React from \"react\";\r\n\r\nimport { ControllerBase, PageStatusFlags } from \"./ControllerBase\";\r\nimport { DevPortalAppBase } from \"../../DevPortalAppBase\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport { HeaderKind } from \"../Utility/HeaderKind\";\r\nimport { Environment } from \"../../../../Intercom.ReactUI/Utils/Environment\";\r\nimport logger from \"../../../../Intercom.ReactUI/Utils/logger\";\r\nimport * as Dialogs from \"../../Dialogs/MessageBox\";\r\nimport { ProgressDialog } from \"../../Dialogs/ProgressDialog\";\r\nimport { GenericDialog } from \"../../Dialogs/GenericDialog\";\r\nimport * as EmbedCodeView from \"../Views/EmbedCodePanel\";\r\nimport * as ChannelEnabledPanel from \"../../Views/ChannelEnabledPanel\";\r\nimport * as ChannelLogPanel from \"../../Views/ChannelLogPanel\";\r\nimport { BotProgress } from \"../Views/index\";\r\nimport { ChannelDataHandlers } from \"../Views/BotChannels\";\r\nimport { Resources } from \"../../Resources/Intercom.Resources.DevPortal\";\r\nimport { clientAppSettings } from \"../../Models/ClientAppSettings\";\r\n\r\nimport { AuthenticationUtility } from \"../Utility/AuthenticationUtility\";\r\n\r\nexport class BotControllerBase extends ControllerBase {\r\n protected botId: string;\r\n protected channel: string;\r\n protected channelDataHandlers: ChannelDataHandlers;\r\n protected botSub: Rest.BotSubscription;\r\n\r\n constructor(app: DevPortalAppBase) {\r\n super(app);\r\n\r\n this.channelDataHandlers = {\r\n showEmbedHandler: (_lastFocus) => { this.showEmbedCodes(_lastFocus); },\r\n refreshChannelLogs: (bot: Rest.BotService) => {\r\n this.getBotLogs(bot.Id).done(() => {\r\n if (this.botSub) {\r\n this.botSub.Bot = bot;\r\n this.saveBotStateAndRender(this.botSub);\r\n }\r\n });\r\n },\r\n channelLogs: null,\r\n channelStateChangeHandler: (column, id, isOn) => this.onChannelStateChangeRequested(column, id, isOn),\r\n channelEnabledDisplayHandler: (channelEnabledDisplay: ChannelEnabledPanel.ChannelEnabledPanelProps) => this.showChannelEnabledPanel(channelEnabledDisplay),\r\n channelLogDisplayHandler: (channelLogDisplay: ChannelLogPanel.ChannelLogPanelProps) => this.showChannelLogPanel(channelLogDisplay),\r\n getChannelPublishStatus: (channelId: string) => null,\r\n };\r\n }\r\n\r\n protected saveBotStateAndRender(botSub: Rest.BotSubscription) {\r\n throw new Error(\"saveBotStateAndRender needs an override\");\r\n }\r\n\r\n protected getBotLogs(botId: string) {\r\n return Rest.BotManagerClient.getBotLogs(botId).done(logs => {\r\n this.channelDataHandlers.channelLogs = logs;\r\n }).fail((jqXHR: JQueryXHR, textStatus, errorThrown) => {\r\n this.handleHttpResponseError(jqXHR);\r\n });\r\n }\r\n\r\n protected onChannelStateChangeRequested(column: string, channelId: string, enable: boolean): void {\r\n if (column === \"listed\") {\r\n Rest.BotManagerClient.listChannelForBot(this.botId, channelId, enable).done(bot => {\r\n\r\n this.getBotLogs(bot.Id);\r\n\r\n }).fail(xhr => {\r\n this.handleHttpResponseError(xhr);\r\n });\r\n }\r\n if (column === \"enabled\") {\r\n Rest.BotManagerClient.enableChannelForBot(this.botId, channelId, enable).done(bot => {\r\n\r\n this.getBotLogs(bot.Id);\r\n\r\n }).fail(xhr => {\r\n this.handleHttpResponseError(xhr);\r\n });\r\n }\r\n }\r\n\r\n protected showEmbedCodes(_lastFocus?: React.ReactInstance): void {\r\n const progressDialog = ProgressDialog.show(Resources.embedPanelGettingCodes);\r\n Rest.BotManagerClient.getBotContactCard(this.botId).done(contactCard => {\r\n progressDialog.closeDialog();\r\n if (!contactCard.Contacts.length) {\r\n Dialogs.MessageBox.show(Resources.embedPanelNoCodeAvailable);\r\n }\r\n else {\r\n const dialog = new GenericDialog(EmbedCodeView.EmbedCodePanel, {\r\n botId: this.botId,\r\n contacts: contactCard.Contacts\r\n }, { dialogClass: 'embed-code-dialog' });\r\n dialog.showDialog(_lastFocus);\r\n }\r\n }).fail(xhr => {\r\n progressDialog.closeDialog();\r\n this.handleHttpResponseError(xhr);\r\n });\r\n }\r\n\r\n protected showChannelEnabledPanel(channelEnabledDisplay: ChannelEnabledPanel.ChannelEnabledPanelProps): void {\r\n const dialog = new GenericDialog(ChannelEnabledPanel.ChannelEnabledPanel, channelEnabledDisplay, { dialogClass: 'status-panel-dialog' });\r\n dialog.showDialog();\r\n }\r\n\r\n protected showChannelLogPanel(channelLogDisplay: ChannelLogPanel.ChannelLogPanelProps): void {\r\n const dialog = new GenericDialog(ChannelLogPanel.ChannelLogPanel, channelLogDisplay, { dialogClass: 'channellog-dialog' });\r\n channelLogDisplay.dialog = dialog;\r\n dialog.showDialog();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Controllers/BotControllerBase.ts","export interface ErrorInfo {\r\n code: string | number,\r\n message: string,\r\n correlationId?: string\r\n}\r\n\r\ninterface APIException {\r\n Error?: {\r\n Code: string | number,\r\n Message: string\r\n },\r\n error?: {\r\n code: string | number,\r\n message: string\r\n }\r\n}\r\n\r\nfunction isAPIException(x: any) : x is APIException {\r\n return x && x.Error && x.Error.Code && x.Error.Message ||\r\n x && x.error && x.error.code && x.error.message;\r\n}\r\n\r\nfunction asAPIException(xhr: JQueryXHR) : APIException {\r\n return isAPIException(xhr.responseJSON) ? xhr.responseJSON : null;\r\n}\r\n\r\nfunction parseApiException(ex: APIException) : ErrorInfo {\r\n let code = ex.Error ? ex.Error.Code : ex.error.code;\r\n let message: string = null;\r\n if (ex.Error && ex.Error.Message) {\r\n message = ex.Error.Message;\r\n } else if (ex.error && ex.error.message) {\r\n message = ex.error.message;\r\n }\r\n if (message) {\r\n try {\r\n const obj = JSON.parse(message);\r\n if (isAPIException(obj)) {\r\n return parseApiException(obj);\r\n }\r\n } catch (jsonex) {\r\n // ignore error;\r\n }\r\n }\r\n return {code: code, message: message};\r\n}\r\n\r\nexport function parseApiError(xhr: JQueryXHR) : ErrorInfo {\r\n const apiException = asAPIException(xhr);\r\n if (apiException) {\r\n return parseApiException(apiException);\r\n }\r\n if (xhr.responseJSON && xhr.responseJSON.Message) {\r\n return {code: xhr.status, message: xhr.responseJSON.Message};\r\n }\r\n return null;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Services/parseApiError.ts","/**\r\n * Message verbs (AzureMessage.kind) values we can get.\r\n */\r\nclass Verbs {\r\n // Send when ready to start initialization.\r\n public static postReady = \"ready\";\r\n // Send when ready for user interaction.\r\n public static initializationComplete = \"initializationcomplete\";\r\n\r\n // Below here are messages we define - these should match the ones in CreateBladeViewModel.ts\r\n\r\n public static getInfo = \"get-info\";\r\n public static receiveInfo = \"info\";\r\n\r\n public static getAuthTokens = \"get-auth-tokens\";\r\n public static receiveAuthTokens = \"auth-tokens\";\r\n\r\n public static getEndpointStatus = \"get-endpoint-status\";\r\n public static receiveEndpointStatus = \"endpoint-status\";\r\n\r\n public static getAppInsightsStatus = \"get-appinsights-status\";\r\n public static receiveAppInsightsStatus = \"appinsights-status\";\r\n}\r\n\r\n// #region: Message body definitions.\r\n// These are defined by us and should match the one in CreateBladeViewModel.ts\r\n\r\nexport interface InfoResult {\r\n version: string;\r\n}\r\n\r\n/** Access tokens message body */\r\nexport interface AccessTokensResult {\r\n armToken: string;\r\n selfToken: string;\r\n}\r\n\r\n/** Endpoint/Bot status */\r\nexport interface EndpointStatusResult {\r\n status: \"ready\" | \"not-ready\" | \"error\" | \"no-endpoint\";\r\n description?: string;\r\n}\r\n\r\n/** AppInsights status */\r\nexport interface AppInsightsStatusResult {\r\n status: \"ready\" | \"not-ready\" | \"error\" | \"not-configured\";\r\n description?: string;\r\n}\r\n\r\n// #endregion: Message body definitions.\r\n\r\n/**\r\n * Message coming from the Azure blade.\r\n */\r\ninterface AzureMessage {\r\n signature: string;\r\n kind?: string;\r\n data: {} | AccessTokensResult | EndpointStatusResult | undefined;\r\n}\r\n\r\n/**\r\n * Event/Message coming from the Azure blade.\r\n */\r\ninterface AzureEvent extends Event {\r\n origin: string;\r\n data: AzureMessage;\r\n}\r\n\r\nexport const DefaultPortalSignature = \"FxFrameBlade\";\r\n\r\n/**\r\n * General helper for messaging back and forth between the Azure blade and the site loaded in an IFrame.\r\n */\r\nexport class AzurePortalMessenger {\r\n private AzurePortalSignature;\r\n private _messageHandler: EventListener;\r\n private _trustedOrigin: string | null = null;\r\n private _receivedMessageHandlers = {};\r\n\r\n public constructor(origin: string, frameSignature: string) {\r\n // todo: Validate this is portal.azure.com so other domains can't send us messages.\r\n this._trustedOrigin = origin;\r\n // The AzureMessage.signature value we will get. The new blade uses a FrameControl - the older extension uses an FxFrameBlade.\r\n this.AzurePortalSignature = frameSignature || DefaultPortalSignature;\r\n\r\n // Start listening for messages if needed.\r\n if (!this._messageHandler) {\r\n this._messageHandler = this._onReceiveMessage.bind(this);\r\n window.addEventListener(\"message\", this._messageHandler, false);\r\n }\r\n }\r\n\r\n /**\r\n * Let the Azure blade know we are ready to receive messages.\r\n */\r\n public postReady(): void {\r\n this._postMessageToAzurePortal(Verbs.postReady);\r\n }\r\n\r\n public initializationComplete(): void {\r\n this._postMessageToAzurePortal(Verbs.initializationComplete);\r\n }\r\n\r\n public requestInfo(): void {\r\n this._postMessageToExtension(Verbs.getInfo);\r\n }\r\n\r\n public listenForInfo(callback: (tokens: InfoResult) => void): void {\r\n this._listenForMessage(callback, Verbs.receiveInfo);\r\n }\r\n\r\n public unlistenForInfo(callback: (tokens: InfoResult) => void): void {\r\n this._unlistenForMessage(callback, Verbs.receiveInfo);\r\n }\r\n\r\n /**\r\n * Request auth tokens - also starts polling in the azure blade for updates to the tokens.\r\n */\r\n public requestAuthenticationTokens(): void {\r\n this._postMessageToExtension(Verbs.getAuthTokens);\r\n }\r\n\r\n /**\r\n * When Azure sends us auth tokens call the callback method with the message.\r\n */\r\n public listenForAuthenticationTokens(callback: (tokens: AccessTokensResult) => void): void {\r\n this._listenForMessage(callback, Verbs.receiveAuthTokens);\r\n }\r\n\r\n /**\r\n * Stop listening - opposite of listenForAuthenticationTokens.\r\n */\r\n public unlistenForAuthenticationTokens(callback: (tokens: AccessTokensResult) => void): void {\r\n this._unlistenForMessage(callback, Verbs.receiveAuthTokens);\r\n }\r\n\r\n /**\r\n * Request the bot endpoing status.\r\n */\r\n public requestEndpointStatus(): void {\r\n this._postMessageToExtension(Verbs.getEndpointStatus);\r\n }\r\n\r\n /**\r\n * When Azure sends us the bot endpoint status call the callback method.\r\n */\r\n public listenForEndpointStatus(callback: (endpointStatus: EndpointStatusResult) => void): void {\r\n this._listenForMessage(callback, Verbs.receiveEndpointStatus);\r\n }\r\n\r\n /**\r\n * Stop listening for endpoint status messages - opposite of listenForEndpointStatus.\r\n */\r\n public unlistenForEndpointStatus(callback: (endpointStatus: EndpointStatusResult) => void): void {\r\n this._unlistenForMessage(callback, Verbs.receiveEndpointStatus);\r\n }\r\n\r\n public requestAppInsightsStatus(): void {\r\n this._postMessageToExtension(Verbs.getAppInsightsStatus);\r\n }\r\n\r\n public listenForAppInsightsStatus(callback: (appInsightsStatus: AppInsightsStatusResult) => void): void {\r\n this._listenForMessage(callback, Verbs.receiveAppInsightsStatus);\r\n }\r\n\r\n public unlistenForAppInsightsStatus(callback: (appInsightsStatus: AppInsightsStatusResult) => void): void {\r\n this._unlistenForMessage(callback, Verbs.receiveAppInsightsStatus);\r\n }\r\n\r\n private _listenForMessage(callback: (message: any) => void, messageVerb: string): void {\r\n if (!callback) {\r\n throw new Error(\"callback must be defined.\");\r\n }\r\n\r\n (this._receivedMessageHandlers[messageVerb] = this._receivedMessageHandlers[messageVerb] || []).push(callback);\r\n }\r\n\r\n private _unlistenForMessage(callback: (message: any) => void, messageVerb: string): void {\r\n if (this._receivedMessageHandlers[messageVerb] && callback) {\r\n const index = this._receivedMessageHandlers[messageVerb].indexOf(callback);\r\n if (index > -1) {\r\n this._receivedMessageHandlers[messageVerb].splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n private _postMessageToAzurePortal(messageKind: string): void {\r\n this._postMessageToAzure( {\r\n signature: this.AzurePortalSignature,\r\n kind: messageKind\r\n } as AzureMessage);\r\n }\r\n\r\n // Apparently, within Ibiza's iframe control, messages with 'kind' are directed to the portal,\r\n // otherwise they go to the extension.\r\n // This doesn't seem to apply to iframe blades.\r\n private _postMessageToExtension(data: {} | AccessTokensResult | EndpointStatusResult | undefined): void {\r\n if (this.AzurePortalSignature === DefaultPortalSignature) {\r\n this._postMessageToAzure({\r\n signature: this.AzurePortalSignature,\r\n kind: data,\r\n data: null\r\n } as AzureMessage);\r\n } else {\r\n this._postMessageToAzure({\r\n signature: this.AzurePortalSignature,\r\n data: data\r\n } as AzureMessage);\r\n }\r\n }\r\n\r\n private _postMessageToAzure(message: AzureMessage): void {\r\n if (!this._trustedOrigin) {\r\n throw new Error(\"Must set trusted origin before posting messages.\");\r\n }\r\n\r\n window.parent.postMessage(message, this._trustedOrigin);\r\n }\r\n\r\n private _onReceiveMessage(event: Event): void {\r\n const azureEvent = event as AzureEvent;\r\n\r\n if (!azureEvent.origin || !azureEvent.data) {\r\n return;\r\n }\r\n\r\n // Verify the message came from Azure.\r\n if (azureEvent.origin !== this._trustedOrigin) {\r\n return;\r\n }\r\n\r\n switch (azureEvent.data.kind) {\r\n case Verbs.receiveAuthTokens:\r\n this._invokeHandlers(Verbs.receiveAuthTokens, azureEvent.data.data as AccessTokensResult);\r\n break;\r\n case Verbs.receiveInfo:\r\n this._invokeHandlers(Verbs.receiveInfo, azureEvent.data.data as InfoResult);\r\n break;\r\n case Verbs.receiveEndpointStatus:\r\n this._invokeHandlers(Verbs.receiveEndpointStatus, azureEvent.data.data as EndpointStatusResult);\r\n break;\r\n case Verbs.receiveAppInsightsStatus:\r\n this._invokeHandlers(Verbs.receiveAppInsightsStatus, azureEvent.data.data as AppInsightsStatusResult);\r\n break;\r\n }\r\n }\r\n\r\n private _invokeHandlers(verb: string, message: T): void {\r\n (this._receivedMessageHandlers[verb] || []).slice().forEach(callback => {\r\n callback(message);\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Utility/AzurePortalMessenger.ts","/**\r\n * Simple utility for handing flags.\r\n */\r\nexport class FlagUtility {\r\n public static setFlag(currentValue: number, flag: number): number {\r\n return currentValue |= flag;\r\n }\r\n\r\n public static clearFlag(currentValue: number, flag: number): number {\r\n return currentValue & ~flag;\r\n }\r\n\r\n public static hasFlag(currentValue: number, flag: number): boolean {\r\n return (currentValue & flag) === flag;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Utility/FlagUtility.ts","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\n\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport {clientAppSettings} from \"../../Models/ClientAppSettings\";\r\nimport {BotPageProps, BotTabs} from \"./BotPage\";\r\nimport { resourceStrings, FooterControl } from \"../../../../Intercom.ReactUI/Views/index\";\r\nimport { Environment } from \"../../../../Intercom.ReactUI/Utils/Environment\";\r\nimport { Resources } from \"../../Resources/Intercom.Resources.DevPortal\";\r\nimport { Culture } from \"../../Resources/Culture\";\r\nimport {ChevronDropdownControl} from \"./ChevronDropdownControl\";\r\nimport {\r\n ResponsiveContainer,\r\n LineChart,\r\n Pie,\r\n PieChart,\r\n Cell,\r\n Line,\r\n XAxis,\r\n YAxis,\r\n CartesianGrid,\r\n Tooltip,\r\n Legend,\r\n Brush\r\n} from 'recharts';\r\n\r\nconst userRetentionDaysBack = 10;\r\n\r\nconst colors = [\r\n// Primary\r\n\"#BF0077\",\r\n\"#E81123\",\r\n\"#F7630C\",\r\n\"#FFB900\",\r\n\"#BAD80A\",\r\n\"#16C60C\",\r\n\"#00CEA6\",\r\n\"#00BCF2\",\r\n\"#0046FF\",\r\n\"#413EB3\",\r\n\"#735BC1\",\r\n\"#721481\",\r\n// Secondary\r\n\"#C30052\",\r\n\"#F03A17\",\r\n\"#FF8C00\",\r\n\"#FCE100\",\r\n\"#BAD80A\",\r\n\"#00CC6A\",\r\n\"#00B7C3\",\r\n\"#0078D7\",\r\n\"#2849EC\",\r\n\"#5A4EBC\",\r\n\"#5C2E91\",\r\n\"#9A0089\",\r\n];\r\n\r\ninterface IChannel {\r\n stroke: string,\r\n id: string,\r\n displayName: string,\r\n iconUrl: string\r\n}\r\n\r\ninterface IChannelCollection {\r\n [id: string]: IChannel;\r\n}\r\n\r\nclass ChannelArt {\r\n private static _channels: IChannelCollection = {};\r\n\r\n private static _missing: IChannel = {\r\n stroke: \"#000000\",\r\n id: \"\",\r\n displayName: \"\",\r\n iconUrl: \"\"\r\n };\r\n\r\n static startup() {\r\n clientAppSettings.channels.forEach((channel, index) => {\r\n this._channels[channel.Id] = {\r\n stroke: colors[index],\r\n id: channel.Id,\r\n displayName: channel.Name,\r\n iconUrl: channel.IconUrl\r\n };\r\n });\r\n }\r\n\r\n static channelCollection(): IChannelCollection {\r\n return this._channels;\r\n }\r\n\r\n static channelList(): IChannel[] {\r\n return Object.keys(this._channels).map(key => this._channels[key]);\r\n }\r\n\r\n static channel(id: string): IChannel {\r\n return this._channels[id] || this._missing;\r\n }\r\n}\r\n\r\nfunction abbreviateNumber(value: number) {\r\n var newValue = '' + value;\r\n if (value >= 1000) {\r\n let suffixes = [\"\", \"k\", \"m\", \"b\",\"t\"];\r\n let suffixNum = Math.floor( (\"\"+value).length/3 );\r\n let shortValue = 0;\r\n let shortNum = '';\r\n for (var precision = 2; precision >= 1; precision--) {\r\n shortValue = parseFloat( (suffixNum != 0 ? (value / Math.pow(1000,suffixNum) ) : value).toPrecision(precision));\r\n var dotLessShortValue = (shortValue + '').replace(/[^a-zA-Z 0-9]+/g,'');\r\n if (dotLessShortValue.length <= 2) { break; }\r\n }\r\n if (shortValue % 1 != 0) shortNum = shortValue.toFixed(1);\r\n newValue = shortValue+suffixes[suffixNum];\r\n }\r\n return newValue;\r\n}\r\n\r\n\r\nabstract class Observable {\r\n private _listeners: { (): void }[] = [];\r\n\r\n public subscribe(listener: () => void) {\r\n let isSubscribed = true;\r\n this._listeners.push(listener);\r\n const unsubscribe = () => {\r\n if (!isSubscribed) {\r\n return;\r\n }\r\n isSubscribed = false;\r\n const index = this._listeners.indexOf(listener);\r\n this._listeners.splice(index, 1);\r\n }\r\n return unsubscribe;\r\n }\r\n\r\n protected notify() {\r\n [...this._listeners].forEach((listener) => listener());\r\n }\r\n}\r\n\r\ninterface IFilterChannel {\r\n visible: boolean;\r\n generation: number;\r\n channel: IChannel;\r\n}\r\n\r\ninterface IFilterChannelCollection {\r\n [id: string]: IFilterChannel;\r\n}\r\n\r\nclass ChannelFilter extends Observable {\r\n private _channels: IFilterChannelCollection = {};\r\n private _generation = 0;\r\n\r\n public startup() {\r\n if (!Object.keys(this._channels).length) {\r\n ChannelArt.startup();\r\n ChannelArt.channelList().forEach((channel, index) => {\r\n this._channels[channel.id] = {\r\n visible: true,\r\n generation: 0,\r\n channel\r\n };\r\n });\r\n }\r\n }\r\n\r\n public get generation(): number {\r\n return this._generation;\r\n }\r\n\r\n public isVisible(id: string): boolean {\r\n return this._channels[id] && this._channels[id].visible;\r\n }\r\n\r\n public channel(id: string): IFilterChannel {\r\n return this._channels[id];\r\n }\r\n\r\n public setVisible(id: string, visible: boolean) {\r\n if (this._channels[id]) {\r\n if (this._channels[id].visible !== visible) {\r\n this._generation++;\r\n this._channels[id].visible = visible;\r\n this._channels[id].generation = this.generation;\r\n this.notify();\r\n }\r\n }\r\n }\r\n\r\n public toggleVisible(id: string) {\r\n this.setVisible(id, !this.isVisible(id));\r\n }\r\n\r\n public visibleChannelList(): IChannel[] {\r\n const keys = Object.keys(this._channels);\r\n return keys\r\n .sort((a, b) => this._channels[a].channel.displayName.localeCompare(this._channels[b].channel.displayName))\r\n .sort((a, b) => this._channels[b].generation - this._channels[a].generation)\r\n .filter(key => this.isVisible(key))\r\n .map(key => ChannelArt.channel(key));\r\n }\r\n}\r\n\r\nclass TimespanSelector extends Observable {\r\n public static ONE_HOUR = \"1-hour\";\r\n public static ONE_DAY = \"1-day\";\r\n public static ONE_WEEK = \"1-week\";\r\n public static ONE_MONTH = \"1-month\";\r\n public static THREE_MONTHS = \"3-months\";\r\n\r\n private _timespan = TimespanSelector.ONE_MONTH;\r\n private _generation = 0;\r\n\r\n public static get timespans() {\r\n return [\r\n TimespanSelector.ONE_HOUR,\r\n TimespanSelector.ONE_DAY,\r\n TimespanSelector.ONE_WEEK,\r\n TimespanSelector.ONE_MONTH,\r\n TimespanSelector.THREE_MONTHS\r\n ];\r\n }\r\n\r\n public static displayNameForTimespan(timespan: string): string {\r\n switch (timespan) {\r\n case TimespanSelector.ONE_HOUR: return Resources.timespanLastHour;\r\n case TimespanSelector.ONE_DAY: return Resources.timespanLastDay;\r\n case TimespanSelector.ONE_WEEK: return Resources.timespanLastWeek;\r\n case TimespanSelector.ONE_MONTH: return Resources.timespanLastMonth;\r\n case TimespanSelector.THREE_MONTHS: return Resources.timespanLast90Days;\r\n default: return Resources.timespanUnknown;\r\n }\r\n }\r\n\r\n public static dateRangeForTimespan(timespan: string): string {\r\n const hour = 60 * 60 * 1000;\r\n const day = 24 * hour;\r\n let now = Date.now();\r\n let then: number;\r\n switch (timespan) {\r\n case TimespanSelector.ONE_HOUR: then = now - hour; break;\r\n case TimespanSelector.ONE_DAY: then = now - day; break;\r\n case TimespanSelector.ONE_WEEK: then = now - day * 7; break;\r\n case TimespanSelector.ONE_MONTH: then = now - day * 31; break;\r\n case TimespanSelector.THREE_MONTHS: then = now - day * 90; break;\r\n default: return Resources.timespanUnknown;\r\n }\r\n return `${new Date(then).toLocaleDateString(Culture.CultureCode)} - ${new Date(now).toLocaleDateString(Culture.CultureCode)}`;\r\n }\r\n\r\n public startup() {\r\n }\r\n\r\n public get timespan() {\r\n return this._timespan;\r\n }\r\n\r\n public get generation() {\r\n return this._generation;\r\n }\r\n\r\n public set timespan(value: string) {\r\n this._timespan = value;\r\n this._generation++;\r\n this.notify();\r\n }\r\n\r\n // Assumption: AppInsights always sends date/time in this format\r\n datePattern = /(\\d+)\\/(\\d+)\\/(\\d+)/;\r\n timePattern = /(\\d+):(\\d+):(\\d+)\\s+(AM|PM)/;\r\n\r\n public labelForAppInsightsDate(s: string): string {\r\n const dateMatch = s.match(this.datePattern);\r\n const timeMatch = s.match(this.timePattern);\r\n let month = Number(dateMatch[1]);\r\n let day = Number(dateMatch[2]);\r\n let year = Number(dateMatch[3]);\r\n let hour = Number(timeMatch[1]);\r\n let minute = Number(timeMatch[2]);\r\n let period = timeMatch[4];\r\n month -= 1;\r\n hour %= 12;\r\n if (period === 'PM')\r\n hour += 12;\r\n // Date components are in UTC, but when creating a Date object from them, they are\r\n // misinterpreted as being in local time. This misinterpretation erroneously adds\r\n // the timezone offset to the value. Solution is to create a second date object,\r\n // subtracting the offset out.\r\n let date = new Date(year, month, day, hour, minute);\r\n let local = new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000);\r\n switch (this.timespan) {\r\n case TimespanSelector.ONE_HOUR:\r\n case TimespanSelector.ONE_DAY:\r\n return local.toLocaleTimeString([], {hour: '2-digit', minute: '2-digit'});\r\n case TimespanSelector.ONE_WEEK:\r\n case TimespanSelector.ONE_MONTH:\r\n case TimespanSelector.THREE_MONTHS:\r\n return local.toLocaleDateString(Culture.CultureCode);\r\n }\r\n }\r\n}\r\n\r\nabstract class DataStore extends Observable {\r\n protected _dataset: StateT;\r\n protected _error: any;\r\n protected _generation = 0;\r\n protected _isLoading: boolean = true;\r\n\r\n constructor(protected _botId: string, protected _method: (botId: string, analyticsRequest: Rest._AnalyticsRequest) => JQueryPromise) {\r\n super();\r\n }\r\n\r\n public get dataset() {\r\n return this._dataset;\r\n }\r\n public get error() {\r\n return this._error;\r\n }\r\n public get generation() {\r\n return this._generation;\r\n }\r\n public get isLoading() {\r\n return this._isLoading;\r\n }\r\n\r\n abstract timespan(): string;\r\n abstract massage(data: StateT): StateT;\r\n\r\n public refresh() {\r\n this._method(this._botId, { Timespan: this.timespan() })\r\n .then((data: StateT) => {\r\n this._dataset = this.massage(data);\r\n this._error = null;\r\n this._generation++;\r\n this._isLoading = false;\r\n this.notify();\r\n })\r\n .fail((error) => {\r\n this._dataset = null;\r\n this._error = error;\r\n this._generation++;\r\n this._isLoading = false;\r\n this.notify();\r\n });\r\n }\r\n\r\n // TODO: Check for localization\r\n public getErrorText() {\r\n let parts = [];\r\n if (this.error) {\r\n if (this.error.status) {\r\n parts.push(this.error.status);\r\n } else if (this.error.statusText) {\r\n parts.push(this.error.statusText);\r\n }\r\n if (this.error.responseJSON) {\r\n parts.push(this.error.responseJSON);\r\n }\r\n }\r\n return parts.join(' - ');\r\n }\r\n}\r\n\r\nclass TimelineDataStore extends DataStore {\r\n subscriptions = [];\r\n\r\n constructor(botId: string, method: (botId: string, analyticsRequest: Rest._AnalyticsRequest) => JQueryPromise) {\r\n super(botId, method);\r\n }\r\n\r\n public get channels() {\r\n return this._dataset ? ChannelArt.channelList()\r\n .filter((channel) => this._dataset.Totals.hasOwnProperty(channel.id))\r\n .filter((channel) => AnalyticsStore.channelFilter.isVisible(channel.id))\r\n : [];\r\n }\r\n\r\n public startup() {\r\n if (!this.subscriptions.length) {\r\n this.subscriptions.push(AnalyticsStore.timespanSelector.subscribe(() => this.timespanChanged()));\r\n }\r\n if (!this.dataset) {\r\n this.refresh();\r\n }\r\n }\r\n\r\n public timespanChanged() {\r\n this.refresh();\r\n }\r\n\r\n timespan(): string {\r\n return AnalyticsStore.timespanSelector.timespan;\r\n }\r\n\r\n massage(data: Rest.AnalyticsNumericTimelineResponse): Rest.AnalyticsNumericTimelineResponse {\r\n return data;\r\n }\r\n}\r\n\r\nclass UserTimelineDataStore extends TimelineDataStore {\r\n constructor(botId: string) {\r\n super(botId, Rest.AnalyticsClient.getUsers);\r\n }\r\n}\r\n\r\nclass MessageTimelineDataStore extends TimelineDataStore {\r\n constructor(botId: string) {\r\n super(botId, Rest.AnalyticsClient.getMessages);\r\n }\r\n}\r\n\r\nclass UserRetentionDataStore extends DataStore {\r\n subscriptions = [];\r\n\r\n constructor(botId: string) {\r\n super(botId, Rest.AnalyticsClient.getUserRetention);\r\n }\r\n\r\n public startup() {\r\n if (!this.subscriptions.length) {\r\n //this.subscriptions.push(AnalyticsStore.timespanSelector.subscribe(() => this.timespanChanged()));\r\n }\r\n if (!this.dataset) {\r\n this.refresh();\r\n }\r\n }\r\n\r\n public timespanChanged() {\r\n this.refresh();\r\n }\r\n\r\n timespan(): string {\r\n return (userRetentionDaysBack + 1).toString();\r\n }\r\n\r\n massage(data: Rest.AnalyticsUserRetentionResponse): Rest.AnalyticsUserRetentionResponse {\r\n return data;\r\n }\r\n}\r\n\r\nclass AnalyticsStore {\r\n public static botId: string;\r\n public static channelFilter: ChannelFilter;\r\n public static timespanSelector: TimespanSelector;\r\n public static userTimelineDataStore: UserTimelineDataStore;\r\n public static messageTimelineDataStore: MessageTimelineDataStore;\r\n public static userRetentionDataStore: UserRetentionDataStore;\r\n\r\n public static bootstrap(botId: string) {\r\n if (this.botId != botId) {\r\n this.botId = botId;\r\n this.channelFilter = new ChannelFilter();\r\n this.timespanSelector = new TimespanSelector();\r\n this.userTimelineDataStore = new UserTimelineDataStore(botId);\r\n this.messageTimelineDataStore = new MessageTimelineDataStore(botId);\r\n this.userRetentionDataStore = new UserRetentionDataStore(botId);\r\n }\r\n // Order of startup is important here.\r\n this.channelFilter.startup();\r\n this.timespanSelector.startup();\r\n this.userTimelineDataStore.startup();\r\n this.messageTimelineDataStore.startup();\r\n this.userRetentionDataStore.startup();\r\n }\r\n}\r\n\r\nexport interface AnalyticsProps extends React.Props {\r\n bot: Rest.BotService;\r\n showWebChat: boolean;\r\n tabClickHandler: (tab: BotTabs) => void;\r\n}\r\n\r\nexport class AnalyticsDashboard extends React.Component {\r\n timespanSelector: TimespanSelectorControl;\r\n\r\n constructor(props) {\r\n super(props);\r\n // If app insights isn't set up don't bother initializing the analytics store.\r\n if (this.props.bot.DeveloperAppInsightsAPIKey && this.props.bot.DeveloperAppInsightsApplicationId) {\r\n AnalyticsStore.bootstrap(props.bot.Id);\r\n }\r\n }\r\n\r\n renderHeader(): JSX.Element {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n this.timespanSelector = x} />\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n render(): JSX.Element {\r\n if (this.props.bot.DeveloperAppInsightsAPIKey && this.props.bot.DeveloperAppInsightsApplicationId) {\r\n return (\r\n
    \r\n {this.renderHeader()}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n } else {\r\n const notConfiguredSubText = Environment.isInBotFrameworkAzureExtension ? (\r\n

    {Resources.analyticsNotConfiguredActionIbiza}

    \r\n ) : (\r\n

    {Resources.analyticsNotConfiguredAction} this.props.tabClickHandler(BotTabs.Settings)}>{resourceStrings.v4.botPageTabs[BotTabs.Settings]}

    \r\n );\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {Resources.analyticsNotConfigured}

    \r\n {notConfiguredSubText}\r\n

    {Resources.learnMore}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n }\r\n}\r\n\r\n\r\nclass ChannelFilterControl extends React.Component<{}, {}> {\r\n subscriptions = [];\r\n checkboxRefs = {};\r\n\r\n componentDidMount() {\r\n this.subscriptions.push(AnalyticsStore.channelFilter.subscribe(() => this.channelsUpdated()));\r\n }\r\n componentWillUnmount() {\r\n this.subscriptions.forEach((unsubscribe) => unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n channelsUpdated() {\r\n this.forceUpdate();\r\n }\r\n\r\n onChannelClick(el: React.MouseEvent, id: string) {\r\n AnalyticsStore.channelFilter.toggleVisible(id);\r\n this.checkboxRefs[id].checked = AnalyticsStore.channelFilter.isVisible(id);\r\n }\r\n\r\n labelChannelStyle: React.CSSProperties = {\r\n padding: \"0 8px 0 8px\"\r\n };\r\n\r\n renderLabelChannel(channel: IChannel): JSX.Element {\r\n return (\r\n
    \r\n {'\\u25CF'}{'\\u00A0'}{channel.displayName}\r\n
    \r\n );\r\n }\r\n\r\n renderLabelEllipsis(): JSX.Element {\r\n return (\r\n
    \r\n {'\\u2026'}\r\n
    \r\n );\r\n }\r\n\r\n renderPickerLabel(): JSX.Element {\r\n let channels = AnalyticsStore.channelFilter.visibleChannelList();\r\n let top = channels.slice(0, 4);\r\n let items = top.map(channel => this.renderLabelChannel(channel))\r\n if (channels.length > top.length) {\r\n items.push(this.renderLabelEllipsis());\r\n }\r\n let style: React.CSSProperties = {\r\n whiteSpace: \"nowrap\",\r\n display: \"flex\"\r\n };\r\n return (\r\n
    {items}
    \r\n );\r\n }\r\n\r\n renderPickerCell(channel: IChannel): JSX.Element {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n renderPickerRow(channels: IChannel[], index: number): JSX.Element {\r\n let cells = channels.splice(0, 2).map(channel => this.renderPickerCell(channel));\r\n return ({cells});\r\n }\r\n\r\n renderPickerContent(): JSX.Element {\r\n let channels = ChannelArt.channelList();\r\n let rows: JSX.Element[] = [];\r\n let index = 0;\r\n while (channels.length) {\r\n rows.push(this.renderPickerRow(channels, index++))\r\n }\r\n return (\r\n
    \r\n {rows}
    \r\n
    \r\n );\r\n }\r\n\r\n render(): JSX.Element {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nclass TimespanSelectorControl extends React.Component {\r\n control: ChevronDropdownControl;\r\n subscriptions = [];\r\n checkboxRefs = {};\r\n\r\n componentDidMount() {\r\n this.subscriptions.push(AnalyticsStore.timespanSelector.subscribe(() => this.timespanUpdated()));\r\n }\r\n componentWillUnmount() {\r\n this.subscriptions.forEach((unsubscribe) => unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n timespanUpdated() {\r\n this.forceUpdate();\r\n }\r\n\r\n public close() {\r\n if (this.control) {\r\n this.control.close();\r\n }\r\n }\r\n\r\n onClicked(timespan: string) {\r\n AnalyticsStore.timespanSelector.timespan = timespan;\r\n this.checkboxRefs[timespan].checked = AnalyticsStore.timespanSelector.timespan === timespan;\r\n }\r\n\r\n renderPickerLabel(): JSX.Element {\r\n return (\r\n
    {TimespanSelector.dateRangeForTimespan(AnalyticsStore.timespanSelector.timespan)}
    \r\n );\r\n\r\n }\r\n\r\n renderPickerContent(): JSX.Element {\r\n let selectors = TimespanSelector.timespans.map((timespan) => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n });\r\n return (\r\n
    \r\n
    \r\n {selectors}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n render(): JSX.Element {\r\n return (\r\n this.control = x}\r\n className=\"timespan-picker-dropdown\"\r\n label={this.renderPickerLabel()}\r\n content={this.renderPickerContent()}\r\n buttonHiddenLabel={ Resources.analyticsPeriodDropdown }\r\n />\r\n );\r\n }\r\n}\r\n\r\nclass GrandTotalsCard extends React.Component<{}, {}> {\r\n subscriptions = [];\r\n\r\n componentDidMount() {\r\n this.subscriptions.push(AnalyticsStore.channelFilter.subscribe(() => this.storeUpdated()));\r\n this.subscriptions.push(AnalyticsStore.userTimelineDataStore.subscribe(() => this.storeUpdated()));\r\n this.subscriptions.push(AnalyticsStore.messageTimelineDataStore.subscribe(() => this.storeUpdated()));\r\n }\r\n componentWillUnmount() {\r\n this.subscriptions.forEach((unsubscribe) => unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n storeUpdated() {\r\n this.forceUpdate();\r\n }\r\n\r\n getGrandTotal(datastore: TimelineDataStore): number {\r\n if (datastore.dataset) {\r\n let total = 0;\r\n let lines = datastore.channels\r\n .map((channel) => {\r\n total += datastore.dataset.Totals[channel.id];\r\n });\r\n return total;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n render(): JSX.Element {\r\n return (\r\n
    \r\n

    {Resources.totalsCardTitle}

    \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\n\r\ninterface TotalCardProps extends React.Props {\r\n title: string;\r\n total: number;\r\n color?: string;\r\n disabled?: boolean;\r\n}\r\n\r\nclass TotalCard extends React.Component {\r\n render(): JSX.Element {\r\n let color = this.props.color || \"transparent\";\r\n let disabled = this.props.disabled || false;\r\n let value = this.props.total ? abbreviateNumber(this.props.total) : '--';\r\n return (\r\n
    \r\n
    \r\n
    {value}
    \r\n
    \r\n
    \r\n
    {this.props.title}
    \r\n
    {(value === '--' ? Resources.undetermined : value) + \" \" +this.props.title}
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\n\r\ninterface TimelineCardProps extends React.Props {\r\n dataStore: TimelineDataStore;\r\n title: string;\r\n}\r\n\r\nclass TimelineCard extends React.Component {\r\n subscriptions = [];\r\n\r\n componentDidMount() {\r\n this.subscriptions.push(AnalyticsStore.channelFilter.subscribe(() => this.channelsUpdated()));\r\n this.subscriptions.push(this.props.dataStore.subscribe(() => this.storeUpdated()));\r\n }\r\n componentWillUnmount() {\r\n this.subscriptions.forEach((unsubscribe) => unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n\r\n storeUpdated() {\r\n this.forceUpdate();\r\n }\r\n\r\n channelsUpdated() {\r\n this.forceUpdate();\r\n }\r\n\r\n render(): JSX.Element {\r\n const XAxisLabel = (props): JSX.Element => {\r\n if (props.payload.index > 0)\r\n return (\r\n \r\n {AnalyticsStore.timespanSelector.labelForAppInsightsDate(props.payload.value)}\r\n \r\n \r\n );\r\n return null;\r\n };\r\n\r\n if (this.props.dataStore.dataset) {\r\n const dataset = this.props.dataStore.dataset;\r\n const channels = this.props.dataStore.channels.sort((a, b) => AnalyticsStore.channelFilter.channel(a.id).generation - AnalyticsStore.channelFilter.channel(b.id).generation);\r\n\r\n const RADIAN = Math.PI / 180;\r\n const renderPieLabel = ({ cx, cy, midAngle, innerRadius, outerRadius, percent, index }) => {\r\n let radius = innerRadius + (outerRadius - innerRadius) * 0.5;\r\n radius -= 5;\r\n const x = cx + radius * Math.cos(-midAngle * RADIAN);\r\n const y = cy + radius * Math.sin(-midAngle * RADIAN);\r\n\r\n return (\r\n cx ? 'start' : 'end'} dominantBaseline=\"central\">\r\n {`${(percent * 100).toFixed(0)}%`}\r\n \r\n );\r\n };\r\n\r\n let lines = channels.map((channel) => {\r\n let strokeWidth = 3;\r\n return \r\n });\r\n let piedata = channels.map((channel) => {\r\n return {\r\n name: channel.displayName,\r\n value: dataset.Totals[channel.id]\r\n }\r\n });\r\n let piecolors = channels.map((channel) => {\r\n return ;\r\n });\r\n let totals = channels.map((channel) => {\r\n return ;\r\n });\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    {this.props.title}

    \r\n
      \r\n {\r\n piedata.map((row) =>
    • { row.name }: { row.value }
    • )\r\n }\r\n
    \r\n
    \r\n \r\n \r\n {piecolors}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n \r\n {\r\n dataset.Timeline.map(time =>\r\n \r\n \r\n {\r\n channels.map(channel =>\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n \r\n
    \r\n
    \r\n

    {Resources.timelineTableLabel.replace('%1', this.props.title)}

    \r\n
    \r\n
    { channel.displayName }
    { time.Timestamp }{ time[channel.id] }
    \r\n
    \r\n \r\n } />\r\n \r\n \r\n {lines}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {totals}\r\n
    \r\n
    \r\n );\r\n }\r\n else if (this.props.dataStore.error) {\r\n return (\r\n
    \r\n

    {Resources.cardTitleError.replace('%1', this.props.title).replace('%2', this.props.dataStore.getErrorText())}

    \r\n
    \r\n );\r\n }\r\n else if (!this.props.dataStore.isLoading) {\r\n return (\r\n
    \r\n

    {Resources.cardTitleLoading.replace('%1', this.props.title).replace('%2', Resources.noAnalyticsData)}

    \r\n
    \r\n );\r\n }\r\n else {\r\n return (\r\n
    \r\n

    {Resources.cardTitleLoading.replace('%1', this.props.title).replace('%2', Resources.loading)}

    \r\n
    \r\n );\r\n }\r\n }\r\n}\r\n\r\ninterface UserRetentionTableProps extends React.Props {\r\n dataStore: UserRetentionDataStore;\r\n title: string;\r\n desc: string;\r\n}\r\n\r\nclass UserRetentionTable extends React.Component {\r\n subscriptions = [];\r\n\r\n componentDidMount() {\r\n this.subscriptions.push(AnalyticsStore.channelFilter.subscribe(() => this.channelsUpdated()));\r\n this.subscriptions.push(this.props.dataStore.subscribe(() => this.storeUpdated()));\r\n }\r\n componentWillUnmount() {\r\n this.subscriptions.forEach((unsubscribe) => unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n\r\n storeUpdated() {\r\n this.forceUpdate();\r\n }\r\n channelsUpdated() {\r\n this.forceUpdate();\r\n }\r\n\r\n render(): JSX.Element {\r\n if (this.props.dataStore.dataset) {\r\n const dataset = this.props.dataStore.dataset;\r\n\r\n const sumWithChannels = function(data, channels: IChannel[]):number {\r\n let sum = 0;\r\n for (let channel of channels) {\r\n if (data[channel.id])\r\n sum += data[channel.id];\r\n }\r\n return sum;\r\n }\r\n\r\n const renderRow = function (rowData):JSX.Element {\r\n if (rowData.length < 1) {\r\n return No data\r\n }\r\n let channels = (rowData.DaysData) ? ChannelArt.channelList()\r\n .filter((channel) => rowData.DaysData.hasOwnProperty(channel.id))\r\n .filter((channel) => AnalyticsStore.channelFilter.isVisible(channel.id))\r\n : [];\r\n let total = sumWithChannels(rowData.DaysData, channels);\r\n let date = rowData.Date;\r\n const colorLower = [229, 244, 254]; // color lowerbound: #e5f4fe, rgb(229, 244, 254)\r\n const colorUpper = [25, 157, 246]; // color upperbound: #199df6, rgb(25, 157, 246)\r\n\r\n let percentCells = rowData.Timeline.map((entry, i) => {\r\n let percent = total >= 1 ? sumWithChannels(entry, channels) / total : 0;\r\n let colorRgb = colorLower.map((lower, i) => {\r\n let upper = colorUpper[i];\r\n return Math.floor((lower - upper) * (1-percent) + upper);\r\n });\r\n let colorStr = \"(\" + colorRgb[0] + \", \" + colorRgb[1] + \", \" + colorRgb[2] + \")\";\r\n percent = percent * 100;\r\n return \r\n
    {percent.toFixed(0)}%
    \r\n ;\r\n });\r\n\r\n return \r\n
    {(new Date(date).toLocaleDateString(Culture.CultureCode))}
    \r\n
    {total}
    \r\n {percentCells}\r\n \r\n }\r\n\r\n let rows = dataset.Days.map((day, index) => {\r\n return renderRow(day);\r\n });\r\n\r\n let dayHeaders = [];\r\n for (let i = 1; i <= userRetentionDaysBack; i++) {\r\n dayHeaders.push(\r\n {i}\r\n );\r\n }\r\n\r\n return
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dayHeaders}\r\n \r\n \r\n \r\n {rows}\r\n \r\n
    \r\n
    \r\n

    {this.props.title} - {this.props.desc}

    \r\n
    \r\n
    {Resources.retentionHeader}
    {Resources.retentionDate}{Resources.retentionUsers}
    \r\n
    \r\n }\r\n else if (this.props.dataStore.error) {\r\n return (\r\n
    \r\n

    {Resources.cardTitleError.replace('%1', this.props.title).replace('%2', this.props.dataStore.getErrorText())}

    \r\n
    \r\n );\r\n }\r\n else if (!this.props.dataStore.isLoading) {\r\n return (\r\n
    \r\n

    {Resources.cardTitleLoading.replace('%1', this.props.title).replace('%2', Resources.noAnalyticsData)}

    \r\n
    \r\n );\r\n }\r\n else {\r\n return (\r\n
    \r\n

    {Resources.cardTitleLoading.replace('%1', this.props.title).replace('%2', Resources.loading)}

    \r\n
    \r\n );\r\n }\r\n }\r\n}\r\n\r\ninterface ErrorsCardProps extends React.Props {\r\n title: string;\r\n}\r\n\r\nclass ErrorsCard extends React.Component {\r\n render(): JSX.Element {\r\n return (\r\n
    \r\n

    {this.props.title}

    \r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/AnalyticsDashboard.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { clientAppSettings } from \"../../Models/ClientAppSettings\";\r\nimport { MessageBox } from \"../../Dialogs/MessageBox\";\r\nimport { ProgressDialog } from \"../../Dialogs/ProgressDialog\";\r\nimport { TermsOfServiceDialog } from \"../../Dialogs/TermsOfServiceDialog\";\r\nimport { TermsOfServiceDialogProps } from \"./TermsOfServiceDialog\";\r\nimport { Resources } from \"../../Resources/Intercom.Resources.DevPortal\";\r\nimport { Environment } from \"../../../../Intercom.ReactUI/Utils/Environment\";\r\n\r\nimport { CultureUtility } from '../../Resources/CultureUtility';\r\n\r\n// tslint:disable\r\nimport * as $ from \"jquery\";\r\ntype AjaxSettings = JQueryAjaxSettings;\r\ntype AjaxPromise = JQueryPromise;\r\nconst innerAjax = $.ajax;\r\nconst extend = $.extend;\r\n/** Optionally, set this variable to your network activity indicator function. */\r\nexport var showNetworkIcon = (show: boolean) => { };\r\n\r\n/** Optionally, set this to your own ajax function. */\r\nexport var ajax: (settings: AjaxSettings) => AjaxPromise = _ajax;\r\n\r\n/** Optionally, set this to a string that all urls should be prefixed with. */\r\nexport var urlPrefix = '';\r\n\r\n/** Optionally, set this to additional header key/value pairs to send along with ajax requests. */\r\nexport var ajaxHeaders: { [key: string]: any } = null;\r\n\r\n/** Wraps ajax function and adds network activity indicator. */\r\nfunction _ajax(settings_: AjaxSettings): AjaxPromise {\r\n var settings: AjaxSettings = extend({}, settings_, { url: urlPrefix + settings_.url });\r\n if (settings.data)\r\n settings.contentType = 'application/json';\r\n if (ajaxHeaders)\r\n settings.headers = ajaxHeaders;\r\n showNetworkIcon(true);\r\n return innerAjax(settings).always(() => showNetworkIcon(false));\r\n}\r\n// // tslint:enable\r\n\r\nexport interface BotChannelConfigProps extends React.Props {\r\n currentBotId: string;\r\n channel: string;\r\n channelConfigInterface: ChannelConfigInterface;\r\n azureToken: string;\r\n}\r\n\r\nexport interface BotChannelConfigState{\r\n body: string,\r\n showProgressMask: boolean\r\n}\r\n\r\nexport interface ChannelConfigInterface {\r\n leaveChannelConfig: () => void;\r\n reloadBot: () => void;\r\n showDeleteDialog?: (callback) => void;\r\n showConfirmLeaveDialog?: (callback) => void;\r\n showProgressDialog?: (message: string) => ProgressDialog;\r\n showTosDialog?: (checkbox: string, successCallback, failCallback) => void;\r\n}\r\n\r\nexport class BotChannelConfig extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const configInterface: ChannelConfigInterface = props.channelConfigInterface;\r\n _.defaults(configInterface, {\r\n showDeleteDialog: this.deleteDialog,\r\n showConfirmLeaveDialog: this.leaveDialog,\r\n showProgressDialog: ProgressDialog.show,\r\n showTosDialog: this.tosDialog\r\n });\r\n window[\"channelConfigInterface\"] = props.channelConfigInterface;\r\n this.state = {\r\n body: \"\",\r\n showProgressMask: false\r\n };\r\n }\r\n\r\n private deleteDialog(callback: () => void, _lastNode?: React.ReactInstance) {\r\n const mb = new MessageBox({\r\n okButtonClass: \"m-button-destructive-outline-md\",\r\n okButtonLabel: Resources.channelConfigDeleteOk,\r\n cancelButtonLabel: Resources.channelConfigDeleteCancel\r\n });\r\n mb.message = Resources.channelConfigDeleteMessage;\r\n mb.header = Resources.channelConfigDeleteHeader;\r\n return mb.showDialog(_lastNode).done(callback);\r\n }\r\n\r\n private leaveDialog(callback: () => void) {\r\n const mb = new MessageBox({\r\n okButtonLabel: Resources.channelConfigLeaveOk,\r\n cancelButtonLabel: Resources.channelConfigLeaveCancel\r\n });\r\n mb.message = Resources.channelConfigLeaveMessage;\r\n mb.header = Resources.channelConfigLeaveHeader;\r\n return mb.showDialog().done(callback);\r\n }\r\n\r\n private tosDialog(checkbox: string, successCallback: () => void, fail: () => void) {\r\n const tosDialogProps: TermsOfServiceDialogProps = {\r\n header: Resources.tosDialog_Header,\r\n message: Resources.tosDialog_MessageChannels,\r\n checkboxes: [checkbox]\r\n }\r\n let termsDialog = new TermsOfServiceDialog(tosDialogProps);\r\n return termsDialog.showDialog().done(successCallback).fail(fail);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const rootPath = clientAppSettings.applicationPath === '/' ? '' : clientAppSettings.applicationPath;\r\n const url = `${rootPath}/channels/${this.props.channel}/${this.props.currentBotId}`;\r\n\r\n // Build the query string based on the current culture and if we are in the Ibiza Azure blade.\r\n const query = { };\r\n if (CultureUtility.rawLocale) {\r\n query[\"l\"] = CultureUtility.rawLocale;\r\n }\r\n if (Environment.isInBotFrameworkAzureExtension) {\r\n query[\"ioenv\"] = \"ibiza\";\r\n }\r\n \r\n const queryString = jQuery.param(query);\r\n const path = url + ((queryString) ? \"?\" + queryString : \"\");\r\n\r\n if(this.props.channel == \"directlinespeech\")\r\n {\r\n BotChannelConfig.getDLSChannelPage(\r\n path,\r\n this.props.azureToken).done(\r\n (body) => {\r\n if(this.state.body === \"\")\r\n {\r\n this.setState({ body: body });\r\n }\r\n }\r\n ).fail(\r\n () => {\r\n if(this.state.body === \"\")\r\n {\r\n this.setState({ body: \"

    Something went wrong.

    \" });\r\n }\r\n }\r\n )\r\n \r\n return (
    \r\n \r\n
    );;\r\n }\r\n else\r\n {\r\n return
    \r\n \r\n
    ;\r\n }\r\n\r\n }\r\n\r\n /** Get DLS channel page */\r\n private static getDLSChannelPage(url: string, azureToken: string): AjaxPromise {\r\n return ajax({\r\n dataType: 'html',\r\n url: url,\r\n type: 'GET',\r\n headers: { 'azureToken': azureToken },\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/BotChannelConfig.tsx","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport {Treebeard, TreebeardProps, TreeNode, decorators} from \"react-treebeard\";\r\nimport AceEditor from \"react-ace\";\r\nimport * as csharp from \"brace/mode/csharp\";\r\nimport * as javascript from \"brace/mode/javascript\";\r\nimport * as xml from \"brace/mode/xml\";\r\nimport * as json from \"brace/mode/json\";\r\nimport * as typescript from \"brace/mode/typescript\";\r\nimport * as theme from \"brace/theme/github\";\r\nimport {getExt} from \"../../../../Intercom.ReactUI/Utils/Path\";\r\nimport treeStyle from \"../../Views/TreeStyle\"\r\nimport * as pinBottom from \"../../../../Intercom.ReactUI/Views/PinToBottom\";\r\nimport {BladeType} from \"../Services/azurePortalLinks\";\r\nimport {BotTab} from \"../../Views/BotTab\";\r\nimport {LogStream, LogStreamProps, LogStreamState} from \"../../Views/LogStream\";\r\nimport isInFrame from \"../../../../Intercom.ReactUI/Utils/InFrame\";\r\nimport {renderIconForScmType, toggleContinuousIntegrationSettings} from \"./BotAppContinuousIntegration\";\r\nimport {debugAllTabs, BotPageTab} from \"../../Views/BotTabPage\";\r\nimport {ProgressRingControl, TimestampControl} from \"../../../../Intercom.ReactUI/Views/index\";\r\n\r\nexport interface BotCodeEditorProps extends React.Props {\r\n botId: string,\r\n botEndpoint: string,\r\n onToggle(node: TreeNode, toggled: boolean),\r\n onSave(url: string, content: string),\r\n onSetBotId(botId: string),\r\n onAddFile();\r\n onRefresh();\r\n onRenameFile(newName: string);\r\n onChangeCode(txt: string, dirty: boolean);\r\n clearLogStream();\r\n openBlade(bladeType: BladeType);\r\n openTab(tabType: BotPageTab, callback?: Function);\r\n scmType: string | (() => string);\r\n onSetCodeEditor(x: BotCodeEditor): void;\r\n}\r\n\r\nexport interface BotCodeEditorState {\r\n root: TreeNode;\r\n activeNode: TreeNode;\r\n activeFile: TreeNode;\r\n activeCode: string;\r\n activeCodeDirty: boolean;\r\n logStream: string;\r\n botDeploymentLog?: Rest.VfsNodeInfo;\r\n botDeploymentLogFound?: boolean;\r\n newFileNodeId?: string;\r\n lastFetchTime?: Date;\r\n}\r\n\r\nexport function mapFilesToTreeNodes(files: Rest.VfsNodeInfo[]): TreeNode[] {\r\n return _.map(files, file => {\r\n return {\r\n id: file.href,\r\n name: file.name,\r\n children: file.href[file.href.length - 1] == '/' ? [] : undefined\r\n }\r\n });\r\n}\r\n\r\nexport enum SourceTypes {\r\n csharp,\r\n javascript,\r\n typescript,\r\n json,\r\n xml\r\n}\r\n\r\nconst extToSourceTypes = {\r\n '.js': SourceTypes.javascript,\r\n '.csx': SourceTypes.csharp,\r\n '.xml': SourceTypes.xml,\r\n '.ts': SourceTypes.typescript,\r\n '.json': SourceTypes.json,\r\n '.xproj': SourceTypes.xml\r\n};\r\n\r\nconst modules = [csharp, javascript, typescript, json, xml, theme];\r\n\r\nclass CustomContainer extends decorators.Container {\r\n constructor(props: React.Props) {\r\n super(props);\r\n }\r\n\r\n public render() {\r\n const {style, decorators, terminal, onClick, node} = this.props;\r\n let containerStyle = style.container;\r\n if (_.isArray(containerStyle)) {\r\n let args = _.clone(containerStyle);\r\n args.unshift({});\r\n containerStyle = _.extend.apply(null, args);\r\n }\r\n return (\r\n \r\n { !terminal ? this.renderToggle() : null }\r\n \r\n
    \r\n );\r\n }\r\n\r\n public renderToggleDecorator() {\r\n let decorators = this.props.decorators;\r\n let style = this.props.style;\r\n let node = this.props.node;\r\n return ();\r\n }\r\n}\r\n\r\n// TODO: move to intercom.ReactUI for code sharing\r\nconst KeyCodes = {\r\n enter: 13\r\n}\r\n\r\nexport class BotCodeEditor extends React.Component\r\n implements BotTab {\r\n public code: string;\r\n public codeDirty: boolean;\r\n private saveButton: HTMLButtonElement;\r\n private logStream: LogStream;\r\n private fileNameEditor: HTMLInputElement;\r\n private aceEditor: AceEditor;\r\n private codeExplorer: HTMLDivElement;\r\n private codeExplorerListener: EventListener;\r\n private codePanel: HTMLDivElement;\r\n private codePanelListener: EventListener;\r\n private pendingResetUndoStack: boolean;\r\n\r\n constructor(props: BotCodeEditorProps) {\r\n super(props);\r\n this.state = {\r\n root: {\r\n id: this.props.botId,\r\n name: this.props.botId,\r\n children: [],\r\n toggled: false,\r\n loading: true\r\n },\r\n activeNode: null,\r\n activeFile: null,\r\n activeCode: \"\",\r\n activeCodeDirty: false,\r\n logStream: \"\",\r\n botDeploymentLogFound: false\r\n };\r\n }\r\n\r\n private getMode(): string {\r\n let sourceType = SourceTypes.csharp;\r\n if (this.state.activeFile) {\r\n let curType = extToSourceTypes[getExt(this.state.activeFile.name).toLowerCase()];\r\n if (!_.isUndefined(curType)) {\r\n sourceType = curType;\r\n }\r\n }\r\n return SourceTypes[sourceType];\r\n }\r\n\r\n private get scmType(): string {\r\n if (this.props.scmType instanceof Function) {\r\n return this.props.scmType();\r\n } else {\r\n return this.props.scmType;\r\n }\r\n }\r\n\r\n private isBoundToSourceControl() {\r\n return !((this.scmType || 'none').toLowerCase() === 'none');\r\n }\r\n\r\n private getToggleClass(props: any) {\r\n return `tree-toggle ${props.node && props.node.toggled ? 'expand' : ''}`;\r\n }\r\n\r\n public setBotId(botId: string) {\r\n this.props.onSetBotId(botId);\r\n }\r\n\r\n public setBot(bot: Rest.BotService) {\r\n // do nothing\r\n }\r\n\r\n public componentDidMount() {\r\n $(this.fileNameEditor).keypress((e) => {\r\n if (e.keyCode == KeyCodes.enter) {\r\n $(e.currentTarget).blur();\r\n }\r\n });\r\n\r\n if (this.codeExplorer) {\r\n this.codeExplorerListener = pinBottom.bind($(this.codeExplorer), $('.outline.footer'), $('#app-body'));\r\n }\r\n if (this.codePanel) {\r\n this.codePanelListener = pinBottom.bind($(this.codePanel), $('.outline.footer'), $('#app-body'), () => {\r\n if (this.aceEditor && this.aceEditor.editor) {\r\n this.aceEditor.editor.resize();\r\n }\r\n });\r\n }\r\n\r\n if (this.aceEditor && this.aceEditor.editor && this.aceEditor.editor.session) {\r\n this.aceEditor.editor.session.setUseWorker(false);\r\n }\r\n }\r\n\r\n public componentWillUnmount() {\r\n $(this.fileNameEditor).off('keypress');\r\n if (this.codeExplorerListener) {\r\n pinBottom.unbind(this.codeExplorerListener);\r\n this.codeExplorerListener = null;\r\n }\r\n if (this.codePanelListener) {\r\n pinBottom.unbind(this.codePanelListener);\r\n this.codePanelListener = null;\r\n }\r\n // remember the last cursor position\r\n let curNode = this.state.activeNode;\r\n if (this.aceEditor && this.aceEditor.editor) {\r\n let curPos = this.aceEditor.editor.getCursorPosition();\r\n if (curNode && curPos) {\r\n curNode['cursorPos'] = curPos;\r\n }\r\n }\r\n }\r\n\r\n public componentDidUpdate(prevProps: BotCodeEditorProps, prevState: BotCodeEditorState) {\r\n const $fileNameEditor = $(this.fileNameEditor);\r\n if ($fileNameEditor.hasClass('open')) {\r\n const $explorer = $fileNameEditor.parent();\r\n const $newFileNode = $explorer.find('.create-file-name');\r\n if ($newFileNode.length) {\r\n // now position $fileNameEditor on top of $newFileNode\r\n const box = $explorer[0].getBoundingClientRect();\r\n const nodeBox = $newFileNode[0].getBoundingClientRect();\r\n $fileNameEditor.css({\r\n 'position': 'absolute',\r\n 'top': `${nodeBox.top - box.top}px`,\r\n 'left': `${nodeBox.left - box.left}px`\r\n }).focus();\r\n }\r\n }\r\n\r\n if (this.pendingResetUndoStack) {\r\n if (this.aceEditor && this.aceEditor.editor) {\r\n if (this.aceEditor.editor.getValue() == this.state.activeCode) {\r\n let undoMgr = this.aceEditor.editor.session.getUndoManager();\r\n if (undoMgr) {\r\n undoMgr.reset();\r\n this.pendingResetUndoStack = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.gotoPreviousCursor();\r\n\r\n this.aceEditor.editor.setOption('readOnly', this.isBoundToSourceControl());\r\n }\r\n\r\n private openContinuousSettings() {\r\n toggleContinuousIntegrationSettings($('section.bot-app-setting a.expando.closed'));\r\n }\r\n\r\n private onSaveCurrentFile() {\r\n if (!this.isBoundToSourceControl() && this.state.activeCodeDirty) {\r\n this.props.onSave(this.state.activeFile.id, this.code);\r\n }\r\n }\r\n\r\n private gotoPreviousCursor() {\r\n let pos = this.state.activeNode ? this.state.activeNode['cursorPos'] : null;\r\n // check if we have the matching code loaded\r\n let lines = this.aceEditor && this.aceEditor.editor && this.aceEditor.editor.session ?\r\n this.aceEditor.editor.session.getLength() : -1;\r\n if (pos && this.aceEditor && this.aceEditor.editor && pos.row + 1 <= lines) {\r\n this.aceEditor.editor.gotoLine(pos.row + 1, pos.column);\r\n delete this.state.activeNode['cursorPos'];\r\n }\r\n }\r\n\r\n public resetUndoStack() {\r\n this.pendingResetUndoStack = true;\r\n }\r\n\r\n public getCursorPosition(): Object {\r\n return this.aceEditor && this.aceEditor.editor ? this.aceEditor.editor.getCursorPosition() : 0;\r\n }\r\n\r\n private showLoading(): JSX.Element {\r\n return $(div).closest(\"ul\").toggleClass(\"code-explorer-loading\", true) }\r\n onUnmount={ div => $(div).closest('ul.code-explorer-loading').toggleClass('code-explorer-loading', false) }\r\n />;\r\n }\r\n\r\n public render(): JSX.Element {\r\n const showAddButton = false;\r\n\r\n var isBoundToSourceControl = this.isBoundToSourceControl();\r\n\r\n var message: JSX.Element = isBoundToSourceControl ?
    Continuous deployment connected, read only view
    : null;\r\n\r\n let lastDeployTime = this.state.botDeploymentLog ? new Date(this.state.botDeploymentLog.mtime as any) : null;\r\n let showRefresh = lastDeployTime && this.state.lastFetchTime && this.state.lastFetchTime.getTime() < lastDeployTime.getTime();\r\n if (isInFrame() || debugAllTabs) {\r\n if (isBoundToSourceControl) {\r\n message =
    \r\n {renderIconForScmType(this.scmType) }\r\n {showRefresh ? : null}\r\n {showRefresh ? this.props.onRefresh() }>Refresh : null}\r\n this.props.openTab(BotPageTab.settings, () => this.openContinuousSettings()) }> Edit continuous deployment\r\n
    ;\r\n } else {\r\n message = \r\n }\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n { message }\r\n {/*\r\n \r\n */\r\n }\r\n { isBoundToSourceControl ? null :\r\n { this.saveButton = x } }\r\n className=\"default-button\"\r\n disabled={isBoundToSourceControl || !this.state.activeCodeDirty}\r\n onClick={() => this.props.onSave(this.state.activeFile.id, this.code) }>Save\r\n }\r\n
    \r\n
    \r\n
    this.codeExplorer = x}>\r\n {\r\n const style = props.style;\r\n const isNewFile = props.node.newFile;\r\n const isFile = props.terminal;\r\n let className = isNewFile ? 'create-file-name' : (isFile ? 'leaf-file' : '');\r\n className = `${className} treenode`;\r\n const nodeId = isNewFile ? props.node.id : null;\r\n let fileName = (\r\n
    {props.node.name}\r\n
    );\r\n return (\r\n
    \r\n {fileName}\r\n
    );\r\n },\r\n Toggle: (props) => {\r\n const style = props.style;\r\n return (\r\n
    \r\n
    \r\n );\r\n }\r\n }) }\r\n animations={false}/>\r\n this.fileNameEditor = x}\r\n className={this.state.newFileNodeId ? 'file-name-editor open' : 'file-name-editor'}\r\n placeholder=\"filename.ext\"\r\n onBlur={e => {\r\n this.props.onRenameFile(e.target['value']);\r\n this.fileNameEditor.value = '';\r\n } }\r\n />\r\n
    \r\n
    this.codePanel = x}>\r\n
    \r\n {\r\n this.onSaveCurrentFile();\r\n }\r\n }]}\r\n onChange={txt => {\r\n this.code = txt;\r\n this.props.onChangeCode(txt, true);\r\n } }\r\n value={this.state.activeCode}\r\n editorProps={{ $blockScrolling: true }}\r\n ref={x => this.aceEditor = x }\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n { this.logStream = x } } logs={this.state.logStream}/>\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/BotCodeEditor.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport {BotAppContinuousIntegration, BotAppCIProps, BotAppCIState} from \"./BotAppContinuousIntegration\";\r\nimport {DownloadLinkControl, TooltipControl, Borders, TooltipParagrah} from \"../../../../Intercom.ReactUI/Views/index\";\r\nimport isInFrame from \"../../../../Intercom.ReactUI/Utils/InFrame\"\r\nimport {BladeType} from \"../Services/azurePortalLinks\";\r\nimport openTab from \"../Services/openTab\"\r\nimport {needZipProxy, getBotZipBlobUrl} from \"../Services/downloadBotSrc\";\r\n\r\nexport interface BotCodeSetupProps extends React.Props {\r\n scmType: () => JQueryPromise;\r\n ciProps: BotAppCIProps;\r\n setCodeSetup(component: BotCodeSetup): void;\r\n setLoading(loading: boolean) : void;\r\n onScmTypeChange(): void;\r\n}\r\n\r\nexport interface BotCodeSetupState {\r\n bot: Rest.BotService;\r\n showingTipId: string;\r\n tip: JSX.Element;\r\n zipBlobUrl?: string;\r\n}\r\n\r\nconst debugCodeSetup = false;\r\n\r\nlet showingTipId: string = null;\r\n\r\nconst tip_abs_code_build_tab = 'tip_abs_code_build_tab';\r\n\r\nexport class BotCodeSetup extends React.Component {\r\n private scmType: string = null;\r\n private azureBladUrl: string = null;\r\n private tipControl: TooltipControl;\r\n\r\n constructor(props: BotCodeSetupProps) {\r\n super(props);\r\n this.state = { bot : null, showingTipId: null, tip: null };\r\n }\r\n\r\n private get scmSiteUrl() : string {\r\n return this.state.bot ? `https://${this.state.bot.ProvisionInfo.SiteName}.scm.azurewebsites.net`: null;\r\n }\r\n\r\n private renderDownloadLink(): JSX.Element {\r\n if (!this.state.bot) {\r\n return null;\r\n }\r\n\r\n const fileName = `${this.state.bot.Id}.zip`;\r\n const botBlobUrl = needZipProxy() ? getBotZipBlobUrl(this.state.bot.Id, null) : (this.props.ciProps.blobUrl || this.state.zipBlobUrl);\r\n return {\r\n this.props.ciProps.onZipDownloaded(blobUrl);\r\n this.setState({zipBlobUrl: blobUrl});\r\n }}\r\n blobUrl={botBlobUrl}\r\n pendingDownload={this.props.ciProps.pendingDownload ? 'Generating zip file' : null}/>;\r\n }\r\n\r\n private shownTip: JSX.Element;\r\n private toggleTip(tip: JSX.Element, target: HTMLElement) {\r\n if (this.tipControl) {\r\n this.tipControl.anchorTo($(target));\r\n }\r\n if (this.shownTip && this.shownTip.key === tip.key) {\r\n this.dismissTooltip();\r\n } else {\r\n this.setState({tip: tip, showingTipId: tip ? tip_abs_code_build_tab: null});\r\n window.addEventListener('click', this.dismissTooltip);\r\n this.shownTip = tip;\r\n }\r\n }\r\n\r\n private dismissTooltip = () => {\r\n this.setState({tip: null, showingTipId: null});\r\n window.removeEventListener('click', this.dismissTooltip);\r\n this.shownTip = null;\r\n }\r\n\r\n private renderAppServiceEditorLink() : JSX.Element {\r\n return (\r\n
    \r\n

    Online code editor

    \r\n Use the browser-based Azure App Service Editor to make quick changes to your source code, and test them instantly. Learn more} \r\n >\r\n Make quick changes to your bot code and see changes instantly. \r\n \r\n {this.scmSiteUrl ? \r\n \r\n :null}\r\n
    \r\n );\r\n }\r\n\r\n private renderDownloadCodeLink(): JSX.Element {\r\n return (\r\n
    \r\n

    Download source code

    \r\n Download a zip file that contains all source files, a Visual Studio solution file, and a configuration file that lets you publish from Visual Studio. Learn more}\r\n >\r\n Download your source code and develop locally using\r\n your favorite IDE. You can publish your code back to the bot\r\n when ready. \r\n \r\n {this.renderDownloadLink()}\r\n
    \r\n );\r\n }\r\n\r\n private renderContinousIntegration() : JSX.Element {\r\n const text = this.scmType == 'None' ? 'Enable continuous deployment with your favorite source control provider.' : 'The code for this bot can be modified from the link below.';\r\n return (\r\n
    \r\n

    Continuous deployment from source control

    \r\n Continuous deployment lets you re-publish to Azure whenever you check a code change in to your source control service. Learn more}>\r\n {text}\r\n \r\n { this.refreshScmType(); }}\r\n scmType={() => $.Deferred().resolve(this.scmType)}/>\r\n
    \r\n );\r\n }\r\n\r\n private renderOpenBotInAzure(): JSX.Element {\r\n return (\r\n
    \r\n
    This bot is provisioned in Microsoft Azure
    \r\n

    Viewing and editing code in Microsoft Azure

    \r\n

    To work with the code for this bot, open the bot in Microsoft Azure.

    \r\n \r\n
    \r\n )\r\n }\r\n\r\n public componentDidMount() {\r\n if (!this.scmType) {\r\n this.props.setLoading(true);\r\n }\r\n this.props.scmType().then(scmType => {\r\n this.scmType = scmType;\r\n this.forceUpdate();\r\n }).always(\r\n () => this.props.setLoading(false)\r\n );\r\n this.props.ciProps.bladeUrl(BladeType._none).then(url => {\r\n this.azureBladUrl = url;\r\n this.forceUpdate();\r\n });\r\n }\r\n\r\n private renderCodeSetup() : JSX.Element {\r\n if (!this.scmType) {\r\n // we haven't resolved the scmType\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n this.scmType === 'None' \r\n ?

    Choose how to work with your code

    \r\n : null\r\n }\r\n {this.scmType == 'None' ? this.renderAppServiceEditorLink(): null}\r\n {this.scmType == 'None' ? this.renderDownloadCodeLink(): null}\r\n {this.renderContinousIntegration()}\r\n
    \r\n {TooltipControl.renderToolTipAsNeeded({\r\n tipId: tip_abs_code_build_tab,\r\n ref: x => this.tipControl = x,\r\n children: this.state.tip,\r\n className: this.state.tip ? 'modeless' : 'invisible',\r\n anchorBorder: Borders.Left\r\n })\r\n } \r\n
    \r\n );\r\n }\r\n\r\n public refreshScmType() {\r\n // wait for 5 seconds so that the scmType update to propergate\r\n _.delay(() => {\r\n this.scmType = null;\r\n this.componentDidMount();\r\n this.props.onScmTypeChange();\r\n }, 5000);\r\n }\r\n\r\n public render() :JSX.Element {\r\n return isInFrame() || debugCodeSetup ? this.renderCodeSetup() : this.renderOpenBotInAzure();\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/BotCodeSetup.tsx","import * as React from \"react\";\r\nimport {clientAppSettings} from \"../../Models/ClientAppSettings\";\r\nimport {BotTypes} from \"../../Utils/BotUtils\";\r\nimport {resourceStrings, FooterControl} from \"../../../../Intercom.ReactUI/Views/index\";\r\nimport {lazy} from \"../../Decorators/index\";\r\n\r\nexport interface BotCreateSwitchProps extends React.Props {\r\n createFirstBot: boolean;\r\n showAbsGACreate: boolean;\r\n onCreate(botTypes: BotTypes) : void;\r\n}\r\n\r\nexport interface BotCreateSwitchState {\r\n}\r\n\r\ninterface CreateTile {\r\n title: string,\r\n description: string | Function,\r\n button: string,\r\n botType: BotTypes;\r\n}\r\n\r\n\r\nexport class BotCreateSwitch extends React.Component {\r\n private tiles: CreateTile[];\r\n\r\n @lazy()\r\n private get absCodeEnabled() : boolean {\r\n return clientAppSettings.flightedFeatures.indexOf('absCode') >= 0;\r\n }\r\n\r\n @lazy()\r\n private get showTiles() : boolean {\r\n return this.absCodeEnabled;\r\n }\r\n\r\n private get absCodeTile() : CreateTile {\r\n return {\r\n title: 'Create a bot with the Bot Builder SDK',\r\n description: 'Click create below to use the SDK to build your bot and optionally host it in Microsoft Azure.',\r\n button: 'Create',\r\n botType: BotTypes.None\r\n }\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.tiles = [];\r\n\r\n if(props.showAbsGACreate) {\r\n this.tiles.push({\r\n title: 'Create a bot with the Azure Bot Service',\r\n description: () => { return (\r\n

    Create a new bot or register an existing bot with the Azure Bot Service.

    \r\n );},\r\n button: 'Create',\r\n botType: BotTypes.ABSGACreate\r\n });\r\n } else {\r\n this.tiles.push(this.absCodeEnabled ? this.absCodeTile : {\r\n title: 'Create a bot with the Bot Builder SDK',\r\n description: () => { return (\r\n

    Don't have the SDK yet? Download, build, then return to this page to register.

    \r\n );},\r\n button: 'Register',\r\n botType: BotTypes.None\r\n });\r\n }\r\n\r\n this.state = {\r\n };\r\n }\r\n\r\n public componentDidMount() {\r\n if (this.showTiles) {\r\n $('body').toggleClass('dark-gray', true);\r\n }\r\n }\r\n\r\n public componentWillUnmount() {\r\n if (this.showTiles) {\r\n $('body').toggleClass('dark-gray', false);\r\n }\r\n }\r\n\r\n private renderCreateTile(tile: CreateTile): JSX.Element {\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    {tile.title}

    \r\n

    {(tile.description instanceof Function) ? (tile.description as Function)() : tile.description }

    \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
    \r\n
    \r\n

    {this.props.createFirstBot ? resourceStrings.v4.nobotsPrompt : resourceStrings.v4.newBotPrompt}

    \r\n

    \r\n {this.showTiles? null : {resourceStrings.v4.createBotSDKLink} }\r\n {resourceStrings.v4.createBotLabel}\r\n

    \r\n
    \r\n { this.showTiles ? this.renderCreateTiles() : this.renderRegisterButton()}\r\n \r\n
    \r\n );\r\n }\r\n\r\n private renderRegisterButton(): JSX.Element {\r\n return (\r\n \r\n );\r\n }\r\n\r\n\r\n public renderCreateTiles(): JSX.Element {\r\n return (\r\n
    \r\n {this.tiles.map(x => this.renderCreateTile(x))}\r\n
    \r\n );\r\n }\r\n\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/BotCreateSwitch.tsx","/// \r\n\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport {TooltipControl, Borders} from \"../../../../Intercom.ReactUI/Views/index\";\r\nimport {BotEditor} from \"./BotEditor\";\r\nimport { BlockRowInputField } from '../../Views/Shared/BlockRowInputField';\r\nimport { BlockRowInputTooltipDisposer, BlockRowInputLabel } from '../../Views/Shared/BlockRowInputLabel';\r\n\r\nexport interface BotEditorRowProps extends React.Props {\r\n label: string;\r\n\r\n required?: boolean,\r\n inputPlaceholder?: string;\r\n inputId?: string;\r\n inputMaxlen?: number;\r\n inputMinlen?: number;\r\n inputIsArray?: boolean;\r\n inputReadonly?: boolean;\r\n editor?: BotEditor;\r\n password?: boolean;\r\n\r\n inputTip?: string;\r\n tipAsHtml?: boolean;\r\n onTooltipVisibilityChanged?: (visible: boolean, disposer: BlockRowInputTooltipDisposer) => void;\r\n}\r\n\r\nexport interface BotEditorRowState {\r\n}\r\n\r\nexport class BotEditorRow extends React.Component {\r\n private onPropertyChanged = (ev: React.FormEvent) => {\r\n if (this.props.inputIsArray && this.props.editor) {\r\n this.props.editor.handleArrayChange(this.props.inputId, ev);\r\n return;\r\n }\r\n\r\n if (this.props.editor) {\r\n this.props.editor.handleChange(this.props.inputId, ev);\r\n }\r\n }\r\n\r\n private convertIfArray(value: any): string {\r\n if (value && this.props.inputIsArray) {\r\n return (value as Array).join(',');\r\n }\r\n\r\n return value;\r\n }\r\n public render() {\r\n if (!this.props.editor) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/BotEditorRow.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {WebChat} from \"./WebChat\";\r\nimport {BotTabs} from \"./BotPage\";\r\nimport {BotService} from \"../../Generated/RestClient\";\r\nimport {BotEditor, BotEditorProps} from \"./BotEditor\";\r\nimport {BotSettingsTabProps} from \"./BotSettingsTab\";\r\nimport {BotCodeSetupProps, BotCodeSetup} from \"./BotCodeSetup\";\r\nimport {AnalyticsDashboard} from \"./AnalyticsDashboard\";\r\nimport {BotChannelConfig, ChannelConfigInterface} from \"./BotChannelConfig\";\r\nimport {BotChannels} from \"./BotChannels\";\r\nimport { BotTypes, BotUtils } from \"../../Utils/BotUtils\";\r\nimport {BotCodeEditor, BotCodeEditorProps} from \"./BotCodeEditor\";\r\nimport {BotAppSettings} from \"./BotAppSettings\";\r\nimport {combineClassNames} from \"../../Utils/ReactUtils\";\r\nimport { Environment } from \"../../../../Intercom.ReactUI/Utils/Environment\";\r\nimport { FooterControl, resourceStrings } from \"../../../../Intercom.ReactUI/Views/index\";\r\n\r\nexport interface BotPageBodyProps extends React.Props {\r\n bot: BotService;\r\n botSettingsTabProps: BotSettingsTabProps;\r\n botEditorProps: BotEditorProps;\r\n botCodeEditorProps: BotCodeEditorProps;\r\n botCodeSetupProps: BotCodeSetupProps;\r\n authoringDirty: boolean;\r\n authoringError: boolean;\r\n selectedTab: number;\r\n renderWebChat: boolean;\r\n showWebChat: boolean;\r\n showWebChatPending: boolean;\r\n channel?: string;\r\n channelConfigClickHandler: (toChannel: string) => void;\r\n channelConfigInterface: ChannelConfigInterface;\r\n tabClickHandler: (tab: BotTabs) => void;\r\n onSetBotAppSettings(botAppSettings: BotAppSettings);\r\n azureToken: string;\r\n canWriteToBot: boolean;\r\n}\r\n\r\nexport class BotPageBody extends React.Component {\r\n private botSettingsPage: BotEditor;\r\n private authoringSurfaceHost: JQuery;\r\n\r\n public componentWillMount() {\r\n this.authoringSurfaceHost = $('');\r\n $(\"body\").append(this.authoringSurfaceHost);\r\n }\r\n\r\n public componentWillUnmount() {\r\n if (this.authoringSurfaceHost && this.authoringSurfaceHost.length) {\r\n this.authoringSurfaceHost.remove();\r\n this.authoringSurfaceHost = null;\r\n }\r\n }\r\n\r\n private renderBuildTab(botType: BotTypes): JSX.Element {\r\n switch (botType) {\r\n case BotTypes.ABSv1:\r\n return ( this.props.botCodeEditorProps.onSetCodeEditor(x) }/>);\r\n case BotTypes.ABSCode:\r\n return (\r\n this.props.botCodeSetupProps.setCodeSetup(x)}/>\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n private renderActivePage(): JSX.Element {\r\n switch (this.props.selectedTab) {\r\n case BotTabs.Build:\r\n const botType = BotUtils.getBotType(this.props.bot);\r\n return this.renderBuildTab(botType);\r\n case BotTabs.Analytics:\r\n return ();\r\n case BotTabs.Channels:\r\n if (this.props.channel) {\r\n return (\r\n );\r\n }\r\n return (\r\n );\r\n case BotTabs.Settings:\r\n return ( this.props.botEditorProps.onSetEditor(x) }/>);\r\n case BotTabs.Develop:\r\n return ( this.props.botCodeEditorProps.onSetCodeEditor(x) }/>);\r\n default:\r\n // invalid tab\r\n break;\r\n }\r\n }\r\n\r\n private getAdditionalBodyLeftCssForActivePage(): string {\r\n switch (this.props.selectedTab) {\r\n case BotTabs.Analytics:\r\n return \"noscroll\";\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n private getWithWebChatCss(): string {\r\n return (this.props.showWebChat) ? 'with-webchat' : '';\r\n }\r\n\r\n private renderWebChat(): JSX.Element {\r\n return this.props.showWebChatPending && this.props.showWebChat ?
    {resourceStrings.loadingBotWebChat}
    :\r\n ;\r\n }\r\n\r\n public render(): JSX.Element {\r\n const inAzureClass = Environment.isInBotFrameworkAzureExtension ? \"in-azure\" : \"\";\r\n const webchatRegion = this.props.renderWebChat ? (\r\n
    \r\n {this.renderWebChat()}\r\n
    \r\n ) : null;\r\n\r\n return(\r\n
    \r\n
    \r\n {this.renderActivePage()}\r\n \r\n
    \r\n {webchatRegion}\r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/BotPageBody.tsx","import * as React from \"react\";\r\nimport { ajax, BotService } from \"../../Generated/RestClient\";\r\nimport { TabControl, TabProps } from \"./TabControl\";\r\nimport { BotTabs } from \"./BotPage\";\r\nimport { RuntimeConnectedShade, resourceStrings } from \"../../../../Intercom.ReactUI/Views/index\";\r\nimport { BotTypes, BotUtils, BotUtilsV2 } from \"../../Utils/BotUtils\";\r\nimport { CompactDropdownControl } from \"./CompactDropdownControl\";\r\nimport { MasterPageHeader } from \"./MasterPageHeader\";\r\nimport { ControllerBase } from \"../Controllers/ControllerBase\";\r\nimport { Environment } from \"../../../../Intercom.ReactUI/Utils/Environment\";\r\nimport { IAnnouncements } from \"../../DevPortalAppBase\";\r\nimport { MessageBox } from '../../Dialogs/MessageBox';\r\n\r\nexport interface Route {\r\n tab: BotTabs;\r\n route: string;\r\n}\r\n\r\nexport interface BotPageHeaderProps extends React.Props {\r\n bot: BotService;\r\n selectedTab: BotTabs;\r\n controller: ControllerBase;\r\n authoringToolDirty: boolean;\r\n showWebChat?: boolean;\r\n isAdmin: () => boolean;\r\n isReviewer: () => boolean;\r\n tabClickHandler: (tab: BotTabs) => void;\r\n testClickHandler: () => void;\r\n importBotHandler: (file: any) => JQueryPromise;\r\n routes(botType: BotTypes): Route[];\r\n announcements: IAnnouncements;\r\n}\r\n\r\nfunction startMigration(bot: BotService, success: (url: string) => void, error: (xhr: JQueryXHR, status: string, e:string) => void) {\r\n return ajax({\r\n url: `/api/botManager/MigrateBot?botId=${bot.Id}`,\r\n type: 'POST',\r\n dataType: 'json',\r\n // set async false to work around popup blocker. Yes, this freezes the UI\r\n // but to make async stateful dialog work in a clean way is overkill for this\r\n // occasionally used feature (namely migrate team bot to Azure)\r\n async: false,\r\n success,\r\n error\r\n });\r\n}\r\n\r\nexport class BotPageHeader extends React.Component {\r\n\r\n private renderBotName(): JSX.Element {\r\n if (Environment.isInAzurePortal) {\r\n return null;\r\n }\r\n\r\n const botNameLabel = BotUtilsV2.isAzureIbizaBot(this.props.bot) && this.props.isAdmin ? \"[Azure Bot] \" + this.props.bot.Name : this.props.bot.Name;\r\n return (\r\n
    {botNameLabel}
    \r\n );\r\n }\r\n\r\n private renderMigration() : JSX.Element {\r\n if (!this.props.bot.Kind) {\r\n return ;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private renderControls(botType: BotTypes): JSX.Element {\r\n let testButtonClass = \"m-button-primary-md bot-test-button bot-test-button\";\r\n testButtonClass += this.props.showWebChat ? \"-close\" : \"-open\";\r\n\r\n return (\r\n
    \r\n {this.renderMigration()}\r\n \r\n
    \r\n );\r\n }\r\n\r\n private renderTabs(botType: BotTypes, className: string): JSX.Element {\r\n let tabs:TabProps[] = this.props.routes(botType).map((route) => {\r\n return {\r\n tab: route.tab,\r\n label: resourceStrings.v4.botPageTabs[route.tab]\r\n }\r\n });\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n public renderCompactMenu(botType: BotTypes): JSX.Element {\r\n return (\r\n
    \r\n {this.renderTabs(botType, \"bot-compact-tabs\")}\r\n
    \r\n this.props.isAdmin()}\r\n isReviewer={() => this.props.isReviewer()}\r\n signedInUser={null}\r\n renderHiddenFrameToCheckAzureSingleSignOn={null}\r\n onSearch={(s: string) => { }}\r\n onSignOutClicked={null}\r\n onAccountClicked={null}\r\n showJumboHeader={false}\r\n isRoutableUrl={null}\r\n announcements={this.props.announcements}\r\n />\r\n
    \r\n
    \r\n )\r\n }\r\n\r\n public render(): JSX.Element {\r\n // Hide the entire header in Ibiza\r\n if (Environment.isInBotFrameworkAzureExtension) {\r\n return null;\r\n }\r\n\r\n let botType = BotUtils.getBotType(this.props.bot);\r\n return (\r\n
    \r\n \r\n {this.renderBotName()}\r\n {this.renderEditMark()}\r\n
    \r\n {this.renderTabs(botType, \"bot-tabs\")}\r\n {this.renderControls(botType)}\r\n \r\n
    \r\n );\r\n }\r\n\r\n private renderEditMark(): JSX.Element {\r\n if (this.props.authoringToolDirty) {\r\n return
    Edited *
    \r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/BotPageHeader.tsx","import * as React from \"react\";\r\nimport { clientAppSettings } from \"../../Models/ClientAppSettings\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport { ControllerBase } from \"../Controllers/ControllerBase\";\r\nimport { getAzureIbizaBotUrl } from \"../../Utils/Links\";\r\nimport { FooterControl } from \"../../../../Intercom.ReactUI/Views/index\";\r\nimport {BotImageControl} from \"../../../../Intercom.ReactUI/Views/BotImageControl\";\r\n\r\nexport interface BotsPageProps extends React.Props {\r\n channelFilter?: string;\r\n onNextPage: () => void;\r\n controller: ControllerBase;\r\n\r\n // Navigate to the create/provision bot page.\r\n createBot(): void;\r\n\r\n // Navigate to bot page or Azure depending on the migration status of the bot\r\n navigateToBot: (bot: Rest.BotDocument) => void;\r\n\r\n\r\n // Delete a bot in the list\r\n deleteBot: (botId: string) => void;\r\n}\r\n\r\nexport interface BotsPageState {\r\n bots: Rest.BotDocument[];\r\n loadingMoreBots?: boolean;\r\n hasMoreBots?: boolean;\r\n searchString?: string;\r\n continuationToken?: string;\r\n}\r\n\r\n// start loading the next page of content when the bottom of bot listing\r\n// is less than PAGING_THRESHOLD away from window bottom\r\nexport const PAGING_THRESHOLD = 100;\r\n\r\nexport class BotsPage extends React.Component {\r\n\r\n private unsubscribeScroll: any;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n bots: [],\r\n continuationToken: null\r\n };\r\n }\r\n\r\n private onScroll(pageContent: Element) {\r\n const windowBottom = pageContent.scrollTop + pageContent.clientHeight;\r\n const $page = $('.my-bots');\r\n\r\n if ($page.length === 1) {\r\n const pageBottom = $page.scrollTop() + $page.height();\r\n\r\n if (pageBottom - windowBottom < PAGING_THRESHOLD &&\r\n !this.state.loadingMoreBots && this.state.hasMoreBots) {\r\n this.props.onNextPage();\r\n }\r\n }\r\n }\r\n\r\n public componentDidMount() {\r\n this.unsubscribeScroll = this.props.controller.app.onscroll((element) => this.onScroll(element));\r\n }\r\n\r\n public componentWillUnmount() {\r\n if (this.unsubscribeScroll) {\r\n this.unsubscribeScroll();\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n const bots = this.renderBots();\r\n\r\n return (\r\n
    \r\n {!this.state.searchString ? this.renderNoBotsPrompt() : null}\r\n
    \r\n {this.renderChannelFilter()}\r\n {bots}\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n private renderNoBotsPrompt(): JSX.Element {\r\n return (\r\n
    \r\n

    {\"You haven't registered any bots yet\"}

    \r\n

    {\"Don't have a bot?\"} Learn how to build and deploy one

    \r\n \r\n
    \r\n );\r\n }\r\n\r\n private renderChannelFilter(): JSX.Element {\r\n if (!this.props.channelFilter) {\r\n return null;\r\n }\r\n let filterChannelId = this.props.channelFilter;\r\n if (filterChannelId.indexOf('_all_') === 0) {\r\n filterChannelId = filterChannelId.substr(5);\r\n }\r\n\r\n const channels = clientAppSettings.channels.filter(x => x.Id === filterChannelId);\r\n const selectedChannel = channels.length ? channels[0] : null;\r\n\r\n if (!selectedChannel) {\r\n return null;\r\n }\r\n\r\n const allChannelId = `_all_${this.props.channelFilter}`;\r\n const allChannel = {\r\n Name: 'All channels',\r\n Id: allChannelId\r\n }\r\n return (\r\n
    \r\n \r\n

    \r\n \r\n

    \r\n
    \r\n );\r\n }\r\n\r\n private renderBots(): JSX.Element {\r\n if (this.state.bots && this.state.bots.length > 0) {\r\n const rows = [];\r\n\r\n for (let i = 0; i < this.state.bots.length; i++) {\r\n const bot = this.state.bots[i];\r\n const name = bot.Name ? bot.Name : '(unnamed)';\r\n let linkHref;\r\n if (bot.Kind) {\r\n linkHref = getAzureIbizaBotUrl(bot.SubscriptionId, bot.ResourceGroupName, bot.Id);\r\n } else {\r\n linkHref = `${clientAppSettings.homeUrl === '/' ? '/' : ''}bots?id=${bot.Id}`;\r\n }\r\n const row = (\r\n
    this.props.navigateToBot(bot)}>\r\n \r\n \r\n
    \r\n );\r\n rows.push(row);\r\n }\r\n return (\r\n
    \r\n
    \r\n

    My bots

    \r\n \r\n
    \r\n {rows}\r\n
    \r\n );\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/BotsPage.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\n\r\nimport {combineClassNames} from \"../../Utils/ReactUtils\";\r\n\r\n\r\nexport interface IChevronDropdownControlProps {\r\n open?: boolean;\r\n className?: string;\r\n label?: JSX.Element | JSX.Element[];\r\n content?: JSX.Element | JSX.Element[];\r\n buttonHiddenLabel?: string;\r\n}\r\n\r\nexport interface IChevronDropdownControlState {\r\n open?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport class ChevronDropdownControl extends React.Component {\r\n contentContainer: React.ReactInstance;\r\n familyId: string;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.handleKeyDown = this.handleKeyDown.bind(this);\r\n this.state = {\r\n open: props.open,\r\n className: props.className\r\n }\r\n this.familyId = Math.random().toString(24).substr(2, 12);\r\n }\r\n\r\n private documentClicked = (ev: MouseEvent) => {\r\n if (this.state.open) {\r\n if (ev.defaultPrevented)\r\n return;\r\n let target = ev.srcElement;\r\n while (target) {\r\n if (target.className.toString().indexOf(this.familyId) >= 0) {\r\n return;\r\n }\r\n target = target.parentElement;\r\n }\r\n this.setState({\r\n open: false\r\n });\r\n }\r\n }\r\n\r\n private chevronClicked = (ev: React.MouseEvent) => {\r\n let element = ev.nativeEvent.srcElement || (ev.nativeEvent.target as Element);\r\n if (element.className.toString().indexOf(this.familyId) < 0)\r\n return;\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n this.setState({\r\n open: !this.state.open\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps: IChevronDropdownControlProps, prevState: IChevronDropdownControlState) {\r\n if (!prevState.open && this.state.open) {\r\n this.focusInput(0, 1);\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n document.body.addEventListener(\"click\", this.documentClicked);\r\n\r\n if (this.state.open) {\r\n this.focusInput(0, 1);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n document.body.removeEventListener(\"click\", this.documentClicked);\r\n }\r\n\r\n public close() {\r\n this.setState({\r\n open: false\r\n });\r\n }\r\n\r\n handleKeyDown(evt) {\r\n if (evt.keyCode === 27) {\r\n evt.stopPropagation();\r\n this.close();\r\n }\r\n }\r\n\r\n focusInput(from: number, to?: number) {\r\n const channelFilterElement = ReactDOM.findDOMNode(this.contentContainer);\r\n const allInputs = channelFilterElement ? channelFilterElement.querySelectorAll('input:not([type=\"radio\"]), input[type=\"radio\"]:checked') : [];\r\n const focusing = [].slice.call(allInputs, from, to);\r\n\r\n if (focusing[0]) {\r\n focusing[0].focus();\r\n }\r\n }\r\n\r\n render() {\r\n let open = (this.state.open) ? \"open\" : \"\";\r\n let visible = (this.state.open) ? \"visible\" : \"\";\r\n return (\r\n \r\n
    \r\n { this.props.label }\r\n
    \r\n this.chevronClicked(ev) }\r\n aria-expanded={ this.state.open }\r\n >\r\n \r\n { this.props.buttonHiddenLabel }\r\n \r\n \r\n this.contentContainer = instance }\r\n role=\"menu\"\r\n >\r\n this.focusInput(-1) }\r\n tabIndex={ 0 }\r\n />\r\n { this.props.content }\r\n this.focusInput(0, 1) }\r\n tabIndex={ 0 }\r\n />\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/ChevronDropdownControl.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\n\r\nimport {combineClassNames} from \"../../Utils/ReactUtils\";\r\n\r\n\r\nexport class CompactDropdownControlProps {\r\n className?: string;\r\n contentClassName?: string;\r\n content?: JSX.Element | JSX.Element[];\r\n closeOnClick?: boolean;\r\n}\r\n\r\nexport interface CompactDropdownControlState {\r\n open?: boolean;\r\n className?: string;\r\n contentClassName?: string;\r\n}\r\n\r\nexport class CompactDropdownControl extends React.Component {\r\n familyId: string;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n className: props.className,\r\n contentClassName: props.contentClassName\r\n }\r\n this.familyId = Math.random().toString(24).substr(2, 12);\r\n }\r\n\r\n private documentClicked = (ev: MouseEvent) => {\r\n if (this.state.open) {\r\n if (ev.defaultPrevented)\r\n return;\r\n let clickIsInside = false;\r\n let clickedOnIcon = false;\r\n let target = ev.srcElement;\r\n while (target) {\r\n if (target.className.toString().indexOf(this.familyId) >= 0) {\r\n clickIsInside = true;\r\n }\r\n if (target.className.toString().indexOf(\"compact-menu-icon\") >= 0) {\r\n clickedOnIcon = true;\r\n }\r\n target = target.parentElement;\r\n }\r\n if (!clickIsInside) {\r\n this.close();\r\n }\r\n else if (this.props.closeOnClick) {\r\n if (clickedOnIcon) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n this.close();\r\n }\r\n }\r\n }\r\n\r\n private iconClicked = (ev: React.MouseEvent) => {\r\n let element = ev.nativeEvent.srcElement || (ev.nativeEvent.target as Element);\r\n if (element.className.toString().indexOf(this.familyId) < 0)\r\n return;\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n this.setState({\r\n open: !this.state.open\r\n }, () => {\r\n this.toggleStatusBarDisplay(!this.state.open);\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n window.addEventListener(\"click\", this.documentClicked);\r\n }\r\n componentWillUnmount() {\r\n window.removeEventListener(\"click\", this.documentClicked);\r\n }\r\n\r\n public close() {\r\n this.setState({\r\n open: false\r\n }, () => {\r\n this.toggleStatusBarDisplay(true);\r\n });\r\n }\r\n\r\n /**\r\n * show or hide status bar if there\r\n * @param show\r\n */\r\n private toggleStatusBarDisplay(show: boolean) {\r\n $('#app-body > * > .status-bar').css({ display: show ? 'block' : 'none' });\r\n }\r\n\r\n render() {\r\n let open = (this.state.open) ? \"open\" : \"\";\r\n let visible = (this.state.open) ? \"visible\" : \"\";\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/CompactDropdownControl.tsx","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\n\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport { BotChannels } from \"./BotChannels\";\r\nimport { Resources } from \"../../Resources/Intercom.Resources.DevPortal\";\r\n\r\nexport interface EmbedCodePanelProps extends React.Props {\r\n botId: string;\r\n contacts: Rest.ContactCard[];\r\n webChatClick?: () => void;\r\n}\r\n\r\nexport interface EmbedCodePanelState {\r\n currentChannelContact?: Rest.ContactCard;\r\n}\r\n\r\nexport class EmbedCodePanel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleFirstFocusTrapFocus = this.handleFirstFocusTrapFocus.bind(this);\r\n this.handleLastFocusTrapFocus = this.handleLastFocusTrapFocus.bind(this);\r\n this.handleEmbedCodeFocus = this.handleEmbedCodeFocus.bind(this);\r\n\r\n this.saveCloseButton = this.saveCloseButton.bind(this);\r\n this.saveEmbedCode = this.saveEmbedCode.bind(this);\r\n\r\n this.state = {\r\n currentChannelContact: (this.props.contacts.length > 0) ? this.props.contacts[0] : null\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.focusEmbedCode();\r\n }\r\n\r\n private _closeButton: React.ReactInstance;\r\n private _embedCode: React.ReactInstance;\r\n\r\n private onChannelClick(contact: Rest.ContactCard): void {\r\n this.setState({ currentChannelContact: contact });\r\n }\r\n\r\n private getFooter(): JSX.Element {\r\n if (this.state.currentChannelContact.ChannelName === 'Facebook')\r\n return (\r\n
    \r\n \r\n {Resources.embedPanelFacebookFooter} {Resources.embedPanelLearnMore}\r\n \r\n
    \r\n );\r\n else\r\n return null;\r\n }\r\n\r\n private externalLink(): JSX.Element {\r\n const path = this.props.webChatClick ? \"javascript:void(0)\" : BotChannels.getConfigUrl(this.props.botId, this.state.currentChannelContact.ChannelId);\r\n return (\r\n
    \r\n
    {Resources.embedPanelChannelMovedHeader.replace('%1', this.state.currentChannelContact.ChannelName)}
    \r\n \r\n {Resources.embedPanelChannelMovedInstructions.replace('%1', this.state.currentChannelContact.ChannelName)} {'\\uE0E3'}\r\n \r\n
    \r\n );\r\n }\r\n\r\n private embedInfo(): JSX.Element {\r\n let beforeCodeValue: JSX.Element[] = null;\r\n let beforeCodeNote: JSX.Element = null;\r\n\r\n if (this.state.currentChannelContact.Secret) {\r\n beforeCodeValue = [\r\n (\r\n
    Secret
    \r\n ), (\r\n
    \r\n
    {this.state.currentChannelContact.Secret}
    \r\n
    \r\n )\r\n ];\r\n }\r\n\r\n if (this.state.currentChannelContact.Note) {\r\n beforeCodeNote = (\r\n
    {this.state.currentChannelContact.Note}
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n {beforeCodeValue}\r\n {beforeCodeNote}\r\n
    \r\n
    \r\n
    {this.state.currentChannelContact.ChannelName}
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n private focusCloseButton() {\r\n const closeButtonElement = ReactDOM.findDOMNode(this._closeButton) as HTMLElement;\r\n\r\n closeButtonElement && closeButtonElement.focus();\r\n }\r\n\r\n private focusEmbedCode() {\r\n const embedCodeElement = ReactDOM.findDOMNode(this._embedCode) as HTMLElement;\r\n\r\n embedCodeElement && embedCodeElement.focus();\r\n }\r\n\r\n private handleEmbedCodeFocus() {\r\n const embedCodeElement = ReactDOM.findDOMNode(this._embedCode) as HTMLTextAreaElement;\r\n\r\n embedCodeElement && embedCodeElement.select();\r\n }\r\n\r\n private handleFirstFocusTrapFocus() {\r\n this.focusEmbedCode();\r\n }\r\n\r\n private handleLastFocusTrapFocus() {\r\n this.focusCloseButton();\r\n }\r\n\r\n private saveCloseButton(closeButton) {\r\n this._closeButton = closeButton;\r\n }\r\n\r\n private saveEmbedCode(embedCode) {\r\n this._embedCode = embedCode;\r\n }\r\n\r\n public render(): JSX.Element {\r\n const iconList = this.props.contacts.map(contact =>\r\n this.onChannelClick(contact)}>\r\n {contact.ChannelName}\r\n\r\n \r\n );\r\n return (\r\n
    \r\n \r\n \r\n
    {Resources.embedPanelTitle}
    \r\n
    {Resources.embedPanelDescription}
    \r\n
    {iconList}
    \r\n {this.state.currentChannelContact.ChannelId === 'webchat' ? this.externalLink() : this.embedInfo()}\r\n {this.getFooter()}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/EmbedCodePanel.tsx","/// \r\n\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport { IAnnouncements } from \"../../DevPortalAppBase\";\r\nimport { DevPortalApp } from \"../DevPortalApp\";\r\nimport { NavLinks, SearchControl, JumboHeadControl, ProgressBarControl, resourceStrings } from \"../../../../Intercom.ReactUI/Views/index\";\r\nimport { Resources } from \"../../Resources/Intercom.Resources.DevPortal\";\r\nimport { clientAppSettings } from \"../../Models/ClientAppSettings\";\r\nimport { getSignInUrl } from \"../../Utils/Links\";\r\nimport isInFrame from \"../../../../Intercom.ReactUI/Utils/InFrame\";\r\nimport { parseUrl } from \"../../../../Intercom.ReactUI/Utils/Url\";\r\nimport { parseUserAgent, KnownBrowsers } from \"../../../../Intercom.ReactUI/Utils/userAgent\";\r\nimport { EmailSubscriptionConsentConductor } from '../../Controllers/EmailSubscriptionConsent';\r\nimport { isBrowserSupported } from \"../Controllers/ControllerBase\";\r\nimport { ControllerBase } from \"../Controllers/ControllerBase\";\r\nimport { MasterPageHeader } from \"./MasterPageHeader\";\r\nimport { combineClassNames } from \"../../Utils/ReactUtils\";\r\nimport { lazy } from \"../../Decorators/index\";\r\nimport { HeaderKind } from \"../Utility/HeaderKind\";\r\nimport { SupportedFeatureUtility } from \"../Utility/SupportedFeatureUtility\";\r\n\r\nexport interface SearchablePageProps {\r\n onSearch: (s: string) => void;\r\n}\r\n\r\nexport interface MasterPageProps extends SearchablePageProps {\r\n controller: ControllerBase;\r\n signInRequired: boolean;\r\n headerKind: HeaderKind;\r\n isAdmin: () => boolean;\r\n isReviewer: () => boolean;\r\n onSignOutClicked: () => void;\r\n onUserAccountClicked: () => void;\r\n refreshSignedInUser: () => void;\r\n isRoutableUrl: (url: string) => boolean;\r\n}\r\n\r\nexport interface MasterPageState {\r\n signInState: string;\r\n signedInUser: Rest.AuthData;\r\n signInInProgress: boolean;\r\n signInError: string;\r\n activeLink: NavLinks;\r\n searchString?: string;\r\n expandSearch?: boolean;\r\n unsupportedBrowser?: boolean;\r\n statusBar: JSX.Element;\r\n statusBarScrolls?: boolean;\r\n showProgressMask?: boolean;\r\n announcements?: IAnnouncements;\r\n}\r\n\r\nexport class MasterPage extends React.Component {\r\n private singleSignOnChecker: HTMLIFrameElement;\r\n private emailSubscriptionConsent: EmailSubscriptionConsentConductor;\r\n public pageContent: HTMLDivElement;\r\n public pageHeader: MasterPageHeader;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n signInState: null,\r\n signedInUser: null,\r\n signInInProgress: false,\r\n signInError: null,\r\n activeLink: NavLinks.root,\r\n statusBar: null\r\n };\r\n\r\n this.emailSubscriptionConsent = new EmailSubscriptionConsentConductor();\r\n }\r\n\r\n render(): JSX.Element {\r\n if (this.state.unsupportedBrowser) {\r\n return this.renderUnsupportedBrowser();\r\n } else if (this.state.signInState) {\r\n return this.renderWaitListScreen();\r\n } else if (this.props.signInRequired && !this.state.signedInUser) {\r\n return this.renderSignInScreen();\r\n } else {\r\n return this.renderRegularScreen();\r\n }\r\n }\r\n\r\n public componentWillUpdate(nextProps: MasterPageProps, state: MasterPageState) {\r\n var jumbo = this.refs['jumbo'] as JumboHeadControl;\r\n if (jumbo) {\r\n jumbo.setState({ activeLink: state.activeLink });\r\n }\r\n\r\n var search = this.refs['searchBox'] as SearchControl;\r\n if (search) {\r\n search.setState({ searchString: state.searchString });\r\n }\r\n }\r\n\r\n public componentDidUpdate(prevProps: MasterPageProps, prevState: MasterPageState) {\r\n if (this.state.signedInUser) {\r\n this.emailSubscriptionConsent.showIfRequired();\r\n }\r\n if (this.pageContent) {\r\n this.props.controller.app.scrolled(this.pageContent);\r\n }\r\n }\r\n\r\n private toggleSearch() {\r\n var opened = _.isUndefined(this.state.expandSearch) ? true : !this.state.expandSearch;\r\n this.setState(_.extend(this.state, { expandSearch: opened }));\r\n }\r\n\r\n private userFlightedDocuemntationLink(): string {\r\n /*\r\n var features = clientAppSettings.flightedFeatures;\r\n if (_.indexOf(features, \"v3\") >= 0) {\r\n return '//aka.ms/bf-docs-nav';\r\n } else {\r\n return clientAppSettings.documentationUrl;\r\n }*/\r\n return '//docs.microsoft.com/en-us/bot-framework/';\r\n }\r\n\r\n private checkAzureSingleSignOn() {\r\n let host = null;\r\n try {\r\n host = this.singleSignOnChecker.contentWindow.location.hostname;\r\n } catch (error) {\r\n host = null;\r\n }\r\n if (host) {\r\n const curHost = window.location.hostname;\r\n if (host === curHost) {\r\n // user already logged in azure, fetched user and re-render\r\n this.props.refreshSignedInUser();\r\n }\r\n }\r\n }\r\n\r\n @lazy()\r\n private get userAgent(): { [browser: string]: boolean } {\r\n return parseUserAgent();\r\n }\r\n\r\n @lazy()\r\n private get isSafari(): boolean {\r\n const ua = this.userAgent as any;\r\n return ua.Safari && !(ua.Chrome || ua.Edge || ua.Firefox || ua.CriOS || ua.Opera);\r\n }\r\n\r\n private renderHiddenFrameToCheckAzureSingleSignOn(): JSX.Element {\r\n return null;\r\n }\r\n\r\n renderHeader(showLinks: boolean = true): JSX.Element {\r\n if (isInFrame() || this.props.headerKind === HeaderKind.None) {\r\n return null;\r\n }\r\n\r\n const showJumboHeader = this.props.headerKind === HeaderKind.Jumbo;\r\n const showUserMenu = SupportedFeatureUtility.isSupported(Rest.DevPortalFeatureFlags.SupportNonAzureUsers);\r\n\r\n return (\r\n this.pageHeader = x}\r\n controller={this.props.controller}\r\n showLinks={showLinks}\r\n showUserMenu={showUserMenu}\r\n showSearch={true}\r\n showEnvironment={true}\r\n showMainNavLink={true}\r\n isAdmin={this.props.isAdmin}\r\n isReviewer={this.props.isReviewer}\r\n signedInUser={() => this.state.signedInUser}\r\n renderHiddenFrameToCheckAzureSingleSignOn={() => this.renderHiddenFrameToCheckAzureSingleSignOn()}\r\n onSearch={this.props.onSearch}\r\n onSignOutClicked={this.props.onSignOutClicked}\r\n onAccountClicked={this.props.onUserAccountClicked}\r\n showJumboHeader={showJumboHeader}\r\n isRoutableUrl={this.props.isRoutableUrl}\r\n announcements={this.state.announcements}\r\n />\r\n );\r\n }\r\n\r\n renderRegularScreen(): JSX.Element {\r\n const scrollHandler = _.debounce((element) => this.props.controller.app.scrolled(element), 100, false);\r\n\r\n let outlineClassOverrides;\r\n switch (this.props.headerKind) {\r\n case HeaderKind.Small:\r\n outlineClassOverrides = \"small\";\r\n break;\r\n case HeaderKind.Jumbo:\r\n outlineClassOverrides = \"\";\r\n break;\r\n case HeaderKind.None:\r\n outlineClassOverrides = \"no-header\";\r\n break;\r\n }\r\n\r\n return (\r\n
    \r\n {this.renderHeader()}\r\n {this.state.statusBarScrolls ? null : this.state.statusBar}\r\n
    \r\n
    \r\n\r\n
    \r\n this.pageContent = x}\r\n id='page-content'\r\n className={combineClassNames(\"page-content\", outlineClassOverrides)}\r\n onScroll={(event) => scrollHandler(event.nativeEvent.srcElement || event.nativeEvent.target)}\r\n >\r\n {this.state.statusBarScrolls ? this.state.statusBar : null}\r\n
    \r\n \r\n \r\n {\r\n this.state.showProgressMask ? (
    ) : null\r\n }\r\n
    \r\n );\r\n }\r\n\r\n renderUnsupportedBrowser(): JSX.Element {\r\n return (\r\n
    \r\n {this.renderHeader()}\r\n
    \r\n
    {isInFrame() ? Resources.unsupportedBrowser_Azure : Resources.unsupportedBrowser}
    \r\n
    \r\n
    );\r\n }\r\n\r\n renderWaitListScreen(): JSX.Element {\r\n return null;\r\n }\r\n\r\n renderSignInScreen(): JSX.Element {\r\n let bottomPanel: JSX.Element;\r\n let errorMessagePanel: JSX.Element;\r\n if (isInFrame()) {\r\n return null;\r\n }\r\n if (!SupportedFeatureUtility.isSupported(Rest.DevPortalFeatureFlags.SupportNonAzureUsers)) {\r\n return (\r\n
    \r\n {this.renderHeader(false)}\r\n
    \r\n
    Not supported
    \r\n
    \r\n
    This feature is not supported in this environment.
    \r\n
    Please manage your bots from the Azure portal.
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n if (this.state.signInInProgress) {\r\n bottomPanel = (\r\n
    \r\n
    Signing in...
    \r\n
    \r\n
    \r\n );\r\n }\r\n else {\r\n bottomPanel = (\r\n
    \r\n \r\n {this.renderHiddenFrameToCheckAzureSingleSignOn()}\r\n
    \r\n );\r\n }\r\n\r\n if (this.state.signInError) {\r\n errorMessagePanel =
    {this.state.signInError}
    ;\r\n }\r\n\r\n return (\r\n
    \r\n {this.renderHeader(false)}\r\n
    \r\n
    Sign in
    \r\n
    \r\n
    Welcome to {resourceStrings.botFramework} developer portal.
    \r\n
    To continue sign in with your work or school, or personal Microsoft account.
    \r\n
    \r\n {bottomPanel}\r\n {errorMessagePanel}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/MasterPage.tsx","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {clientAppSettings} from \"../../Models/ClientAppSettings\";\r\n\r\nexport interface RejectionDetailsPanelProps {\r\n message: string;\r\n}\r\n\r\nexport interface RejectionDetailsPanelState {\r\n}\r\n\r\nexport class RejectionDetailsPanel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n let guidelineUrl = `${clientAppSettings.documentationUrl}directory/review-guidelines/`;\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    Your bot submission was rejected

    \r\n
    \r\n
    \r\n
    {this.props.message}  \r\n Questions?  botreview@microsoft.com
    \r\n
    \r\n
    \r\n
    \r\n Please make sure to have a look at our review guidelines and the criteria \r\n we use to evaluate bots for the directory.\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/RejectionDetailsPanel.tsx","/// \r\nimport * as React from \"react\";\r\nimport { BotTabs } from \"./BotPage\";\r\n\r\nexport interface TabProps {\r\n label: string;\r\n tab: BotTabs;\r\n}\r\n\r\nexport interface TabControlProps extends React.Props {\r\n tabs: TabProps[],\r\n selectedTab: BotTabs;\r\n className?: string;\r\n tabClassName?: string;\r\n selectedClassName?: string;\r\n botId: string;\r\n /** event handler for tab clicks */\r\n clickHandler: (index: BotTabs) => void;\r\n}\r\n\r\nexport class TabControl extends React.Component {\r\n constructor(props: TabControlProps) {\r\n props.className = props.className || 'tabl-control';\r\n props.tabClassName = props.tabClassName || 'tab-control-tab';\r\n props.selectedClassName = props.selectedClassName || 'selected-tab';\r\n super(props);\r\n }\r\n\r\n private onTabClicked(event: React.MouseEvent, tab: BotTabs) {\r\n event.preventDefault();\r\n this.setState({ selectedTab: tab });\r\n if (typeof(this.props.clickHandler) === 'function')\r\n this.props.clickHandler(tab);\r\n }\r\n\r\n public render(): JSX.Element {\r\n let tabs = this.props.tabs.map((tab) => {\r\n let classes = this.props.tabClassName;\r\n if (tab.tab === this.props.selectedTab)\r\n classes += \" \" + this.props.selectedClassName;\r\n const href = `/bots/${BotTabs[tab.tab].toLowerCase()}?id=${this.props.botId}`; // href is for show, navigation is handled by onTabClicked function\r\n return (\r\n ) => this.onTabClicked(event, tab.tab)}>{tab.label}\r\n );\r\n });\r\n\r\n return
    {tabs}{this.props.children}
    ;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/TabControl.tsx","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {ProgressRingControl} from \"../../../../../Intercom.ReactUI/Views/index\";\r\n\r\nexport interface BotProgressProps extends React.Props {\r\n progress?: string;\r\n}\r\n\r\nexport class BotProgress extends React.Component {\r\n private mask: HTMLDivElement;\r\n\r\n public componentDidMount() {\r\n if (this.mask) {\r\n this.mask.focus();\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
    this.mask = x} onKeyDown={e => {e.preventDefault(); e.stopPropagation();}}>\r\n
    \r\n \r\n
    \r\n

    \r\n {this.props.progress || 'Provisioning your bot... This might take a few minutes.'}\r\n

    \r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/status/BotProgress.tsx","/**\r\n * reflect the field name of the object\r\n * import reflectName from \"./reflectName\"\r\n *\r\n * let x: T = {}\r\n * let name = reflectName(()=> (x.FieldName = null, x));\r\n * assert.(name === \"FieldName\");\r\n */\r\n\r\nexport default function reflectName(setName: () => T) : string {\r\n let x: any = setName();\r\n const result = _.first(_.keys(x));\r\n delete x[result];\r\n return result;\r\n}\r\n\r\n/**\r\n * reflects the field name of the object\r\n * \r\n * import { reflectNameOf } form \"./NameReflector\";\r\n * let name = reflectNameOf(x => x.Bar = null);\r\n * assert.(name == \"Bar\");\r\n */\r\nexport function reflectNameOf(callback: (t:T) => any): string {\r\n let x = {} as T;\r\n callback(x);\r\n return _.first(_.keys(x));\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Utils/NameReflector.ts","export function getExt(path: string) {\r\n var lastDotIndex = path.lastIndexOf('.');\r\n if (lastDotIndex >= 0) {\r\n return path.substr(lastDotIndex);\r\n }\r\n return \"\";\r\n}\r\n\r\nfunction collapseDotDot(dirs: string[]): string[] {\r\n let right = dirs.length - 1;\r\n let result: string[] = [];\r\n while (right >= 0) {\r\n const cur = dirs[right];\r\n if (cur === '..') {\r\n if (right > 0) {\r\n if (dirs[right - 1] !== '..') {\r\n right--;\r\n }\r\n }\r\n } else {\r\n result.push(cur);\r\n }\r\n right--;\r\n }\r\n return result;\r\n}\r\n\r\n/**\r\n * resolve relative paths against base bath\r\n * @param paths paths[0] as base path, the rest are relative paths\r\n */\r\nexport function resolve(...paths: string[]): string {\r\n // first replace '/./' with '/'\r\n let parts = _.map(paths, path => path.replace('/./', '/'));\r\n // flatten out all parts into segements\r\n let dirs = _.flatten(_.map(parts, path => path.split('/')), true/*shallow*/);\r\n // reduce '..' with its non '..' left neighbor\r\n let right = dirs.length - 1;\r\n let result: string[] = collapseDotDot(dirs);\r\n\r\n if (result.length < dirs.length) {\r\n // repeat until the only '..' are at the left end of dirs\r\n for (; ;) {\r\n let prev = result;\r\n result = collapseDotDot(prev);\r\n if (result.length === prev.length) {\r\n break;\r\n }\r\n }\r\n }\r\n return result.join('/');\r\n}\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Utils/Path.ts","import * as $ from 'jquery';\r\n\r\nconst $PubSub = $({});\r\nlet $Initialized = false;\r\n\r\nexport class RuntimeConnectedShadeUtils {\r\n\r\n public static ModalVisibleEventName = \"modal.visible\";\r\n\r\n public static AuthoringToolDirtyEventName = \"authoring-tool.dirty\";\r\n\r\n public static AuthoringToolMaskEventName = \"authoring-tool.mask\";\r\n\r\n public static AuthoringToolErrorEventName = \"authoring-tool.error\";\r\n\r\n static initialize() {\r\n if ($Initialized) {\r\n return;\r\n }\r\n\r\n window.addEventListener('message', this.OnMessage);\r\n $Initialized = true;\r\n }\r\n\r\n public static trigger(event: string, data: any): boolean {\r\n let frame = $(\"#authoringSurfaceHost\")[0];\r\n if (!frame) {\r\n return false;\r\n }\r\n\r\n frame.contentWindow.postMessage({\r\n action: event,\r\n ...data\r\n }, '*');\r\n \r\n return true;\r\n }\r\n\r\n public static on(event: string, callback: (eventObject: JQueryEventObject, ...data: any[]) => any) {\r\n $PubSub.on(event, callback);\r\n }\r\n\r\n public static off(event: string, callback: (eventObject: JQueryEventObject, ...data: any[]) => any) {\r\n $PubSub.on(event, callback);\r\n }\r\n\r\n private static OnMessage(e: MessageEvent) {\r\n if (!e.data['action']) {\r\n return;\r\n }\r\n\r\n $PubSub.trigger(e.data.action, e.data);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Utils/RuntimeConnectedShadeUtils.ts","\r\nlet elementMap: { [tagName: string]: HTMLElement } = {};\r\n/**\r\n * check if element supports a particular attribute\r\n * @param tagName\r\n * @param attrName\r\n */\r\nexport default function (tagName: string, attrName: string) {\r\n let e = elementMap[tagName] || document.createElement(tagName);\r\n elementMap[tagName] = e;\r\n return (attrName in e);\r\n}\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Utils/browserCaps.ts","/**\r\n wrapper clicky so that we don't break when user's AdBlock blocks \r\n the clicky script\r\n*/\r\nexport function log(url: string, message?: string) {\r\n try {\r\n clicky.log(url, message);\r\n } catch (ex) {\r\n // ignore all failures\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Utils/clacky.ts","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\n/**\r\n * calculate the height of the element so it extends to the bottom of the window\r\n * @param $element\r\n */\r\nfunction pinToBottom($element: JQuery, $footer?: JQuery, $box?: JQuery) {\r\n let offset = $element.offset();\r\n if (offset) {\r\n let top = offset.top;\r\n let windowTop = window.scrollY;\r\n let windowHeight = window.innerHeight;\r\n let margin = parseInt($element.css('margin-bottom'));\r\n if (!margin || _.isNaN(margin)) {\r\n margin = 0;\r\n }\r\n let footerHeight = $footer && $footer.length ? $footer.height() : 0;\r\n let paddingHeight = $box && $box.length ? parseInt($box.css('padding-bottom')) : 0;\r\n if (_.isNaN(paddingHeight)) {\r\n paddingHeight = 0;\r\n }\r\n if (footerHeight) {\r\n footerHeight = Math.max(footerHeight, paddingHeight);\r\n // ignore footer if it is not in view\r\n const footertop = $footer.offset().top;\r\n if (footertop > windowHeight + windowTop) {\r\n footerHeight = 0;\r\n }\r\n }\r\n let minHeight = parseInt($element.css('min-height'));\r\n if (_.isNaN(minHeight) || !minHeight) {\r\n minHeight = 0;\r\n }\r\n let height = Math.max(windowTop + windowHeight - top - margin - footerHeight, minHeight);\r\n\r\n $element.height(height);\r\n }\r\n}\r\n\r\nexport function bind($element: JQuery, $footer: JQuery, $box: JQuery, callback?: Function): EventListener {\r\n const handler = () => {\r\n pinToBottom($element, $footer, $box);\r\n if (callback) {\r\n callback();\r\n }\r\n };\r\n\r\n let listener = _.debounce(() => handler(), 100, false)\r\n window.addEventListener('resize', listener);\r\n window.addEventListener('scroll', listener);\r\n _.defer(handler);\r\n return listener;\r\n}\r\n\r\nexport function unbind(listener: EventListener) {\r\n window.removeEventListener('resize', listener);\r\n window.removeEventListener('scroll', listener);\r\n}\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/PinToBottom.ts","///\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {resourceStrings} from \"./Strings\";\r\n\r\nexport interface SearchControlProps extends React.Props {\r\n onSearch: (search: string) => void;\r\n toggleSearchOpen: () => void;\r\n value: string;\r\n expandSearch?: boolean;\r\n promptText?: string;\r\n}\r\nexport interface SearchControlState {\r\n searchString?: string;\r\n}\r\n\r\nexport class SearchControl extends React.Component {\r\n private searching = false;\r\n\r\n constructor(props : SearchControlProps) {\r\n super(props);\r\n this.state = { searchString: ''};\r\n }\r\n\r\n public render(): JSX.Element {\r\n var searchBoxClass = this.props.expandSearch ? \"searchBox expand\" : \"searchBox\";\r\n return (\r\n
    \r\n
    \r\n
    \r\n {/*need a form to force mobile soft keyboard to show either 'Search' or 'Go' as virutal button*/}\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n private toggleSearchForm(e: React.MouseEvent) {\r\n this.props.toggleSearchOpen();\r\n }\r\n\r\n private onSearchClicked(e: React.UIEvent | React.FormEvent) : boolean {\r\n var $searchInput = $(ReactDOM.findDOMNode(this.refs[\"searchInput\"]));\r\n var $div = $(ReactDOM.findDOMNode(this.refs[\"searchDiv\"]));\r\n e.stopPropagation();\r\n e.preventDefault();\r\n var searchText = $searchInput.val().trim();\r\n if (searchText) {\r\n this.props.onSearch(searchText);\r\n } else {\r\n var willExpand = !$div.hasClass('expand')\r\n $div.toggleClass('expand');\r\n if (willExpand) {\r\n $searchInput.focus();\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private onChange(e: React.FormEvent) {\r\n var target = e.target as any;\r\n var text = target['value'];\r\n this.setState({searchString: text});\r\n }\r\n\r\n private onKey(e: React.KeyboardEvent) {\r\n if (e.key === 'Enter') {\r\n this.props.onSearch(this.state.searchString.trim());\r\n e.preventDefault();\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/SearchControl.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {resourceStrings} from \"./Strings\";\r\n\r\nexport interface TooltipControlProps extends React.Props {\r\n className?: string;\r\n tipId?: string;\r\n anchorBorder: Borders;\r\n}\r\n\r\ninterface LayoutBox {\r\n top: number;\r\n left: number;\r\n width: number;\r\n height: number;\r\n}\r\n\r\nconst latestMarker = \"shown\";\r\n\r\nclass FlexLayoutBox implements LayoutBox {\r\n constructor(public top: number, public left: number, public width: number, public height: number) {\r\n }\r\n\r\n public bottom() {\r\n return this.top + this.height;\r\n }\r\n\r\n public right() {\r\n return this.left + this.width;\r\n }\r\n\r\n private inside(top: number, left: number): boolean {\r\n return this.top <= top && top <= this.bottom() && this.left <= left && left <= this.right();\r\n }\r\n\r\n public fitsIn(box: FlexLayoutBox): boolean {\r\n return box.inside(this.top, this.left) && box.inside(this.bottom(), this.right());\r\n }\r\n\r\n public moveToFitsIn(box: FlexLayoutBox): FlexLayoutBox {\r\n if (this.fitsIn(box)) {\r\n return this;\r\n }\r\n let dx = this.left < box.left ? box.left - this.left :\r\n (this.right() > box.right() ? box.right() - this.right() : 0);\r\n let dy = this.top < box.top ? box.top - this.top :\r\n (this.bottom() > box.bottom() ? box.bottom() - this.bottom() : 0);\r\n return new FlexLayoutBox(this.top + dy, this.left + dx, this.width, this.height);\r\n }\r\n}\r\n\r\nexport enum Borders {\r\n Top,\r\n Left,\r\n Right,\r\n Bottom\r\n}\r\n\r\nexport class TooltipControl extends React.Component {\r\n constructor(props: TooltipControlProps) {\r\n super(props);\r\n }\r\n\r\n private static offsetBox($el: JQuery): FlexLayoutBox {\r\n var offset = $el.offset();\r\n return new FlexLayoutBox(offset.top, offset.left, $el[0].offsetWidth, $el[0].offsetHeight);\r\n }\r\n\r\n public anchorTo($anchor: JQuery) {\r\n let $self = $(this.refs['container']);\r\n const $box = $self.offsetParent();\r\n const box = TooltipControl.offsetBox($box);\r\n const anchorBox = TooltipControl.offsetBox($anchor);\r\n const selfBox = TooltipControl.offsetBox($self);\r\n const anchorBorder = this.props.anchorBorder;\r\n\r\n let left = 0;\r\n let top = 0;\r\n\r\n switch (anchorBorder) {\r\n case Borders.Left:\r\n left = anchorBox.right() + 20;\r\n top = anchorBox.top + anchorBox.height / 2 - selfBox.height / 2;\r\n break;\r\n case Borders.Right:\r\n left = anchorBox.left - 20 - selfBox.width;\r\n top = anchorBox.top + anchorBox.height / 2 - selfBox.height / 2;\r\n break;\r\n case Borders.Bottom:\r\n top = anchorBox.top - selfBox.height - 20;\r\n left = anchorBox.left + anchorBox.width / 2 - selfBox.width;\r\n break;\r\n case Borders.Top:\r\n top = anchorBox.bottom() + 20;\r\n left = anchorBox.left + anchorBox.width / 2 - selfBox.width;\r\n break;\r\n }\r\n let targetBox = new FlexLayoutBox(top, left, selfBox.width, selfBox.height)\r\n .moveToFitsIn(box);\r\n\r\n // make sure targetBox is inside box\r\n\r\n $self.css({ top: `${targetBox.top - box.top}px`, left: `${targetBox.left - box.left}px` });\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
    {\r\n evt.stopPropagation();\r\n }}\r\n ref=\"container\"\r\n data-tip-id={this.props.tipId}>\r\n {this.props.className != \"modeless\" ?\r\n
    this.close() }>\r\n
    \r\n : null}\r\n {this.props.children}\r\n
    \r\n ); \r\n }\r\n\r\n private close() {\r\n $(`.tool-tip[data-tip-id=\"${this.props.tipId}\"]`).toggleClass('hidden', true);\r\n if (_.has(resourceStrings.tooltips, this.props.tipId)) {\r\n var key = `tooltip_shown_${this.props.tipId}`;\r\n localStorage.setItem(key, latestMarker);\r\n }\r\n }\r\n\r\n public static renderToolTipAsNeeded(props: TooltipControlProps): JSX.Element {\r\n var key = `tooltip_shown_${props.tipId}`;\r\n var prev = localStorage.getItem(key);\r\n\r\n if (!prev || prev !== latestMarker) {\r\n var tip = (resourceStrings.tooltips as any)[props.tipId];\r\n var tipContent = tip ? [\r\n

    {tip.title}

    ,\r\n

    {tip.text}

    ] : props.children;\r\n\r\n var result = (\r\n \r\n {tipContent}\r\n \r\n );\r\n return result;\r\n }\r\n return null;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/TooltipControl.tsx","// 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-runtime/~/core-js/library/modules/$.ctx.js\n// module id = 283\n// module chunks = 0","// 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-runtime/~/core-js/library/modules/$.defined.js\n// module id = 284\n// module chunks = 0","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-runtime/~/core-js/library/modules/$.fails.js\n// module id = 285\n// module chunks = 0","// 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-runtime/~/core-js/library/modules/$.iobject.js\n// module id = 286\n// module chunks = 0","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/$.is-object.js\n// module id = 287\n// module chunks = 0","// 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-runtime/~/core-js/library/modules/$.object-sap.js\n// module id = 288\n// module chunks = 0","// 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-runtime/~/core-js/library/modules/$.to-object.js\n// module id = 289\n// module chunks = 0","module.exports.id = 'ace/mode/javascript_worker';\nmodule.exports.src = \"\\\"no use strict\\\";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\\\"\\\";testPath;){var alias=paths[testPath];if(\\\"string\\\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\\\/*$/,\\\"/\\\")+(tail||alias.main||alias.name);if(alias===!1)return\\\"\\\";var i=testPath.lastIndexOf(\\\"/\\\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\\\"log\\\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\\\"error\\\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\\\"!\\\")){var chunks=moduleName.split(\\\"!\\\");return window.normalizeModule(parentId,chunks[0])+\\\"!\\\"+window.normalizeModule(parentId,chunks[1])}if(\\\".\\\"==moduleName.charAt(0)){var base=parentId.split(\\\"/\\\").slice(0,-1).join(\\\"/\\\");for(moduleName=(base?base+\\\"/\\\":\\\"\\\")+moduleName;-1!==moduleName.indexOf(\\\".\\\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\\\.\\\\//,\\\"\\\").replace(/\\\\/\\\\.\\\\//,\\\"/\\\").replace(/[^\\\\/]+\\\\/\\\\.\\\\.\\\\//,\\\"\\\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\\\"worker.js acequire() accepts only (parentId, id) as arguments\\\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\\\"unable to load \\\"+id);var path=resolveModuleId(id,window.acequire.tlns);return\\\".js\\\"!=path.slice(-3)&&(path+=\\\".js\\\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\\\"string\\\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\\\"function\\\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\\\"require\\\",\\\"exports\\\",\\\"module\\\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\\\"require\\\":return req;case\\\"exports\\\":return module.exports;case\\\"module\\\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\\\"ace/lib/event_emitter\\\").EventEmitter,oop=window.acequire(\\\"ace/lib/oop\\\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\\\"call\\\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\\\"event\\\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\\\"Unknown command:\\\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\\\"ace/lib/es5-shim\\\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define(\\\"ace/lib/oop\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\\\"ace/range\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\\\"Range: [\\\"+this.start.row+\\\"/\\\"+this.start.column+\\\"] -> [\\\"+this.end.row+\\\"/\\\"+this.end.column+\\\"]\\\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\\\"object\\\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\\\"object\\\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\\\"ace/apply_delta\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\\\"\\\";switch(delta.action){case\\\"insert\\\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\\\"remove\\\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\\\"ace/lib/event_emitter\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\\\"object\\\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\\\"unshift\\\":\\\"push\\\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\\\"ace/anchor\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/lib/event_emitter\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\\\"change\\\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\\\"change\\\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\\\"change\\\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\\\"ace/document\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/apply_delta\\\",\\\"ace/lib/event_emitter\\\",\\\"ace/range\\\",\\\"ace/anchor\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),applyDelta=acequire(\\\"./apply_delta\\\").applyDelta,EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Range=acequire(\\\"./range\\\").Range,Anchor=acequire(\\\"./anchor\\\").Anchor,Document=function(textOrLines){this.$lines=[\\\"\\\"],0===textOrLines.length?this.$lines=[\\\"\\\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\\\"aaa\\\".split(/a/).length?function(text){return text.replace(/\\\\r\\\\n|\\\\r/g,\\\"\\\\n\\\").split(\\\"\\\\n\\\")}:function(text){return text.split(/\\\\r\\\\n|\\\\r|\\\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\\\r\\\\n|\\\\r|\\\\n)/m);this.$autoNewLine=match?match[1]:\\\"\\\\n\\\",this._signal(\\\"changeNewLineMode\\\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\\\"windows\\\":return\\\"\\\\r\\\\n\\\";case\\\"unix\\\":return\\\"\\\\n\\\";default:return this.$autoNewLine||\\\"\\\\n\\\"}},this.$autoNewLine=\\\"\\\",this.$newLineMode=\\\"auto\\\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\\\"changeNewLineMode\\\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\\\"\\\\r\\\\n\\\"==text||\\\"\\\\r\\\"==text||\\\"\\\\n\\\"==text},this.getLine=function(row){return this.$lines[row]||\\\"\\\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\\\"\\\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\\\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\\\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\\\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\\\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\\\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\\\"),this.insertMergedLines(position,[\\\"\\\",\\\"\\\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\\\"\\\"]),column=0):(lines=[\\\"\\\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\\\"remove\\\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\\\"remove\\\",lines:[\\\"\\\",\\\"\\\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\\\"insert\\\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\\\"change\\\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\\\"\\\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\\\"insert\\\"==delta.action?\\\"remove\\\":\\\"insert\\\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\\\"ace/lib/lang\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\\\"\\\").reverse().join(\\\"\\\")},exports.stringRepeat=function(string,count){for(var result=\\\"\\\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\\\s\\\\s*/,trimEndRegexp=/\\\\s\\\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\\\"\\\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\\\"\\\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\\\"object\\\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\\\"object\\\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}var cons=obj.constructor;if(cons===RegExp)return obj;copy=cons();for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\\\]\\\\/\\\\\\\\])/g,\\\"\\\\\\\\$1\\\")},exports.escapeHTML=function(str){return str.replace(/&/g,\\\"&\\\").replace(/\\\"/g,\\\""\\\").replace(/'/g,\\\"'\\\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\\\"insert\\\",start:data[i],lines:data[i+1]};else var d={action:\\\"remove\\\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\\\"ace/mode/javascript/jshint\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports,module){module.exports=function outer(modules,cache,entry){function newRequire(name,jumped){if(!cache[name]){if(!modules[name]){var currentRequire=\\\"function\\\"==typeof acequire&&acequire;if(!jumped&¤tRequire)return currentRequire(name,!0);if(previousRequire)return previousRequire(name,!0);var err=Error(\\\"Cannot find module '\\\"+name+\\\"'\\\");throw err.code=\\\"MODULE_NOT_FOUND\\\",err}var m=cache[name]={exports:{}};modules[name][0].call(m.exports,function(x){var id=modules[name][1][x];return newRequire(id?id:x)},m,m.exports,outer,modules,cache,entry)}return cache[name].exports}for(var previousRequire=\\\"function\\\"==typeof acequire&&acequire,i=0;entry.length>i;i++)newRequire(entry[i]);return newRequire(entry[0])}({\\\"/node_modules/browserify/node_modules/events/events.js\\\":[function(_dereq_,module){function EventEmitter(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function isFunction(arg){return\\\"function\\\"==typeof arg}function isNumber(arg){return\\\"number\\\"==typeof arg}function isObject(arg){return\\\"object\\\"==typeof arg&&null!==arg}function isUndefined(arg){return void 0===arg}module.exports=EventEmitter,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||0>n||isNaN(n))throw TypeError(\\\"n must be a positive number\\\");return this._maxListeners=n,this},EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(this._events||(this._events={}),\\\"error\\\"===type&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length)){if(er=arguments[1],er instanceof Error)throw er;throw TypeError('Uncaught, unspecified \\\"error\\\" event.')}if(handler=this._events[type],isUndefined(handler))return!1;if(isFunction(handler))switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:for(len=arguments.length,args=Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];handler.apply(this,args)}else if(isObject(handler)){for(len=arguments.length,args=Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];for(listeners=handler.slice(),len=listeners.length,i=0;len>i;i++)listeners[i].apply(this,args)}return!0},EventEmitter.prototype.addListener=function(type,listener){var m;if(!isFunction(listener))throw TypeError(\\\"listener must be a function\\\");if(this._events||(this._events={}),this._events.newListener&&this.emit(\\\"newListener\\\",type,isFunction(listener.listener)?listener.listener:listener),this._events[type]?isObject(this._events[type])?this._events[type].push(listener):this._events[type]=[this._events[type],listener]:this._events[type]=listener,isObject(this._events[type])&&!this._events[type].warned){var m;m=isUndefined(this._maxListeners)?EventEmitter.defaultMaxListeners:this._maxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error(\\\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\\\",this._events[type].length),\\\"function\\\"==typeof console.trace&&console.trace())}return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){function g(){this.removeListener(type,g),fired||(fired=!0,listener.apply(this,arguments))}if(!isFunction(listener))throw TypeError(\\\"listener must be a function\\\");var fired=!1;return g.listener=listener,this.on(type,g),this},EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError(\\\"listener must be a function\\\");if(!this._events||!this._events[type])return this;if(list=this._events[type],length=list.length,position=-1,list===listener||isFunction(list.listener)&&list.listener===listener)delete this._events[type],this._events.removeListener&&this.emit(\\\"removeListener\\\",type,listener);else if(isObject(list)){for(i=length;i-->0;)if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}if(0>position)return this;1===list.length?(list.length=0,delete this._events[type]):list.splice(position,1),this._events.removeListener&&this.emit(\\\"removeListener\\\",type,listener)}return this},EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[type]&&delete this._events[type],this;if(0===arguments.length){for(key in this._events)\\\"removeListener\\\"!==key&&this.removeAllListeners(key);return this.removeAllListeners(\\\"removeListener\\\"),this._events={},this\\n}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){var ret;return ret=this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.listenerCount=function(emitter,type){var ret;return ret=emitter._events&&emitter._events[type]?isFunction(emitter._events[type])?1:emitter._events[type].length:0}},{}],\\\"/node_modules/jshint/data/ascii-identifier-data.js\\\":[function(_dereq_,module){for(var identifierStartTable=[],i=0;128>i;i++)identifierStartTable[i]=36===i||i>=65&&90>=i||95===i||i>=97&&122>=i;for(var identifierPartTable=[],i=0;128>i;i++)identifierPartTable[i]=identifierStartTable[i]||i>=48&&57>=i;module.exports={asciiIdentifierStartTable:identifierStartTable,asciiIdentifierPartTable:identifierPartTable}},{}],\\\"/node_modules/jshint/lodash.js\\\":[function(_dereq_,module,exports){(function(global){(function(){function baseFindIndex(array,predicate,fromRight){for(var length=array.length,index=fromRight?length:-1;fromRight?index--:length>++index;)if(predicate(array[index],index,array))return index;return-1}function baseIndexOf(array,value,fromIndex){if(value!==value)return indexOfNaN(array,fromIndex);for(var index=fromIndex-1,length=array.length;length>++index;)if(array[index]===value)return index;return-1}function baseIsFunction(value){return\\\"function\\\"==typeof value||!1}function baseToString(value){return\\\"string\\\"==typeof value?value:null==value?\\\"\\\":value+\\\"\\\"}function indexOfNaN(array,fromIndex,fromRight){for(var length=array.length,index=fromIndex+(fromRight?0:-1);fromRight?index--:length>++index;){var other=array[index];if(other!==other)return index}return-1}function isObjectLike(value){return!!value&&\\\"object\\\"==typeof value}function lodash(){}function arrayCopy(source,array){var index=-1,length=source.length;for(array||(array=Array(length));length>++index;)array[index]=source[index];return array}function arrayEach(array,iteratee){for(var index=-1,length=array.length;length>++index&&iteratee(array[index],index,array)!==!1;);return array}function arrayFilter(array,predicate){for(var index=-1,length=array.length,resIndex=-1,result=[];length>++index;){var value=array[index];predicate(value,index,array)&&(result[++resIndex]=value)}return result}function arrayMap(array,iteratee){for(var index=-1,length=array.length,result=Array(length);length>++index;)result[index]=iteratee(array[index],index,array);return result}function arrayMax(array){for(var index=-1,length=array.length,result=NEGATIVE_INFINITY;length>++index;){var value=array[index];value>result&&(result=value)}return result}function arraySome(array,predicate){for(var index=-1,length=array.length;length>++index;)if(predicate(array[index],index,array))return!0;return!1}function assignWith(object,source,customizer){var props=keys(source);push.apply(props,getSymbols(source));for(var index=-1,length=props.length;length>++index;){var key=props[index],value=object[key],result=customizer(value,source[key],key,object,source);(result===result?result===value:value!==value)&&(value!==undefined||key in object)||(object[key]=result)}return object}function baseCopy(source,props,object){object||(object={});for(var index=-1,length=props.length;length>++index;){var key=props[index];object[key]=source[key]}return object}function baseCallback(func,thisArg,argCount){var type=typeof func;return\\\"function\\\"==type?thisArg===undefined?func:bindCallback(func,thisArg,argCount):null==func?identity:\\\"object\\\"==type?baseMatches(func):thisArg===undefined?property(func):baseMatchesProperty(func,thisArg)}function baseClone(value,isDeep,customizer,key,object,stackA,stackB){var result;if(customizer&&(result=object?customizer(value,key,object):customizer(value)),result!==undefined)return result;if(!isObject(value))return value;var isArr=isArray(value);if(isArr){if(result=initCloneArray(value),!isDeep)return arrayCopy(value,result)}else{var tag=objToString.call(value),isFunc=tag==funcTag;if(tag!=objectTag&&tag!=argsTag&&(!isFunc||object))return cloneableTags[tag]?initCloneByTag(value,tag,isDeep):object?value:{};if(result=initCloneObject(isFunc?{}:value),!isDeep)return baseAssign(result,value)}stackA||(stackA=[]),stackB||(stackB=[]);for(var length=stackA.length;length--;)if(stackA[length]==value)return stackB[length];return stackA.push(value),stackB.push(result),(isArr?arrayEach:baseForOwn)(value,function(subValue,key){result[key]=baseClone(subValue,isDeep,customizer,key,value,stackA,stackB)}),result}function baseFilter(collection,predicate){var result=[];return baseEach(collection,function(value,index,collection){predicate(value,index,collection)&&result.push(value)}),result}function baseForIn(object,iteratee){return baseFor(object,iteratee,keysIn)}function baseForOwn(object,iteratee){return baseFor(object,iteratee,keys)}function baseGet(object,path,pathKey){if(null!=object){pathKey!==undefined&&pathKey in toObject(object)&&(path=[pathKey]);for(var index=-1,length=path.length;null!=object&&length>++index;)var result=object=object[path[index]];return result}}function baseIsEqual(value,other,customizer,isLoose,stackA,stackB){if(value===other)return 0!==value||1/value==1/other;var valType=typeof value,othType=typeof other;return\\\"function\\\"!=valType&&\\\"object\\\"!=valType&&\\\"function\\\"!=othType&&\\\"object\\\"!=othType||null==value||null==other?value!==value&&other!==other:baseIsEqualDeep(value,other,baseIsEqual,customizer,isLoose,stackA,stackB)}function baseIsEqualDeep(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objIsArr=isArray(object),othIsArr=isArray(other),objTag=arrayTag,othTag=arrayTag;objIsArr||(objTag=objToString.call(object),objTag==argsTag?objTag=objectTag:objTag!=objectTag&&(objIsArr=isTypedArray(object))),othIsArr||(othTag=objToString.call(other),othTag==argsTag?othTag=objectTag:othTag!=objectTag&&(othIsArr=isTypedArray(other)));var objIsObj=objTag==objectTag,othIsObj=othTag==objectTag,isSameTag=objTag==othTag;if(isSameTag&&!objIsArr&&!objIsObj)return equalByTag(object,other,objTag);if(!isLoose){var valWrapped=objIsObj&&hasOwnProperty.call(object,\\\"__wrapped__\\\"),othWrapped=othIsObj&&hasOwnProperty.call(other,\\\"__wrapped__\\\");if(valWrapped||othWrapped)return equalFunc(valWrapped?object.value():object,othWrapped?other.value():other,customizer,isLoose,stackA,stackB)}if(!isSameTag)return!1;stackA||(stackA=[]),stackB||(stackB=[]);for(var length=stackA.length;length--;)if(stackA[length]==object)return stackB[length]==other;stackA.push(object),stackB.push(other);var result=(objIsArr?equalArrays:equalObjects)(object,other,equalFunc,customizer,isLoose,stackA,stackB);return stackA.pop(),stackB.pop(),result}function baseIsMatch(object,props,values,strictCompareFlags,customizer){for(var index=-1,length=props.length,noCustomizer=!customizer;length>++index;)if(noCustomizer&&strictCompareFlags[index]?values[index]!==object[props[index]]:!(props[index]in object))return!1;for(index=-1;length>++index;){var key=props[index],objValue=object[key],srcValue=values[index];if(noCustomizer&&strictCompareFlags[index])var result=objValue!==undefined||key in object;else result=customizer?customizer(objValue,srcValue,key):undefined,result===undefined&&(result=baseIsEqual(srcValue,objValue,customizer,!0));if(!result)return!1}return!0}function baseMatches(source){var props=keys(source),length=props.length;if(!length)return constant(!0);if(1==length){var key=props[0],value=source[key];if(isStrictComparable(value))return function(object){return null==object?!1:object[key]===value&&(value!==undefined||key in toObject(object))}}for(var values=Array(length),strictCompareFlags=Array(length);length--;)value=source[props[length]],values[length]=value,strictCompareFlags[length]=isStrictComparable(value);return function(object){return null!=object&&baseIsMatch(toObject(object),props,values,strictCompareFlags)}}function baseMatchesProperty(path,value){var isArr=isArray(path),isCommon=isKey(path)&&isStrictComparable(value),pathKey=path+\\\"\\\";return path=toPath(path),function(object){if(null==object)return!1;var key=pathKey;if(object=toObject(object),!(!isArr&&isCommon||key in object)){if(object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),null==object)return!1;key=last(path),object=toObject(object)}return object[key]===value?value!==undefined||key in object:baseIsEqual(value,object[key],null,!0)}}function baseMerge(object,source,customizer,stackA,stackB){if(!isObject(object))return object;var isSrcArr=isLength(source.length)&&(isArray(source)||isTypedArray(source));if(!isSrcArr){var props=keys(source);push.apply(props,getSymbols(source))}return arrayEach(props||source,function(srcValue,key){if(props&&(key=srcValue,srcValue=source[key]),isObjectLike(srcValue))stackA||(stackA=[]),stackB||(stackB=[]),baseMergeDeep(object,source,key,baseMerge,customizer,stackA,stackB);else{var value=object[key],result=customizer?customizer(value,srcValue,key,object,source):undefined,isCommon=result===undefined;isCommon&&(result=srcValue),!isSrcArr&&result===undefined||!isCommon&&(result===result?result===value:value!==value)||(object[key]=result)}}),object}function baseMergeDeep(object,source,key,mergeFunc,customizer,stackA,stackB){for(var length=stackA.length,srcValue=source[key];length--;)if(stackA[length]==srcValue)return object[key]=stackB[length],undefined;var value=object[key],result=customizer?customizer(value,srcValue,key,object,source):undefined,isCommon=result===undefined;isCommon&&(result=srcValue,isLength(srcValue.length)&&(isArray(srcValue)||isTypedArray(srcValue))?result=isArray(value)?value:getLength(value)?arrayCopy(value):[]:isPlainObject(srcValue)||isArguments(srcValue)?result=isArguments(value)?toPlainObject(value):isPlainObject(value)?value:{}:isCommon=!1),stackA.push(srcValue),stackB.push(result),isCommon?object[key]=mergeFunc(result,srcValue,customizer,stackA,stackB):(result===result?result!==value:value===value)&&(object[key]=result)}function baseProperty(key){return function(object){return null==object?undefined:object[key]}}function basePropertyDeep(path){var pathKey=path+\\\"\\\";return path=toPath(path),function(object){return baseGet(object,path,pathKey)}}function baseSlice(array,start,end){var index=-1,length=array.length;start=null==start?0:+start||0,0>start&&(start=-start>length?0:length+start),end=end===undefined||end>length?length:+end||0,0>end&&(end+=length),length=start>end?0:end-start>>>0,start>>>=0;for(var result=Array(length);length>++index;)result[index]=array[index+start];return result}function baseSome(collection,predicate){var result;return baseEach(collection,function(value,index,collection){return result=predicate(value,index,collection),!result}),!!result}function baseValues(object,props){for(var index=-1,length=props.length,result=Array(length);length>++index;)result[index]=object[props[index]];return result}function binaryIndex(array,value,retHighest){var low=0,high=array?array.length:low;if(\\\"number\\\"==typeof value&&value===value&&HALF_MAX_ARRAY_LENGTH>=high){for(;high>low;){var mid=low+high>>>1,computed=array[mid];(retHighest?value>=computed:value>computed)?low=mid+1:high=mid}return high}return binaryIndexBy(array,value,identity,retHighest)}function binaryIndexBy(array,value,iteratee,retHighest){value=iteratee(value);for(var low=0,high=array?array.length:0,valIsNaN=value!==value,valIsUndef=value===undefined;high>low;){var mid=floor((low+high)/2),computed=iteratee(array[mid]),isReflexive=computed===computed;if(valIsNaN)var setLow=isReflexive||retHighest;else setLow=valIsUndef?isReflexive&&(retHighest||computed!==undefined):retHighest?value>=computed:value>computed;setLow?low=mid+1:high=mid}return nativeMin(high,MAX_ARRAY_INDEX)}function bindCallback(func,thisArg,argCount){if(\\\"function\\\"!=typeof func)return identity;if(thisArg===undefined)return func;switch(argCount){case 1:return function(value){return func.call(thisArg,value)};case 3:return function(value,index,collection){return func.call(thisArg,value,index,collection)};case 4:return function(accumulator,value,index,collection){return func.call(thisArg,accumulator,value,index,collection)};case 5:return function(value,other,key,object,source){return func.call(thisArg,value,other,key,object,source)}}return function(){return func.apply(thisArg,arguments)}}function bufferClone(buffer){return bufferSlice.call(buffer,0)}function createAssigner(assigner){return restParam(function(object,sources){var index=-1,length=null==object?0:sources.length,customizer=length>2&&sources[length-2],guard=length>2&&sources[2],thisArg=length>1&&sources[length-1];for(\\\"function\\\"==typeof customizer?(customizer=bindCallback(customizer,thisArg,5),length-=2):(customizer=\\\"function\\\"==typeof thisArg?thisArg:null,length-=customizer?1:0),guard&&isIterateeCall(sources[0],sources[1],guard)&&(customizer=3>length?null:customizer,length=1);length>++index;){var source=sources[index];source&&assigner(object,source,customizer)}return object})}function createBaseEach(eachFunc,fromRight){return function(collection,iteratee){var length=collection?getLength(collection):0;if(!isLength(length))return eachFunc(collection,iteratee);for(var index=fromRight?length:-1,iterable=toObject(collection);(fromRight?index--:length>++index)&&iteratee(iterable[index],index,iterable)!==!1;);return collection}}function createBaseFor(fromRight){return function(object,iteratee,keysFunc){for(var iterable=toObject(object),props=keysFunc(object),length=props.length,index=fromRight?length:-1;fromRight?index--:length>++index;){var key=props[index];if(iteratee(iterable[key],key,iterable)===!1)break}return object}}function createFindIndex(fromRight){return function(array,predicate,thisArg){return array&&array.length?(predicate=getCallback(predicate,thisArg,3),baseFindIndex(array,predicate,fromRight)):-1}}function createForEach(arrayFunc,eachFunc){return function(collection,iteratee,thisArg){return\\\"function\\\"==typeof iteratee&&thisArg===undefined&&isArray(collection)?arrayFunc(collection,iteratee):eachFunc(collection,bindCallback(iteratee,thisArg,3))}}function equalArrays(array,other,equalFunc,customizer,isLoose,stackA,stackB){var index=-1,arrLength=array.length,othLength=other.length,result=!0;if(arrLength!=othLength&&!(isLoose&&othLength>arrLength))return!1;for(;result&&arrLength>++index;){var arrValue=array[index],othValue=other[index];if(result=undefined,customizer&&(result=isLoose?customizer(othValue,arrValue,index):customizer(arrValue,othValue,index)),result===undefined)if(isLoose)for(var othIndex=othLength;othIndex--&&(othValue=other[othIndex],!(result=arrValue&&arrValue===othValue||equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB))););else result=arrValue&&arrValue===othValue||equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB)}return!!result}function equalByTag(object,other,tag){switch(tag){case boolTag:case dateTag:return+object==+other;case errorTag:return object.name==other.name&&object.message==other.message;case numberTag:return object!=+object?other!=+other:0==object?1/object==1/other:object==+other;case regexpTag:case stringTag:return object==other+\\\"\\\"}return!1}function equalObjects(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objProps=keys(object),objLength=objProps.length,othProps=keys(other),othLength=othProps.length;if(objLength!=othLength&&!isLoose)return!1;for(var skipCtor=isLoose,index=-1;objLength>++index;){var key=objProps[index],result=isLoose?key in other:hasOwnProperty.call(other,key);if(result){var objValue=object[key],othValue=other[key];result=undefined,customizer&&(result=isLoose?customizer(othValue,objValue,key):customizer(objValue,othValue,key)),result===undefined&&(result=objValue&&objValue===othValue||equalFunc(objValue,othValue,customizer,isLoose,stackA,stackB))}if(!result)return!1;skipCtor||(skipCtor=\\\"constructor\\\"==key)}if(!skipCtor){var objCtor=object.constructor,othCtor=other.constructor;if(objCtor!=othCtor&&\\\"constructor\\\"in object&&\\\"constructor\\\"in other&&!(\\\"function\\\"==typeof objCtor&&objCtor instanceof objCtor&&\\\"function\\\"==typeof othCtor&&othCtor instanceof othCtor))return!1}return!0}function getCallback(func,thisArg,argCount){var result=lodash.callback||callback;return result=result===callback?baseCallback:result,argCount?result(func,thisArg,argCount):result}function getIndexOf(collection,target,fromIndex){var result=lodash.indexOf||indexOf;return result=result===indexOf?baseIndexOf:result,collection?result(collection,target,fromIndex):result}function initCloneArray(array){var length=array.length,result=new array.constructor(length);return length&&\\\"string\\\"==typeof array[0]&&hasOwnProperty.call(array,\\\"index\\\")&&(result.index=array.index,result.input=array.input),result}function initCloneObject(object){var Ctor=object.constructor;return\\\"function\\\"==typeof Ctor&&Ctor instanceof Ctor||(Ctor=Object),new Ctor}function initCloneByTag(object,tag,isDeep){var Ctor=object.constructor;switch(tag){case arrayBufferTag:return bufferClone(object);case boolTag:case dateTag:return new Ctor(+object);case float32Tag:case float64Tag:case int8Tag:case int16Tag:case int32Tag:case uint8Tag:case uint8ClampedTag:case uint16Tag:case uint32Tag:var buffer=object.buffer;return new Ctor(isDeep?bufferClone(buffer):buffer,object.byteOffset,object.length);case numberTag:case stringTag:return new Ctor(object);case regexpTag:var result=new Ctor(object.source,reFlags.exec(object));result.lastIndex=object.lastIndex}return result}function isIndex(value,length){return value=+value,length=null==length?MAX_SAFE_INTEGER:length,value>-1&&0==value%1&&length>value}function isIterateeCall(value,index,object){if(!isObject(object))return!1;var type=typeof index;if(\\\"number\\\"==type)var length=getLength(object),prereq=isLength(length)&&isIndex(index,length);else prereq=\\\"string\\\"==type&&index in object;if(prereq){var other=object[index];return value===value?value===other:other!==other}return!1}function isKey(value,object){var type=typeof value;if(\\\"string\\\"==type&&reIsPlainProp.test(value)||\\\"number\\\"==type)return!0;if(isArray(value))return!1;var result=!reIsDeepProp.test(value);return result||null!=object&&value in toObject(object)}function isLength(value){return\\\"number\\\"==typeof value&&value>-1&&0==value%1&&MAX_SAFE_INTEGER>=value}function isStrictComparable(value){return value===value&&(0===value?1/value>0:!isObject(value))}function shimIsPlainObject(value){var Ctor;if(lodash.support,!isObjectLike(value)||objToString.call(value)!=objectTag||!hasOwnProperty.call(value,\\\"constructor\\\")&&(Ctor=value.constructor,\\\"function\\\"==typeof Ctor&&!(Ctor instanceof Ctor)))return!1;var result;return baseForIn(value,function(subValue,key){result=key}),result===undefined||hasOwnProperty.call(value,result)}function shimKeys(object){for(var props=keysIn(object),propsLength=props.length,length=propsLength&&object.length,support=lodash.support,allowIndexes=length&&isLength(length)&&(isArray(object)||support.nonEnumArgs&&isArguments(object)),index=-1,result=[];propsLength>++index;){var key=props[index];(allowIndexes&&isIndex(key,length)||hasOwnProperty.call(object,key))&&result.push(key)}return result}function toObject(value){return isObject(value)?value:Object(value)}function toPath(value){if(isArray(value))return value;var result=[];return baseToString(value).replace(rePropName,function(match,number,quote,string){result.push(quote?string.replace(reEscapeChar,\\\"$1\\\"):number||match)}),result}function indexOf(array,value,fromIndex){var length=array?array.length:0;if(!length)return-1;if(\\\"number\\\"==typeof fromIndex)fromIndex=0>fromIndex?nativeMax(length+fromIndex,0):fromIndex;else if(fromIndex){var index=binaryIndex(array,value),other=array[index];return(value===value?value===other:other!==other)?index:-1}return baseIndexOf(array,value,fromIndex||0)}function last(array){var length=array?array.length:0;return length?array[length-1]:undefined}function slice(array,start,end){var length=array?array.length:0;return length?(end&&\\\"number\\\"!=typeof end&&isIterateeCall(array,start,end)&&(start=0,end=length),baseSlice(array,start,end)):[]}function unzip(array){for(var index=-1,length=(array&&array.length&&arrayMax(arrayMap(array,getLength)))>>>0,result=Array(length);length>++index;)result[index]=arrayMap(array,baseProperty(index));return result}function includes(collection,target,fromIndex,guard){var length=collection?getLength(collection):0;return isLength(length)||(collection=values(collection),length=collection.length),length?(fromIndex=\\\"number\\\"!=typeof fromIndex||guard&&isIterateeCall(target,fromIndex,guard)?0:0>fromIndex?nativeMax(length+fromIndex,0):fromIndex||0,\\\"string\\\"==typeof collection||!isArray(collection)&&isString(collection)?length>fromIndex&&collection.indexOf(target,fromIndex)>-1:getIndexOf(collection,target,fromIndex)>-1):!1}function reject(collection,predicate,thisArg){var func=isArray(collection)?arrayFilter:baseFilter;return predicate=getCallback(predicate,thisArg,3),func(collection,function(value,index,collection){return!predicate(value,index,collection)})}function some(collection,predicate,thisArg){var func=isArray(collection)?arraySome:baseSome;return thisArg&&isIterateeCall(collection,predicate,thisArg)&&(predicate=null),(\\\"function\\\"!=typeof predicate||thisArg!==undefined)&&(predicate=getCallback(predicate,thisArg,3)),func(collection,predicate)}function restParam(func,start){if(\\\"function\\\"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return start=nativeMax(start===undefined?func.length-1:+start||0,0),function(){for(var args=arguments,index=-1,length=nativeMax(args.length-start,0),rest=Array(length);length>++index;)rest[index]=args[start+index];switch(start){case 0:return func.call(this,rest);case 1:return func.call(this,args[0],rest);case 2:return func.call(this,args[0],args[1],rest)}var otherArgs=Array(start+1);for(index=-1;start>++index;)otherArgs[index]=args[index];return otherArgs[start]=rest,func.apply(this,otherArgs)}}function clone(value,isDeep,customizer,thisArg){return isDeep&&\\\"boolean\\\"!=typeof isDeep&&isIterateeCall(value,isDeep,customizer)?isDeep=!1:\\\"function\\\"==typeof isDeep&&(thisArg=customizer,customizer=isDeep,isDeep=!1),customizer=\\\"function\\\"==typeof customizer&&bindCallback(customizer,thisArg,1),baseClone(value,isDeep,customizer)}function isArguments(value){var length=isObjectLike(value)?value.length:undefined;return isLength(length)&&objToString.call(value)==argsTag}function isEmpty(value){if(null==value)return!0;var length=getLength(value);return isLength(length)&&(isArray(value)||isString(value)||isArguments(value)||isObjectLike(value)&&isFunction(value.splice))?!length:!keys(value).length}function isObject(value){var type=typeof value;return\\\"function\\\"==type||!!value&&\\\"object\\\"==type}function isNative(value){return null==value?!1:objToString.call(value)==funcTag?reIsNative.test(fnToString.call(value)):isObjectLike(value)&&reIsHostCtor.test(value)}function isNumber(value){return\\\"number\\\"==typeof value||isObjectLike(value)&&objToString.call(value)==numberTag}function isString(value){return\\\"string\\\"==typeof value||isObjectLike(value)&&objToString.call(value)==stringTag}function isTypedArray(value){return isObjectLike(value)&&isLength(value.length)&&!!typedArrayTags[objToString.call(value)]}function toPlainObject(value){return baseCopy(value,keysIn(value))}function has(object,path){if(null==object)return!1;var result=hasOwnProperty.call(object,path);return result||isKey(path)||(path=toPath(path),object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),path=last(path),result=null!=object&&hasOwnProperty.call(object,path)),result}function keysIn(object){if(null==object)return[];isObject(object)||(object=Object(object));var length=object.length;length=length&&isLength(length)&&(isArray(object)||support.nonEnumArgs&&isArguments(object))&&length||0;for(var Ctor=object.constructor,index=-1,isProto=\\\"function\\\"==typeof Ctor&&Ctor.prototype===object,result=Array(length),skipIndexes=length>0;length>++index;)result[index]=index+\\\"\\\";for(var key in object)skipIndexes&&isIndex(key,length)||\\\"constructor\\\"==key&&(isProto||!hasOwnProperty.call(object,key))||result.push(key);return result}function values(object){return baseValues(object,keys(object))}function escapeRegExp(string){return string=baseToString(string),string&&reHasRegExpChars.test(string)?string.replace(reRegExpChars,\\\"\\\\\\\\$&\\\"):string}function callback(func,thisArg,guard){return guard&&isIterateeCall(func,thisArg,guard)&&(thisArg=null),baseCallback(func,thisArg)}function constant(value){return function(){return value}}function identity(value){return value}function property(path){return isKey(path)?baseProperty(path):basePropertyDeep(path)}var undefined,VERSION=\\\"3.7.0\\\",FUNC_ERROR_TEXT=\\\"Expected a function\\\",argsTag=\\\"[object Arguments]\\\",arrayTag=\\\"[object Array]\\\",boolTag=\\\"[object Boolean]\\\",dateTag=\\\"[object Date]\\\",errorTag=\\\"[object Error]\\\",funcTag=\\\"[object Function]\\\",mapTag=\\\"[object Map]\\\",numberTag=\\\"[object Number]\\\",objectTag=\\\"[object Object]\\\",regexpTag=\\\"[object RegExp]\\\",setTag=\\\"[object Set]\\\",stringTag=\\\"[object String]\\\",weakMapTag=\\\"[object WeakMap]\\\",arrayBufferTag=\\\"[object ArrayBuffer]\\\",float32Tag=\\\"[object Float32Array]\\\",float64Tag=\\\"[object Float64Array]\\\",int8Tag=\\\"[object Int8Array]\\\",int16Tag=\\\"[object Int16Array]\\\",int32Tag=\\\"[object Int32Array]\\\",uint8Tag=\\\"[object Uint8Array]\\\",uint8ClampedTag=\\\"[object Uint8ClampedArray]\\\",uint16Tag=\\\"[object Uint16Array]\\\",uint32Tag=\\\"[object Uint32Array]\\\",reIsDeepProp=/\\\\.|\\\\[(?:[^[\\\\]]+|([\\\"'])(?:(?!\\\\1)[^\\\\n\\\\\\\\]|\\\\\\\\.)*?)\\\\1\\\\]/,reIsPlainProp=/^\\\\w*$/,rePropName=/[^.[\\\\]]+|\\\\[(?:(-?\\\\d+(?:\\\\.\\\\d+)?)|([\\\"'])((?:(?!\\\\2)[^\\\\n\\\\\\\\]|\\\\\\\\.)*?)\\\\2)\\\\]/g,reRegExpChars=/[.*+?^${}()|[\\\\]\\\\/\\\\\\\\]/g,reHasRegExpChars=RegExp(reRegExpChars.source),reEscapeChar=/\\\\\\\\(\\\\\\\\)?/g,reFlags=/\\\\w*$/,reIsHostCtor=/^\\\\[object .+?Constructor\\\\]$/,typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;var cloneableTags={};cloneableTags[argsTag]=cloneableTags[arrayTag]=cloneableTags[arrayBufferTag]=cloneableTags[boolTag]=cloneableTags[dateTag]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[numberTag]=cloneableTags[objectTag]=cloneableTags[regexpTag]=cloneableTags[stringTag]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=!0,cloneableTags[errorTag]=cloneableTags[funcTag]=cloneableTags[mapTag]=cloneableTags[setTag]=cloneableTags[weakMapTag]=!1;var objectTypes={\\\"function\\\":!0,object:!0},freeExports=objectTypes[typeof exports]&&exports&&!exports.nodeType&&exports,freeModule=objectTypes[typeof module]&&module&&!module.nodeType&&module,freeGlobal=freeExports&&freeModule&&\\\"object\\\"==typeof global&&global&&global.Object&&global,freeSelf=objectTypes[typeof self]&&self&&self.Object&&self,freeWindow=objectTypes[typeof window]&&window&&window.Object&&window,moduleExports=freeModule&&freeModule.exports===freeExports&&freeExports,root=freeGlobal||freeWindow!==(this&&this.window)&&freeWindow||freeSelf||this,arrayProto=Array.prototype,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp(\\\"^\\\"+escapeRegExp(objToString).replace(/toString|(function).*?(?=\\\\\\\\\\\\()| for .+?(?=\\\\\\\\\\\\])/g,\\\"$1.*?\\\")+\\\"$\\\"),ArrayBuffer=isNative(ArrayBuffer=root.ArrayBuffer)&&ArrayBuffer,bufferSlice=isNative(bufferSlice=ArrayBuffer&&new ArrayBuffer(0).slice)&&bufferSlice,floor=Math.floor,getOwnPropertySymbols=isNative(getOwnPropertySymbols=Object.getOwnPropertySymbols)&&getOwnPropertySymbols,getPrototypeOf=isNative(getPrototypeOf=Object.getPrototypeOf)&&getPrototypeOf,push=arrayProto.push,preventExtensions=isNative(Object.preventExtensions=Object.preventExtensions)&&preventExtensions,propertyIsEnumerable=objectProto.propertyIsEnumerable,Uint8Array=isNative(Uint8Array=root.Uint8Array)&&Uint8Array,Float64Array=function(){try{var func=isNative(func=root.Float64Array)&&func,result=new func(new ArrayBuffer(10),0,1)&&func}catch(e){}return result}(),nativeAssign=function(){var object={1:0},func=preventExtensions&&isNative(func=Object.assign)&&func;try{func(preventExtensions(object),\\\"xo\\\")}catch(e){}return!object[1]&&func}(),nativeIsArray=isNative(nativeIsArray=Array.isArray)&&nativeIsArray,nativeKeys=isNative(nativeKeys=Object.keys)&&nativeKeys,nativeMax=Math.max,nativeMin=Math.min,NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY,MAX_ARRAY_LENGTH=Math.pow(2,32)-1,MAX_ARRAY_INDEX=MAX_ARRAY_LENGTH-1,HALF_MAX_ARRAY_LENGTH=MAX_ARRAY_LENGTH>>>1,FLOAT64_BYTES_PER_ELEMENT=Float64Array?Float64Array.BYTES_PER_ELEMENT:0,MAX_SAFE_INTEGER=Math.pow(2,53)-1,support=lodash.support={};(function(x){var Ctor=function(){this.x=x},props=[];Ctor.prototype={valueOf:x,y:x};for(var key in new Ctor)props.push(key);support.funcDecomp=/\\\\bthis\\\\b/.test(function(){return this}),support.funcNames=\\\"string\\\"==typeof Function.name;try{support.nonEnumArgs=!propertyIsEnumerable.call(arguments,1)}catch(e){support.nonEnumArgs=!0}})(1,0);var baseAssign=nativeAssign||function(object,source){return null==source?object:baseCopy(source,getSymbols(source),baseCopy(source,keys(source),object))},baseEach=createBaseEach(baseForOwn),baseFor=createBaseFor();bufferSlice||(bufferClone=ArrayBuffer&&Uint8Array?function(buffer){var byteLength=buffer.byteLength,floatLength=Float64Array?floor(byteLength/FLOAT64_BYTES_PER_ELEMENT):0,offset=floatLength*FLOAT64_BYTES_PER_ELEMENT,result=new ArrayBuffer(byteLength);if(floatLength){var view=new Float64Array(result,0,floatLength);view.set(new Float64Array(buffer,0,floatLength))}return byteLength!=offset&&(view=new Uint8Array(result,offset),view.set(new Uint8Array(buffer,offset))),result}:constant(null));var getLength=baseProperty(\\\"length\\\"),getSymbols=getOwnPropertySymbols?function(object){return getOwnPropertySymbols(toObject(object))}:constant([]),findLastIndex=createFindIndex(!0),zip=restParam(unzip),forEach=createForEach(arrayEach,baseEach),isArray=nativeIsArray||function(value){return isObjectLike(value)&&isLength(value.length)&&objToString.call(value)==arrayTag},isFunction=baseIsFunction(/x/)||Uint8Array&&!baseIsFunction(Uint8Array)?function(value){return objToString.call(value)==funcTag}:baseIsFunction,isPlainObject=getPrototypeOf?function(value){if(!value||objToString.call(value)!=objectTag)return!1;var valueOf=value.valueOf,objProto=isNative(valueOf)&&(objProto=getPrototypeOf(valueOf))&&getPrototypeOf(objProto);return objProto?value==objProto||getPrototypeOf(value)==objProto:shimIsPlainObject(value)}:shimIsPlainObject,assign=createAssigner(function(object,source,customizer){return customizer?assignWith(object,source,customizer):baseAssign(object,source)}),keys=nativeKeys?function(object){if(object)var Ctor=object.constructor,length=object.length;return\\\"function\\\"==typeof Ctor&&Ctor.prototype===object||\\\"function\\\"!=typeof object&&isLength(length)?shimKeys(object):isObject(object)?nativeKeys(object):[]}:shimKeys,merge=createAssigner(baseMerge);lodash.assign=assign,lodash.callback=callback,lodash.constant=constant,lodash.forEach=forEach,lodash.keys=keys,lodash.keysIn=keysIn,lodash.merge=merge,lodash.property=property,lodash.reject=reject,lodash.restParam=restParam,lodash.slice=slice,lodash.toPlainObject=toPlainObject,lodash.unzip=unzip,lodash.values=values,lodash.zip=zip,lodash.each=forEach,lodash.extend=assign,lodash.iteratee=callback,lodash.clone=clone,lodash.escapeRegExp=escapeRegExp,lodash.findLastIndex=findLastIndex,lodash.has=has,lodash.identity=identity,lodash.includes=includes,lodash.indexOf=indexOf,lodash.isArguments=isArguments,lodash.isArray=isArray,lodash.isEmpty=isEmpty,lodash.isFunction=isFunction,lodash.isNative=isNative,lodash.isNumber=isNumber,lodash.isObject=isObject,lodash.isPlainObject=isPlainObject,lodash.isString=isString,lodash.isTypedArray=isTypedArray,lodash.last=last,lodash.some=some,lodash.any=some,lodash.contains=includes,lodash.include=includes,lodash.VERSION=VERSION,freeExports&&freeModule?moduleExports?(freeModule.exports=lodash)._=lodash:freeExports._=lodash:root._=lodash\\n}).call(this)}).call(this,\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:\\\"undefined\\\"!=typeof window?window:{})},{}],\\\"/node_modules/jshint/src/jshint.js\\\":[function(_dereq_,module,exports){var _=_dereq_(\\\"../lodash\\\"),events=_dereq_(\\\"events\\\"),vars=_dereq_(\\\"./vars.js\\\"),messages=_dereq_(\\\"./messages.js\\\"),Lexer=_dereq_(\\\"./lex.js\\\").Lexer,reg=_dereq_(\\\"./reg.js\\\"),state=_dereq_(\\\"./state.js\\\").state,style=_dereq_(\\\"./style.js\\\"),options=_dereq_(\\\"./options.js\\\"),scopeManager=_dereq_(\\\"./scope-manager.js\\\"),JSHINT=function(){\\\"use strict\\\";function checkOption(name,t){return name=name.trim(),/^[+-]W\\\\d{3}$/g.test(name)?!0:-1!==options.validNames.indexOf(name)||\\\"jslint\\\"===t.type||_.has(options.removed,name)?!0:(error(\\\"E001\\\",t,name),!1)}function isString(obj){return\\\"[object String]\\\"===Object.prototype.toString.call(obj)}function isIdentifier(tkn,value){return tkn?tkn.identifier&&tkn.value===value?!0:!1:!1}function isReserved(token){if(!token.reserved)return!1;var meta=token.meta;if(meta&&meta.isFutureReservedWord&&state.inES5()){if(!meta.es5)return!1;if(meta.strictOnly&&!state.option.strict&&!state.isStrict())return!1;if(token.isProperty)return!1}return!0}function supplant(str,data){return str.replace(/\\\\{([^{}]*)\\\\}/g,function(a,b){var r=data[b];return\\\"string\\\"==typeof r||\\\"number\\\"==typeof r?r:a})}function combine(dest,src){Object.keys(src).forEach(function(name){_.has(JSHINT.blacklist,name)||(dest[name]=src[name])})}function processenforceall(){if(state.option.enforceall){for(var enforceopt in options.bool.enforcing)void 0!==state.option[enforceopt]||options.noenforceall[enforceopt]||(state.option[enforceopt]=!0);for(var relaxopt in options.bool.relaxing)void 0===state.option[relaxopt]&&(state.option[relaxopt]=!1)}}function assume(){processenforceall(),state.option.esversion||state.option.moz||(state.option.esversion=state.option.es3?3:state.option.esnext?6:5),state.inES5()&&combine(predefined,vars.ecmaIdentifiers[5]),state.inES6()&&combine(predefined,vars.ecmaIdentifiers[6]),state.option.module&&(state.option.strict===!0&&(state.option.strict=\\\"global\\\"),state.inES6()||warning(\\\"W134\\\",state.tokens.next,\\\"module\\\",6)),state.option.couch&&combine(predefined,vars.couch),state.option.qunit&&combine(predefined,vars.qunit),state.option.rhino&&combine(predefined,vars.rhino),state.option.shelljs&&(combine(predefined,vars.shelljs),combine(predefined,vars.node)),state.option.typed&&combine(predefined,vars.typed),state.option.phantom&&(combine(predefined,vars.phantom),state.option.strict===!0&&(state.option.strict=\\\"global\\\")),state.option.prototypejs&&combine(predefined,vars.prototypejs),state.option.node&&(combine(predefined,vars.node),combine(predefined,vars.typed),state.option.strict===!0&&(state.option.strict=\\\"global\\\")),state.option.devel&&combine(predefined,vars.devel),state.option.dojo&&combine(predefined,vars.dojo),state.option.browser&&(combine(predefined,vars.browser),combine(predefined,vars.typed)),state.option.browserify&&(combine(predefined,vars.browser),combine(predefined,vars.typed),combine(predefined,vars.browserify),state.option.strict===!0&&(state.option.strict=\\\"global\\\")),state.option.nonstandard&&combine(predefined,vars.nonstandard),state.option.jasmine&&combine(predefined,vars.jasmine),state.option.jquery&&combine(predefined,vars.jquery),state.option.mootools&&combine(predefined,vars.mootools),state.option.worker&&combine(predefined,vars.worker),state.option.wsh&&combine(predefined,vars.wsh),state.option.globalstrict&&state.option.strict!==!1&&(state.option.strict=\\\"global\\\"),state.option.yui&&combine(predefined,vars.yui),state.option.mocha&&combine(predefined,vars.mocha)}function quit(code,line,chr){var percentage=Math.floor(100*(line/state.lines.length)),message=messages.errors[code].desc;throw{name:\\\"JSHintError\\\",line:line,character:chr,message:message+\\\" (\\\"+percentage+\\\"% scanned).\\\",raw:message,code:code}}function removeIgnoredMessages(){var ignored=state.ignoredLines;_.isEmpty(ignored)||(JSHINT.errors=_.reject(JSHINT.errors,function(err){return ignored[err.line]}))}function warning(code,t,a,b,c,d){var ch,l,w,msg;if(/^W\\\\d{3}$/.test(code)){if(state.ignored[code])return;msg=messages.warnings[code]}else/E\\\\d{3}/.test(code)?msg=messages.errors[code]:/I\\\\d{3}/.test(code)&&(msg=messages.info[code]);return t=t||state.tokens.next||{},\\\"(end)\\\"===t.id&&(t=state.tokens.curr),l=t.line||0,ch=t.from||0,w={id:\\\"(error)\\\",raw:msg.desc,code:msg.code,evidence:state.lines[l-1]||\\\"\\\",line:l,character:ch,scope:JSHINT.scope,a:a,b:b,c:c,d:d},w.reason=supplant(msg.desc,w),JSHINT.errors.push(w),removeIgnoredMessages(),JSHINT.errors.length>=state.option.maxerr&&quit(\\\"E043\\\",l,ch),w}function warningAt(m,l,ch,a,b,c,d){return warning(m,{line:l,from:ch},a,b,c,d)}function error(m,t,a,b,c,d){warning(m,t,a,b,c,d)}function errorAt(m,l,ch,a,b,c,d){return error(m,{line:l,from:ch},a,b,c,d)}function addInternalSrc(elem,src){var i;return i={id:\\\"(internal)\\\",elem:elem,value:src},JSHINT.internals.push(i),i}function doOption(){var nt=state.tokens.next,body=nt.body.match(/(-\\\\s+)?[^\\\\s,:]+(?:\\\\s*:\\\\s*(-\\\\s+)?[^\\\\s,]+)?/g)||[],predef={};if(\\\"globals\\\"===nt.type){body.forEach(function(g,idx){g=g.split(\\\":\\\");var key=(g[0]||\\\"\\\").trim(),val=(g[1]||\\\"\\\").trim();if(\\\"-\\\"===key||!key.length){if(idx>0&&idx===body.length-1)return;return error(\\\"E002\\\",nt),void 0}\\\"-\\\"===key.charAt(0)?(key=key.slice(1),val=!1,JSHINT.blacklist[key]=key,delete predefined[key]):predef[key]=\\\"true\\\"===val}),combine(predefined,predef);for(var key in predef)_.has(predef,key)&&(declared[key]=nt)}\\\"exported\\\"===nt.type&&body.forEach(function(e,idx){if(!e.length){if(idx>0&&idx===body.length-1)return;return error(\\\"E002\\\",nt),void 0}state.funct[\\\"(scope)\\\"].addExported(e)}),\\\"members\\\"===nt.type&&(membersOnly=membersOnly||{},body.forEach(function(m){var ch1=m.charAt(0),ch2=m.charAt(m.length-1);ch1!==ch2||'\\\"'!==ch1&&\\\"'\\\"!==ch1||(m=m.substr(1,m.length-2).replace('\\\\\\\\\\\"','\\\"')),membersOnly[m]=!1}));var numvals=[\\\"maxstatements\\\",\\\"maxparams\\\",\\\"maxdepth\\\",\\\"maxcomplexity\\\",\\\"maxerr\\\",\\\"maxlen\\\",\\\"indent\\\"];(\\\"jshint\\\"===nt.type||\\\"jslint\\\"===nt.type)&&(body.forEach(function(g){g=g.split(\\\":\\\");var key=(g[0]||\\\"\\\").trim(),val=(g[1]||\\\"\\\").trim();if(checkOption(key,nt))if(numvals.indexOf(key)>=0)if(\\\"false\\\"!==val){if(val=+val,\\\"number\\\"!=typeof val||!isFinite(val)||0>=val||Math.floor(val)!==val)return error(\\\"E032\\\",nt,g[1].trim()),void 0;state.option[key]=val}else state.option[key]=\\\"indent\\\"===key?4:!1;else{if(\\\"validthis\\\"===key)return state.funct[\\\"(global)\\\"]?void error(\\\"E009\\\"):\\\"true\\\"!==val&&\\\"false\\\"!==val?void error(\\\"E002\\\",nt):(state.option.validthis=\\\"true\\\"===val,void 0);if(\\\"quotmark\\\"!==key)if(\\\"shadow\\\"!==key)if(\\\"unused\\\"!==key)if(\\\"latedef\\\"!==key)if(\\\"ignore\\\"!==key)if(\\\"strict\\\"!==key){\\\"module\\\"===key&&(hasParsedCode(state.funct)||error(\\\"E055\\\",state.tokens.next,\\\"module\\\"));var esversions={es3:3,es5:5,esnext:6};if(!_.has(esversions,key)){if(\\\"esversion\\\"===key){switch(val){case\\\"5\\\":state.inES5(!0)&&warning(\\\"I003\\\");case\\\"3\\\":case\\\"6\\\":state.option.moz=!1,state.option.esversion=+val;break;case\\\"2015\\\":state.option.moz=!1,state.option.esversion=6;break;default:error(\\\"E002\\\",nt)}return hasParsedCode(state.funct)||error(\\\"E055\\\",state.tokens.next,\\\"esversion\\\"),void 0}var match=/^([+-])(W\\\\d{3})$/g.exec(key);if(match)return state.ignored[match[2]]=\\\"-\\\"===match[1],void 0;var tn;return\\\"true\\\"===val||\\\"false\\\"===val?(\\\"jslint\\\"===nt.type?(tn=options.renamed[key]||key,state.option[tn]=\\\"true\\\"===val,void 0!==options.inverted[tn]&&(state.option[tn]=!state.option[tn])):state.option[key]=\\\"true\\\"===val,\\\"newcap\\\"===key&&(state.option[\\\"(explicitNewcap)\\\"]=!0),void 0):(error(\\\"E002\\\",nt),void 0)}switch(val){case\\\"true\\\":state.option.moz=!1,state.option.esversion=esversions[key];break;case\\\"false\\\":state.option.moz||(state.option.esversion=5);break;default:error(\\\"E002\\\",nt)}}else switch(val){case\\\"true\\\":state.option.strict=!0;break;case\\\"false\\\":state.option.strict=!1;break;case\\\"func\\\":case\\\"global\\\":case\\\"implied\\\":state.option.strict=val;break;default:error(\\\"E002\\\",nt)}else switch(val){case\\\"line\\\":state.ignoredLines[nt.line]=!0,removeIgnoredMessages();break;default:error(\\\"E002\\\",nt)}else switch(val){case\\\"true\\\":state.option.latedef=!0;break;case\\\"false\\\":state.option.latedef=!1;break;case\\\"nofunc\\\":state.option.latedef=\\\"nofunc\\\";break;default:error(\\\"E002\\\",nt)}else switch(val){case\\\"true\\\":state.option.unused=!0;break;case\\\"false\\\":state.option.unused=!1;break;case\\\"vars\\\":case\\\"strict\\\":state.option.unused=val;break;default:error(\\\"E002\\\",nt)}else switch(val){case\\\"true\\\":state.option.shadow=!0;break;case\\\"outer\\\":state.option.shadow=\\\"outer\\\";break;case\\\"false\\\":case\\\"inner\\\":state.option.shadow=\\\"inner\\\";break;default:error(\\\"E002\\\",nt)}else switch(val){case\\\"true\\\":case\\\"false\\\":state.option.quotmark=\\\"true\\\"===val;break;case\\\"double\\\":case\\\"single\\\":state.option.quotmark=val;break;default:error(\\\"E002\\\",nt)}}}),assume())}function peek(p){var t,i=p||0,j=lookahead.length;if(j>i)return lookahead[i];for(;i>=j;)t=lookahead[j],t||(t=lookahead[j]=lex.token()),j+=1;return t||\\\"(end)\\\"!==state.tokens.next.id?t:state.tokens.next}function peekIgnoreEOL(){var t,i=0;do t=peek(i++);while(\\\"(endline)\\\"===t.id);return t}function advance(id,t){switch(state.tokens.curr.id){case\\\"(number)\\\":\\\".\\\"===state.tokens.next.id&&warning(\\\"W005\\\",state.tokens.curr);break;case\\\"-\\\":(\\\"-\\\"===state.tokens.next.id||\\\"--\\\"===state.tokens.next.id)&&warning(\\\"W006\\\");break;case\\\"+\\\":(\\\"+\\\"===state.tokens.next.id||\\\"++\\\"===state.tokens.next.id)&&warning(\\\"W007\\\")}for(id&&state.tokens.next.id!==id&&(t?\\\"(end)\\\"===state.tokens.next.id?error(\\\"E019\\\",t,t.id):error(\\\"E020\\\",state.tokens.next,id,t.id,t.line,state.tokens.next.value):(\\\"(identifier)\\\"!==state.tokens.next.type||state.tokens.next.value!==id)&&warning(\\\"W116\\\",state.tokens.next,id,state.tokens.next.value)),state.tokens.prev=state.tokens.curr,state.tokens.curr=state.tokens.next;;){if(state.tokens.next=lookahead.shift()||lex.token(),state.tokens.next||quit(\\\"E041\\\",state.tokens.curr.line),\\\"(end)\\\"===state.tokens.next.id||\\\"(error)\\\"===state.tokens.next.id)return;if(state.tokens.next.check&&state.tokens.next.check(),state.tokens.next.isSpecial)\\\"falls through\\\"===state.tokens.next.type?state.tokens.curr.caseFallsThrough=!0:doOption();else if(\\\"(endline)\\\"!==state.tokens.next.id)break}}function isInfix(token){return token.infix||!token.identifier&&!token.template&&!!token.led}function isEndOfExpr(){var curr=state.tokens.curr,next=state.tokens.next;return\\\";\\\"===next.id||\\\"}\\\"===next.id||\\\":\\\"===next.id?!0:isInfix(next)===isInfix(curr)||\\\"yield\\\"===curr.id&&state.inMoz()?curr.line!==startLine(next):!1}function isBeginOfExpr(prev){return!prev.left&&\\\"unary\\\"!==prev.arity}function expression(rbp,initial){var left,isArray=!1,isObject=!1,isLetExpr=!1;state.nameStack.push(),initial||\\\"let\\\"!==state.tokens.next.value||\\\"(\\\"!==peek(0).value||(state.inMoz()||warning(\\\"W118\\\",state.tokens.next,\\\"let expressions\\\"),isLetExpr=!0,state.funct[\\\"(scope)\\\"].stack(),advance(\\\"let\\\"),advance(\\\"(\\\"),state.tokens.prev.fud(),advance(\\\")\\\")),\\\"(end)\\\"===state.tokens.next.id&&error(\\\"E006\\\",state.tokens.curr);var isDangerous=state.option.asi&&state.tokens.prev.line!==startLine(state.tokens.curr)&&_.contains([\\\"]\\\",\\\")\\\"],state.tokens.prev.id)&&_.contains([\\\"[\\\",\\\"(\\\"],state.tokens.curr.id);if(isDangerous&&warning(\\\"W014\\\",state.tokens.curr,state.tokens.curr.id),advance(),initial&&(state.funct[\\\"(verb)\\\"]=state.tokens.curr.value,state.tokens.curr.beginsStmt=!0),initial===!0&&state.tokens.curr.fud)left=state.tokens.curr.fud();else for(state.tokens.curr.nud?left=state.tokens.curr.nud():error(\\\"E030\\\",state.tokens.curr,state.tokens.curr.id);(state.tokens.next.lbp>rbp||\\\"(template)\\\"===state.tokens.next.type)&&!isEndOfExpr();)isArray=\\\"Array\\\"===state.tokens.curr.value,isObject=\\\"Object\\\"===state.tokens.curr.value,left&&(left.value||left.first&&left.first.value)&&(\\\"new\\\"!==left.value||left.first&&left.first.value&&\\\".\\\"===left.first.value)&&(isArray=!1,left.value!==state.tokens.curr.value&&(isObject=!1)),advance(),isArray&&\\\"(\\\"===state.tokens.curr.id&&\\\")\\\"===state.tokens.next.id&&warning(\\\"W009\\\",state.tokens.curr),isObject&&\\\"(\\\"===state.tokens.curr.id&&\\\")\\\"===state.tokens.next.id&&warning(\\\"W010\\\",state.tokens.curr),left&&state.tokens.curr.led?left=state.tokens.curr.led(left):error(\\\"E033\\\",state.tokens.curr,state.tokens.curr.id);return isLetExpr&&state.funct[\\\"(scope)\\\"].unstack(),state.nameStack.pop(),left}function startLine(token){return token.startLine||token.line}function nobreaknonadjacent(left,right){left=left||state.tokens.curr,right=right||state.tokens.next,state.option.laxbreak||left.line===startLine(right)||warning(\\\"W014\\\",right,right.value)}function nolinebreak(t){t=t||state.tokens.curr,t.line!==startLine(state.tokens.next)&&warning(\\\"E022\\\",t,t.value)}function nobreakcomma(left,right){left.line!==startLine(right)&&(state.option.laxcomma||(comma.first&&(warning(\\\"I001\\\"),comma.first=!1),warning(\\\"W014\\\",left,right.value)))}function comma(opts){if(opts=opts||{},opts.peek?nobreakcomma(state.tokens.prev,state.tokens.curr):(nobreakcomma(state.tokens.curr,state.tokens.next),advance(\\\",\\\")),state.tokens.next.identifier&&(!opts.property||!state.inES5()))switch(state.tokens.next.value){case\\\"break\\\":case\\\"case\\\":case\\\"catch\\\":case\\\"continue\\\":case\\\"default\\\":case\\\"do\\\":case\\\"else\\\":case\\\"finally\\\":case\\\"for\\\":case\\\"if\\\":case\\\"in\\\":case\\\"instanceof\\\":case\\\"return\\\":case\\\"switch\\\":case\\\"throw\\\":case\\\"try\\\":case\\\"var\\\":case\\\"let\\\":case\\\"while\\\":case\\\"with\\\":return error(\\\"E024\\\",state.tokens.next,state.tokens.next.value),!1}if(\\\"(punctuator)\\\"===state.tokens.next.type)switch(state.tokens.next.value){case\\\"}\\\":case\\\"]\\\":case\\\",\\\":if(opts.allowTrailing)return!0;case\\\")\\\":return error(\\\"E024\\\",state.tokens.next,state.tokens.next.value),!1}return!0}function symbol(s,p){var x=state.syntax[s];return x&&\\\"object\\\"==typeof x||(state.syntax[s]=x={id:s,lbp:p,value:s}),x}function delim(s){var x=symbol(s,0);return x.delim=!0,x}function stmt(s,f){var x=delim(s);return x.identifier=x.reserved=!0,x.fud=f,x}function blockstmt(s,f){var x=stmt(s,f);return x.block=!0,x}function reserveName(x){var c=x.id.charAt(0);return(c>=\\\"a\\\"&&\\\"z\\\">=c||c>=\\\"A\\\"&&\\\"Z\\\">=c)&&(x.identifier=x.reserved=!0),x}function prefix(s,f){var x=symbol(s,150);return reserveName(x),x.nud=\\\"function\\\"==typeof f?f:function(){return this.arity=\\\"unary\\\",this.right=expression(150),(\\\"++\\\"===this.id||\\\"--\\\"===this.id)&&(state.option.plusplus?warning(\\\"W016\\\",this,this.id):!this.right||this.right.identifier&&!isReserved(this.right)||\\\".\\\"===this.right.id||\\\"[\\\"===this.right.id||warning(\\\"W017\\\",this),this.right&&this.right.isMetaProperty?error(\\\"E031\\\",this):this.right&&this.right.identifier&&state.funct[\\\"(scope)\\\"].block.modify(this.right.value,this)),this},x}function type(s,f){var x=delim(s);return x.type=s,x.nud=f,x}function reserve(name,func){var x=type(name,func);return x.identifier=!0,x.reserved=!0,x}function FutureReservedWord(name,meta){var x=type(name,meta&&meta.nud||function(){return this});return meta=meta||{},meta.isFutureReservedWord=!0,x.value=name,x.identifier=!0,x.reserved=!0,x.meta=meta,x}function reservevar(s,v){return reserve(s,function(){return\\\"function\\\"==typeof v&&v(this),this})}function infix(s,f,p,w){var x=symbol(s,p);return reserveName(x),x.infix=!0,x.led=function(left){return w||nobreaknonadjacent(state.tokens.prev,state.tokens.curr),\\\"in\\\"!==s&&\\\"instanceof\\\"!==s||\\\"!\\\"!==left.id||warning(\\\"W018\\\",left,\\\"!\\\"),\\\"function\\\"==typeof f?f(left,this):(this.left=left,this.right=expression(p),this)},x}function application(s){var x=symbol(s,42);return x.led=function(left){return nobreaknonadjacent(state.tokens.prev,state.tokens.curr),this.left=left,this.right=doFunction({type:\\\"arrow\\\",loneArg:left}),this},x}function relation(s,f){var x=symbol(s,100);return x.led=function(left){nobreaknonadjacent(state.tokens.prev,state.tokens.curr),this.left=left;var right=this.right=expression(100);return isIdentifier(left,\\\"NaN\\\")||isIdentifier(right,\\\"NaN\\\")?warning(\\\"W019\\\",this):f&&f.apply(this,[left,right]),left&&right||quit(\\\"E041\\\",state.tokens.curr.line),\\\"!\\\"===left.id&&warning(\\\"W018\\\",left,\\\"!\\\"),\\\"!\\\"===right.id&&warning(\\\"W018\\\",right,\\\"!\\\"),this},x}function isPoorRelation(node){return node&&(\\\"(number)\\\"===node.type&&0===+node.value||\\\"(string)\\\"===node.type&&\\\"\\\"===node.value||\\\"null\\\"===node.type&&!state.option.eqnull||\\\"true\\\"===node.type||\\\"false\\\"===node.type||\\\"undefined\\\"===node.type)}function isTypoTypeof(left,right,state){var values;return state.option.notypeof?!1:left&&right?(values=state.inES6()?typeofValues.es6:typeofValues.es3,\\\"(identifier)\\\"===right.type&&\\\"typeof\\\"===right.value&&\\\"(string)\\\"===left.type?!_.contains(values,left.value):!1):!1}function isGlobalEval(left,state){var isGlobal=!1;return\\\"this\\\"===left.type&&null===state.funct[\\\"(context)\\\"]?isGlobal=!0:\\\"(identifier)\\\"===left.type&&(state.option.node&&\\\"global\\\"===left.value?isGlobal=!0:!state.option.browser||\\\"window\\\"!==left.value&&\\\"document\\\"!==left.value||(isGlobal=!0)),isGlobal}function findNativePrototype(left){function walkPrototype(obj){return\\\"object\\\"==typeof obj?\\\"prototype\\\"===obj.right?obj:walkPrototype(obj.left):void 0}function walkNative(obj){for(;!obj.identifier&&\\\"object\\\"==typeof obj.left;)obj=obj.left;return obj.identifier&&natives.indexOf(obj.value)>=0?obj.value:void 0}var natives=[\\\"Array\\\",\\\"ArrayBuffer\\\",\\\"Boolean\\\",\\\"Collator\\\",\\\"DataView\\\",\\\"Date\\\",\\\"DateTimeFormat\\\",\\\"Error\\\",\\\"EvalError\\\",\\\"Float32Array\\\",\\\"Float64Array\\\",\\\"Function\\\",\\\"Infinity\\\",\\\"Intl\\\",\\\"Int16Array\\\",\\\"Int32Array\\\",\\\"Int8Array\\\",\\\"Iterator\\\",\\\"Number\\\",\\\"NumberFormat\\\",\\\"Object\\\",\\\"RangeError\\\",\\\"ReferenceError\\\",\\\"RegExp\\\",\\\"StopIteration\\\",\\\"String\\\",\\\"SyntaxError\\\",\\\"TypeError\\\",\\\"Uint16Array\\\",\\\"Uint32Array\\\",\\\"Uint8Array\\\",\\\"Uint8ClampedArray\\\",\\\"URIError\\\"],prototype=walkPrototype(left);return prototype?walkNative(prototype):void 0}function checkLeftSideAssign(left,assignToken,options){var allowDestructuring=options&&options.allowDestructuring;if(assignToken=assignToken||left,state.option.freeze){var nativeObject=findNativePrototype(left);nativeObject&&warning(\\\"W121\\\",left,nativeObject)}return left.identifier&&!left.isMetaProperty&&state.funct[\\\"(scope)\\\"].block.reassign(left.value,left),\\\".\\\"===left.id?((!left.left||\\\"arguments\\\"===left.left.value&&!state.isStrict())&&warning(\\\"E031\\\",assignToken),state.nameStack.set(state.tokens.prev),!0):\\\"{\\\"===left.id||\\\"[\\\"===left.id?(allowDestructuring&&state.tokens.curr.left.destructAssign?state.tokens.curr.left.destructAssign.forEach(function(t){t.id&&state.funct[\\\"(scope)\\\"].block.modify(t.id,t.token)}):\\\"{\\\"!==left.id&&left.left?\\\"arguments\\\"!==left.left.value||state.isStrict()||warning(\\\"E031\\\",assignToken):warning(\\\"E031\\\",assignToken),\\\"[\\\"===left.id&&state.nameStack.set(left.right),!0):left.isMetaProperty?(error(\\\"E031\\\",assignToken),!0):left.identifier&&!isReserved(left)?(\\\"exception\\\"===state.funct[\\\"(scope)\\\"].labeltype(left.value)&&warning(\\\"W022\\\",left),state.nameStack.set(left),!0):(left===state.syntax[\\\"function\\\"]&&warning(\\\"W023\\\",state.tokens.curr),!1)}function assignop(s,f,p){var x=infix(s,\\\"function\\\"==typeof f?f:function(left,that){return that.left=left,left&&checkLeftSideAssign(left,that,{allowDestructuring:!0})?(that.right=expression(10),that):(error(\\\"E031\\\",that),void 0)},p);return x.exps=!0,x.assign=!0,x}function bitwise(s,f,p){var x=symbol(s,p);return reserveName(x),x.led=\\\"function\\\"==typeof f?f:function(left){return state.option.bitwise&&warning(\\\"W016\\\",this,this.id),this.left=left,this.right=expression(p),this},x}function bitwiseassignop(s){return assignop(s,function(left,that){return state.option.bitwise&&warning(\\\"W016\\\",that,that.id),left&&checkLeftSideAssign(left,that)?(that.right=expression(10),that):(error(\\\"E031\\\",that),void 0)},20)}function suffix(s){var x=symbol(s,150);return x.led=function(left){return state.option.plusplus?warning(\\\"W016\\\",this,this.id):left.identifier&&!isReserved(left)||\\\".\\\"===left.id||\\\"[\\\"===left.id||warning(\\\"W017\\\",this),left.isMetaProperty?error(\\\"E031\\\",this):left&&left.identifier&&state.funct[\\\"(scope)\\\"].block.modify(left.value,left),this.left=left,this},x}function optionalidentifier(fnparam,prop,preserve){if(state.tokens.next.identifier){preserve||advance();var curr=state.tokens.curr,val=state.tokens.curr.value;return isReserved(curr)?prop&&state.inES5()?val:fnparam&&\\\"undefined\\\"===val?val:(warning(\\\"W024\\\",state.tokens.curr,state.tokens.curr.id),val):val}}function identifier(fnparam,prop){var i=optionalidentifier(fnparam,prop,!1);if(i)return i;if(\\\"...\\\"===state.tokens.next.value){if(state.inES6(!0)||warning(\\\"W119\\\",state.tokens.next,\\\"spread/rest operator\\\",\\\"6\\\"),advance(),checkPunctuator(state.tokens.next,\\\"...\\\"))for(warning(\\\"E024\\\",state.tokens.next,\\\"...\\\");checkPunctuator(state.tokens.next,\\\"...\\\");)advance();return state.tokens.next.identifier?identifier(fnparam,prop):(warning(\\\"E024\\\",state.tokens.curr,\\\"...\\\"),void 0)}error(\\\"E030\\\",state.tokens.next,state.tokens.next.value),\\\";\\\"!==state.tokens.next.id&&advance()}function reachable(controlToken){var t,i=0;if(\\\";\\\"===state.tokens.next.id&&!controlToken.inBracelessBlock)for(;;){do t=peek(i),i+=1;while(\\\"(end)\\\"!==t.id&&\\\"(comment)\\\"===t.id);if(t.reach)return;if(\\\"(endline)\\\"!==t.id){if(\\\"function\\\"===t.id){state.option.latedef===!0&&warning(\\\"W026\\\",t);break}warning(\\\"W027\\\",t,t.value,controlToken.value);break}}}function parseFinalSemicolon(){if(\\\";\\\"!==state.tokens.next.id){if(state.tokens.next.isUnclosed)return advance();var sameLine=startLine(state.tokens.next)===state.tokens.curr.line&&\\\"(end)\\\"!==state.tokens.next.id,blockEnd=checkPunctuator(state.tokens.next,\\\"}\\\");sameLine&&!blockEnd?errorAt(\\\"E058\\\",state.tokens.curr.line,state.tokens.curr.character):state.option.asi||(blockEnd&&!state.option.lastsemic||!sameLine)&&warningAt(\\\"W033\\\",state.tokens.curr.line,state.tokens.curr.character)}else advance(\\\";\\\")}function statement(){var r,i=indent,t=state.tokens.next,hasOwnScope=!1;if(\\\";\\\"===t.id)return advance(\\\";\\\"),void 0;var res=isReserved(t);if(res&&t.meta&&t.meta.isFutureReservedWord&&\\\":\\\"===peek().id&&(warning(\\\"W024\\\",t,t.id),res=!1),t.identifier&&!res&&\\\":\\\"===peek().id&&(advance(),advance(\\\":\\\"),hasOwnScope=!0,state.funct[\\\"(scope)\\\"].stack(),state.funct[\\\"(scope)\\\"].block.addBreakLabel(t.value,{token:state.tokens.curr}),state.tokens.next.labelled||\\\"{\\\"===state.tokens.next.value||warning(\\\"W028\\\",state.tokens.next,t.value,state.tokens.next.value),state.tokens.next.label=t.value,t=state.tokens.next),\\\"{\\\"===t.id){var iscase=\\\"case\\\"===state.funct[\\\"(verb)\\\"]&&\\\":\\\"===state.tokens.curr.value;return block(!0,!0,!1,!1,iscase),void 0}return r=expression(0,!0),!r||r.identifier&&\\\"function\\\"===r.value||\\\"(punctuator)\\\"===r.type&&r.left&&r.left.identifier&&\\\"function\\\"===r.left.value||state.isStrict()||\\\"global\\\"!==state.option.strict||warning(\\\"E007\\\"),t.block||(state.option.expr||r&&r.exps?state.option.nonew&&r&&r.left&&\\\"(\\\"===r.id&&\\\"new\\\"===r.left.id&&warning(\\\"W031\\\",t):warning(\\\"W030\\\",state.tokens.curr),parseFinalSemicolon()),indent=i,hasOwnScope&&state.funct[\\\"(scope)\\\"].unstack(),r}function statements(){for(var p,a=[];!state.tokens.next.reach&&\\\"(end)\\\"!==state.tokens.next.id;)\\\";\\\"===state.tokens.next.id?(p=peek(),(!p||\\\"(\\\"!==p.id&&\\\"[\\\"!==p.id)&&warning(\\\"W032\\\"),advance(\\\";\\\")):a.push(statement());return a}function directives(){for(var i,p,pn;\\\"(string)\\\"===state.tokens.next.id;){if(p=peek(0),\\\"(endline)\\\"===p.id){i=1;do pn=peek(i++);while(\\\"(endline)\\\"===pn.id);if(\\\";\\\"===pn.id)p=pn;else{if(\\\"[\\\"===pn.value||\\\".\\\"===pn.value)break;state.option.asi&&\\\"(\\\"!==pn.value||warning(\\\"W033\\\",state.tokens.next)}}else{if(\\\".\\\"===p.id||\\\"[\\\"===p.id)break;\\\";\\\"!==p.id&&warning(\\\"W033\\\",p)}advance();var directive=state.tokens.curr.value;(state.directive[directive]||\\\"use strict\\\"===directive&&\\\"implied\\\"===state.option.strict)&&warning(\\\"W034\\\",state.tokens.curr,directive),state.directive[directive]=!0,\\\";\\\"===p.id&&advance(\\\";\\\")}state.isStrict()&&(state.option[\\\"(explicitNewcap)\\\"]||(state.option.newcap=!0),state.option.undef=!0)}function block(ordinary,stmt,isfunc,isfatarrow,iscase){var a,m,t,line,d,b=inblock,old_indent=indent;inblock=ordinary,t=state.tokens.next;var metrics=state.funct[\\\"(metrics)\\\"];if(metrics.nestedBlockDepth+=1,metrics.verifyMaxNestedBlockDepthPerFunction(),\\\"{\\\"===state.tokens.next.id){if(advance(\\\"{\\\"),state.funct[\\\"(scope)\\\"].stack(),line=state.tokens.curr.line,\\\"}\\\"!==state.tokens.next.id){for(indent+=state.option.indent;!ordinary&&state.tokens.next.from>indent;)indent+=state.option.indent;if(isfunc){m={};for(d in state.directive)_.has(state.directive,d)&&(m[d]=state.directive[d]);directives(),state.option.strict&&state.funct[\\\"(context)\\\"][\\\"(global)\\\"]&&(m[\\\"use strict\\\"]||state.isStrict()||warning(\\\"E007\\\"))}a=statements(),metrics.statementCount+=a.length,indent-=state.option.indent}advance(\\\"}\\\",t),isfunc&&(state.funct[\\\"(scope)\\\"].validateParams(),m&&(state.directive=m)),state.funct[\\\"(scope)\\\"].unstack(),indent=old_indent}else if(ordinary)state.funct[\\\"(noblockscopedvar)\\\"]=\\\"for\\\"!==state.tokens.next.id,state.funct[\\\"(scope)\\\"].stack(),(!stmt||state.option.curly)&&warning(\\\"W116\\\",state.tokens.next,\\\"{\\\",state.tokens.next.value),state.tokens.next.inBracelessBlock=!0,indent+=state.option.indent,a=[statement()],indent-=state.option.indent,state.funct[\\\"(scope)\\\"].unstack(),delete state.funct[\\\"(noblockscopedvar)\\\"];else if(isfunc){if(state.funct[\\\"(scope)\\\"].stack(),m={},!stmt||isfatarrow||state.inMoz()||error(\\\"W118\\\",state.tokens.curr,\\\"function closure expressions\\\"),!stmt)for(d in state.directive)_.has(state.directive,d)&&(m[d]=state.directive[d]);expression(10),state.option.strict&&state.funct[\\\"(context)\\\"][\\\"(global)\\\"]&&(m[\\\"use strict\\\"]||state.isStrict()||warning(\\\"E007\\\")),state.funct[\\\"(scope)\\\"].unstack()}else error(\\\"E021\\\",state.tokens.next,\\\"{\\\",state.tokens.next.value);switch(state.funct[\\\"(verb)\\\"]){case\\\"break\\\":case\\\"continue\\\":case\\\"return\\\":case\\\"throw\\\":if(iscase)break;default:state.funct[\\\"(verb)\\\"]=null}return inblock=b,!ordinary||!state.option.noempty||a&&0!==a.length||warning(\\\"W035\\\",state.tokens.prev),metrics.nestedBlockDepth-=1,a}function countMember(m){membersOnly&&\\\"boolean\\\"!=typeof membersOnly[m]&&warning(\\\"W036\\\",state.tokens.curr,m),\\\"number\\\"==typeof member[m]?member[m]+=1:member[m]=1}function comprehensiveArrayExpression(){var res={};res.exps=!0,state.funct[\\\"(comparray)\\\"].stack();var reversed=!1;return\\\"for\\\"!==state.tokens.next.value&&(reversed=!0,state.inMoz()||warning(\\\"W116\\\",state.tokens.next,\\\"for\\\",state.tokens.next.value),state.funct[\\\"(comparray)\\\"].setState(\\\"use\\\"),res.right=expression(10)),advance(\\\"for\\\"),\\\"each\\\"===state.tokens.next.value&&(advance(\\\"each\\\"),state.inMoz()||warning(\\\"W118\\\",state.tokens.curr,\\\"for each\\\")),advance(\\\"(\\\"),state.funct[\\\"(comparray)\\\"].setState(\\\"define\\\"),res.left=expression(130),_.contains([\\\"in\\\",\\\"of\\\"],state.tokens.next.value)?advance():error(\\\"E045\\\",state.tokens.curr),state.funct[\\\"(comparray)\\\"].setState(\\\"generate\\\"),expression(10),advance(\\\")\\\"),\\\"if\\\"===state.tokens.next.value&&(advance(\\\"if\\\"),advance(\\\"(\\\"),state.funct[\\\"(comparray)\\\"].setState(\\\"filter\\\"),res.filter=expression(10),advance(\\\")\\\")),reversed||(state.funct[\\\"(comparray)\\\"].setState(\\\"use\\\"),res.right=expression(10)),advance(\\\"]\\\"),state.funct[\\\"(comparray)\\\"].unstack(),res}function isMethod(){return state.funct[\\\"(statement)\\\"]&&\\\"class\\\"===state.funct[\\\"(statement)\\\"].type||state.funct[\\\"(context)\\\"]&&\\\"class\\\"===state.funct[\\\"(context)\\\"][\\\"(verb)\\\"]}function isPropertyName(token){return token.identifier||\\\"(string)\\\"===token.id||\\\"(number)\\\"===token.id}function propertyName(preserveOrToken){var id,preserve=!0;return\\\"object\\\"==typeof preserveOrToken?id=preserveOrToken:(preserve=preserveOrToken,id=optionalidentifier(!1,!0,preserve)),id?\\\"object\\\"==typeof id&&(\\\"(string)\\\"===id.id||\\\"(identifier)\\\"===id.id?id=id.value:\\\"(number)\\\"===id.id&&(id=\\\"\\\"+id.value)):\\\"(string)\\\"===state.tokens.next.id?(id=state.tokens.next.value,preserve||advance()):\\\"(number)\\\"===state.tokens.next.id&&(id=\\\"\\\"+state.tokens.next.value,preserve||advance()),\\\"hasOwnProperty\\\"===id&&warning(\\\"W001\\\"),id}function functionparams(options){function addParam(addParamArgs){state.funct[\\\"(scope)\\\"].addParam.apply(state.funct[\\\"(scope)\\\"],addParamArgs)}var next,ident,t,paramsIds=[],tokens=[],pastDefault=!1,pastRest=!1,arity=0,loneArg=options&&options.loneArg;if(loneArg&&loneArg.identifier===!0)return state.funct[\\\"(scope)\\\"].addParam(loneArg.value,loneArg),{arity:1,params:[loneArg.value]};if(next=state.tokens.next,options&&options.parsedOpening||advance(\\\"(\\\"),\\\")\\\"===state.tokens.next.id)return advance(\\\")\\\"),void 0;for(;;){arity++;var currentParams=[];if(_.contains([\\\"{\\\",\\\"[\\\"],state.tokens.next.id)){tokens=destructuringPattern();for(t in tokens)t=tokens[t],t.id&&(paramsIds.push(t.id),currentParams.push([t.id,t.token]))}else if(checkPunctuator(state.tokens.next,\\\"...\\\")&&(pastRest=!0),ident=identifier(!0))paramsIds.push(ident),currentParams.push([ident,state.tokens.curr]);else for(;!checkPunctuators(state.tokens.next,[\\\",\\\",\\\")\\\"]);)advance();if(pastDefault&&\\\"=\\\"!==state.tokens.next.id&&error(\\\"W138\\\",state.tokens.current),\\\"=\\\"===state.tokens.next.id&&(state.inES6()||warning(\\\"W119\\\",state.tokens.next,\\\"default parameters\\\",\\\"6\\\"),advance(\\\"=\\\"),pastDefault=!0,expression(10)),currentParams.forEach(addParam),\\\",\\\"!==state.tokens.next.id)return advance(\\\")\\\",next),{arity:arity,params:paramsIds};pastRest&&warning(\\\"W131\\\",state.tokens.next),comma()}}function functor(name,token,overwrites){var funct={\\\"(name)\\\":name,\\\"(breakage)\\\":0,\\\"(loopage)\\\":0,\\\"(tokens)\\\":{},\\\"(properties)\\\":{},\\\"(catch)\\\":!1,\\\"(global)\\\":!1,\\\"(line)\\\":null,\\\"(character)\\\":null,\\\"(metrics)\\\":null,\\\"(statement)\\\":null,\\\"(context)\\\":null,\\\"(scope)\\\":null,\\\"(comparray)\\\":null,\\\"(generator)\\\":null,\\\"(arrow)\\\":null,\\\"(params)\\\":null};return token&&_.extend(funct,{\\\"(line)\\\":token.line,\\\"(character)\\\":token.character,\\\"(metrics)\\\":createMetrics(token)}),_.extend(funct,overwrites),funct[\\\"(context)\\\"]&&(funct[\\\"(scope)\\\"]=funct[\\\"(context)\\\"][\\\"(scope)\\\"],funct[\\\"(comparray)\\\"]=funct[\\\"(context)\\\"][\\\"(comparray)\\\"]),funct}function isFunctor(token){return\\\"(scope)\\\"in token}function hasParsedCode(funct){return funct[\\\"(global)\\\"]&&!funct[\\\"(verb)\\\"]}function doTemplateLiteral(left){function end(){if(state.tokens.curr.template&&state.tokens.curr.tail&&state.tokens.curr.context===ctx)return!0;var complete=state.tokens.next.template&&state.tokens.next.tail&&state.tokens.next.context===ctx;return complete&&advance(),complete||state.tokens.next.isUnclosed}var ctx=this.context,noSubst=this.noSubst,depth=this.depth;if(!noSubst)for(;!end();)!state.tokens.next.template||state.tokens.next.depth>depth?expression(0):advance();return{id:\\\"(template)\\\",type:\\\"(template)\\\",tag:left}}function doFunction(options){var f,token,name,statement,classExprBinding,isGenerator,isArrow,ignoreLoopFunc,oldOption=state.option,oldIgnored=state.ignored;options&&(name=options.name,statement=options.statement,classExprBinding=options.classExprBinding,isGenerator=\\\"generator\\\"===options.type,isArrow=\\\"arrow\\\"===options.type,ignoreLoopFunc=options.ignoreLoopFunc),state.option=Object.create(state.option),state.ignored=Object.create(state.ignored),state.funct=functor(name||state.nameStack.infer(),state.tokens.next,{\\\"(statement)\\\":statement,\\\"(context)\\\":state.funct,\\\"(arrow)\\\":isArrow,\\\"(generator)\\\":isGenerator}),f=state.funct,token=state.tokens.curr,token.funct=state.funct,functions.push(state.funct),state.funct[\\\"(scope)\\\"].stack(\\\"functionouter\\\");var internallyAccessibleName=name||classExprBinding;internallyAccessibleName&&state.funct[\\\"(scope)\\\"].block.add(internallyAccessibleName,classExprBinding?\\\"class\\\":\\\"function\\\",state.tokens.curr,!1),state.funct[\\\"(scope)\\\"].stack(\\\"functionparams\\\");var paramsInfo=functionparams(options);return paramsInfo?(state.funct[\\\"(params)\\\"]=paramsInfo.params,state.funct[\\\"(metrics)\\\"].arity=paramsInfo.arity,state.funct[\\\"(metrics)\\\"].verifyMaxParametersPerFunction()):state.funct[\\\"(metrics)\\\"].arity=0,isArrow&&(state.inES6(!0)||warning(\\\"W119\\\",state.tokens.curr,\\\"arrow function syntax (=>)\\\",\\\"6\\\"),options.loneArg||advance(\\\"=>\\\")),block(!1,!0,!0,isArrow),!state.option.noyield&&isGenerator&&\\\"yielded\\\"!==state.funct[\\\"(generator)\\\"]&&warning(\\\"W124\\\",state.tokens.curr),state.funct[\\\"(metrics)\\\"].verifyMaxStatementsPerFunction(),state.funct[\\\"(metrics)\\\"].verifyMaxComplexityPerFunction(),state.funct[\\\"(unusedOption)\\\"]=state.option.unused,state.option=oldOption,state.ignored=oldIgnored,state.funct[\\\"(last)\\\"]=state.tokens.curr.line,state.funct[\\\"(lastcharacter)\\\"]=state.tokens.curr.character,state.funct[\\\"(scope)\\\"].unstack(),state.funct[\\\"(scope)\\\"].unstack(),state.funct=state.funct[\\\"(context)\\\"],ignoreLoopFunc||state.option.loopfunc||!state.funct[\\\"(loopage)\\\"]||f[\\\"(isCapturing)\\\"]&&warning(\\\"W083\\\",token),f}function createMetrics(functionStartToken){return{statementCount:0,nestedBlockDepth:-1,ComplexityCount:1,arity:0,verifyMaxStatementsPerFunction:function(){state.option.maxstatements&&this.statementCount>state.option.maxstatements&&warning(\\\"W071\\\",functionStartToken,this.statementCount)\\n},verifyMaxParametersPerFunction:function(){_.isNumber(state.option.maxparams)&&this.arity>state.option.maxparams&&warning(\\\"W072\\\",functionStartToken,this.arity)},verifyMaxNestedBlockDepthPerFunction:function(){state.option.maxdepth&&this.nestedBlockDepth>0&&this.nestedBlockDepth===state.option.maxdepth+1&&warning(\\\"W073\\\",null,this.nestedBlockDepth)},verifyMaxComplexityPerFunction:function(){var max=state.option.maxcomplexity,cc=this.ComplexityCount;max&&cc>max&&warning(\\\"W074\\\",functionStartToken,cc)}}}function increaseComplexityCount(){state.funct[\\\"(metrics)\\\"].ComplexityCount+=1}function checkCondAssignment(expr){var id,paren;switch(expr&&(id=expr.id,paren=expr.paren,\\\",\\\"===id&&(expr=expr.exprs[expr.exprs.length-1])&&(id=expr.id,paren=paren||expr.paren)),id){case\\\"=\\\":case\\\"+=\\\":case\\\"-=\\\":case\\\"*=\\\":case\\\"%=\\\":case\\\"&=\\\":case\\\"|=\\\":case\\\"^=\\\":case\\\"/=\\\":paren||state.option.boss||warning(\\\"W084\\\")}}function checkProperties(props){if(state.inES5())for(var name in props)props[name]&&props[name].setterToken&&!props[name].getterToken&&warning(\\\"W078\\\",props[name].setterToken)}function metaProperty(name,c){if(checkPunctuator(state.tokens.next,\\\".\\\")){var left=state.tokens.curr.id;advance(\\\".\\\");var id=identifier();return state.tokens.curr.isMetaProperty=!0,name!==id?error(\\\"E057\\\",state.tokens.prev,left,id):c(),state.tokens.curr}}function destructuringPattern(options){var isAssignment=options&&options.assignment;return state.inES6()||warning(\\\"W104\\\",state.tokens.curr,isAssignment?\\\"destructuring assignment\\\":\\\"destructuring binding\\\",\\\"6\\\"),destructuringPatternRecursive(options)}function destructuringPatternRecursive(options){var ids,identifiers=[],openingParsed=options&&options.openingParsed,isAssignment=options&&options.assignment,recursiveOptions=isAssignment?{assignment:isAssignment}:null,firstToken=openingParsed?state.tokens.curr:state.tokens.next,nextInnerDE=function(){var ident;if(checkPunctuators(state.tokens.next,[\\\"[\\\",\\\"{\\\"])){ids=destructuringPatternRecursive(recursiveOptions);for(var id in ids)id=ids[id],identifiers.push({id:id.id,token:id.token})}else if(checkPunctuator(state.tokens.next,\\\",\\\"))identifiers.push({id:null,token:state.tokens.curr});else{if(!checkPunctuator(state.tokens.next,\\\"(\\\")){var is_rest=checkPunctuator(state.tokens.next,\\\"...\\\");if(isAssignment){var identifierToken=is_rest?peek(0):state.tokens.next;identifierToken.identifier||warning(\\\"E030\\\",identifierToken,identifierToken.value);var assignTarget=expression(155);assignTarget&&(checkLeftSideAssign(assignTarget),assignTarget.identifier&&(ident=assignTarget.value))}else ident=identifier();return ident&&identifiers.push({id:ident,token:state.tokens.curr}),is_rest}advance(\\\"(\\\"),nextInnerDE(),advance(\\\")\\\")}return!1},assignmentProperty=function(){var id;checkPunctuator(state.tokens.next,\\\"[\\\")?(advance(\\\"[\\\"),expression(10),advance(\\\"]\\\"),advance(\\\":\\\"),nextInnerDE()):\\\"(string)\\\"===state.tokens.next.id||\\\"(number)\\\"===state.tokens.next.id?(advance(),advance(\\\":\\\"),nextInnerDE()):(id=identifier(),checkPunctuator(state.tokens.next,\\\":\\\")?(advance(\\\":\\\"),nextInnerDE()):id&&(isAssignment&&checkLeftSideAssign(state.tokens.curr),identifiers.push({id:id,token:state.tokens.curr})))};if(checkPunctuator(firstToken,\\\"[\\\")){openingParsed||advance(\\\"[\\\"),checkPunctuator(state.tokens.next,\\\"]\\\")&&warning(\\\"W137\\\",state.tokens.curr);for(var element_after_rest=!1;!checkPunctuator(state.tokens.next,\\\"]\\\");)nextInnerDE()&&!element_after_rest&&checkPunctuator(state.tokens.next,\\\",\\\")&&(warning(\\\"W130\\\",state.tokens.next),element_after_rest=!0),checkPunctuator(state.tokens.next,\\\"=\\\")&&(checkPunctuator(state.tokens.prev,\\\"...\\\")?advance(\\\"]\\\"):advance(\\\"=\\\"),\\\"undefined\\\"===state.tokens.next.id&&warning(\\\"W080\\\",state.tokens.prev,state.tokens.prev.value),expression(10)),checkPunctuator(state.tokens.next,\\\"]\\\")||advance(\\\",\\\");advance(\\\"]\\\")}else if(checkPunctuator(firstToken,\\\"{\\\")){for(openingParsed||advance(\\\"{\\\"),checkPunctuator(state.tokens.next,\\\"}\\\")&&warning(\\\"W137\\\",state.tokens.curr);!checkPunctuator(state.tokens.next,\\\"}\\\")&&(assignmentProperty(),checkPunctuator(state.tokens.next,\\\"=\\\")&&(advance(\\\"=\\\"),\\\"undefined\\\"===state.tokens.next.id&&warning(\\\"W080\\\",state.tokens.prev,state.tokens.prev.value),expression(10)),checkPunctuator(state.tokens.next,\\\"}\\\")||(advance(\\\",\\\"),!checkPunctuator(state.tokens.next,\\\"}\\\"))););advance(\\\"}\\\")}return identifiers}function destructuringPatternMatch(tokens,value){var first=value.first;first&&_.zip(tokens,Array.isArray(first)?first:[first]).forEach(function(val){var token=val[0],value=val[1];token&&value?token.first=value:token&&token.first&&!value&&warning(\\\"W080\\\",token.first,token.first.value)})}function blockVariableStatement(type,statement,context){var tokens,lone,value,letblock,prefix=context&&context.prefix,inexport=context&&context.inexport,isLet=\\\"let\\\"===type,isConst=\\\"const\\\"===type;for(state.inES6()||warning(\\\"W104\\\",state.tokens.curr,type,\\\"6\\\"),isLet&&\\\"(\\\"===state.tokens.next.value?(state.inMoz()||warning(\\\"W118\\\",state.tokens.next,\\\"let block\\\"),advance(\\\"(\\\"),state.funct[\\\"(scope)\\\"].stack(),letblock=!0):state.funct[\\\"(noblockscopedvar)\\\"]&&error(\\\"E048\\\",state.tokens.curr,isConst?\\\"Const\\\":\\\"Let\\\"),statement.first=[];;){var names=[];_.contains([\\\"{\\\",\\\"[\\\"],state.tokens.next.value)?(tokens=destructuringPattern(),lone=!1):(tokens=[{id:identifier(),token:state.tokens.curr}],lone=!0),!prefix&&isConst&&\\\"=\\\"!==state.tokens.next.id&&warning(\\\"E012\\\",state.tokens.curr,state.tokens.curr.value);for(var t in tokens)tokens.hasOwnProperty(t)&&(t=tokens[t],state.funct[\\\"(scope)\\\"].block.isGlobal()&&predefined[t.id]===!1&&warning(\\\"W079\\\",t.token,t.id),t.id&&!state.funct[\\\"(noblockscopedvar)\\\"]&&(state.funct[\\\"(scope)\\\"].addlabel(t.id,{type:type,token:t.token}),names.push(t.token),lone&&inexport&&state.funct[\\\"(scope)\\\"].setExported(t.token.value,t.token)));if(\\\"=\\\"===state.tokens.next.id&&(advance(\\\"=\\\"),prefix||\\\"undefined\\\"!==state.tokens.next.id||warning(\\\"W080\\\",state.tokens.prev,state.tokens.prev.value),!prefix&&\\\"=\\\"===peek(0).id&&state.tokens.next.identifier&&warning(\\\"W120\\\",state.tokens.next,state.tokens.next.value),value=expression(prefix?120:10),lone?tokens[0].first=value:destructuringPatternMatch(names,value)),statement.first=statement.first.concat(names),\\\",\\\"!==state.tokens.next.id)break;comma()}return letblock&&(advance(\\\")\\\"),block(!0,!0),statement.block=!0,state.funct[\\\"(scope)\\\"].unstack()),statement}function classdef(isStatement){return state.inES6()||warning(\\\"W104\\\",state.tokens.curr,\\\"class\\\",\\\"6\\\"),isStatement?(this.name=identifier(),state.funct[\\\"(scope)\\\"].addlabel(this.name,{type:\\\"class\\\",token:state.tokens.curr})):state.tokens.next.identifier&&\\\"extends\\\"!==state.tokens.next.value?(this.name=identifier(),this.namedExpr=!0):this.name=state.nameStack.infer(),classtail(this),this}function classtail(c){var wasInClassBody=state.inClassBody;\\\"extends\\\"===state.tokens.next.value&&(advance(\\\"extends\\\"),c.heritage=expression(10)),state.inClassBody=!0,advance(\\\"{\\\"),c.body=classbody(c),advance(\\\"}\\\"),state.inClassBody=wasInClassBody}function classbody(c){for(var name,isStatic,isGenerator,getset,computed,props=Object.create(null),staticProps=Object.create(null),i=0;\\\"}\\\"!==state.tokens.next.id;++i)if(name=state.tokens.next,isStatic=!1,isGenerator=!1,getset=null,\\\";\\\"!==name.id){if(\\\"*\\\"===name.id&&(isGenerator=!0,advance(\\\"*\\\"),name=state.tokens.next),\\\"[\\\"===name.id)name=computedPropertyName(),computed=!0;else{if(!isPropertyName(name)){warning(\\\"W052\\\",state.tokens.next,state.tokens.next.value||state.tokens.next.type),advance();continue}advance(),computed=!1,name.identifier&&\\\"static\\\"===name.value&&(checkPunctuator(state.tokens.next,\\\"*\\\")&&(isGenerator=!0,advance(\\\"*\\\")),(isPropertyName(state.tokens.next)||\\\"[\\\"===state.tokens.next.id)&&(computed=\\\"[\\\"===state.tokens.next.id,isStatic=!0,name=state.tokens.next,\\\"[\\\"===state.tokens.next.id?name=computedPropertyName():advance())),!name.identifier||\\\"get\\\"!==name.value&&\\\"set\\\"!==name.value||(isPropertyName(state.tokens.next)||\\\"[\\\"===state.tokens.next.id)&&(computed=\\\"[\\\"===state.tokens.next.id,getset=name,name=state.tokens.next,\\\"[\\\"===state.tokens.next.id?name=computedPropertyName():advance())}if(!checkPunctuator(state.tokens.next,\\\"(\\\")){for(error(\\\"E054\\\",state.tokens.next,state.tokens.next.value);\\\"}\\\"!==state.tokens.next.id&&!checkPunctuator(state.tokens.next,\\\"(\\\");)advance();\\\"(\\\"!==state.tokens.next.value&&doFunction({statement:c})}if(computed||(getset?saveAccessor(getset.value,isStatic?staticProps:props,name.value,name,!0,isStatic):(\\\"constructor\\\"===name.value?state.nameStack.set(c):state.nameStack.set(name),saveProperty(isStatic?staticProps:props,name.value,name,!0,isStatic))),getset&&\\\"constructor\\\"===name.value){var propDesc=\\\"get\\\"===getset.value?\\\"class getter method\\\":\\\"class setter method\\\";error(\\\"E049\\\",name,propDesc,\\\"constructor\\\")}else\\\"prototype\\\"===name.value&&error(\\\"E049\\\",name,\\\"class method\\\",\\\"prototype\\\");propertyName(name),doFunction({statement:c,type:isGenerator?\\\"generator\\\":null,classExprBinding:c.namedExpr?c.name:null})}else warning(\\\"W032\\\"),advance(\\\";\\\");checkProperties(props)}function saveProperty(props,name,tkn,isClass,isStatic){var msg=[\\\"key\\\",\\\"class method\\\",\\\"static class method\\\"];msg=msg[(isClass||!1)+(isStatic||!1)],tkn.identifier&&(name=tkn.value),props[name]&&\\\"__proto__\\\"!==name?warning(\\\"W075\\\",state.tokens.next,msg,name):props[name]=Object.create(null),props[name].basic=!0,props[name].basictkn=tkn}function saveAccessor(accessorType,props,name,tkn,isClass,isStatic){var flagName=\\\"get\\\"===accessorType?\\\"getterToken\\\":\\\"setterToken\\\",msg=\\\"\\\";isClass?(isStatic&&(msg+=\\\"static \\\"),msg+=accessorType+\\\"ter method\\\"):msg=\\\"key\\\",state.tokens.curr.accessorType=accessorType,state.nameStack.set(tkn),props[name]?(props[name].basic||props[name][flagName])&&\\\"__proto__\\\"!==name&&warning(\\\"W075\\\",state.tokens.next,msg,name):props[name]=Object.create(null),props[name][flagName]=tkn}function computedPropertyName(){advance(\\\"[\\\"),state.inES6()||warning(\\\"W119\\\",state.tokens.curr,\\\"computed property names\\\",\\\"6\\\");var value=expression(10);return advance(\\\"]\\\"),value}function checkPunctuators(token,values){return\\\"(punctuator)\\\"===token.type?_.contains(values,token.value):!1}function checkPunctuator(token,value){return\\\"(punctuator)\\\"===token.type&&token.value===value}function destructuringAssignOrJsonValue(){var block=lookupBlockType();block.notJson?(!state.inES6()&&block.isDestAssign&&warning(\\\"W104\\\",state.tokens.curr,\\\"destructuring assignment\\\",\\\"6\\\"),statements()):(state.option.laxbreak=!0,state.jsonMode=!0,jsonValue())}function jsonValue(){function jsonObject(){var o={},t=state.tokens.next;if(advance(\\\"{\\\"),\\\"}\\\"!==state.tokens.next.id)for(;;){if(\\\"(end)\\\"===state.tokens.next.id)error(\\\"E026\\\",state.tokens.next,t.line);else{if(\\\"}\\\"===state.tokens.next.id){warning(\\\"W094\\\",state.tokens.curr);break}\\\",\\\"===state.tokens.next.id?error(\\\"E028\\\",state.tokens.next):\\\"(string)\\\"!==state.tokens.next.id&&warning(\\\"W095\\\",state.tokens.next,state.tokens.next.value)}if(o[state.tokens.next.value]===!0?warning(\\\"W075\\\",state.tokens.next,\\\"key\\\",state.tokens.next.value):\\\"__proto__\\\"===state.tokens.next.value&&!state.option.proto||\\\"__iterator__\\\"===state.tokens.next.value&&!state.option.iterator?warning(\\\"W096\\\",state.tokens.next,state.tokens.next.value):o[state.tokens.next.value]=!0,advance(),advance(\\\":\\\"),jsonValue(),\\\",\\\"!==state.tokens.next.id)break;advance(\\\",\\\")}advance(\\\"}\\\")}function jsonArray(){var t=state.tokens.next;if(advance(\\\"[\\\"),\\\"]\\\"!==state.tokens.next.id)for(;;){if(\\\"(end)\\\"===state.tokens.next.id)error(\\\"E027\\\",state.tokens.next,t.line);else{if(\\\"]\\\"===state.tokens.next.id){warning(\\\"W094\\\",state.tokens.curr);break}\\\",\\\"===state.tokens.next.id&&error(\\\"E028\\\",state.tokens.next)}if(jsonValue(),\\\",\\\"!==state.tokens.next.id)break;advance(\\\",\\\")}advance(\\\"]\\\")}switch(state.tokens.next.id){case\\\"{\\\":jsonObject();break;case\\\"[\\\":jsonArray();break;case\\\"true\\\":case\\\"false\\\":case\\\"null\\\":case\\\"(number)\\\":case\\\"(string)\\\":advance();break;case\\\"-\\\":advance(\\\"-\\\"),advance(\\\"(number)\\\");break;default:error(\\\"E003\\\",state.tokens.next)}}var api,declared,functions,inblock,indent,lookahead,lex,member,membersOnly,predefined,stack,urls,bang={\\\"<\\\":!0,\\\"<=\\\":!0,\\\"==\\\":!0,\\\"===\\\":!0,\\\"!==\\\":!0,\\\"!=\\\":!0,\\\">\\\":!0,\\\">=\\\":!0,\\\"+\\\":!0,\\\"-\\\":!0,\\\"*\\\":!0,\\\"/\\\":!0,\\\"%\\\":!0},functionicity=[\\\"closure\\\",\\\"exception\\\",\\\"global\\\",\\\"label\\\",\\\"outer\\\",\\\"unused\\\",\\\"var\\\"],extraModules=[],emitter=new events.EventEmitter,typeofValues={};typeofValues.legacy=[\\\"xml\\\",\\\"unknown\\\"],typeofValues.es3=[\\\"undefined\\\",\\\"boolean\\\",\\\"number\\\",\\\"string\\\",\\\"function\\\",\\\"object\\\"],typeofValues.es3=typeofValues.es3.concat(typeofValues.legacy),typeofValues.es6=typeofValues.es3.concat(\\\"symbol\\\"),type(\\\"(number)\\\",function(){return this}),type(\\\"(string)\\\",function(){return this}),state.syntax[\\\"(identifier)\\\"]={type:\\\"(identifier)\\\",lbp:0,identifier:!0,nud:function(){var v=this.value;return\\\"=>\\\"===state.tokens.next.id?this:(state.funct[\\\"(comparray)\\\"].check(v)||state.funct[\\\"(scope)\\\"].block.use(v,state.tokens.curr),this)},led:function(){error(\\\"E033\\\",state.tokens.next,state.tokens.next.value)}};var baseTemplateSyntax={lbp:0,identifier:!1,template:!0};state.syntax[\\\"(template)\\\"]=_.extend({type:\\\"(template)\\\",nud:doTemplateLiteral,led:doTemplateLiteral,noSubst:!1},baseTemplateSyntax),state.syntax[\\\"(template middle)\\\"]=_.extend({type:\\\"(template middle)\\\",middle:!0,noSubst:!1},baseTemplateSyntax),state.syntax[\\\"(template tail)\\\"]=_.extend({type:\\\"(template tail)\\\",tail:!0,noSubst:!1},baseTemplateSyntax),state.syntax[\\\"(no subst template)\\\"]=_.extend({type:\\\"(template)\\\",nud:doTemplateLiteral,led:doTemplateLiteral,noSubst:!0,tail:!0},baseTemplateSyntax),type(\\\"(regexp)\\\",function(){return this}),delim(\\\"(endline)\\\"),delim(\\\"(begin)\\\"),delim(\\\"(end)\\\").reach=!0,delim(\\\"(error)\\\").reach=!0,delim(\\\"}\\\").reach=!0,delim(\\\")\\\"),delim(\\\"]\\\"),delim('\\\"').reach=!0,delim(\\\"'\\\").reach=!0,delim(\\\";\\\"),delim(\\\":\\\").reach=!0,delim(\\\"#\\\"),reserve(\\\"else\\\"),reserve(\\\"case\\\").reach=!0,reserve(\\\"catch\\\"),reserve(\\\"default\\\").reach=!0,reserve(\\\"finally\\\"),reservevar(\\\"arguments\\\",function(x){state.isStrict()&&state.funct[\\\"(global)\\\"]&&warning(\\\"E008\\\",x)}),reservevar(\\\"eval\\\"),reservevar(\\\"false\\\"),reservevar(\\\"Infinity\\\"),reservevar(\\\"null\\\"),reservevar(\\\"this\\\",function(x){state.isStrict()&&!isMethod()&&!state.option.validthis&&(state.funct[\\\"(statement)\\\"]&&state.funct[\\\"(name)\\\"].charAt(0)>\\\"Z\\\"||state.funct[\\\"(global)\\\"])&&warning(\\\"W040\\\",x)}),reservevar(\\\"true\\\"),reservevar(\\\"undefined\\\"),assignop(\\\"=\\\",\\\"assign\\\",20),assignop(\\\"+=\\\",\\\"assignadd\\\",20),assignop(\\\"-=\\\",\\\"assignsub\\\",20),assignop(\\\"*=\\\",\\\"assignmult\\\",20),assignop(\\\"/=\\\",\\\"assigndiv\\\",20).nud=function(){error(\\\"E014\\\")},assignop(\\\"%=\\\",\\\"assignmod\\\",20),bitwiseassignop(\\\"&=\\\"),bitwiseassignop(\\\"|=\\\"),bitwiseassignop(\\\"^=\\\"),bitwiseassignop(\\\"<<=\\\"),bitwiseassignop(\\\">>=\\\"),bitwiseassignop(\\\">>>=\\\"),infix(\\\",\\\",function(left,that){var expr;if(that.exprs=[left],state.option.nocomma&&warning(\\\"W127\\\"),!comma({peek:!0}))return that;for(;;){if(!(expr=expression(10)))break;if(that.exprs.push(expr),\\\",\\\"!==state.tokens.next.value||!comma())break}return that},10,!0),infix(\\\"?\\\",function(left,that){return increaseComplexityCount(),that.left=left,that.right=expression(10),advance(\\\":\\\"),that[\\\"else\\\"]=expression(10),that},30);var orPrecendence=40;infix(\\\"||\\\",function(left,that){return increaseComplexityCount(),that.left=left,that.right=expression(orPrecendence),that},orPrecendence),infix(\\\"&&\\\",\\\"and\\\",50),bitwise(\\\"|\\\",\\\"bitor\\\",70),bitwise(\\\"^\\\",\\\"bitxor\\\",80),bitwise(\\\"&\\\",\\\"bitand\\\",90),relation(\\\"==\\\",function(left,right){var eqnull=state.option.eqnull&&(\\\"null\\\"===(left&&left.value)||\\\"null\\\"===(right&&right.value));switch(!0){case!eqnull&&state.option.eqeqeq:this.from=this.character,warning(\\\"W116\\\",this,\\\"===\\\",\\\"==\\\");break;case isPoorRelation(left):warning(\\\"W041\\\",this,\\\"===\\\",left.value);break;case isPoorRelation(right):warning(\\\"W041\\\",this,\\\"===\\\",right.value);break;case isTypoTypeof(right,left,state):warning(\\\"W122\\\",this,right.value);break;case isTypoTypeof(left,right,state):warning(\\\"W122\\\",this,left.value)}return this}),relation(\\\"===\\\",function(left,right){return isTypoTypeof(right,left,state)?warning(\\\"W122\\\",this,right.value):isTypoTypeof(left,right,state)&&warning(\\\"W122\\\",this,left.value),this}),relation(\\\"!=\\\",function(left,right){var eqnull=state.option.eqnull&&(\\\"null\\\"===(left&&left.value)||\\\"null\\\"===(right&&right.value));return!eqnull&&state.option.eqeqeq?(this.from=this.character,warning(\\\"W116\\\",this,\\\"!==\\\",\\\"!=\\\")):isPoorRelation(left)?warning(\\\"W041\\\",this,\\\"!==\\\",left.value):isPoorRelation(right)?warning(\\\"W041\\\",this,\\\"!==\\\",right.value):isTypoTypeof(right,left,state)?warning(\\\"W122\\\",this,right.value):isTypoTypeof(left,right,state)&&warning(\\\"W122\\\",this,left.value),this}),relation(\\\"!==\\\",function(left,right){return isTypoTypeof(right,left,state)?warning(\\\"W122\\\",this,right.value):isTypoTypeof(left,right,state)&&warning(\\\"W122\\\",this,left.value),this}),relation(\\\"<\\\"),relation(\\\">\\\"),relation(\\\"<=\\\"),relation(\\\">=\\\"),bitwise(\\\"<<\\\",\\\"shiftleft\\\",120),bitwise(\\\">>\\\",\\\"shiftright\\\",120),bitwise(\\\">>>\\\",\\\"shiftrightunsigned\\\",120),infix(\\\"in\\\",\\\"in\\\",120),infix(\\\"instanceof\\\",\\\"instanceof\\\",120),infix(\\\"+\\\",function(left,that){var right;return that.left=left,that.right=right=expression(130),left&&right&&\\\"(string)\\\"===left.id&&\\\"(string)\\\"===right.id?(left.value+=right.value,left.character=right.character,!state.option.scripturl&®.javascriptURL.test(left.value)&&warning(\\\"W050\\\",left),left):that},130),prefix(\\\"+\\\",\\\"num\\\"),prefix(\\\"+++\\\",function(){return warning(\\\"W007\\\"),this.arity=\\\"unary\\\",this.right=expression(150),this}),infix(\\\"+++\\\",function(left){return warning(\\\"W007\\\"),this.left=left,this.right=expression(130),this},130),infix(\\\"-\\\",\\\"sub\\\",130),prefix(\\\"-\\\",\\\"neg\\\"),prefix(\\\"---\\\",function(){return warning(\\\"W006\\\"),this.arity=\\\"unary\\\",this.right=expression(150),this}),infix(\\\"---\\\",function(left){return warning(\\\"W006\\\"),this.left=left,this.right=expression(130),this},130),infix(\\\"*\\\",\\\"mult\\\",140),infix(\\\"/\\\",\\\"div\\\",140),infix(\\\"%\\\",\\\"mod\\\",140),suffix(\\\"++\\\"),prefix(\\\"++\\\",\\\"preinc\\\"),state.syntax[\\\"++\\\"].exps=!0,suffix(\\\"--\\\"),prefix(\\\"--\\\",\\\"predec\\\"),state.syntax[\\\"--\\\"].exps=!0,prefix(\\\"delete\\\",function(){var p=expression(10);return p?(\\\".\\\"!==p.id&&\\\"[\\\"!==p.id&&warning(\\\"W051\\\"),this.first=p,p.identifier&&!state.isStrict()&&(p.forgiveUndef=!0),this):this}).exps=!0,prefix(\\\"~\\\",function(){return state.option.bitwise&&warning(\\\"W016\\\",this,\\\"~\\\"),this.arity=\\\"unary\\\",this.right=expression(150),this}),prefix(\\\"...\\\",function(){return state.inES6(!0)||warning(\\\"W119\\\",this,\\\"spread/rest operator\\\",\\\"6\\\"),state.tokens.next.identifier||\\\"(string)\\\"===state.tokens.next.type||checkPunctuators(state.tokens.next,[\\\"[\\\",\\\"(\\\"])||error(\\\"E030\\\",state.tokens.next,state.tokens.next.value),expression(150),this}),prefix(\\\"!\\\",function(){return this.arity=\\\"unary\\\",this.right=expression(150),this.right||quit(\\\"E041\\\",this.line||0),bang[this.right.id]===!0&&warning(\\\"W018\\\",this,\\\"!\\\"),this}),prefix(\\\"typeof\\\",function(){var p=expression(150);return this.first=this.right=p,p||quit(\\\"E041\\\",this.line||0,this.character||0),p.identifier&&(p.forgiveUndef=!0),this}),prefix(\\\"new\\\",function(){var mp=metaProperty(\\\"target\\\",function(){state.inES6(!0)||warning(\\\"W119\\\",state.tokens.prev,\\\"new.target\\\",\\\"6\\\");for(var inFunction,c=state.funct;c&&(inFunction=!c[\\\"(global)\\\"],c[\\\"(arrow)\\\"]);)c=c[\\\"(context)\\\"];inFunction||warning(\\\"W136\\\",state.tokens.prev,\\\"new.target\\\")});if(mp)return mp;var i,c=expression(155);if(c&&\\\"function\\\"!==c.id)if(c.identifier)switch(c[\\\"new\\\"]=!0,c.value){case\\\"Number\\\":case\\\"String\\\":case\\\"Boolean\\\":case\\\"Math\\\":case\\\"JSON\\\":warning(\\\"W053\\\",state.tokens.prev,c.value);break;case\\\"Symbol\\\":state.inES6()&&warning(\\\"W053\\\",state.tokens.prev,c.value);break;case\\\"Function\\\":state.option.evil||warning(\\\"W054\\\");break;case\\\"Date\\\":case\\\"RegExp\\\":case\\\"this\\\":break;default:\\\"function\\\"!==c.id&&(i=c.value.substr(0,1),state.option.newcap&&(\\\"A\\\">i||i>\\\"Z\\\")&&!state.funct[\\\"(scope)\\\"].isPredefined(c.value)&&warning(\\\"W055\\\",state.tokens.curr))}else\\\".\\\"!==c.id&&\\\"[\\\"!==c.id&&\\\"(\\\"!==c.id&&warning(\\\"W056\\\",state.tokens.curr);else state.option.supernew||warning(\\\"W057\\\",this);return\\\"(\\\"===state.tokens.next.id||state.option.supernew||warning(\\\"W058\\\",state.tokens.curr,state.tokens.curr.value),this.first=this.right=c,this}),state.syntax[\\\"new\\\"].exps=!0,prefix(\\\"void\\\").exps=!0,infix(\\\".\\\",function(left,that){var m=identifier(!1,!0);return\\\"string\\\"==typeof m&&countMember(m),that.left=left,that.right=m,m&&\\\"hasOwnProperty\\\"===m&&\\\"=\\\"===state.tokens.next.value&&warning(\\\"W001\\\"),!left||\\\"arguments\\\"!==left.value||\\\"callee\\\"!==m&&\\\"caller\\\"!==m?state.option.evil||!left||\\\"document\\\"!==left.value||\\\"write\\\"!==m&&\\\"writeln\\\"!==m||warning(\\\"W060\\\",left):state.option.noarg?warning(\\\"W059\\\",left,m):state.isStrict()&&error(\\\"E008\\\"),state.option.evil||\\\"eval\\\"!==m&&\\\"execScript\\\"!==m||isGlobalEval(left,state)&&warning(\\\"W061\\\"),that},160,!0),infix(\\\"(\\\",function(left,that){state.option.immed&&left&&!left.immed&&\\\"function\\\"===left.id&&warning(\\\"W062\\\");var n=0,p=[];if(left&&\\\"(identifier)\\\"===left.type&&left.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&-1===\\\"Array Number String Boolean Date Object Error Symbol\\\".indexOf(left.value)&&(\\\"Math\\\"===left.value?warning(\\\"W063\\\",left):state.option.newcap&&warning(\\\"W064\\\",left)),\\\")\\\"!==state.tokens.next.id)for(;p[p.length]=expression(10),n+=1,\\\",\\\"===state.tokens.next.id;)comma();return advance(\\\")\\\"),\\\"object\\\"==typeof left&&(state.inES5()||\\\"parseInt\\\"!==left.value||1!==n||warning(\\\"W065\\\",state.tokens.curr),state.option.evil||(\\\"eval\\\"===left.value||\\\"Function\\\"===left.value||\\\"execScript\\\"===left.value?(warning(\\\"W061\\\",left),p[0]&&\\\"(string)\\\"===[0].id&&addInternalSrc(left,p[0].value)):!p[0]||\\\"(string)\\\"!==p[0].id||\\\"setTimeout\\\"!==left.value&&\\\"setInterval\\\"!==left.value?!p[0]||\\\"(string)\\\"!==p[0].id||\\\".\\\"!==left.value||\\\"window\\\"!==left.left.value||\\\"setTimeout\\\"!==left.right&&\\\"setInterval\\\"!==left.right||(warning(\\\"W066\\\",left),addInternalSrc(left,p[0].value)):(warning(\\\"W066\\\",left),addInternalSrc(left,p[0].value))),left.identifier||\\\".\\\"===left.id||\\\"[\\\"===left.id||\\\"=>\\\"===left.id||\\\"(\\\"===left.id||\\\"&&\\\"===left.id||\\\"||\\\"===left.id||\\\"?\\\"===left.id||state.inES6()&&left[\\\"(name)\\\"]||warning(\\\"W067\\\",that)),that.left=left,that},155,!0).exps=!0,prefix(\\\"(\\\",function(){var pn1,ret,triggerFnExpr,first,last,pn=state.tokens.next,i=-1,parens=1,opening=state.tokens.curr,preceeding=state.tokens.prev,isNecessary=!state.option.singleGroups;do\\\"(\\\"===pn.value?parens+=1:\\\")\\\"===pn.value&&(parens-=1),i+=1,pn1=pn,pn=peek(i);while((0!==parens||\\\")\\\"!==pn1.value)&&\\\";\\\"!==pn.value&&\\\"(end)\\\"!==pn.type);if(\\\"function\\\"===state.tokens.next.id&&(triggerFnExpr=state.tokens.next.immed=!0),\\\"=>\\\"===pn.value)return doFunction({type:\\\"arrow\\\",parsedOpening:!0});var exprs=[];if(\\\")\\\"!==state.tokens.next.id)for(;exprs.push(expression(10)),\\\",\\\"===state.tokens.next.id;)state.option.nocomma&&warning(\\\"W127\\\"),comma();return advance(\\\")\\\",this),state.option.immed&&exprs[0]&&\\\"function\\\"===exprs[0].id&&\\\"(\\\"!==state.tokens.next.id&&\\\".\\\"!==state.tokens.next.id&&\\\"[\\\"!==state.tokens.next.id&&warning(\\\"W068\\\",this),exprs.length?(exprs.length>1?(ret=Object.create(state.syntax[\\\",\\\"]),ret.exprs=exprs,first=exprs[0],last=exprs[exprs.length-1],isNecessary||(isNecessary=preceeding.assign||preceeding.delim)):(ret=first=last=exprs[0],isNecessary||(isNecessary=opening.beginsStmt&&(\\\"{\\\"===ret.id||triggerFnExpr||isFunctor(ret))||triggerFnExpr&&(!isEndOfExpr()||\\\"}\\\"!==state.tokens.prev.id)||isFunctor(ret)&&!isEndOfExpr()||\\\"{\\\"===ret.id&&\\\"=>\\\"===preceeding.id||\\\"(number)\\\"===ret.type&&checkPunctuator(pn,\\\".\\\")&&/^\\\\d+$/.test(ret.value))),ret&&(!isNecessary&&(first.left||first.right||ret.exprs)&&(isNecessary=!isBeginOfExpr(preceeding)&&first.lbp<=preceeding.lbp||!isEndOfExpr()&&last.lbp\\\"),infix(\\\"[\\\",function(left,that){var s,e=expression(10);return e&&\\\"(string)\\\"===e.type&&(state.option.evil||\\\"eval\\\"!==e.value&&\\\"execScript\\\"!==e.value||isGlobalEval(left,state)&&warning(\\\"W061\\\"),countMember(e.value),!state.option.sub&®.identifier.test(e.value)&&(s=state.syntax[e.value],s&&isReserved(s)||warning(\\\"W069\\\",state.tokens.prev,e.value))),advance(\\\"]\\\",that),e&&\\\"hasOwnProperty\\\"===e.value&&\\\"=\\\"===state.tokens.next.value&&warning(\\\"W001\\\"),that.left=left,that.right=e,that},160,!0),prefix(\\\"[\\\",function(){var blocktype=lookupBlockType();if(blocktype.isCompArray)return state.option.esnext||state.inMoz()||warning(\\\"W118\\\",state.tokens.curr,\\\"array comprehension\\\"),comprehensiveArrayExpression();if(blocktype.isDestAssign)return this.destructAssign=destructuringPattern({openingParsed:!0,assignment:!0}),this;var b=state.tokens.curr.line!==startLine(state.tokens.next);for(this.first=[],b&&(indent+=state.option.indent,state.tokens.next.from===indent+state.option.indent&&(indent+=state.option.indent));\\\"(end)\\\"!==state.tokens.next.id;){for(;\\\",\\\"===state.tokens.next.id;){if(!state.option.elision){if(state.inES5()){warning(\\\"W128\\\");do advance(\\\",\\\");while(\\\",\\\"===state.tokens.next.id);continue}warning(\\\"W070\\\")}advance(\\\",\\\")}if(\\\"]\\\"===state.tokens.next.id)break;if(this.first.push(expression(10)),\\\",\\\"!==state.tokens.next.id)break;if(comma({allowTrailing:!0}),\\\"]\\\"===state.tokens.next.id&&!state.inES5()){warning(\\\"W070\\\",state.tokens.curr);break}}return b&&(indent-=state.option.indent),advance(\\\"]\\\",this),this}),function(x){x.nud=function(){var b,f,i,p,t,nextVal,isGeneratorMethod=!1,props=Object.create(null);b=state.tokens.curr.line!==startLine(state.tokens.next),b&&(indent+=state.option.indent,state.tokens.next.from===indent+state.option.indent&&(indent+=state.option.indent));var blocktype=lookupBlockType();if(blocktype.isDestAssign)return this.destructAssign=destructuringPattern({openingParsed:!0,assignment:!0}),this;for(;\\\"}\\\"!==state.tokens.next.id;){if(nextVal=state.tokens.next.value,!state.tokens.next.identifier||\\\",\\\"!==peekIgnoreEOL().id&&\\\"}\\\"!==peekIgnoreEOL().id)if(\\\":\\\"===peek().id||\\\"get\\\"!==nextVal&&\\\"set\\\"!==nextVal){if(\\\"*\\\"===state.tokens.next.value&&\\\"(punctuator)\\\"===state.tokens.next.type?(state.inES6()||warning(\\\"W104\\\",state.tokens.next,\\\"generator functions\\\",\\\"6\\\"),advance(\\\"*\\\"),isGeneratorMethod=!0):isGeneratorMethod=!1,\\\"[\\\"===state.tokens.next.id)i=computedPropertyName(),state.nameStack.set(i);else if(state.nameStack.set(state.tokens.next),i=propertyName(),saveProperty(props,i,state.tokens.next),\\\"string\\\"!=typeof i)break;\\\"(\\\"===state.tokens.next.value?(state.inES6()||warning(\\\"W104\\\",state.tokens.curr,\\\"concise methods\\\",\\\"6\\\"),doFunction({type:isGeneratorMethod?\\\"generator\\\":null})):(advance(\\\":\\\"),expression(10))}else advance(nextVal),state.inES5()||error(\\\"E034\\\"),i=propertyName(),i||state.inES6()||error(\\\"E035\\\"),i&&saveAccessor(nextVal,props,i,state.tokens.curr),t=state.tokens.next,f=doFunction(),p=f[\\\"(params)\\\"],\\\"get\\\"===nextVal&&i&&p?warning(\\\"W076\\\",t,p[0],i):\\\"set\\\"!==nextVal||!i||p&&1===p.length||warning(\\\"W077\\\",t,i);else state.inES6()||warning(\\\"W104\\\",state.tokens.next,\\\"object short notation\\\",\\\"6\\\"),i=propertyName(!0),saveProperty(props,i,state.tokens.next),expression(10);if(countMember(i),\\\",\\\"!==state.tokens.next.id)break;comma({allowTrailing:!0,property:!0}),\\\",\\\"===state.tokens.next.id?warning(\\\"W070\\\",state.tokens.curr):\\\"}\\\"!==state.tokens.next.id||state.inES5()||warning(\\\"W070\\\",state.tokens.curr)}return b&&(indent-=state.option.indent),advance(\\\"}\\\",this),checkProperties(props),this},x.fud=function(){error(\\\"E036\\\",state.tokens.curr)}}(delim(\\\"{\\\"));var conststatement=stmt(\\\"const\\\",function(context){return blockVariableStatement(\\\"const\\\",this,context)});conststatement.exps=!0;var letstatement=stmt(\\\"let\\\",function(context){return blockVariableStatement(\\\"let\\\",this,context)});letstatement.exps=!0;var varstatement=stmt(\\\"var\\\",function(context){var tokens,lone,value,prefix=context&&context.prefix,inexport=context&&context.inexport,implied=context&&context.implied,report=!(context&&context.ignore);for(this.first=[];;){var names=[];_.contains([\\\"{\\\",\\\"[\\\"],state.tokens.next.value)?(tokens=destructuringPattern(),lone=!1):(tokens=[{id:identifier(),token:state.tokens.curr}],lone=!0),prefix&&implied||!report||!state.option.varstmt||warning(\\\"W132\\\",this),this.first=this.first.concat(names);for(var t in tokens)tokens.hasOwnProperty(t)&&(t=tokens[t],!implied&&state.funct[\\\"(global)\\\"]&&(predefined[t.id]===!1?warning(\\\"W079\\\",t.token,t.id):state.option.futurehostile===!1&&(!state.inES5()&&vars.ecmaIdentifiers[5][t.id]===!1||!state.inES6()&&vars.ecmaIdentifiers[6][t.id]===!1)&&warning(\\\"W129\\\",t.token,t.id)),t.id&&(\\\"for\\\"===implied?(state.funct[\\\"(scope)\\\"].has(t.id)||report&&warning(\\\"W088\\\",t.token,t.id),state.funct[\\\"(scope)\\\"].block.use(t.id,t.token)):(state.funct[\\\"(scope)\\\"].addlabel(t.id,{type:\\\"var\\\",token:t.token}),lone&&inexport&&state.funct[\\\"(scope)\\\"].setExported(t.id,t.token)),names.push(t.token)));if(\\\"=\\\"===state.tokens.next.id&&(state.nameStack.set(state.tokens.curr),advance(\\\"=\\\"),prefix||!report||state.funct[\\\"(loopage)\\\"]||\\\"undefined\\\"!==state.tokens.next.id||warning(\\\"W080\\\",state.tokens.prev,state.tokens.prev.value),\\\"=\\\"===peek(0).id&&state.tokens.next.identifier&&(!prefix&&report&&!state.funct[\\\"(params)\\\"]||-1===state.funct[\\\"(params)\\\"].indexOf(state.tokens.next.value))&&warning(\\\"W120\\\",state.tokens.next,state.tokens.next.value),value=expression(prefix?120:10),lone?tokens[0].first=value:destructuringPatternMatch(names,value)),\\\",\\\"!==state.tokens.next.id)break;comma()}return this});varstatement.exps=!0,blockstmt(\\\"class\\\",function(){return classdef.call(this,!0)}),blockstmt(\\\"function\\\",function(context){var inexport=context&&context.inexport,generator=!1;\\\"*\\\"===state.tokens.next.value&&(advance(\\\"*\\\"),state.inES6({strict:!0})?generator=!0:warning(\\\"W119\\\",state.tokens.curr,\\\"function*\\\",\\\"6\\\")),inblock&&warning(\\\"W082\\\",state.tokens.curr);var i=optionalidentifier();return state.funct[\\\"(scope)\\\"].addlabel(i,{type:\\\"function\\\",token:state.tokens.curr}),void 0===i?warning(\\\"W025\\\"):inexport&&state.funct[\\\"(scope)\\\"].setExported(i,state.tokens.prev),doFunction({name:i,statement:this,type:generator?\\\"generator\\\":null,ignoreLoopFunc:inblock}),\\\"(\\\"===state.tokens.next.id&&state.tokens.next.line===state.tokens.curr.line&&error(\\\"E039\\\"),this}),prefix(\\\"function\\\",function(){var generator=!1;\\\"*\\\"===state.tokens.next.value&&(state.inES6()||warning(\\\"W119\\\",state.tokens.curr,\\\"function*\\\",\\\"6\\\"),advance(\\\"*\\\"),generator=!0);var i=optionalidentifier();return doFunction({name:i,type:generator?\\\"generator\\\":null}),this}),blockstmt(\\\"if\\\",function(){var t=state.tokens.next;increaseComplexityCount(),state.condition=!0,advance(\\\"(\\\");var expr=expression(0);checkCondAssignment(expr);var forinifcheck=null;state.option.forin&&state.forinifcheckneeded&&(state.forinifcheckneeded=!1,forinifcheck=state.forinifchecks[state.forinifchecks.length-1],forinifcheck.type=\\\"(punctuator)\\\"===expr.type&&\\\"!\\\"===expr.value?\\\"(negative)\\\":\\\"(positive)\\\"),advance(\\\")\\\",t),state.condition=!1;var s=block(!0,!0);return forinifcheck&&\\\"(negative)\\\"===forinifcheck.type&&s&&s[0]&&\\\"(identifier)\\\"===s[0].type&&\\\"continue\\\"===s[0].value&&(forinifcheck.type=\\\"(negative-with-continue)\\\"),\\\"else\\\"===state.tokens.next.id&&(advance(\\\"else\\\"),\\\"if\\\"===state.tokens.next.id||\\\"switch\\\"===state.tokens.next.id?statement():block(!0,!0)),this}),blockstmt(\\\"try\\\",function(){function doCatch(){if(advance(\\\"catch\\\"),advance(\\\"(\\\"),state.funct[\\\"(scope)\\\"].stack(\\\"catchparams\\\"),checkPunctuators(state.tokens.next,[\\\"[\\\",\\\"{\\\"])){var tokens=destructuringPattern();_.each(tokens,function(token){token.id&&state.funct[\\\"(scope)\\\"].addParam(token.id,token,\\\"exception\\\")})}else\\\"(identifier)\\\"!==state.tokens.next.type?warning(\\\"E030\\\",state.tokens.next,state.tokens.next.value):state.funct[\\\"(scope)\\\"].addParam(identifier(),state.tokens.curr,\\\"exception\\\");\\\"if\\\"===state.tokens.next.value&&(state.inMoz()||warning(\\\"W118\\\",state.tokens.curr,\\\"catch filter\\\"),advance(\\\"if\\\"),expression(0)),advance(\\\")\\\"),block(!1),state.funct[\\\"(scope)\\\"].unstack()}var b;for(block(!0);\\\"catch\\\"===state.tokens.next.id;)increaseComplexityCount(),b&&!state.inMoz()&&warning(\\\"W118\\\",state.tokens.next,\\\"multiple catch blocks\\\"),doCatch(),b=!0;return\\\"finally\\\"===state.tokens.next.id?(advance(\\\"finally\\\"),block(!0),void 0):(b||error(\\\"E021\\\",state.tokens.next,\\\"catch\\\",state.tokens.next.value),this)}),blockstmt(\\\"while\\\",function(){var t=state.tokens.next;return state.funct[\\\"(breakage)\\\"]+=1,state.funct[\\\"(loopage)\\\"]+=1,increaseComplexityCount(),advance(\\\"(\\\"),checkCondAssignment(expression(0)),advance(\\\")\\\",t),block(!0,!0),state.funct[\\\"(breakage)\\\"]-=1,state.funct[\\\"(loopage)\\\"]-=1,this}).labelled=!0,blockstmt(\\\"with\\\",function(){var t=state.tokens.next;return state.isStrict()?error(\\\"E010\\\",state.tokens.curr):state.option.withstmt||warning(\\\"W085\\\",state.tokens.curr),advance(\\\"(\\\"),expression(0),advance(\\\")\\\",t),block(!0,!0),this}),blockstmt(\\\"switch\\\",function(){var t=state.tokens.next,g=!1,noindent=!1;\\nfor(state.funct[\\\"(breakage)\\\"]+=1,advance(\\\"(\\\"),checkCondAssignment(expression(0)),advance(\\\")\\\",t),t=state.tokens.next,advance(\\\"{\\\"),state.tokens.next.from===indent&&(noindent=!0),noindent||(indent+=state.option.indent),this.cases=[];;)switch(state.tokens.next.id){case\\\"case\\\":switch(state.funct[\\\"(verb)\\\"]){case\\\"yield\\\":case\\\"break\\\":case\\\"case\\\":case\\\"continue\\\":case\\\"return\\\":case\\\"switch\\\":case\\\"throw\\\":break;default:state.tokens.curr.caseFallsThrough||warning(\\\"W086\\\",state.tokens.curr,\\\"case\\\")}advance(\\\"case\\\"),this.cases.push(expression(0)),increaseComplexityCount(),g=!0,advance(\\\":\\\"),state.funct[\\\"(verb)\\\"]=\\\"case\\\";break;case\\\"default\\\":switch(state.funct[\\\"(verb)\\\"]){case\\\"yield\\\":case\\\"break\\\":case\\\"continue\\\":case\\\"return\\\":case\\\"throw\\\":break;default:this.cases.length&&(state.tokens.curr.caseFallsThrough||warning(\\\"W086\\\",state.tokens.curr,\\\"default\\\"))}advance(\\\"default\\\"),g=!0,advance(\\\":\\\");break;case\\\"}\\\":return noindent||(indent-=state.option.indent),advance(\\\"}\\\",t),state.funct[\\\"(breakage)\\\"]-=1,state.funct[\\\"(verb)\\\"]=void 0,void 0;case\\\"(end)\\\":return error(\\\"E023\\\",state.tokens.next,\\\"}\\\"),void 0;default:if(indent+=state.option.indent,g)switch(state.tokens.curr.id){case\\\",\\\":return error(\\\"E040\\\"),void 0;case\\\":\\\":g=!1,statements();break;default:return error(\\\"E025\\\",state.tokens.curr),void 0}else{if(\\\":\\\"!==state.tokens.curr.id)return error(\\\"E021\\\",state.tokens.next,\\\"case\\\",state.tokens.next.value),void 0;advance(\\\":\\\"),error(\\\"E024\\\",state.tokens.curr,\\\":\\\"),statements()}indent-=state.option.indent}return this}).labelled=!0,stmt(\\\"debugger\\\",function(){return state.option.debug||warning(\\\"W087\\\",this),this}).exps=!0,function(){var x=stmt(\\\"do\\\",function(){state.funct[\\\"(breakage)\\\"]+=1,state.funct[\\\"(loopage)\\\"]+=1,increaseComplexityCount(),this.first=block(!0,!0),advance(\\\"while\\\");var t=state.tokens.next;return advance(\\\"(\\\"),checkCondAssignment(expression(0)),advance(\\\")\\\",t),state.funct[\\\"(breakage)\\\"]-=1,state.funct[\\\"(loopage)\\\"]-=1,this});x.labelled=!0,x.exps=!0}(),blockstmt(\\\"for\\\",function(){var s,t=state.tokens.next,letscope=!1,foreachtok=null;\\\"each\\\"===t.value&&(foreachtok=t,advance(\\\"each\\\"),state.inMoz()||warning(\\\"W118\\\",state.tokens.curr,\\\"for each\\\")),increaseComplexityCount(),advance(\\\"(\\\");var nextop,comma,initializer,i=0,inof=[\\\"in\\\",\\\"of\\\"],level=0;checkPunctuators(state.tokens.next,[\\\"{\\\",\\\"[\\\"])&&++level;do{if(nextop=peek(i),++i,checkPunctuators(nextop,[\\\"{\\\",\\\"[\\\"])?++level:checkPunctuators(nextop,[\\\"}\\\",\\\"]\\\"])&&--level,0>level)break;0===level&&(!comma&&checkPunctuator(nextop,\\\",\\\")?comma=nextop:!initializer&&checkPunctuator(nextop,\\\"=\\\")&&(initializer=nextop))}while(level>0||!_.contains(inof,nextop.value)&&\\\";\\\"!==nextop.value&&\\\"(end)\\\"!==nextop.type);if(_.contains(inof,nextop.value)){state.inES6()||\\\"of\\\"!==nextop.value||warning(\\\"W104\\\",nextop,\\\"for of\\\",\\\"6\\\");var ok=!(initializer||comma);if(initializer&&error(\\\"W133\\\",comma,nextop.value,\\\"initializer is forbidden\\\"),comma&&error(\\\"W133\\\",comma,nextop.value,\\\"more than one ForBinding\\\"),\\\"var\\\"===state.tokens.next.id?(advance(\\\"var\\\"),state.tokens.curr.fud({prefix:!0})):\\\"let\\\"===state.tokens.next.id||\\\"const\\\"===state.tokens.next.id?(advance(state.tokens.next.id),letscope=!0,state.funct[\\\"(scope)\\\"].stack(),state.tokens.curr.fud({prefix:!0})):Object.create(varstatement).fud({prefix:!0,implied:\\\"for\\\",ignore:!ok}),advance(nextop.value),expression(20),advance(\\\")\\\",t),\\\"in\\\"===nextop.value&&state.option.forin&&(state.forinifcheckneeded=!0,void 0===state.forinifchecks&&(state.forinifchecks=[]),state.forinifchecks.push({type:\\\"(none)\\\"})),state.funct[\\\"(breakage)\\\"]+=1,state.funct[\\\"(loopage)\\\"]+=1,s=block(!0,!0),\\\"in\\\"===nextop.value&&state.option.forin){if(state.forinifchecks&&state.forinifchecks.length>0){var check=state.forinifchecks.pop();(s&&s.length>0&&(\\\"object\\\"!=typeof s[0]||\\\"if\\\"!==s[0].value)||\\\"(positive)\\\"===check.type&&s.length>1||\\\"(negative)\\\"===check.type)&&warning(\\\"W089\\\",this)}state.forinifcheckneeded=!1}state.funct[\\\"(breakage)\\\"]-=1,state.funct[\\\"(loopage)\\\"]-=1}else{if(foreachtok&&error(\\\"E045\\\",foreachtok),\\\";\\\"!==state.tokens.next.id)if(\\\"var\\\"===state.tokens.next.id)advance(\\\"var\\\"),state.tokens.curr.fud();else if(\\\"let\\\"===state.tokens.next.id)advance(\\\"let\\\"),letscope=!0,state.funct[\\\"(scope)\\\"].stack(),state.tokens.curr.fud();else for(;expression(0,\\\"for\\\"),\\\",\\\"===state.tokens.next.id;)comma();if(nolinebreak(state.tokens.curr),advance(\\\";\\\"),state.funct[\\\"(loopage)\\\"]+=1,\\\";\\\"!==state.tokens.next.id&&checkCondAssignment(expression(0)),nolinebreak(state.tokens.curr),advance(\\\";\\\"),\\\";\\\"===state.tokens.next.id&&error(\\\"E021\\\",state.tokens.next,\\\")\\\",\\\";\\\"),\\\")\\\"!==state.tokens.next.id)for(;expression(0,\\\"for\\\"),\\\",\\\"===state.tokens.next.id;)comma();advance(\\\")\\\",t),state.funct[\\\"(breakage)\\\"]+=1,block(!0,!0),state.funct[\\\"(breakage)\\\"]-=1,state.funct[\\\"(loopage)\\\"]-=1}return letscope&&state.funct[\\\"(scope)\\\"].unstack(),this}).labelled=!0,stmt(\\\"break\\\",function(){var v=state.tokens.next.value;return state.option.asi||nolinebreak(this),\\\";\\\"===state.tokens.next.id||state.tokens.next.reach||state.tokens.curr.line!==startLine(state.tokens.next)?0===state.funct[\\\"(breakage)\\\"]&&warning(\\\"W052\\\",state.tokens.next,this.value):(state.funct[\\\"(scope)\\\"].funct.hasBreakLabel(v)||warning(\\\"W090\\\",state.tokens.next,v),this.first=state.tokens.next,advance()),reachable(this),this}).exps=!0,stmt(\\\"continue\\\",function(){var v=state.tokens.next.value;return 0===state.funct[\\\"(breakage)\\\"]&&warning(\\\"W052\\\",state.tokens.next,this.value),state.funct[\\\"(loopage)\\\"]||warning(\\\"W052\\\",state.tokens.next,this.value),state.option.asi||nolinebreak(this),\\\";\\\"===state.tokens.next.id||state.tokens.next.reach||state.tokens.curr.line===startLine(state.tokens.next)&&(state.funct[\\\"(scope)\\\"].funct.hasBreakLabel(v)||warning(\\\"W090\\\",state.tokens.next,v),this.first=state.tokens.next,advance()),reachable(this),this}).exps=!0,stmt(\\\"return\\\",function(){return this.line===startLine(state.tokens.next)?\\\";\\\"===state.tokens.next.id||state.tokens.next.reach||(this.first=expression(0),!this.first||\\\"(punctuator)\\\"!==this.first.type||\\\"=\\\"!==this.first.value||this.first.paren||state.option.boss||warningAt(\\\"W093\\\",this.first.line,this.first.character)):\\\"(punctuator)\\\"===state.tokens.next.type&&[\\\"[\\\",\\\"{\\\",\\\"+\\\",\\\"-\\\"].indexOf(state.tokens.next.value)>-1&&nolinebreak(this),reachable(this),this}).exps=!0,function(x){x.exps=!0,x.lbp=25}(prefix(\\\"yield\\\",function(){var prev=state.tokens.prev;state.inES6(!0)&&!state.funct[\\\"(generator)\\\"]?\\\"(catch)\\\"===state.funct[\\\"(name)\\\"]&&state.funct[\\\"(context)\\\"][\\\"(generator)\\\"]||error(\\\"E046\\\",state.tokens.curr,\\\"yield\\\"):state.inES6()||warning(\\\"W104\\\",state.tokens.curr,\\\"yield\\\",\\\"6\\\"),state.funct[\\\"(generator)\\\"]=\\\"yielded\\\";var delegatingYield=!1;return\\\"*\\\"===state.tokens.next.value&&(delegatingYield=!0,advance(\\\"*\\\")),this.line!==startLine(state.tokens.next)&&state.inMoz()?state.option.asi||nolinebreak(this):((delegatingYield||\\\";\\\"!==state.tokens.next.id&&!state.option.asi&&!state.tokens.next.reach&&state.tokens.next.nud)&&(nobreaknonadjacent(state.tokens.curr,state.tokens.next),this.first=expression(10),\\\"(punctuator)\\\"!==this.first.type||\\\"=\\\"!==this.first.value||this.first.paren||state.option.boss||warningAt(\\\"W093\\\",this.first.line,this.first.character)),state.inMoz()&&\\\")\\\"!==state.tokens.next.id&&(prev.lbp>30||!prev.assign&&!isEndOfExpr()||\\\"yield\\\"===prev.id)&&error(\\\"E050\\\",this)),this})),stmt(\\\"throw\\\",function(){return nolinebreak(this),this.first=expression(20),reachable(this),this}).exps=!0,stmt(\\\"import\\\",function(){if(state.inES6()||warning(\\\"W119\\\",state.tokens.curr,\\\"import\\\",\\\"6\\\"),\\\"(string)\\\"===state.tokens.next.type)return advance(\\\"(string)\\\"),this;if(state.tokens.next.identifier){if(this.name=identifier(),state.funct[\\\"(scope)\\\"].addlabel(this.name,{type:\\\"const\\\",token:state.tokens.curr}),\\\",\\\"!==state.tokens.next.value)return advance(\\\"from\\\"),advance(\\\"(string)\\\"),this;advance(\\\",\\\")}if(\\\"*\\\"===state.tokens.next.id)advance(\\\"*\\\"),advance(\\\"as\\\"),state.tokens.next.identifier&&(this.name=identifier(),state.funct[\\\"(scope)\\\"].addlabel(this.name,{type:\\\"const\\\",token:state.tokens.curr}));else for(advance(\\\"{\\\");;){if(\\\"}\\\"===state.tokens.next.value){advance(\\\"}\\\");break}var importName;if(\\\"default\\\"===state.tokens.next.type?(importName=\\\"default\\\",advance(\\\"default\\\")):importName=identifier(),\\\"as\\\"===state.tokens.next.value&&(advance(\\\"as\\\"),importName=identifier()),state.funct[\\\"(scope)\\\"].addlabel(importName,{type:\\\"const\\\",token:state.tokens.curr}),\\\",\\\"!==state.tokens.next.value){if(\\\"}\\\"===state.tokens.next.value){advance(\\\"}\\\");break}error(\\\"E024\\\",state.tokens.next,state.tokens.next.value);break}advance(\\\",\\\")}return advance(\\\"from\\\"),advance(\\\"(string)\\\"),this}).exps=!0,stmt(\\\"export\\\",function(){var token,identifier,ok=!0;if(state.inES6()||(warning(\\\"W119\\\",state.tokens.curr,\\\"export\\\",\\\"6\\\"),ok=!1),state.funct[\\\"(scope)\\\"].block.isGlobal()||(error(\\\"E053\\\",state.tokens.curr),ok=!1),\\\"*\\\"===state.tokens.next.value)return advance(\\\"*\\\"),advance(\\\"from\\\"),advance(\\\"(string)\\\"),this;if(\\\"default\\\"===state.tokens.next.type){state.nameStack.set(state.tokens.next),advance(\\\"default\\\");var exportType=state.tokens.next.id;return(\\\"function\\\"===exportType||\\\"class\\\"===exportType)&&(this.block=!0),token=peek(),expression(10),identifier=token.value,this.block&&(state.funct[\\\"(scope)\\\"].addlabel(identifier,{type:exportType,token:token}),state.funct[\\\"(scope)\\\"].setExported(identifier,token)),this}if(\\\"{\\\"===state.tokens.next.value){advance(\\\"{\\\");for(var exportedTokens=[];;){if(state.tokens.next.identifier||error(\\\"E030\\\",state.tokens.next,state.tokens.next.value),advance(),exportedTokens.push(state.tokens.curr),\\\"as\\\"===state.tokens.next.value&&(advance(\\\"as\\\"),state.tokens.next.identifier||error(\\\"E030\\\",state.tokens.next,state.tokens.next.value),advance()),\\\",\\\"!==state.tokens.next.value){if(\\\"}\\\"===state.tokens.next.value){advance(\\\"}\\\");break}error(\\\"E024\\\",state.tokens.next,state.tokens.next.value);break}advance(\\\",\\\")}return\\\"from\\\"===state.tokens.next.value?(advance(\\\"from\\\"),advance(\\\"(string)\\\")):ok&&exportedTokens.forEach(function(token){state.funct[\\\"(scope)\\\"].setExported(token.value,token)}),this}if(\\\"var\\\"===state.tokens.next.id)advance(\\\"var\\\"),state.tokens.curr.fud({inexport:!0});else if(\\\"let\\\"===state.tokens.next.id)advance(\\\"let\\\"),state.tokens.curr.fud({inexport:!0});else if(\\\"const\\\"===state.tokens.next.id)advance(\\\"const\\\"),state.tokens.curr.fud({inexport:!0});else if(\\\"function\\\"===state.tokens.next.id)this.block=!0,advance(\\\"function\\\"),state.syntax[\\\"function\\\"].fud({inexport:!0});else if(\\\"class\\\"===state.tokens.next.id){this.block=!0,advance(\\\"class\\\");var classNameToken=state.tokens.next;state.syntax[\\\"class\\\"].fud(),state.funct[\\\"(scope)\\\"].setExported(classNameToken.value,classNameToken)}else error(\\\"E024\\\",state.tokens.next,state.tokens.next.value);return this}).exps=!0,FutureReservedWord(\\\"abstract\\\"),FutureReservedWord(\\\"boolean\\\"),FutureReservedWord(\\\"byte\\\"),FutureReservedWord(\\\"char\\\"),FutureReservedWord(\\\"class\\\",{es5:!0,nud:classdef}),FutureReservedWord(\\\"double\\\"),FutureReservedWord(\\\"enum\\\",{es5:!0}),FutureReservedWord(\\\"export\\\",{es5:!0}),FutureReservedWord(\\\"extends\\\",{es5:!0}),FutureReservedWord(\\\"final\\\"),FutureReservedWord(\\\"float\\\"),FutureReservedWord(\\\"goto\\\"),FutureReservedWord(\\\"implements\\\",{es5:!0,strictOnly:!0}),FutureReservedWord(\\\"import\\\",{es5:!0}),FutureReservedWord(\\\"int\\\"),FutureReservedWord(\\\"interface\\\",{es5:!0,strictOnly:!0}),FutureReservedWord(\\\"long\\\"),FutureReservedWord(\\\"native\\\"),FutureReservedWord(\\\"package\\\",{es5:!0,strictOnly:!0}),FutureReservedWord(\\\"private\\\",{es5:!0,strictOnly:!0}),FutureReservedWord(\\\"protected\\\",{es5:!0,strictOnly:!0}),FutureReservedWord(\\\"public\\\",{es5:!0,strictOnly:!0}),FutureReservedWord(\\\"short\\\"),FutureReservedWord(\\\"static\\\",{es5:!0,strictOnly:!0}),FutureReservedWord(\\\"super\\\",{es5:!0}),FutureReservedWord(\\\"synchronized\\\"),FutureReservedWord(\\\"transient\\\"),FutureReservedWord(\\\"volatile\\\");var lookupBlockType=function(){var pn,pn1,prev,i=-1,bracketStack=0,ret={};checkPunctuators(state.tokens.curr,[\\\"[\\\",\\\"{\\\"])&&(bracketStack+=1);do{if(prev=-1===i?state.tokens.curr:pn,pn=-1===i?state.tokens.next:peek(i),pn1=peek(i+1),i+=1,checkPunctuators(pn,[\\\"[\\\",\\\"{\\\"])?bracketStack+=1:checkPunctuators(pn,[\\\"]\\\",\\\"}\\\"])&&(bracketStack-=1),1===bracketStack&&pn.identifier&&\\\"for\\\"===pn.value&&!checkPunctuator(prev,\\\".\\\")){ret.isCompArray=!0,ret.notJson=!0;break}if(0===bracketStack&&checkPunctuators(pn,[\\\"}\\\",\\\"]\\\"])){if(\\\"=\\\"===pn1.value){ret.isDestAssign=!0,ret.notJson=!0;break}if(\\\".\\\"===pn1.value){ret.notJson=!0;break}}checkPunctuator(pn,\\\";\\\")&&(ret.isBlock=!0,ret.notJson=!0)}while(bracketStack>0&&\\\"(end)\\\"!==pn.id);return ret},arrayComprehension=function(){function declare(v){var l=_current.variables.filter(function(elt){return elt.value===v?(elt.undef=!1,v):void 0}).length;return 0!==l}function use(v){var l=_current.variables.filter(function(elt){return elt.value!==v||elt.undef?void 0:(elt.unused===!0&&(elt.unused=!1),v)}).length;return 0===l}var _current,CompArray=function(){this.mode=\\\"use\\\",this.variables=[]},_carrays=[];return{stack:function(){_current=new CompArray,_carrays.push(_current)},unstack:function(){_current.variables.filter(function(v){v.unused&&warning(\\\"W098\\\",v.token,v.raw_text||v.value),v.undef&&state.funct[\\\"(scope)\\\"].block.use(v.value,v.token)}),_carrays.splice(-1,1),_current=_carrays[_carrays.length-1]},setState:function(s){_.contains([\\\"use\\\",\\\"define\\\",\\\"generate\\\",\\\"filter\\\"],s)&&(_current.mode=s)},check:function(v){return _current?_current&&\\\"use\\\"===_current.mode?(use(v)&&_current.variables.push({funct:state.funct,token:state.tokens.curr,value:v,undef:!0,unused:!1}),!0):_current&&\\\"define\\\"===_current.mode?(declare(v)||_current.variables.push({funct:state.funct,token:state.tokens.curr,value:v,undef:!1,unused:!0}),!0):_current&&\\\"generate\\\"===_current.mode?(state.funct[\\\"(scope)\\\"].block.use(v,state.tokens.curr),!0):_current&&\\\"filter\\\"===_current.mode?(use(v)&&state.funct[\\\"(scope)\\\"].block.use(v,state.tokens.curr),!0):!1:void 0}}},escapeRegex=function(str){return str.replace(/[-\\\\/\\\\\\\\^$*+?.()|[\\\\]{}]/g,\\\"\\\\\\\\$&\\\")},itself=function(s,o,g){function each(obj,cb){obj&&(Array.isArray(obj)||\\\"object\\\"!=typeof obj||(obj=Object.keys(obj)),obj.forEach(cb))}var i,k,x,reIgnoreStr,reIgnore,optionKeys,newOptionObj={},newIgnoredObj={};o=_.clone(o),state.reset(),o&&o.scope?JSHINT.scope=o.scope:(JSHINT.errors=[],JSHINT.undefs=[],JSHINT.internals=[],JSHINT.blacklist={},JSHINT.scope=\\\"(main)\\\"),predefined=Object.create(null),combine(predefined,vars.ecmaIdentifiers[3]),combine(predefined,vars.reservedVars),combine(predefined,g||{}),declared=Object.create(null);var exported=Object.create(null);if(o)for(each(o.predef||null,function(item){var slice,prop;\\\"-\\\"===item[0]?(slice=item.slice(1),JSHINT.blacklist[slice]=slice,delete predefined[slice]):(prop=Object.getOwnPropertyDescriptor(o.predef,item),predefined[item]=prop?prop.value:!1)}),each(o.exported||null,function(item){exported[item]=!0}),delete o.predef,delete o.exported,optionKeys=Object.keys(o),x=0;optionKeys.length>x;x++)if(/^-W\\\\d{3}$/g.test(optionKeys[x]))newIgnoredObj[optionKeys[x].slice(1)]=!0;else{var optionKey=optionKeys[x];newOptionObj[optionKey]=o[optionKey],(\\\"esversion\\\"===optionKey&&5===o[optionKey]||\\\"es5\\\"===optionKey&&o[optionKey])&&warning(\\\"I003\\\"),\\\"newcap\\\"===optionKeys[x]&&o[optionKey]===!1&&(newOptionObj[\\\"(explicitNewcap)\\\"]=!0)}state.option=newOptionObj,state.ignored=newIgnoredObj,state.option.indent=state.option.indent||4,state.option.maxerr=state.option.maxerr||50,indent=1;var scopeManagerInst=scopeManager(state,predefined,exported,declared);if(scopeManagerInst.on(\\\"warning\\\",function(ev){warning.apply(null,[ev.code,ev.token].concat(ev.data))}),scopeManagerInst.on(\\\"error\\\",function(ev){error.apply(null,[ev.code,ev.token].concat(ev.data))}),state.funct=functor(\\\"(global)\\\",null,{\\\"(global)\\\":!0,\\\"(scope)\\\":scopeManagerInst,\\\"(comparray)\\\":arrayComprehension(),\\\"(metrics)\\\":createMetrics(state.tokens.next)}),functions=[state.funct],urls=[],stack=null,member={},membersOnly=null,inblock=!1,lookahead=[],!isString(s)&&!Array.isArray(s))return errorAt(\\\"E004\\\",0),!1;api={get isJSON(){return state.jsonMode},getOption:function(name){return state.option[name]||null},getCache:function(name){return state.cache[name]},setCache:function(name,value){state.cache[name]=value},warn:function(code,data){warningAt.apply(null,[code,data.line,data.char].concat(data.data))},on:function(names,listener){names.split(\\\" \\\").forEach(function(name){emitter.on(name,listener)}.bind(this))}},emitter.removeAllListeners(),(extraModules||[]).forEach(function(func){func(api)}),state.tokens.prev=state.tokens.curr=state.tokens.next=state.syntax[\\\"(begin)\\\"],o&&o.ignoreDelimiters&&(Array.isArray(o.ignoreDelimiters)||(o.ignoreDelimiters=[o.ignoreDelimiters]),o.ignoreDelimiters.forEach(function(delimiterPair){delimiterPair.start&&delimiterPair.end&&(reIgnoreStr=escapeRegex(delimiterPair.start)+\\\"[\\\\\\\\s\\\\\\\\S]*?\\\"+escapeRegex(delimiterPair.end),reIgnore=RegExp(reIgnoreStr,\\\"ig\\\"),s=s.replace(reIgnore,function(match){return match.replace(/./g,\\\" \\\")}))})),lex=new Lexer(s),lex.on(\\\"warning\\\",function(ev){warningAt.apply(null,[ev.code,ev.line,ev.character].concat(ev.data))}),lex.on(\\\"error\\\",function(ev){errorAt.apply(null,[ev.code,ev.line,ev.character].concat(ev.data))}),lex.on(\\\"fatal\\\",function(ev){quit(\\\"E041\\\",ev.line,ev.from)}),lex.on(\\\"Identifier\\\",function(ev){emitter.emit(\\\"Identifier\\\",ev)}),lex.on(\\\"String\\\",function(ev){emitter.emit(\\\"String\\\",ev)}),lex.on(\\\"Number\\\",function(ev){emitter.emit(\\\"Number\\\",ev)}),lex.start();for(var name in o)_.has(o,name)&&checkOption(name,state.tokens.curr);assume(),combine(predefined,g||{}),comma.first=!0;try{switch(advance(),state.tokens.next.id){case\\\"{\\\":case\\\"[\\\":destructuringAssignOrJsonValue();break;default:directives(),state.directive[\\\"use strict\\\"]&&\\\"global\\\"!==state.option.strict&&warning(\\\"W097\\\",state.tokens.prev),statements()}\\\"(end)\\\"!==state.tokens.next.id&&quit(\\\"E041\\\",state.tokens.curr.line),state.funct[\\\"(scope)\\\"].unstack()}catch(err){if(!err||\\\"JSHintError\\\"!==err.name)throw err;var nt=state.tokens.next||{};JSHINT.errors.push({scope:\\\"(main)\\\",raw:err.raw,code:err.code,reason:err.message,line:err.line||nt.line,character:err.character||nt.from},null)}if(\\\"(main)\\\"===JSHINT.scope)for(o=o||{},i=0;JSHINT.internals.length>i;i+=1)k=JSHINT.internals[i],o.scope=k.elem,itself(k.value,o,g);return 0===JSHINT.errors.length};return itself.addModule=function(func){extraModules.push(func)},itself.addModule(style.register),itself.data=function(){var fu,f,i,j,n,globals,data={functions:[],options:state.option};itself.errors.length&&(data.errors=itself.errors),state.jsonMode&&(data.json=!0);var impliedGlobals=state.funct[\\\"(scope)\\\"].getImpliedGlobals();for(impliedGlobals.length>0&&(data.implieds=impliedGlobals),urls.length>0&&(data.urls=urls),globals=state.funct[\\\"(scope)\\\"].getUsedOrDefinedGlobals(),globals.length>0&&(data.globals=globals),i=1;functions.length>i;i+=1){for(f=functions[i],fu={},j=0;functionicity.length>j;j+=1)fu[functionicity[j]]=[];for(j=0;functionicity.length>j;j+=1)0===fu[functionicity[j]].length&&delete fu[functionicity[j]];fu.name=f[\\\"(name)\\\"],fu.param=f[\\\"(params)\\\"],fu.line=f[\\\"(line)\\\"],fu.character=f[\\\"(character)\\\"],fu.last=f[\\\"(last)\\\"],fu.lastcharacter=f[\\\"(lastcharacter)\\\"],fu.metrics={complexity:f[\\\"(metrics)\\\"].ComplexityCount,parameters:f[\\\"(metrics)\\\"].arity,statements:f[\\\"(metrics)\\\"].statementCount},data.functions.push(fu)}var unuseds=state.funct[\\\"(scope)\\\"].getUnuseds();unuseds.length>0&&(data.unused=unuseds);for(n in member)if(\\\"number\\\"==typeof member[n]){data.member=member;break}return data},itself.jshint=itself,itself}();\\\"object\\\"==typeof exports&&exports&&(exports.JSHINT=JSHINT)},{\\\"../lodash\\\":\\\"/node_modules/jshint/lodash.js\\\",\\\"./lex.js\\\":\\\"/node_modules/jshint/src/lex.js\\\",\\\"./messages.js\\\":\\\"/node_modules/jshint/src/messages.js\\\",\\\"./options.js\\\":\\\"/node_modules/jshint/src/options.js\\\",\\\"./reg.js\\\":\\\"/node_modules/jshint/src/reg.js\\\",\\\"./scope-manager.js\\\":\\\"/node_modules/jshint/src/scope-manager.js\\\",\\\"./state.js\\\":\\\"/node_modules/jshint/src/state.js\\\",\\\"./style.js\\\":\\\"/node_modules/jshint/src/style.js\\\",\\\"./vars.js\\\":\\\"/node_modules/jshint/src/vars.js\\\",events:\\\"/node_modules/browserify/node_modules/events/events.js\\\"}],\\\"/node_modules/jshint/src/lex.js\\\":[function(_dereq_,module,exports){\\\"use strict\\\";function asyncTrigger(){var _checks=[];return{push:function(fn){_checks.push(fn)},check:function(){for(var check=0;_checks.length>check;++check)_checks[check]();_checks.splice(0,_checks.length)}}}function Lexer(source){var lines=source;\\\"string\\\"==typeof lines&&(lines=lines.replace(/\\\\r\\\\n/g,\\\"\\\\n\\\").replace(/\\\\r/g,\\\"\\\\n\\\").split(\\\"\\\\n\\\")),lines[0]&&\\\"#!\\\"===lines[0].substr(0,2)&&(-1!==lines[0].indexOf(\\\"node\\\")&&(state.option.node=!0),lines[0]=\\\"\\\"),this.emitter=new events.EventEmitter,this.source=source,this.setLines(lines),this.prereg=!0,this.line=0,this.char=1,this.from=1,this.input=\\\"\\\",this.inComment=!1,this.context=[],this.templateStarts=[];for(var i=0;state.option.indent>i;i+=1)state.tab+=\\\" \\\";this.ignoreLinterErrors=!1}var _=_dereq_(\\\"../lodash\\\"),events=_dereq_(\\\"events\\\"),reg=_dereq_(\\\"./reg.js\\\"),state=_dereq_(\\\"./state.js\\\").state,unicodeData=_dereq_(\\\"../data/ascii-identifier-data.js\\\"),asciiIdentifierStartTable=unicodeData.asciiIdentifierStartTable,asciiIdentifierPartTable=unicodeData.asciiIdentifierPartTable,Token={Identifier:1,Punctuator:2,NumericLiteral:3,StringLiteral:4,Comment:5,Keyword:6,NullLiteral:7,BooleanLiteral:8,RegExp:9,TemplateHead:10,TemplateMiddle:11,TemplateTail:12,NoSubstTemplate:13},Context={Block:1,Template:2};Lexer.prototype={_lines:[],inContext:function(ctxType){return this.context.length>0&&this.context[this.context.length-1].type===ctxType},pushContext:function(ctxType){this.context.push({type:ctxType})},popContext:function(){return this.context.pop()},isContext:function(context){return this.context.length>0&&this.context[this.context.length-1]===context},currentContext:function(){return this.context.length>0&&this.context[this.context.length-1]},getLines:function(){return this._lines=state.lines,this._lines},setLines:function(val){this._lines=val,state.lines=this._lines},peek:function(i){return this.input.charAt(i||0)},skip:function(i){i=i||1,this.char+=i,this.input=this.input.slice(i)},on:function(names,listener){names.split(\\\" \\\").forEach(function(name){this.emitter.on(name,listener)}.bind(this))},trigger:function(){this.emitter.emit.apply(this.emitter,Array.prototype.slice.call(arguments))},triggerAsync:function(type,args,checks,fn){checks.push(function(){fn()&&this.trigger(type,args)}.bind(this))},scanPunctuator:function(){var ch2,ch3,ch4,ch1=this.peek();switch(ch1){case\\\".\\\":if(/^[0-9]$/.test(this.peek(1)))return null;if(\\\".\\\"===this.peek(1)&&\\\".\\\"===this.peek(2))return{type:Token.Punctuator,value:\\\"...\\\"};case\\\"(\\\":case\\\")\\\":case\\\";\\\":case\\\",\\\":case\\\"[\\\":case\\\"]\\\":case\\\":\\\":case\\\"~\\\":case\\\"?\\\":return{type:Token.Punctuator,value:ch1};case\\\"{\\\":return this.pushContext(Context.Block),{type:Token.Punctuator,value:ch1};case\\\"}\\\":return this.inContext(Context.Block)&&this.popContext(),{type:Token.Punctuator,value:ch1};case\\\"#\\\":return{type:Token.Punctuator,value:ch1};case\\\"\\\":return null}return ch2=this.peek(1),ch3=this.peek(2),ch4=this.peek(3),\\\">\\\"===ch1&&\\\">\\\"===ch2&&\\\">\\\"===ch3&&\\\"=\\\"===ch4?{type:Token.Punctuator,value:\\\">>>=\\\"}:\\\"=\\\"===ch1&&\\\"=\\\"===ch2&&\\\"=\\\"===ch3?{type:Token.Punctuator,value:\\\"===\\\"}:\\\"!\\\"===ch1&&\\\"=\\\"===ch2&&\\\"=\\\"===ch3?{type:Token.Punctuator,value:\\\"!==\\\"}:\\\">\\\"===ch1&&\\\">\\\"===ch2&&\\\">\\\"===ch3?{type:Token.Punctuator,value:\\\">>>\\\"}:\\\"<\\\"===ch1&&\\\"<\\\"===ch2&&\\\"=\\\"===ch3?{type:Token.Punctuator,value:\\\"<<=\\\"}:\\\">\\\"===ch1&&\\\">\\\"===ch2&&\\\"=\\\"===ch3?{type:Token.Punctuator,value:\\\">>=\\\"}:\\\"=\\\"===ch1&&\\\">\\\"===ch2?{type:Token.Punctuator,value:ch1+ch2}:ch1===ch2&&\\\"+-<>&|\\\".indexOf(ch1)>=0?{type:Token.Punctuator,value:ch1+ch2}:\\\"<>=!+-*%&|^\\\".indexOf(ch1)>=0?\\\"=\\\"===ch2?{type:Token.Punctuator,value:ch1+ch2}:{type:Token.Punctuator,value:ch1}:\\\"/\\\"===ch1?\\\"=\\\"===ch2?{type:Token.Punctuator,value:\\\"/=\\\"}:{type:Token.Punctuator,value:\\\"/\\\"}:null},scanComments:function(){function commentToken(label,body,opt){var special=[\\\"jshint\\\",\\\"jslint\\\",\\\"members\\\",\\\"member\\\",\\\"globals\\\",\\\"global\\\",\\\"exported\\\"],isSpecial=!1,value=label+body,commentType=\\\"plain\\\";return opt=opt||{},opt.isMultiline&&(value+=\\\"*/\\\"),body=body.replace(/\\\\n/g,\\\" \\\"),\\\"/*\\\"===label&®.fallsThrough.test(body)&&(isSpecial=!0,commentType=\\\"falls through\\\"),special.forEach(function(str){if(!isSpecial&&(\\\"//\\\"!==label||\\\"jshint\\\"===str)&&(\\\" \\\"===body.charAt(str.length)&&body.substr(0,str.length)===str&&(isSpecial=!0,label+=str,body=body.substr(str.length)),isSpecial||\\\" \\\"!==body.charAt(0)||\\\" \\\"!==body.charAt(str.length+1)||body.substr(1,str.length)!==str||(isSpecial=!0,label=label+\\\" \\\"+str,body=body.substr(str.length+1)),isSpecial))switch(str){case\\\"member\\\":commentType=\\\"members\\\";break;case\\\"global\\\":commentType=\\\"globals\\\";break;default:var options=body.split(\\\":\\\").map(function(v){return v.replace(/^\\\\s+/,\\\"\\\").replace(/\\\\s+$/,\\\"\\\")});if(2===options.length)switch(options[0]){case\\\"ignore\\\":switch(options[1]){case\\\"start\\\":self.ignoringLinterErrors=!0,isSpecial=!1;break;case\\\"end\\\":self.ignoringLinterErrors=!1,isSpecial=!1}}commentType=str}}),{type:Token.Comment,commentType:commentType,value:value,body:body,isSpecial:isSpecial,isMultiline:opt.isMultiline||!1,isMalformed:opt.isMalformed||!1}}var ch1=this.peek(),ch2=this.peek(1),rest=this.input.substr(2),startLine=this.line,startChar=this.char,self=this;if(\\\"*\\\"===ch1&&\\\"/\\\"===ch2)return this.trigger(\\\"error\\\",{code:\\\"E018\\\",line:startLine,character:startChar}),this.skip(2),null;if(\\\"/\\\"!==ch1||\\\"*\\\"!==ch2&&\\\"/\\\"!==ch2)return null;if(\\\"/\\\"===ch2)return this.skip(this.input.length),commentToken(\\\"//\\\",rest);var body=\\\"\\\";if(\\\"*\\\"===ch2){for(this.inComment=!0,this.skip(2);\\\"*\\\"!==this.peek()||\\\"/\\\"!==this.peek(1);)if(\\\"\\\"===this.peek()){if(body+=\\\"\\\\n\\\",!this.nextLine())return this.trigger(\\\"error\\\",{code:\\\"E017\\\",line:startLine,character:startChar}),this.inComment=!1,commentToken(\\\"/*\\\",body,{isMultiline:!0,isMalformed:!0})}else body+=this.peek(),this.skip();return this.skip(2),this.inComment=!1,commentToken(\\\"/*\\\",body,{isMultiline:!0})}},scanKeyword:function(){var result=/^[a-zA-Z_$][a-zA-Z0-9_$]*/.exec(this.input),keywords=[\\\"if\\\",\\\"in\\\",\\\"do\\\",\\\"var\\\",\\\"for\\\",\\\"new\\\",\\\"try\\\",\\\"let\\\",\\\"this\\\",\\\"else\\\",\\\"case\\\",\\\"void\\\",\\\"with\\\",\\\"enum\\\",\\\"while\\\",\\\"break\\\",\\\"catch\\\",\\\"throw\\\",\\\"const\\\",\\\"yield\\\",\\\"class\\\",\\\"super\\\",\\\"return\\\",\\\"typeof\\\",\\\"delete\\\",\\\"switch\\\",\\\"export\\\",\\\"import\\\",\\\"default\\\",\\\"finally\\\",\\\"extends\\\",\\\"function\\\",\\\"continue\\\",\\\"debugger\\\",\\\"instanceof\\\"];return result&&keywords.indexOf(result[0])>=0?{type:Token.Keyword,value:result[0]}:null},scanIdentifier:function(){function isNonAsciiIdentifierStart(code){return code>256}function isNonAsciiIdentifierPart(code){return code>256}function isHexDigit(str){return/^[0-9a-fA-F]$/.test(str)}function removeEscapeSequences(id){return id.replace(/\\\\\\\\u([0-9a-fA-F]{4})/g,function(m0,codepoint){return String.fromCharCode(parseInt(codepoint,16))})}var type,char,id=\\\"\\\",index=0,readUnicodeEscapeSequence=function(){if(index+=1,\\\"u\\\"!==this.peek(index))return null;var code,ch1=this.peek(index+1),ch2=this.peek(index+2),ch3=this.peek(index+3),ch4=this.peek(index+4);return isHexDigit(ch1)&&isHexDigit(ch2)&&isHexDigit(ch3)&&isHexDigit(ch4)?(code=parseInt(ch1+ch2+ch3+ch4,16),asciiIdentifierPartTable[code]||isNonAsciiIdentifierPart(code)?(index+=5,\\\"\\\\\\\\u\\\"+ch1+ch2+ch3+ch4):null):null}.bind(this),getIdentifierStart=function(){var chr=this.peek(index),code=chr.charCodeAt(0);return 92===code?readUnicodeEscapeSequence():128>code?asciiIdentifierStartTable[code]?(index+=1,chr):null:isNonAsciiIdentifierStart(code)?(index+=1,chr):null}.bind(this),getIdentifierPart=function(){var chr=this.peek(index),code=chr.charCodeAt(0);return 92===code?readUnicodeEscapeSequence():128>code?asciiIdentifierPartTable[code]?(index+=1,chr):null:isNonAsciiIdentifierPart(code)?(index+=1,chr):null}.bind(this);if(char=getIdentifierStart(),null===char)return null;for(id=char;char=getIdentifierPart(),null!==char;)id+=char;switch(id){case\\\"true\\\":case\\\"false\\\":type=Token.BooleanLiteral;break;case\\\"null\\\":type=Token.NullLiteral;break;default:type=Token.Identifier}return{type:type,value:removeEscapeSequences(id),text:id,tokenLength:id.length}},scanNumericLiteral:function(){function isDecimalDigit(str){return/^[0-9]$/.test(str)}function isOctalDigit(str){return/^[0-7]$/.test(str)}function isBinaryDigit(str){return/^[01]$/.test(str)}function isHexDigit(str){return/^[0-9a-fA-F]$/.test(str)}function isIdentifierStart(ch){return\\\"$\\\"===ch||\\\"_\\\"===ch||\\\"\\\\\\\\\\\"===ch||ch>=\\\"a\\\"&&\\\"z\\\">=ch||ch>=\\\"A\\\"&&\\\"Z\\\">=ch}var bad,index=0,value=\\\"\\\",length=this.input.length,char=this.peek(index),isAllowedDigit=isDecimalDigit,base=10,isLegacy=!1;if(\\\".\\\"!==char&&!isDecimalDigit(char))return null;if(\\\".\\\"!==char){for(value=this.peek(index),index+=1,char=this.peek(index),\\\"0\\\"===value&&((\\\"x\\\"===char||\\\"X\\\"===char)&&(isAllowedDigit=isHexDigit,base=16,index+=1,value+=char),(\\\"o\\\"===char||\\\"O\\\"===char)&&(isAllowedDigit=isOctalDigit,base=8,state.inES6(!0)||this.trigger(\\\"warning\\\",{code:\\\"W119\\\",line:this.line,character:this.char,data:[\\\"Octal integer literal\\\",\\\"6\\\"]}),index+=1,value+=char),(\\\"b\\\"===char||\\\"B\\\"===char)&&(isAllowedDigit=isBinaryDigit,base=2,state.inES6(!0)||this.trigger(\\\"warning\\\",{code:\\\"W119\\\",line:this.line,character:this.char,data:[\\\"Binary integer literal\\\",\\\"6\\\"]}),index+=1,value+=char),isOctalDigit(char)&&(isAllowedDigit=isOctalDigit,base=8,isLegacy=!0,bad=!1,index+=1,value+=char),!isOctalDigit(char)&&isDecimalDigit(char)&&(index+=1,value+=char));length>index;){if(char=this.peek(index),isLegacy&&isDecimalDigit(char))bad=!0;else if(!isAllowedDigit(char))break;value+=char,index+=1}if(isAllowedDigit!==isDecimalDigit)return!isLegacy&&2>=value.length?{type:Token.NumericLiteral,value:value,isMalformed:!0}:length>index&&(char=this.peek(index),isIdentifierStart(char))?null:{type:Token.NumericLiteral,value:value,base:base,isLegacy:isLegacy,isMalformed:!1}}if(\\\".\\\"===char)for(value+=char,index+=1;length>index&&(char=this.peek(index),isDecimalDigit(char));)value+=char,index+=1;if(\\\"e\\\"===char||\\\"E\\\"===char){if(value+=char,index+=1,char=this.peek(index),(\\\"+\\\"===char||\\\"-\\\"===char)&&(value+=this.peek(index),index+=1),char=this.peek(index),!isDecimalDigit(char))return null;for(value+=char,index+=1;length>index&&(char=this.peek(index),isDecimalDigit(char));)value+=char,index+=1}return length>index&&(char=this.peek(index),isIdentifierStart(char))?null:{type:Token.NumericLiteral,value:value,base:base,isMalformed:!isFinite(value)}},scanEscapeSequence:function(checks){var allowNewLine=!1,jump=1;this.skip();var char=this.peek();switch(char){case\\\"'\\\":this.triggerAsync(\\\"warning\\\",{code:\\\"W114\\\",line:this.line,character:this.char,data:[\\\"\\\\\\\\'\\\"]},checks,function(){return state.jsonMode});break;case\\\"b\\\":char=\\\"\\\\\\\\b\\\";break;case\\\"f\\\":char=\\\"\\\\\\\\f\\\";break;case\\\"n\\\":char=\\\"\\\\\\\\n\\\";break;case\\\"r\\\":char=\\\"\\\\\\\\r\\\";break;case\\\"t\\\":char=\\\"\\\\\\\\t\\\";break;case\\\"0\\\":char=\\\"\\\\\\\\0\\\";var n=parseInt(this.peek(1),10);this.triggerAsync(\\\"warning\\\",{code:\\\"W115\\\",line:this.line,character:this.char},checks,function(){return n>=0&&7>=n&&state.isStrict()});break;case\\\"u\\\":var hexCode=this.input.substr(1,4),code=parseInt(hexCode,16);isNaN(code)&&this.trigger(\\\"warning\\\",{code:\\\"W052\\\",line:this.line,character:this.char,data:[\\\"u\\\"+hexCode]}),char=String.fromCharCode(code),jump=5;break;case\\\"v\\\":this.triggerAsync(\\\"warning\\\",{code:\\\"W114\\\",line:this.line,character:this.char,data:[\\\"\\\\\\\\v\\\"]},checks,function(){return state.jsonMode}),char=\\\"\\u000b\\\";break;case\\\"x\\\":var x=parseInt(this.input.substr(1,2),16);this.triggerAsync(\\\"warning\\\",{code:\\\"W114\\\",line:this.line,character:this.char,data:[\\\"\\\\\\\\x-\\\"]},checks,function(){return state.jsonMode}),char=String.fromCharCode(x),jump=3;break;case\\\"\\\\\\\\\\\":char=\\\"\\\\\\\\\\\\\\\\\\\";break;case'\\\"':char='\\\\\\\\\\\"';break;case\\\"/\\\":break;case\\\"\\\":allowNewLine=!0,char=\\\"\\\"}return{\\\"char\\\":char,jump:jump,allowNewLine:allowNewLine}},scanTemplateLiteral:function(checks){var tokenType,ch,value=\\\"\\\",startLine=this.line,startChar=this.char,depth=this.templateStarts.length;if(!state.inES6(!0))return null;if(\\\"`\\\"===this.peek())tokenType=Token.TemplateHead,this.templateStarts.push({line:this.line,\\\"char\\\":this.char}),depth=this.templateStarts.length,this.skip(1),this.pushContext(Context.Template);else{if(!this.inContext(Context.Template)||\\\"}\\\"!==this.peek())return null;tokenType=Token.TemplateMiddle}for(;\\\"`\\\"!==this.peek();){for(;\\\"\\\"===(ch=this.peek());)if(value+=\\\"\\\\n\\\",!this.nextLine()){var startPos=this.templateStarts.pop();return this.trigger(\\\"error\\\",{code:\\\"E052\\\",line:startPos.line,character:startPos.char}),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!0,depth:depth,context:this.popContext()}}if(\\\"$\\\"===ch&&\\\"{\\\"===this.peek(1))return value+=\\\"${\\\",this.skip(2),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,depth:depth,context:this.currentContext()};\\nif(\\\"\\\\\\\\\\\"===ch){var escape=this.scanEscapeSequence(checks);value+=escape.char,this.skip(escape.jump)}else\\\"`\\\"!==ch&&(value+=ch,this.skip(1))}return tokenType=tokenType===Token.TemplateHead?Token.NoSubstTemplate:Token.TemplateTail,this.skip(1),this.templateStarts.pop(),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,depth:depth,context:this.popContext()}},scanStringLiteral:function(checks){var quote=this.peek();if('\\\"'!==quote&&\\\"'\\\"!==quote)return null;this.triggerAsync(\\\"warning\\\",{code:\\\"W108\\\",line:this.line,character:this.char},checks,function(){return state.jsonMode&&'\\\"'!==quote});var value=\\\"\\\",startLine=this.line,startChar=this.char,allowNewLine=!1;for(this.skip();this.peek()!==quote;)if(\\\"\\\"===this.peek()){if(allowNewLine?(allowNewLine=!1,this.triggerAsync(\\\"warning\\\",{code:\\\"W043\\\",line:this.line,character:this.char},checks,function(){return!state.option.multistr}),this.triggerAsync(\\\"warning\\\",{code:\\\"W042\\\",line:this.line,character:this.char},checks,function(){return state.jsonMode&&state.option.multistr})):this.trigger(\\\"warning\\\",{code:\\\"W112\\\",line:this.line,character:this.char}),!this.nextLine())return this.trigger(\\\"error\\\",{code:\\\"E029\\\",line:startLine,character:startChar}),{type:Token.StringLiteral,value:value,startLine:startLine,startChar:startChar,isUnclosed:!0,quote:quote}}else{allowNewLine=!1;var char=this.peek(),jump=1;if(\\\" \\\">char&&this.trigger(\\\"warning\\\",{code:\\\"W113\\\",line:this.line,character:this.char,data:[\\\"\\\"]}),\\\"\\\\\\\\\\\"===char){var parsed=this.scanEscapeSequence(checks);char=parsed.char,jump=parsed.jump,allowNewLine=parsed.allowNewLine}value+=char,this.skip(jump)}return this.skip(),{type:Token.StringLiteral,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,quote:quote}},scanRegExp:function(){var terminated,index=0,length=this.input.length,char=this.peek(),value=char,body=\\\"\\\",flags=[],malformed=!1,isCharSet=!1,scanUnexpectedChars=function(){\\\" \\\">char&&(malformed=!0,this.trigger(\\\"warning\\\",{code:\\\"W048\\\",line:this.line,character:this.char})),\\\"<\\\"===char&&(malformed=!0,this.trigger(\\\"warning\\\",{code:\\\"W049\\\",line:this.line,character:this.char,data:[char]}))}.bind(this);if(!this.prereg||\\\"/\\\"!==char)return null;for(index+=1,terminated=!1;length>index;)if(char=this.peek(index),value+=char,body+=char,isCharSet)\\\"]\\\"===char&&(\\\"\\\\\\\\\\\"!==this.peek(index-1)||\\\"\\\\\\\\\\\"===this.peek(index-2))&&(isCharSet=!1),\\\"\\\\\\\\\\\"===char&&(index+=1,char=this.peek(index),body+=char,value+=char,scanUnexpectedChars()),index+=1;else{if(\\\"\\\\\\\\\\\"===char){if(index+=1,char=this.peek(index),body+=char,value+=char,scanUnexpectedChars(),\\\"/\\\"===char){index+=1;continue}if(\\\"[\\\"===char){index+=1;continue}}if(\\\"[\\\"!==char){if(\\\"/\\\"===char){body=body.substr(0,body.length-1),terminated=!0,index+=1;break}index+=1}else isCharSet=!0,index+=1}if(!terminated)return this.trigger(\\\"error\\\",{code:\\\"E015\\\",line:this.line,character:this.from}),void this.trigger(\\\"fatal\\\",{line:this.line,from:this.from});for(;length>index&&(char=this.peek(index),/[gim]/.test(char));)flags.push(char),value+=char,index+=1;try{RegExp(body,flags.join(\\\"\\\"))}catch(err){malformed=!0,this.trigger(\\\"error\\\",{code:\\\"E016\\\",line:this.line,character:this.char,data:[err.message]})}return{type:Token.RegExp,value:value,flags:flags,isMalformed:malformed}},scanNonBreakingSpaces:function(){return state.option.nonbsp?this.input.search(/(\\\\u00A0)/):-1},scanUnsafeChars:function(){return this.input.search(reg.unsafeChars)},next:function(checks){this.from=this.char;var start;if(/\\\\s/.test(this.peek()))for(start=this.char;/\\\\s/.test(this.peek());)this.from+=1,this.skip();var match=this.scanComments()||this.scanStringLiteral(checks)||this.scanTemplateLiteral(checks);return match?match:(match=this.scanRegExp()||this.scanPunctuator()||this.scanKeyword()||this.scanIdentifier()||this.scanNumericLiteral(),match?(this.skip(match.tokenLength||match.value.length),match):null)},nextLine:function(){var char;if(this.line>=this.getLines().length)return!1;this.input=this.getLines()[this.line],this.line+=1,this.char=1,this.from=1;var inputTrimmed=this.input.trim(),startsWith=function(){return _.some(arguments,function(prefix){return 0===inputTrimmed.indexOf(prefix)})},endsWith=function(){return _.some(arguments,function(suffix){return-1!==inputTrimmed.indexOf(suffix,inputTrimmed.length-suffix.length)})};if(this.ignoringLinterErrors===!0&&(startsWith(\\\"/*\\\",\\\"//\\\")||this.inComment&&endsWith(\\\"*/\\\")||(this.input=\\\"\\\")),char=this.scanNonBreakingSpaces(),char>=0&&this.trigger(\\\"warning\\\",{code:\\\"W125\\\",line:this.line,character:char+1}),this.input=this.input.replace(/\\\\t/g,state.tab),char=this.scanUnsafeChars(),char>=0&&this.trigger(\\\"warning\\\",{code:\\\"W100\\\",line:this.line,character:char}),!this.ignoringLinterErrors&&state.option.maxlen&&state.option.maxlen=0;--i){var scopeLabels=_scopeStack[i][\\\"(labels)\\\"];if(scopeLabels[labelName])return scopeLabels}}function usedSoFarInCurrentFunction(labelName){for(var i=_scopeStack.length-1;i>=0;i--){var current=_scopeStack[i];if(current[\\\"(usages)\\\"][labelName])return current[\\\"(usages)\\\"][labelName];if(current===_currentFunctBody)break}return!1}function _checkOuterShadow(labelName,token){if(\\\"outer\\\"===state.option.shadow)for(var isGlobal=\\\"global\\\"===_currentFunctBody[\\\"(type)\\\"],isNewFunction=\\\"functionparams\\\"===_current[\\\"(type)\\\"],outsideCurrentFunction=!isGlobal,i=0;_scopeStack.length>i;i++){var stackItem=_scopeStack[i];isNewFunction||_scopeStack[i+1]!==_currentFunctBody||(outsideCurrentFunction=!1),outsideCurrentFunction&&stackItem[\\\"(labels)\\\"][labelName]&&warning(\\\"W123\\\",token,labelName),stackItem[\\\"(breakLabels)\\\"][labelName]&&warning(\\\"W123\\\",token,labelName)}}function _latedefWarning(type,labelName,token){state.option.latedef&&(state.option.latedef===!0&&\\\"function\\\"===type||\\\"function\\\"!==type)&&warning(\\\"W003\\\",token,labelName)}var _current,_scopeStack=[];_newScope(\\\"global\\\"),_current[\\\"(predefined)\\\"]=predefined;var _currentFunctBody=_current,usedPredefinedAndGlobals=Object.create(null),impliedGlobals=Object.create(null),unuseds=[],emitter=new events.EventEmitter,_getUnusedOption=function(unused_opt){return void 0===unused_opt&&(unused_opt=state.option.unused),unused_opt===!0&&(unused_opt=\\\"last-param\\\"),unused_opt},_warnUnused=function(name,tkn,type,unused_opt){var line=tkn.line,chr=tkn.from,raw_name=tkn.raw_text||name;unused_opt=_getUnusedOption(unused_opt);var warnable_types={vars:[\\\"var\\\"],\\\"last-param\\\":[\\\"var\\\",\\\"param\\\"],strict:[\\\"var\\\",\\\"param\\\",\\\"last-param\\\"]};unused_opt&&warnable_types[unused_opt]&&-1!==warnable_types[unused_opt].indexOf(type)&&warning(\\\"W098\\\",{line:line,from:chr},raw_name),(unused_opt||\\\"var\\\"===type)&&unuseds.push({name:name,line:line,character:chr})},scopeManagerInst={on:function(names,listener){names.split(\\\" \\\").forEach(function(name){emitter.on(name,listener)})},isPredefined:function(labelName){return!this.has(labelName)&&_.has(_scopeStack[0][\\\"(predefined)\\\"],labelName)},stack:function(type){var previousScope=_current;_newScope(type),type||\\\"functionparams\\\"!==previousScope[\\\"(type)\\\"]||(_current[\\\"(isFuncBody)\\\"]=!0,_current[\\\"(context)\\\"]=_currentFunctBody,_currentFunctBody=_current)},unstack:function(){var i,j,subScope=_scopeStack.length>1?_scopeStack[_scopeStack.length-2]:null,isUnstackingFunctionBody=_current===_currentFunctBody,isUnstackingFunctionParams=\\\"functionparams\\\"===_current[\\\"(type)\\\"],isUnstackingFunctionOuter=\\\"functionouter\\\"===_current[\\\"(type)\\\"],currentUsages=_current[\\\"(usages)\\\"],currentLabels=_current[\\\"(labels)\\\"],usedLabelNameList=Object.keys(currentUsages);for(currentUsages.__proto__&&-1===usedLabelNameList.indexOf(\\\"__proto__\\\")&&usedLabelNameList.push(\\\"__proto__\\\"),i=0;usedLabelNameList.length>i;i++){var usedLabelName=usedLabelNameList[i],usage=currentUsages[usedLabelName],usedLabel=currentLabels[usedLabelName];if(usedLabel){var usedLabelType=usedLabel[\\\"(type)\\\"];if(usedLabel[\\\"(useOutsideOfScope)\\\"]&&!state.option.funcscope){var usedTokens=usage[\\\"(tokens)\\\"];if(usedTokens)for(j=0;usedTokens.length>j;j++)usedLabel[\\\"(function)\\\"]===usedTokens[j][\\\"(function)\\\"]&&error(\\\"W038\\\",usedTokens[j],usedLabelName)}if(_current[\\\"(labels)\\\"][usedLabelName][\\\"(unused)\\\"]=!1,\\\"const\\\"===usedLabelType&&usage[\\\"(modified)\\\"])for(j=0;usage[\\\"(modified)\\\"].length>j;j++)error(\\\"E013\\\",usage[\\\"(modified)\\\"][j],usedLabelName);if((\\\"function\\\"===usedLabelType||\\\"class\\\"===usedLabelType)&&usage[\\\"(reassigned)\\\"])for(j=0;usage[\\\"(reassigned)\\\"].length>j;j++)error(\\\"W021\\\",usage[\\\"(reassigned)\\\"][j],usedLabelName,usedLabelType)}else if(isUnstackingFunctionOuter&&(state.funct[\\\"(isCapturing)\\\"]=!0),subScope)if(subScope[\\\"(usages)\\\"][usedLabelName]){var subScopeUsage=subScope[\\\"(usages)\\\"][usedLabelName];subScopeUsage[\\\"(modified)\\\"]=subScopeUsage[\\\"(modified)\\\"].concat(usage[\\\"(modified)\\\"]),subScopeUsage[\\\"(tokens)\\\"]=subScopeUsage[\\\"(tokens)\\\"].concat(usage[\\\"(tokens)\\\"]),subScopeUsage[\\\"(reassigned)\\\"]=subScopeUsage[\\\"(reassigned)\\\"].concat(usage[\\\"(reassigned)\\\"]),subScopeUsage[\\\"(onlyUsedSubFunction)\\\"]=!1}else subScope[\\\"(usages)\\\"][usedLabelName]=usage,isUnstackingFunctionBody&&(subScope[\\\"(usages)\\\"][usedLabelName][\\\"(onlyUsedSubFunction)\\\"]=!0);else if(\\\"boolean\\\"==typeof _current[\\\"(predefined)\\\"][usedLabelName]){if(delete declared[usedLabelName],usedPredefinedAndGlobals[usedLabelName]=marker,_current[\\\"(predefined)\\\"][usedLabelName]===!1&&usage[\\\"(reassigned)\\\"])for(j=0;usage[\\\"(reassigned)\\\"].length>j;j++)warning(\\\"W020\\\",usage[\\\"(reassigned)\\\"][j])}else if(usage[\\\"(tokens)\\\"])for(j=0;usage[\\\"(tokens)\\\"].length>j;j++){var undefinedToken=usage[\\\"(tokens)\\\"][j];undefinedToken.forgiveUndef||(state.option.undef&&!undefinedToken.ignoreUndef&&warning(\\\"W117\\\",undefinedToken,usedLabelName),impliedGlobals[usedLabelName]?impliedGlobals[usedLabelName].line.push(undefinedToken.line):impliedGlobals[usedLabelName]={name:usedLabelName,line:[undefinedToken.line]})}}if(subScope||Object.keys(declared).forEach(function(labelNotUsed){_warnUnused(labelNotUsed,declared[labelNotUsed],\\\"var\\\")}),subScope&&!isUnstackingFunctionBody&&!isUnstackingFunctionParams&&!isUnstackingFunctionOuter){var labelNames=Object.keys(currentLabels);for(i=0;labelNames.length>i;i++){var defLabelName=labelNames[i];currentLabels[defLabelName][\\\"(blockscoped)\\\"]||\\\"exception\\\"===currentLabels[defLabelName][\\\"(type)\\\"]||this.funct.has(defLabelName,{excludeCurrent:!0})||(subScope[\\\"(labels)\\\"][defLabelName]=currentLabels[defLabelName],\\\"global\\\"!==_currentFunctBody[\\\"(type)\\\"]&&(subScope[\\\"(labels)\\\"][defLabelName][\\\"(useOutsideOfScope)\\\"]=!0),delete currentLabels[defLabelName])}}_checkForUnused(),_scopeStack.pop(),isUnstackingFunctionBody&&(_currentFunctBody=_scopeStack[_.findLastIndex(_scopeStack,function(scope){return scope[\\\"(isFuncBody)\\\"]||\\\"global\\\"===scope[\\\"(type)\\\"]})]),_current=subScope},addParam:function(labelName,token,type){if(type=type||\\\"param\\\",\\\"exception\\\"===type){var previouslyDefinedLabelType=this.funct.labeltype(labelName);previouslyDefinedLabelType&&\\\"exception\\\"!==previouslyDefinedLabelType&&(state.option.node||warning(\\\"W002\\\",state.tokens.next,labelName))}if(_.has(_current[\\\"(labels)\\\"],labelName)?_current[\\\"(labels)\\\"][labelName].duplicated=!0:(_checkOuterShadow(labelName,token,type),_current[\\\"(labels)\\\"][labelName]={\\\"(type)\\\":type,\\\"(token)\\\":token,\\\"(unused)\\\":!0},_current[\\\"(params)\\\"].push(labelName)),_.has(_current[\\\"(usages)\\\"],labelName)){var usage=_current[\\\"(usages)\\\"][labelName];usage[\\\"(onlyUsedSubFunction)\\\"]?_latedefWarning(type,labelName,token):warning(\\\"E056\\\",token,labelName,type)}},validateParams:function(){if(\\\"global\\\"!==_currentFunctBody[\\\"(type)\\\"]){var isStrict=state.isStrict(),currentFunctParamScope=_currentFunctBody[\\\"(parent)\\\"];currentFunctParamScope[\\\"(params)\\\"]&¤tFunctParamScope[\\\"(params)\\\"].forEach(function(labelName){var label=currentFunctParamScope[\\\"(labels)\\\"][labelName];label&&label.duplicated&&(isStrict?warning(\\\"E011\\\",label[\\\"(token)\\\"],labelName):state.option.shadow!==!0&&warning(\\\"W004\\\",label[\\\"(token)\\\"],labelName))})}},getUsedOrDefinedGlobals:function(){var list=Object.keys(usedPredefinedAndGlobals);return usedPredefinedAndGlobals.__proto__===marker&&-1===list.indexOf(\\\"__proto__\\\")&&list.push(\\\"__proto__\\\"),list},getImpliedGlobals:function(){var values=_.values(impliedGlobals),hasProto=!1;return impliedGlobals.__proto__&&(hasProto=values.some(function(value){return\\\"__proto__\\\"===value.name}),hasProto||values.push(impliedGlobals.__proto__)),values},getUnuseds:function(){return unuseds},has:function(labelName){return Boolean(_getLabel(labelName))},labeltype:function(labelName){var scopeLabels=_getLabel(labelName);return scopeLabels?scopeLabels[labelName][\\\"(type)\\\"]:null},addExported:function(labelName){var globalLabels=_scopeStack[0][\\\"(labels)\\\"];if(_.has(declared,labelName))delete declared[labelName];else if(_.has(globalLabels,labelName))globalLabels[labelName][\\\"(unused)\\\"]=!1;else{for(var i=1;_scopeStack.length>i;i++){var scope=_scopeStack[i];if(scope[\\\"(type)\\\"])break;if(_.has(scope[\\\"(labels)\\\"],labelName)&&!scope[\\\"(labels)\\\"][labelName][\\\"(blockscoped)\\\"])return scope[\\\"(labels)\\\"][labelName][\\\"(unused)\\\"]=!1,void 0}exported[labelName]=!0}},setExported:function(labelName,token){this.block.use(labelName,token)\\n},addlabel:function(labelName,opts){var type=opts.type,token=opts.token,isblockscoped=\\\"let\\\"===type||\\\"const\\\"===type||\\\"class\\\"===type,isexported=\\\"global\\\"===(isblockscoped?_current:_currentFunctBody)[\\\"(type)\\\"]&&_.has(exported,labelName);if(_checkOuterShadow(labelName,token,type),isblockscoped){var declaredInCurrentScope=_current[\\\"(labels)\\\"][labelName];if(declaredInCurrentScope||_current!==_currentFunctBody||\\\"global\\\"===_current[\\\"(type)\\\"]||(declaredInCurrentScope=!!_currentFunctBody[\\\"(parent)\\\"][\\\"(labels)\\\"][labelName]),!declaredInCurrentScope&&_current[\\\"(usages)\\\"][labelName]){var usage=_current[\\\"(usages)\\\"][labelName];usage[\\\"(onlyUsedSubFunction)\\\"]?_latedefWarning(type,labelName,token):warning(\\\"E056\\\",token,labelName,type)}declaredInCurrentScope?warning(\\\"E011\\\",token,labelName):\\\"outer\\\"===state.option.shadow&&scopeManagerInst.funct.has(labelName)&&warning(\\\"W004\\\",token,labelName),scopeManagerInst.block.add(labelName,type,token,!isexported)}else{var declaredInCurrentFunctionScope=scopeManagerInst.funct.has(labelName);!declaredInCurrentFunctionScope&&usedSoFarInCurrentFunction(labelName)&&_latedefWarning(type,labelName,token),scopeManagerInst.funct.has(labelName,{onlyBlockscoped:!0})?warning(\\\"E011\\\",token,labelName):state.option.shadow!==!0&&declaredInCurrentFunctionScope&&\\\"__proto__\\\"!==labelName&&\\\"global\\\"!==_currentFunctBody[\\\"(type)\\\"]&&warning(\\\"W004\\\",token,labelName),scopeManagerInst.funct.add(labelName,type,token,!isexported),\\\"global\\\"===_currentFunctBody[\\\"(type)\\\"]&&(usedPredefinedAndGlobals[labelName]=marker)}},funct:{labeltype:function(labelName,options){for(var onlyBlockscoped=options&&options.onlyBlockscoped,excludeParams=options&&options.excludeParams,currentScopeIndex=_scopeStack.length-(options&&options.excludeCurrent?2:1),i=currentScopeIndex;i>=0;i--){var current=_scopeStack[i];if(current[\\\"(labels)\\\"][labelName]&&(!onlyBlockscoped||current[\\\"(labels)\\\"][labelName][\\\"(blockscoped)\\\"]))return current[\\\"(labels)\\\"][labelName][\\\"(type)\\\"];var scopeCheck=excludeParams?_scopeStack[i-1]:current;if(scopeCheck&&\\\"functionparams\\\"===scopeCheck[\\\"(type)\\\"])return null}return null},hasBreakLabel:function(labelName){for(var i=_scopeStack.length-1;i>=0;i--){var current=_scopeStack[i];if(current[\\\"(breakLabels)\\\"][labelName])return!0;if(\\\"functionparams\\\"===current[\\\"(type)\\\"])return!1}return!1},has:function(labelName,options){return Boolean(this.labeltype(labelName,options))},add:function(labelName,type,tok,unused){_current[\\\"(labels)\\\"][labelName]={\\\"(type)\\\":type,\\\"(token)\\\":tok,\\\"(blockscoped)\\\":!1,\\\"(function)\\\":_currentFunctBody,\\\"(unused)\\\":unused}}},block:{isGlobal:function(){return\\\"global\\\"===_current[\\\"(type)\\\"]},use:function(labelName,token){var paramScope=_currentFunctBody[\\\"(parent)\\\"];paramScope&¶mScope[\\\"(labels)\\\"][labelName]&&\\\"param\\\"===paramScope[\\\"(labels)\\\"][labelName][\\\"(type)\\\"]&&(scopeManagerInst.funct.has(labelName,{excludeParams:!0,onlyBlockscoped:!0})||(paramScope[\\\"(labels)\\\"][labelName][\\\"(unused)\\\"]=!1)),token&&(state.ignored.W117||state.option.undef===!1)&&(token.ignoreUndef=!0),_setupUsages(labelName),token&&(token[\\\"(function)\\\"]=_currentFunctBody,_current[\\\"(usages)\\\"][labelName][\\\"(tokens)\\\"].push(token))},reassign:function(labelName,token){this.modify(labelName,token),_current[\\\"(usages)\\\"][labelName][\\\"(reassigned)\\\"].push(token)},modify:function(labelName,token){_setupUsages(labelName),_current[\\\"(usages)\\\"][labelName][\\\"(modified)\\\"].push(token)},add:function(labelName,type,tok,unused){_current[\\\"(labels)\\\"][labelName]={\\\"(type)\\\":type,\\\"(token)\\\":tok,\\\"(blockscoped)\\\":!0,\\\"(unused)\\\":unused}},addBreakLabel:function(labelName,opts){var token=opts.token;scopeManagerInst.funct.hasBreakLabel(labelName)?warning(\\\"E011\\\",token,labelName):\\\"outer\\\"===state.option.shadow&&(scopeManagerInst.funct.has(labelName)?warning(\\\"W004\\\",token,labelName):_checkOuterShadow(labelName,token)),_current[\\\"(breakLabels)\\\"][labelName]=token}}};return scopeManagerInst};module.exports=scopeManager},{\\\"../lodash\\\":\\\"/node_modules/jshint/lodash.js\\\",events:\\\"/node_modules/browserify/node_modules/events/events.js\\\"}],\\\"/node_modules/jshint/src/state.js\\\":[function(_dereq_,module,exports){\\\"use strict\\\";var NameStack=_dereq_(\\\"./name-stack.js\\\"),state={syntax:{},isStrict:function(){return this.directive[\\\"use strict\\\"]||this.inClassBody||this.option.module||\\\"implied\\\"===this.option.strict},inMoz:function(){return this.option.moz},inES6:function(){return this.option.moz||this.option.esversion>=6},inES5:function(strict){return strict?!(this.option.esversion&&5!==this.option.esversion||this.option.moz):!this.option.esversion||this.option.esversion>=5||this.option.moz},reset:function(){this.tokens={prev:null,next:null,curr:null},this.option={},this.funct=null,this.ignored={},this.directive={},this.jsonMode=!1,this.jsonWarnings=[],this.lines=[],this.tab=\\\"\\\",this.cache={},this.ignoredLines={},this.forinifcheckneeded=!1,this.nameStack=new NameStack,this.inClassBody=!1}};exports.state=state},{\\\"./name-stack.js\\\":\\\"/node_modules/jshint/src/name-stack.js\\\"}],\\\"/node_modules/jshint/src/style.js\\\":[function(_dereq_,module,exports){\\\"use strict\\\";exports.register=function(linter){linter.on(\\\"Identifier\\\",function(data){linter.getOption(\\\"proto\\\")||\\\"__proto__\\\"===data.name&&linter.warn(\\\"W103\\\",{line:data.line,\\\"char\\\":data.char,data:[data.name,\\\"6\\\"]})}),linter.on(\\\"Identifier\\\",function(data){linter.getOption(\\\"iterator\\\")||\\\"__iterator__\\\"===data.name&&linter.warn(\\\"W103\\\",{line:data.line,\\\"char\\\":data.char,data:[data.name]})}),linter.on(\\\"Identifier\\\",function(data){linter.getOption(\\\"camelcase\\\")&&data.name.replace(/^_+|_+$/g,\\\"\\\").indexOf(\\\"_\\\")>-1&&!data.name.match(/^[A-Z0-9_]*$/)&&linter.warn(\\\"W106\\\",{line:data.line,\\\"char\\\":data.from,data:[data.name]})}),linter.on(\\\"String\\\",function(data){var code,quotmark=linter.getOption(\\\"quotmark\\\");quotmark&&(\\\"single\\\"===quotmark&&\\\"'\\\"!==data.quote&&(code=\\\"W109\\\"),\\\"double\\\"===quotmark&&'\\\"'!==data.quote&&(code=\\\"W108\\\"),quotmark===!0&&(linter.getCache(\\\"quotmark\\\")||linter.setCache(\\\"quotmark\\\",data.quote),linter.getCache(\\\"quotmark\\\")!==data.quote&&(code=\\\"W110\\\")),code&&linter.warn(code,{line:data.line,\\\"char\\\":data.char}))}),linter.on(\\\"Number\\\",function(data){\\\".\\\"===data.value.charAt(0)&&linter.warn(\\\"W008\\\",{line:data.line,\\\"char\\\":data.char,data:[data.value]}),\\\".\\\"===data.value.substr(data.value.length-1)&&linter.warn(\\\"W047\\\",{line:data.line,\\\"char\\\":data.char,data:[data.value]}),/^00+/.test(data.value)&&linter.warn(\\\"W046\\\",{line:data.line,\\\"char\\\":data.char,data:[data.value]})}),linter.on(\\\"String\\\",function(data){var re=/^(?:javascript|jscript|ecmascript|vbscript|livescript)\\\\s*:/i;linter.getOption(\\\"scripturl\\\")||re.test(data.value)&&linter.warn(\\\"W107\\\",{line:data.line,\\\"char\\\":data.char})})}},{}],\\\"/node_modules/jshint/src/vars.js\\\":[function(_dereq_,module,exports){\\\"use strict\\\";exports.reservedVars={arguments:!1,NaN:!1},exports.ecmaIdentifiers={3:{Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},5:{JSON:!1},6:{Map:!1,Promise:!1,Proxy:!1,Reflect:!1,Set:!1,Symbol:!1,WeakMap:!1,WeakSet:!1}},exports.browser={Audio:!1,Blob:!1,addEventListener:!1,applicationCache:!1,atob:!1,blur:!1,btoa:!1,cancelAnimationFrame:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,CSS:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,Comment:!1,CustomEvent:!1,DOMParser:!1,defaultStatus:!1,Document:!1,document:!1,DocumentFragment:!1,Element:!1,ElementTimeControl:!1,Event:!1,event:!1,fetch:!1,FileReader:!1,FormData:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,HTMLAnchorElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLCollection:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPreElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTemplateElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLUListElement:!1,HTMLVideoElement:!1,history:!1,Image:!1,Intl:!1,length:!1,localStorage:!1,location:!1,matchMedia:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationObserver:!1,name:!1,Node:!1,NodeFilter:!1,NodeList:!1,Notification:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,performance:!1,print:!1,Range:!1,requestAnimationFrame:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,SharedWorker:!1,status:!1,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPathData:!1,SVGAnimatedPoints:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimationElement:!1,SVGCSSRule:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGColorProfileElement:!1,SVGColorProfileRule:!1,SVGComponentTransferFunctionElement:!1,SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGExternalResourcesRequired:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFilterPrimitiveStandardAttributes:!1,SVGFitToViewBox:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,SVGHKernElement:!1,SVGICCColor:!1,SVGImageElement:!1,SVGLangSpace:!1,SVGLength:!1,SVGLengthList:!1,SVGLineElement:!1,SVGLinearGradientElement:!1,SVGLocatable:!1,SVGMPathElement:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGRenderingIntent:!1,SVGSVGElement:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStylable:!1,SVGStyleElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGTests:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformList:!1,SVGTransformable:!1,SVGURIReference:!1,SVGUnitTypes:!1,SVGUseElement:!1,SVGVKernElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGZoomAndPan:!1,Text:!1,TextDecoder:!1,TextEncoder:!1,TimeEvent:!1,top:!1,URL:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLTexture:!1,WebGLUniformLocation:!1,WebSocket:!1,window:!1,Window:!1,Worker:!1,XDomainRequest:!1,XMLHttpRequest:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},exports.devel={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},exports.worker={importScripts:!0,postMessage:!0,self:!0,FileReaderSync:!0},exports.nonstandard={escape:!1,unescape:!1},exports.couch={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1,provides:!1},exports.node={__filename:!1,__dirname:!1,GLOBAL:!1,global:!1,module:!1,acequire:!1,Buffer:!0,console:!0,exports:!0,process:!0,setTimeout:!0,clearTimeout:!0,setInterval:!0,clearInterval:!0,setImmediate:!0,clearImmediate:!0},exports.browserify={__filename:!1,__dirname:!1,global:!1,module:!1,acequire:!1,Buffer:!0,exports:!0,process:!0},exports.phantom={phantom:!0,acequire:!0,WebPage:!0,console:!0,exports:!0},exports.qunit={asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,\\\"throws\\\":!1},exports.rhino={defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},exports.shelljs={target:!1,echo:!1,exit:!1,cd:!1,pwd:!1,ls:!1,find:!1,cp:!1,rm:!1,mv:!1,mkdir:!1,test:!1,cat:!1,sed:!1,grep:!1,which:!1,dirs:!1,pushd:!1,popd:!1,env:!1,exec:!1,chmod:!1,config:!1,error:!1,tempdir:!1},exports.typed={ArrayBuffer:!1,ArrayBufferView:!1,DataView:!1,Float32Array:!1,Float64Array:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1},exports.wsh={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0,XDomainRequest:!0},exports.dojo={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},exports.jquery={$:!1,jQuery:!1},exports.mootools={$:!1,$$:!1,Asset:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMEvent:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,IFrame:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},exports.prototypejs={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},exports.yui={YUI:!1,Y:!1,YUI_config:!1},exports.mocha={mocha:!1,describe:!1,xdescribe:!1,it:!1,xit:!1,context:!1,xcontext:!1,before:!1,after:!1,beforeEach:!1,afterEach:!1,suite:!1,test:!1,setup:!1,teardown:!1,suiteSetup:!1,suiteTeardown:!1},exports.jasmine={jasmine:!1,describe:!1,xdescribe:!1,it:!1,xit:!1,beforeEach:!1,afterEach:!1,setFixtures:!1,loadFixtures:!1,spyOn:!1,expect:!1,runs:!1,waitsFor:!1,waits:!1,beforeAll:!1,afterAll:!1,fail:!1,fdescribe:!1,fit:!1,pending:!1}},{}]},{},[\\\"/node_modules/jshint/src/jshint.js\\\"])}),ace.define(\\\"ace/mode/javascript_worker\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/worker/mirror\\\",\\\"ace/mode/javascript/jshint\\\"],function(acequire,exports,module){\\\"use strict\\\";function startRegex(arr){return RegExp(\\\"^(\\\"+arr.join(\\\"|\\\")+\\\")\\\")}var oop=acequire(\\\"../lib/oop\\\"),Mirror=acequire(\\\"../worker/mirror\\\").Mirror,lint=acequire(\\\"./javascript/jshint\\\").JSHINT,disabledWarningsRe=startRegex([\\\"Bad for in variable '(.+)'.\\\",'Missing \\\"use strict\\\"']),errorsRe=startRegex([\\\"Unexpected\\\",\\\"Expected \\\",\\\"Confusing (plus|minus)\\\",\\\"\\\\\\\\{a\\\\\\\\} unterminated regular expression\\\",\\\"Unclosed \\\",\\\"Unmatched \\\",\\\"Unbegun comment\\\",\\\"Bad invocation\\\",\\\"Missing space after\\\",\\\"Missing operator at\\\"]),infoRe=startRegex([\\\"Expected an assignment\\\",\\\"Bad escapement of EOL\\\",\\\"Unexpected comma\\\",\\\"Unexpected space\\\",\\\"Missing radix parameter.\\\",\\\"A leading decimal point can\\\",\\\"\\\\\\\\['{a}'\\\\\\\\] is better written in dot notation.\\\",\\\"'{a}' used out of scope\\\"]),JavaScriptWorker=exports.JavaScriptWorker=function(sender){Mirror.call(this,sender),this.setTimeout(500),this.setOptions()};oop.inherits(JavaScriptWorker,Mirror),function(){this.setOptions=function(options){this.options=options||{esnext:!0,moz:!0,devel:!0,browser:!0,node:!0,laxcomma:!0,laxbreak:!0,lastsemic:!0,onevar:!1,passfail:!1,maxerr:100,expr:!0,multistr:!0,globalstrict:!0},this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.changeOptions=function(newOptions){oop.mixin(this.options,newOptions),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.isValidJS=function(str){try{eval(\\\"throw 0;\\\"+str)}catch(e){if(0===e)return!0}return!1},this.onUpdate=function(){var value=this.doc.getValue();if(value=value.replace(/^#!.*\\\\n/,\\\"\\\\n\\\"),!value)return this.sender.emit(\\\"annotate\\\",[]);var errors=[],maxErrorLevel=this.isValidJS(value)?\\\"warning\\\":\\\"error\\\";lint(value,this.options);for(var results=lint.errors,errorAdded=!1,i=0;results.length>i;i++){var error=results[i];if(error){var raw=error.raw,type=\\\"warning\\\";if(\\\"Missing semicolon.\\\"==raw){var str=error.evidence.substr(error.character);str=str.charAt(str.search(/\\\\S/)),\\\"error\\\"==maxErrorLevel&&str&&/[\\\\w\\\\d{(['\\\"]/.test(str)?(error.reason='Missing \\\";\\\" before statement',type=\\\"error\\\"):type=\\\"info\\\"}else{if(disabledWarningsRe.test(raw))continue;infoRe.test(raw)?type=\\\"info\\\":errorsRe.test(raw)?(errorAdded=!0,type=maxErrorLevel):\\\"'{a}' is not defined.\\\"==raw?type=\\\"warning\\\":\\\"'{a}' is defined but never used.\\\"==raw&&(type=\\\"info\\\")}errors.push({row:error.line-1,column:error.character-1,text:error.reason,type:type,raw:raw})}}this.sender.emit(\\\"annotate\\\",errors)}}.call(JavaScriptWorker.prototype)}),ace.define(\\\"ace/lib/es5-shim\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\\\"sentinel\\\",{}),\\\"sentinel\\\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\\\"function\\\"!=typeof target)throw new TypeError(\\\"Function.prototype.bind called on incompatible \\\"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\\\"__defineGetter__\\\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\\\"XXX\\\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\\\"[object Array]\\\"==_toString(obj)});var boxedString=Object(\\\"a\\\"),splitString=\\\"a\\\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduce of empty array with no initial value\\\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\\\"reduce of empty array with no initial value\\\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\\\"Object.getOwnPropertyDescriptor called on a non-object: \\\";Object.getOwnPropertyDescriptor=function(object,property){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\\\"object\\\"!=typeof prototype)throw new TypeError(\\\"typeof prototype[\\\"+typeof prototype+\\\"] != 'object'\\\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\\\"undefined\\\"==typeof document||doesDefinePropertyWork(document.createElement(\\\"div\\\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\\\"Property description must be an object: \\\",ERR_NON_OBJECT_TARGET=\\\"Object.defineProperty called on non-object: \\\",ERR_ACCESSORS_NOT_SUPPORTED=\\\"getters & setters can not be defined on this javascript engine\\\";Object.defineProperty=function(object,property,descriptor){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\\\"object\\\"!=typeof descriptor&&\\\"function\\\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\\\"value\\\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\\\"get\\\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\\\"set\\\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\\\"function\\\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\\\"\\\";owns(object,name);)name+=\\\"?\\\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\\\"toString\\\",\\\"toLocaleString\\\",\\\"valueOf\\\",\\\"hasOwnProperty\\\",\\\"isPrototypeOf\\\",\\\"propertyIsEnumerable\\\",\\\"constructor\\\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(\\\"Object.keys called on a non-object\\\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\\\"\\t\\\\n\\u000b\\\\f\\\\r   ᠎              \\\\u2028\\\\u2029\\\";if(!String.prototype.trim||ws.trim()){ws=\\\"[\\\"+ws+\\\"]\\\";var trimBeginRegexp=RegExp(\\\"^\\\"+ws+ws+\\\"*\\\"),trimEndRegexp=RegExp(ws+ws+\\\"*$\\\");String.prototype.trim=function(){return(this+\\\"\\\").replace(trimBeginRegexp,\\\"\\\").replace(trimEndRegexp,\\\"\\\")}}var toObject=function(o){if(null==o)throw new TypeError(\\\"can't convert \\\"+o+\\\" to object\\\");return Object(o)}});\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/brace/worker/javascript.js\n// module id = 290\n// module chunks = 0","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/src/array.js\n// module id = 291\n// module chunks = 0","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/src/bisect.js\n// module id = 292\n// module chunks = 0","import ascending from \"./ascending\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/src/bisector.js\n// module id = 293\n// module chunks = 0","import variance from \"./variance\";\n\nexport default function(array, f) {\n var v = variance(array, f);\n return v ? Math.sqrt(v) : v;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/src/deviation.js\n// module id = 294\n// module chunks = 0","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n return [min, max];\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/src/extent.js\n// module id = 295\n// module chunks = 0","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n return min;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/src/min.js\n// module id = 296\n// module chunks = 0","export default function(array, f) {\n if (f == null) f = pair;\n var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = f(p, p = array[++i]);\n return pairs;\n}\n\nexport function pair(a, b) {\n return [a, b];\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/src/pairs.js\n// module id = 297\n// module chunks = 0","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/src/range.js\n// module id = 298\n// module chunks = 0","export default function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/src/threshold/sturges.js\n// module id = 299\n// module chunks = 0","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/src/ticks.js\n// module id = 300\n// module chunks = 0","import min from \"./min\";\n\nexport default function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n}\n\nfunction length(d) {\n return d.length;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/src/transpose.js\n// module id = 301\n// module chunks = 0","import number from \"./number\";\n\nexport default function(values, valueof) {\n var n = values.length,\n m = 0,\n i = -1,\n mean = 0,\n value,\n delta,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n if (m > 1) return sum / (m - 1);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/src/variance.js\n// module id = 302\n// module chunks = 0","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-color/src/math.js\n// module id = 303\n// module chunks = 0","import formatDecimal from \"./formatDecimal\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-format/src/formatPrefixAuto.js\n// module id = 304\n// module chunks = 0","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n return new FormatSpecifier(specifier);\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nfunction FormatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n this.fill = match[1] || \" \";\n this.align = match[2] || \">\";\n this.sign = match[3] || \"-\";\n this.symbol = match[4] || \"\";\n this.zero = !!match[5];\n this.width = match[6] && +match[6];\n this.comma = !!match[7];\n this.precision = match[8] && +match[8].slice(1);\n this.trim = !!match[9];\n this.type = match[10] || \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width == null ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision == null ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-format/src/formatSpecifier.js\n// module id = 305\n// module chunks = 0","import exponent from \"./exponent\";\nimport formatGroup from \"./formatGroup\";\nimport formatNumerals from \"./formatNumerals\";\nimport formatSpecifier from \"./formatSpecifier\";\nimport formatTrim from \"./formatTrim\";\nimport formatTypes from \"./formatTypes\";\nimport {prefixExponent} from \"./formatPrefixAuto\";\nimport identity from \"./identity\";\n\nvar prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping && locale.thousands ? formatGroup(locale.grouping, locale.thousands) : identity,\n currency = locale.currency,\n decimal = locale.decimal,\n numerals = locale.numerals ? formatNumerals(locale.numerals) : identity,\n percent = locale.percent || \"%\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision == null && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currency[0] : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currency[1] : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision == null ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Perform the initial formatting.\n var valueNegative = value < 0;\n value = formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero during formatting, treat as positive.\n if (valueNegative && +value === 0) valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : \"-\") : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-format/src/locale.js\n// module id = 307\n// module chunks = 0","import value from \"./value\";\n\nexport default function(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/array.js\n// module id = 308\n// module chunks = 0","import {basis} from \"./basis\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/basisClosed.js\n// module id = 309\n// module chunks = 0","export default function(x) {\n return function() {\n return x;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/constant.js\n// module id = 310\n// module chunks = 0","export default function(a, b) {\n var d = new Date;\n return a = +a, b -= a, function(t) {\n return d.setTime(a + b * t), d;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/date.js\n// module id = 311\n// module chunks = 0","import value from \"./value\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/object.js\n// module id = 312\n// module chunks = 0","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis\";\nimport basisClosed from \"./basisClosed\";\nimport nogamma, {gamma} from \"./color\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/rgb.js\n// module id = 313\n// module chunks = 0","import number from \"./number\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/string.js\n// module id = 314\n// module chunks = 0","export default function(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/nice.js\n// module id = 316\n// module chunks = 0","export default function(x) {\n return +x;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/number.js\n// module id = 317\n// module chunks = 0","import {map} from \"d3-collection\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport var implicit = {name: \"implicit\"};\n\nexport default function ordinal() {\n var index = map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/ordinal.js\n// module id = 318\n// module chunks = 0","import {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\nimport {linearish} from \"./linear\";\nimport {loggish} from \"./log\";\nimport {symlogish} from \"./symlog\";\nimport {powish} from \"./pow\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/sequential.js\n// module id = 319\n// module chunks = 0","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/tickFormat.js\n// module id = 320\n// module chunks = 0","import {bisector, tickStep} from \"d3-array\";\nimport {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport {map} from \"./array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport nice from \"./nice\";\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(identity, identity),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nexport default function() {\n return initRange.apply(calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/time.js\n// module id = 321\n// module chunks = 0","import {path} from \"d3-path\";\nimport constant from \"./constant\";\nimport curveLinear from \"./curve/linear\";\nimport line from \"./line\";\nimport {x as pointX, y as pointY} from \"./point\";\n\nexport default function() {\n var x0 = pointX,\n x1 = null,\n y0 = constant(0),\n y1 = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/area.js\n// module id = 322\n// module chunks = 0","export var slice = Array.prototype.slice;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/array.js\n// module id = 323\n// module chunks = 0","import noop from \"../noop\";\nimport {point} from \"./cardinal\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/curve/cardinalClosed.js\n// module id = 324\n// module chunks = 0","import {point} from \"./cardinal\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/curve/cardinalOpen.js\n// module id = 325\n// module chunks = 0","import curveLinear from \"./linear\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/curve/radial.js\n// module id = 326\n// module chunks = 0","import curveRadial, {curveRadialLinear} from \"./curve/radial\";\nimport line from \"./line\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/lineRadial.js\n// module id = 327\n// module chunks = 0","import none from \"./none\";\n\nexport default function(series) {\n var peaks = series.map(peak);\n return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n}\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/order/appearance.js\n// module id = 328\n// module chunks = 0","export default function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/pointRadial.js\n// module id = 329\n// module chunks = 0","import {pi, tau} from \"../math\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/symbol/circle.js\n// module id = 330\n// module chunks = 0","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/symbol/cross.js\n// module id = 331\n// module chunks = 0","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/symbol/diamond.js\n// module id = 332\n// module chunks = 0","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/symbol/square.js\n// module id = 333\n// module chunks = 0","import {pi, tau} from \"../math\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/symbol/star.js\n// module id = 334\n// module chunks = 0","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/symbol/triangle.js\n// module id = 335\n// module chunks = 0","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/symbol/wye.js\n// module id = 336\n// module chunks = 0","import {utcFormat} from \"./defaultLocale\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : utcFormat(isoSpecifier);\n\nexport default formatIso;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time-format/src/isoFormat.js\n// module id = 338\n// module chunks = 0","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newYear(y) {\n return {y: y, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, newDate) {\n return function(string) {\n var d = newYear(1900),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newYear(d.y)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = newDate(newYear(d.y)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return newDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", localDate);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier, utcDate);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = (+n[0]) * 1000, i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d), d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d), d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d), d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d), d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time-format/src/locale.js\n// module id = 339\n// module chunks = 0","/*! decimal.js-light v2.5.0 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.5.0\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2018 Michael Mclaughlin \r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return this.s === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '1e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/decimal.js-light/decimal.js\n// module id = 340\n// module chunks = 0","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/hyphenate-style-name/index.js\n// module id = 341\n// module chunks = 0","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Set.js\n// module id = 342\n// module chunks = 0","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Uint8Array.js\n// module id = 343\n// module chunks = 0","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\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 == null ? 0 : 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// ./~/lodash/_arrayEach.js\n// module id = 344\n// module chunks = 0","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayFilter.js\n// module id = 345\n// module chunks = 0","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayIncludes.js\n// module id = 346\n// module chunks = 0","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayIncludesWith.js\n// module id = 347\n// module chunks = 0","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in 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 enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayLikeKeys.js\n// module id = 348\n// module chunks = 0","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\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 == null ? 0 : 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// ./~/lodash/_arraySome.js\n// module id = 349\n// module chunks = 0","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_assignValue.js\n// module id = 350\n// module chunks = 0","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\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 value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseFindIndex.js\n// module id = 351\n// module chunks = 0","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\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 object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseForOwn.js\n// module id = 352\n// module chunks = 0","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseGetAllKeys.js\n// module id = 353\n// module chunks = 0","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseGt.js\n// module id = 354\n// module chunks = 0","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseLt.js\n// module id = 355\n// module chunks = 0","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} 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// ./~/lodash/_baseMap.js\n// module id = 356\n// module chunks = 0","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_defineProperty.js\n// module id = 357\n// module chunks = 0","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\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 {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_equalArrays.js\n// module id = 358\n// module chunks = 0","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_freeGlobal.js\n// module id = 359\n// module chunks = 0","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getAllKeys.js\n// module id = 360\n// module chunks = 0","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getAllKeysIn.js\n// module id = 361\n// module chunks = 0","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getSymbolsIn.js\n// module id = 362\n// module chunks = 0","var isObject = require('./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// ./~/lodash/_isStrictComparable.js\n// module id = 363\n// module chunks = 0","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_matchesStrictComparable.js\n// module id = 364\n// module chunks = 0","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_overArg.js\n// module id = 365\n// module chunks = 0","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\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 * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_overRest.js\n// module id = 366\n// module chunks = 0","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_setToString.js\n// module id = 367\n// module chunks = 0","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_toSource.js\n// module id = 368\n// module chunks = 0","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/debounce.js\n// module id = 369\n// module chunks = 0","var arrayEvery = require('./_arrayEvery'),\n baseEvery = require('./_baseEvery'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = every;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/every.js\n// module id = 370\n// module chunks = 0","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isTypedArray.js\n// module id = 371\n// module chunks = 0","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\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 == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/last.js\n// module id = 372\n// module chunks = 0","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\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`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/map.js\n// module id = 373\n// module chunks = 0","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n identity = require('./identity');\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nmodule.exports = max;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/max.js\n// module id = 374\n// module chunks = 0","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\nfunction maxBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseGt)\n : undefined;\n}\n\nmodule.exports = maxBy;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/maxBy.js\n// module id = 375\n// module chunks = 0","var baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/min.js\n// module id = 376\n// module chunks = 0","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/range.js\n// module id = 377\n// module chunks = 0","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/stubArray.js\n// module id = 378\n// module chunks = 0","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/toFinite.js\n// module id = 379\n// module chunks = 0","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/toNumber.js\n// module id = 380\n// module chunks = 0","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/uniqBy.js\n// module id = 381\n// module chunks = 0","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/raf/index.js\n// module id = 382\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-lifecycles-compat/react-lifecycles-compat.es.js\n// module id = 383\n// module chunks = 0","import _isEqual from \"lodash/isEqual\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nimport React, { Component, cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport createAnimateManager from './AnimateManager';\nimport pureRender from './PureRender';\nimport { configEasing } from './easing';\nimport configUpdate from './configUpdate';\nimport { getTransitionVal, identity, translateStyle } from './util';\n\nvar Animate = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Animate, _Component);\n\n function Animate(props, context) {\n var _this;\n\n _classCallCheck(this, Animate);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Animate).call(this, props, context));\n var _this$props = _this.props,\n isActive = _this$props.isActive,\n attributeName = _this$props.attributeName,\n from = _this$props.from,\n to = _this$props.to,\n steps = _this$props.steps,\n children = _this$props.children;\n _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n\n if (!isActive) {\n _this.state = {\n style: {}\n }; // if children is a function and animation is not active, set style to 'to'\n\n if (typeof children === 'function') {\n _this.state = {\n style: to\n };\n }\n\n return _possibleConstructorReturn(_this);\n }\n\n if (steps && steps.length) {\n _this.state = {\n style: steps[0].style\n };\n } else if (from) {\n if (typeof children === 'function') {\n _this.state = {\n style: from\n };\n return _possibleConstructorReturn(_this);\n }\n\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = {\n style: {}\n };\n }\n\n return _this;\n }\n\n _createClass(Animate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props2 = this.props,\n isActive = _this$props2.isActive,\n canBegin = _this$props2.canBegin;\n this.mounted = true;\n\n if (!isActive || !canBegin) {\n return;\n }\n\n this.runAnimation(this.props);\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var isActive = nextProps.isActive,\n canBegin = nextProps.canBegin,\n attributeName = nextProps.attributeName,\n shouldReAnimate = nextProps.shouldReAnimate;\n\n if (!canBegin) {\n return;\n }\n\n if (!isActive) {\n this.setState({\n style: attributeName ? _defineProperty({}, attributeName, nextProps.to) : nextProps.to\n });\n return;\n }\n\n if (_isEqual(this.props.to, nextProps.to) && this.props.canBegin && this.props.isActive) {\n return;\n }\n\n var isTriggered = !this.props.canBegin || !this.props.isActive;\n\n if (this.manager) {\n this.manager.stop();\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n\n var from = isTriggered || shouldReAnimate ? nextProps.from : this.props.to;\n this.setState({\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n });\n this.runAnimation(_objectSpread({}, nextProps, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n }\n }, {\n key: \"runJSAnimation\",\n value: function runJSAnimation(props) {\n var _this2 = this;\n\n var from = props.from,\n to = props.to,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart;\n var startAnimation = configUpdate(from, to, configEasing(easing), duration, this.changeStyle);\n\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\n\n this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);\n }\n }, {\n key: \"runStepAnimation\",\n value: function runStepAnimation(props) {\n var _this3 = this;\n\n var steps = props.steps,\n begin = props.begin,\n onAnimationStart = props.onAnimationStart;\n var _steps$ = steps[0],\n initialStyle = _steps$.style,\n _steps$$duration = _steps$.duration,\n initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;\n\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === void 0 ? 'ease' : _nextItem$easing,\n style = nextItem.style,\n nextProperties = nextItem.properties,\n onAnimationEnd = nextItem.onAnimationEnd;\n var preItem = index > 0 ? steps[index - 1] : nextItem;\n var properties = nextProperties || Object.keys(style);\n\n if (typeof easing === 'function' || easing === 'spring') {\n return _toConsumableArray(sequence).concat([_this3.runJSAnimation.bind(_this3, {\n from: preItem.style,\n to: style,\n duration: duration,\n easing: easing\n }), duration]);\n }\n\n var transition = getTransitionVal(properties, duration, easing);\n\n var newStyle = _objectSpread({}, preItem.style, style, {\n transition: transition\n });\n\n return _toConsumableArray(sequence).concat([newStyle, duration, onAnimationEnd]).filter(identity);\n };\n\n return this.manager.start([onAnimationStart].concat(_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));\n }\n }, {\n key: \"runAnimation\",\n value: function runAnimation(props) {\n if (!this.manager) {\n this.manager = createAnimateManager();\n }\n\n var begin = props.begin,\n duration = props.duration,\n attributeName = props.attributeName,\n propsTo = props.to,\n easing = props.easing,\n onAnimationStart = props.onAnimationStart,\n onAnimationEnd = props.onAnimationEnd,\n steps = props.steps,\n children = props.children;\n var manager = this.manager;\n this.unSubscribe = manager.subscribe(this.handleStyleChange);\n\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = getTransitionVal(Object.keys(to), duration, easing);\n manager.start([onAnimationStart, begin, _objectSpread({}, to, {\n transition: transition\n }), duration, onAnimationEnd]);\n }\n }, {\n key: \"handleStyleChange\",\n value: function handleStyleChange(style) {\n this.changeStyle(style);\n }\n }, {\n key: \"changeStyle\",\n value: function changeStyle(style) {\n if (this.mounted) {\n this.setState({\n style: style\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props3 = this.props,\n children = _this$props3.children,\n begin = _this$props3.begin,\n duration = _this$props3.duration,\n attributeName = _this$props3.attributeName,\n easing = _this$props3.easing,\n isActive = _this$props3.isActive,\n steps = _this$props3.steps,\n from = _this$props3.from,\n to = _this$props3.to,\n canBegin = _this$props3.canBegin,\n onAnimationEnd = _this$props3.onAnimationEnd,\n shouldReAnimate = _this$props3.shouldReAnimate,\n onAnimationReStart = _this$props3.onAnimationReStart,\n others = _objectWithoutProperties(_this$props3, [\"children\", \"begin\", \"duration\", \"attributeName\", \"easing\", \"isActive\", \"steps\", \"from\", \"to\", \"canBegin\", \"onAnimationEnd\", \"shouldReAnimate\", \"onAnimationReStart\"]);\n\n var count = Children.count(children);\n var stateStyle = translateStyle(this.state.style);\n\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n\n if (!isActive || count === 0) {\n return children;\n }\n\n var cloneContainer = function cloneContainer(container) {\n var _container$props = container.props,\n _container$props$styl = _container$props.style,\n style = _container$props$styl === void 0 ? {} : _container$props$styl,\n className = _container$props.className;\n var res = cloneElement(container, _objectSpread({}, others, {\n style: _objectSpread({}, style, stateStyle),\n className: className\n }));\n return res;\n };\n\n if (count === 1) {\n return cloneContainer(Children.only(children));\n }\n\n return React.createElement(\"div\", null, Children.map(children, function (child) {\n return cloneContainer(child);\n }));\n }\n }]);\n\n return Animate;\n}(Component), _class2.displayName = 'Animate', _class2.propTypes = {\n from: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n to: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n attributeName: PropTypes.string,\n // animation duration\n duration: PropTypes.number,\n begin: PropTypes.number,\n easing: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n steps: PropTypes.arrayOf(PropTypes.shape({\n duration: PropTypes.number.isRequired,\n style: PropTypes.object.isRequired,\n easing: PropTypes.oneOfType([PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), PropTypes.func]),\n // transition css properties(dash case), optional\n properties: PropTypes.arrayOf('string'),\n onAnimationEnd: PropTypes.func\n })),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n isActive: PropTypes.bool,\n canBegin: PropTypes.bool,\n onAnimationEnd: PropTypes.func,\n // decide if it should reanimate with initial from style when props change\n shouldReAnimate: PropTypes.bool,\n onAnimationStart: PropTypes.func,\n onAnimationReStart: PropTypes.func\n}, _class2.defaultProps = {\n begin: 0,\n duration: 1000,\n from: '',\n to: '',\n attributeName: '',\n easing: 'ease',\n isActive: true,\n canBegin: true,\n steps: [],\n onAnimationEnd: function onAnimationEnd() {},\n onAnimationStart: function onAnimationStart() {}\n}, _temp)) || _class;\n\nexport default Animate;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-smooth/es6/Animate.js\n// module id = 384\n// module chunks = 0","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nimport { warn } from './util';\nvar ACCURACY = 1e-4;\n\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\n\nvar multyTime = function multyTime(params, t) {\n return params.map(function (param, i) {\n return param * Math.pow(t, i);\n }).reduce(function (pre, curr) {\n return pre + curr;\n });\n};\n\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n return multyTime(params, t);\n };\n};\n\nvar derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n\n var newParams = _toConsumableArray(params.map(function (param, i) {\n return param * i;\n }).slice(1)).concat([0]);\n\n return multyTime(newParams, t);\n };\n}; // calculate cubic-bezier using Newton's method\n\n\nexport var configBezier = function configBezier() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n break;\n\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n default:\n warn(false, '[configBezier]: arguments should be one of ' + 'oneOf \\'linear\\', \\'ease\\', \\'ease-in\\', \\'ease-out\\', ' + '\\'ease-in-out\\', instead received %s', args);\n }\n }\n\n warn([x1, x2, y1, y2].every(function (num) {\n return typeof num === 'number' && num >= 0 && num <= 1;\n }), '[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s', args);\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n\n var rangeValue = function rangeValue(value) {\n if (value > 1) {\n return 1;\n } else if (value < 0) {\n return 0;\n }\n\n return value;\n };\n\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n\n x = rangeValue(x - evalT / derVal);\n }\n\n return curveY(x);\n };\n\n bezier.isStepper = false;\n return bezier;\n};\nexport var configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === void 0 ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === void 0 ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === void 0 ? 17 : _config$dt;\n\n var stepper = function stepper(currX, destX, currV) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n\n return [newX, newV];\n };\n\n stepper.isStepper = true;\n stepper.dt = dt;\n return stepper;\n};\nexport var configEasing = function configEasing() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var easing = args[0];\n\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n\n case 'spring':\n return configSpring();\n\n default:\n warn(false, '[configEasing]: first argument should be one of \\'ease\\', \\'ease-in\\', ' + '\\'ease-out\\', \\'ease-in-out\\', \\'linear\\' and \\'spring\\', instead received %s', args);\n }\n }\n\n if (typeof easing === 'function') {\n return easing;\n }\n\n warn(false, '[configEasing]: first argument type should be function or ' + 'string, instead received %s', args);\n return null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-smooth/es6/easing.js\n// module id = 385\n// module chunks = 0","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-transition-group/index.js\n// module id = 386\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-transition-group/utils/PropTypes.js\n// module id = 387\n// module chunks = 0","'use strict';\nmodule.exports = require('./lib/index');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/index.js\n// module id = 388\n// module chunks = 0","'use strict';\n\nvar _get = require('babel-runtime/helpers/get')['default'];\n\nvar _inherits = require('babel-runtime/helpers/inherits')['default'];\n\nvar _createClass = require('babel-runtime/helpers/create-class')['default'];\n\nvar _classCallCheck = require('babel-runtime/helpers/class-call-check')['default'];\n\nvar _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _radium = require('radium');\n\nvar _radium2 = _interopRequireDefault(_radium);\n\nvar _velocityReact = require('velocity-react');\n\nvar Loading = function Loading(props) {\n return _react2['default'].createElement(\n 'div',\n { style: props.style },\n 'loading...'\n );\n};\n\nLoading.propTypes = {\n style: _react2['default'].PropTypes.object\n};\n\nvar Toggle = function Toggle(props) {\n var style = props.style;\n var height = style.height;\n var width = style.width;\n var midHeight = height * 0.5;\n var points = '0,0 0,' + height + ' ' + width + ',' + midHeight;\n return _react2['default'].createElement(\n 'div',\n { style: style.base },\n _react2['default'].createElement(\n 'div',\n { style: style.wrapper },\n _react2['default'].createElement(\n 'svg',\n { height: height, width: width },\n _react2['default'].createElement('polygon', {\n points: points,\n style: style.arrow\n })\n )\n )\n );\n};\n\nToggle.propTypes = {\n style: _react2['default'].PropTypes.object\n};\n\nvar Header = function Header(props) {\n var style = props.style;\n return _react2['default'].createElement(\n 'div',\n { style: style.base },\n _react2['default'].createElement(\n 'div',\n { style: style.title },\n props.node.name\n )\n );\n};\n\nHeader.propTypes = {\n style: _react2['default'].PropTypes.object,\n node: _react2['default'].PropTypes.object.isRequired\n};\n\nvar Container = (function (_React$Component) {\n _inherits(Container, _React$Component);\n\n function Container(props) {\n _classCallCheck(this, _Container);\n\n _get(Object.getPrototypeOf(_Container.prototype), 'constructor', this).call(this, props);\n }\n\n _createClass(Container, [{\n key: 'render',\n value: function render() {\n var _props = this.props;\n var style = _props.style;\n var decorators = _props.decorators;\n var terminal = _props.terminal;\n var onClick = _props.onClick;\n var node = _props.node;\n\n return _react2['default'].createElement(\n 'div',\n {\n ref: 'clickable',\n onClick: onClick,\n style: style.container },\n !terminal ? this.renderToggle() : null,\n _react2['default'].createElement(decorators.Header, {\n node: node,\n style: style.header\n })\n );\n }\n }, {\n key: 'renderToggle',\n value: function renderToggle() {\n var animations = this.props.animations;\n if (!animations) {\n return this.renderToggleDecorator();\n }\n return _react2['default'].createElement(\n _velocityReact.VelocityComponent,\n { ref: 'velocity',\n duration: animations.toggle.duration,\n animation: animations.toggle.animation },\n this.renderToggleDecorator()\n );\n }\n }, {\n key: 'renderToggleDecorator',\n value: function renderToggleDecorator() {\n var _props2 = this.props;\n var style = _props2.style;\n var decorators = _props2.decorators;\n\n return _react2['default'].createElement(decorators.Toggle, { style: style.toggle });\n }\n }]);\n\n var _Container = Container;\n Container = (0, _radium2['default'])(Container) || Container;\n return Container;\n})(_react2['default'].Component);\n\nContainer.propTypes = {\n style: _react2['default'].PropTypes.object.isRequired,\n decorators: _react2['default'].PropTypes.object.isRequired,\n terminal: _react2['default'].PropTypes.bool.isRequired,\n onClick: _react2['default'].PropTypes.func.isRequired,\n animations: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.object, _react2['default'].PropTypes.bool]).isRequired,\n node: _react2['default'].PropTypes.object.isRequired\n};\n\nexports['default'] = {\n Loading: Loading,\n Toggle: Toggle,\n Header: Header,\n Container: Container\n};\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/lib/components/decorators.js\n// module id = 389\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = {\n toggle: function toggle(props) {\n return {\n animation: { rotateZ: props.node.toggled ? 90 : 0 },\n duration: 300\n };\n },\n drawer: function drawer() /* props */{\n return {\n enter: {\n animation: 'slideDown',\n duration: 300\n },\n leave: {\n animation: 'slideUp',\n duration: 300\n }\n };\n }\n};\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/lib/themes/animations.js\n// module id = 390\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = {\n tree: {\n base: {\n listStyle: 'none',\n backgroundColor: '#21252B',\n margin: 0,\n padding: 0,\n color: '#9DA5AB',\n fontFamily: 'lucida grande ,tahoma,verdana,arial,sans-serif',\n fontSize: '14px'\n },\n node: {\n base: {\n position: 'relative'\n },\n link: {\n cursor: 'pointer',\n position: 'relative',\n padding: '0px 5px',\n display: 'block'\n },\n activeLink: {\n background: '#31363F'\n },\n toggle: {\n base: {\n position: 'relative',\n display: 'inline-block',\n verticalAlign: 'top',\n marginLeft: '-5px',\n height: '24px',\n width: '24px'\n },\n wrapper: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n margin: '-7px 0 0 -7px',\n height: '14px'\n },\n height: 14,\n width: 14,\n arrow: {\n fill: '#9DA5AB',\n strokeWidth: 0\n }\n },\n header: {\n base: {\n display: 'inline-block',\n verticalAlign: 'top',\n color: '#9DA5AB'\n },\n connector: {\n width: '2px',\n height: '12px',\n borderLeft: 'solid 2px black',\n borderBottom: 'solid 2px black',\n position: 'absolute',\n top: '0px',\n left: '-21px'\n },\n title: {\n lineHeight: '24px',\n verticalAlign: 'middle'\n }\n },\n subtree: {\n listStyle: 'none',\n paddingLeft: '19px'\n },\n loading: {\n color: '#E2C089'\n }\n }\n }\n};\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/lib/themes/default.js\n// module id = 391\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = { \"Webkit\": { \"transform\": true, \"transformOrigin\": true, \"transformOriginX\": true, \"transformOriginY\": true, \"backfaceVisibility\": true, \"perspective\": true, \"perspectiveOrigin\": true, \"transformStyle\": true, \"transformOriginZ\": true, \"animation\": true, \"animationDelay\": true, \"animationDirection\": true, \"animationFillMode\": true, \"animationDuration\": true, \"animationIterationCount\": true, \"animationName\": true, \"animationPlayState\": true, \"animationTimingFunction\": true, \"appearance\": true, \"userSelect\": true, \"fontKerning\": true, \"textEmphasisPosition\": true, \"textEmphasis\": true, \"textEmphasisStyle\": true, \"textEmphasisColor\": true, \"boxDecorationBreak\": true, \"clipPath\": true, \"maskImage\": true, \"maskMode\": true, \"maskRepeat\": true, \"maskPosition\": true, \"maskClip\": true, \"maskOrigin\": true, \"maskSize\": true, \"maskComposite\": true, \"mask\": true, \"maskBorderSource\": true, \"maskBorderMode\": true, \"maskBorderSlice\": true, \"maskBorderWidth\": true, \"maskBorderOutset\": true, \"maskBorderRepeat\": true, \"maskBorder\": true, \"maskType\": true, \"textDecorationStyle\": true, \"textDecorationSkip\": true, \"textDecorationLine\": true, \"textDecorationColor\": true, \"filter\": true, \"fontFeatureSettings\": true, \"breakAfter\": true, \"breakBefore\": true, \"breakInside\": true, \"columnCount\": true, \"columnFill\": true, \"columnGap\": true, \"columnRule\": true, \"columnRuleColor\": true, \"columnRuleStyle\": true, \"columnRuleWidth\": true, \"columns\": true, \"columnSpan\": true, \"columnWidth\": true, \"flex\": true, \"flexBasis\": true, \"flexDirection\": true, \"flexGrow\": true, \"flexFlow\": true, \"flexShrink\": true, \"flexWrap\": true, \"alignContent\": true, \"alignItems\": true, \"alignSelf\": true, \"justifyContent\": true, \"order\": true, \"transition\": true, \"transitionDelay\": true, \"transitionDuration\": true, \"transitionProperty\": true, \"transitionTimingFunction\": true, \"backdropFilter\": true, \"scrollSnapType\": true, \"scrollSnapPointsX\": true, \"scrollSnapPointsY\": true, \"scrollSnapDestination\": true, \"scrollSnapCoordinate\": true, \"shapeImageThreshold\": true, \"shapeImageMargin\": true, \"shapeImageOutside\": true, \"hyphens\": true, \"flowInto\": true, \"flowFrom\": true, \"regionFragment\": true, \"textSizeAdjust\": true }, \"Moz\": { \"appearance\": true, \"userSelect\": true, \"boxSizing\": true, \"textAlignLast\": true, \"textDecorationStyle\": true, \"textDecorationSkip\": true, \"textDecorationLine\": true, \"textDecorationColor\": true, \"tabSize\": true, \"hyphens\": true, \"fontFeatureSettings\": true, \"breakAfter\": true, \"breakBefore\": true, \"breakInside\": true, \"columnCount\": true, \"columnFill\": true, \"columnGap\": true, \"columnRule\": true, \"columnRuleColor\": true, \"columnRuleStyle\": true, \"columnRuleWidth\": true, \"columns\": true, \"columnSpan\": true, \"columnWidth\": true }, \"ms\": { \"flex\": true, \"flexBasis\": false, \"flexDirection\": true, \"flexGrow\": false, \"flexFlow\": true, \"flexShrink\": false, \"flexWrap\": true, \"alignContent\": false, \"alignItems\": false, \"alignSelf\": false, \"justifyContent\": false, \"order\": false, \"transform\": true, \"transformOrigin\": true, \"transformOriginX\": true, \"transformOriginY\": true, \"userSelect\": true, \"wrapFlow\": true, \"wrapThrough\": true, \"wrapMargin\": true, \"scrollSnapType\": true, \"scrollSnapPointsX\": true, \"scrollSnapPointsY\": true, \"scrollSnapDestination\": true, \"scrollSnapCoordinate\": true, \"touchAction\": true, \"hyphens\": true, \"flowInto\": true, \"flowFrom\": true, \"breakBefore\": true, \"breakAfter\": true, \"breakInside\": true, \"regionFragment\": true, \"gridTemplateColumns\": true, \"gridTemplateRows\": true, \"gridTemplateAreas\": true, \"gridTemplate\": true, \"gridAutoColumns\": true, \"gridAutoRows\": true, \"gridAutoFlow\": true, \"grid\": true, \"gridRowStart\": true, \"gridColumnStart\": true, \"gridRowEnd\": true, \"gridRow\": true, \"gridColumn\": true, \"gridColumnEnd\": true, \"gridColumnGap\": true, \"gridRowGap\": true, \"gridArea\": true, \"gridGap\": true, \"textSizeAdjust\": true } };\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/static/prefixProps.js\n// module id = 392\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sortPrefixedStyle;\n\nvar _isPrefixedProperty = require('./isPrefixedProperty');\n\nvar _isPrefixedProperty2 = _interopRequireDefault(_isPrefixedProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sortPrefixedStyle(style) {\n return Object.keys(style).sort(function (left, right) {\n if ((0, _isPrefixedProperty2.default)(left) && !(0, _isPrefixedProperty2.default)(right)) {\n return -1;\n } else if (!(0, _isPrefixedProperty2.default)(left) && (0, _isPrefixedProperty2.default)(right)) {\n return 1;\n }\n return 0;\n }).reduce(function (sortedStyle, prop) {\n sortedStyle[prop] = style[prop];\n return sortedStyle;\n }, {});\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/utils/sortPrefixedStyle.js\n// module id = 393\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = appendPxIfNeeded;\n\n\n// Copied from https://github.com/facebook/react/blob/\n// 102cd291899f9942a76c40a0e78920a6fe544dc1/\n// src/renderers/dom/shared/CSSProperty.js\nvar isUnitlessNumber = {\n animationIterationCount: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridColumn: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n stopOpacity: true,\n strokeDashoffset: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\nfunction appendPxIfNeeded(propertyName, value) {\n var needsPxSuffix = !isUnitlessNumber[propertyName] && typeof value === 'number' && value !== 0;\n return needsPxSuffix ? value + 'px' : value;\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/append-px-if-needed.js\n// module id = 394\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = enhanceWithRadium;\n\nvar _react = require('react');\n\nvar _styleKeeper = require('./style-keeper.js');\n\nvar _styleKeeper2 = _interopRequireDefault(_styleKeeper);\n\nvar _resolveStyles = require('./resolve-styles.js');\n\nvar _resolveStyles2 = _interopRequireDefault(_resolveStyles);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar KEYS_TO_IGNORE_WHEN_COPYING_PROPERTIES = ['arguments', 'callee', 'caller', 'length', 'name', 'prototype', 'type'];\n\nfunction copyProperties(source, target) {\n Object.getOwnPropertyNames(source).forEach(function (key) {\n if (KEYS_TO_IGNORE_WHEN_COPYING_PROPERTIES.indexOf(key) < 0 && !target.hasOwnProperty(key)) {\n var descriptor = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, descriptor);\n }\n });\n}\n\nfunction isStateless(component) {\n return !component.render && !(component.prototype && component.prototype.render);\n}\n\nfunction enhanceWithRadium(configOrComposedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (typeof configOrComposedComponent !== 'function') {\n var newConfig = _extends({}, config, configOrComposedComponent);\n return function (configOrComponent) {\n return enhanceWithRadium(configOrComponent, newConfig);\n };\n }\n\n var component = configOrComposedComponent;\n var ComposedComponent = component;\n\n // Handle stateless components\n if (isStateless(ComposedComponent)) {\n ComposedComponent = function (_Component) {\n _inherits(ComposedComponent, _Component);\n\n function ComposedComponent() {\n _classCallCheck(this, ComposedComponent);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n ComposedComponent.prototype.render = function render() {\n return component(this.props, this.context);\n };\n\n return ComposedComponent;\n }(_react.Component);\n ComposedComponent.displayName = component.displayName || component.name;\n }\n\n var RadiumEnhancer = (_temp = _class = function (_ComposedComponent) {\n _inherits(RadiumEnhancer, _ComposedComponent);\n\n function RadiumEnhancer() {\n _classCallCheck(this, RadiumEnhancer);\n\n var _this2 = _possibleConstructorReturn(this, _ComposedComponent.apply(this, arguments));\n\n _this2.state = _this2.state || {};\n _this2.state._radiumStyleState = {};\n _this2._radiumIsMounted = true;\n return _this2;\n }\n\n RadiumEnhancer.prototype.componentWillUnmount = function componentWillUnmount() {\n if (_ComposedComponent.prototype.componentWillUnmount) {\n _ComposedComponent.prototype.componentWillUnmount.call(this);\n }\n\n this._radiumIsMounted = false;\n\n if (this._radiumMouseUpListener) {\n this._radiumMouseUpListener.remove();\n }\n\n if (this._radiumMediaQueryListenersByQuery) {\n Object.keys(this._radiumMediaQueryListenersByQuery).forEach(function (query) {\n this._radiumMediaQueryListenersByQuery[query].remove();\n }, this);\n }\n };\n\n RadiumEnhancer.prototype.getChildContext = function getChildContext() {\n var superChildContext = _ComposedComponent.prototype.getChildContext ? _ComposedComponent.prototype.getChildContext.call(this) : {};\n\n if (!this.props.radiumConfig) {\n return superChildContext;\n }\n\n var newContext = _extends({}, superChildContext);\n\n if (this.props.radiumConfig) {\n newContext._radiumConfig = this.props.radiumConfig;\n }\n\n return newContext;\n };\n\n RadiumEnhancer.prototype.render = function render() {\n var renderedElement = _ComposedComponent.prototype.render.call(this);\n var currentConfig = this.props.radiumConfig || this.context._radiumConfig || config;\n\n if (config && currentConfig !== config) {\n currentConfig = _extends({}, config, currentConfig);\n }\n\n return (0, _resolveStyles2.default)(this, renderedElement, currentConfig);\n };\n\n return RadiumEnhancer;\n }(ComposedComponent), _class._isRadiumEnhanced = true, _temp);\n\n // Class inheritance uses Object.create and because of __proto__ issues\n // with IE <10 any static properties of the superclass aren't inherited and\n // so need to be manually populated.\n // See http://babeljs.io/docs/advanced/caveats/#classes-10-and-below-\n\n copyProperties(component, RadiumEnhancer);\n\n if (process.env.NODE_ENV !== 'production') {\n // This also fixes React Hot Loader by exposing the original components top\n // level prototype methods on the Radium enhanced prototype as discussed in\n // https://github.com/FormidableLabs/radium/issues/219.\n copyProperties(ComposedComponent.prototype, RadiumEnhancer.prototype);\n }\n\n if (RadiumEnhancer.propTypes && RadiumEnhancer.propTypes.style) {\n RadiumEnhancer.propTypes = _extends({}, RadiumEnhancer.propTypes, {\n style: _react.PropTypes.oneOfType([_react.PropTypes.array, _react.PropTypes.object])\n });\n }\n\n RadiumEnhancer.displayName = component.displayName || component.name || 'Component';\n\n RadiumEnhancer.contextTypes = _extends({}, RadiumEnhancer.contextTypes, {\n _radiumConfig: _react.PropTypes.object,\n _radiumStyleKeeper: _react.PropTypes.instanceOf(_styleKeeper2.default)\n });\n\n RadiumEnhancer.childContextTypes = _extends({}, RadiumEnhancer.childContextTypes, {\n _radiumConfig: _react.PropTypes.object,\n _radiumStyleKeeper: _react.PropTypes.instanceOf(_styleKeeper2.default)\n });\n\n return RadiumEnhancer;\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/enhancer.js\n// module id = 395\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar getStateKey = function getStateKey(elementKey) {\n return elementKey === null || elementKey === undefined ? 'main' : elementKey.toString();\n};\n\nexports.default = getStateKey;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/get-state-key.js\n// module id = 396\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _getStateKey = require('./get-state-key');\n\nvar _getStateKey2 = _interopRequireDefault(_getStateKey);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar getState = function getState(state, elementKey, value) {\n var key = (0, _getStateKey2.default)(elementKey);\n\n return !!state && !!state._radiumStyleState && !!state._radiumStyleState[key] && state._radiumStyleState[key][value];\n};\n\nexports.default = getState;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/get-state.js\n// module id = 397\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = hash;\n\n\n// a simple djb2 hash based on hash-string:\n// https://github.com/MatthewBarker/hash-string/blob/master/source/hash-string.js\n// returns a hex-encoded hash\nfunction hash(text) {\n if (!text) {\n return '';\n }\n\n var hashValue = 5381;\n var index = text.length - 1;\n\n while (index) {\n hashValue = hashValue * 33 ^ text.charCodeAt(index);\n index -= 1;\n }\n\n return (hashValue >>> 0).toString(16);\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/hash.js\n// module id = 398\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = mapObject;\nfunction mapObject(object, mapper) {\n return Object.keys(object).reduce(function (result, key) {\n result[key] = mapper(object[key], key);\n return result;\n }, {});\n}\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/map-object.js\n// module id = 399\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _checkPropsPlugin = require('./check-props-plugin');\n\nvar _checkPropsPlugin2 = _interopRequireDefault(_checkPropsPlugin);\n\nvar _keyframesPlugin = require('./keyframes-plugin');\n\nvar _keyframesPlugin2 = _interopRequireDefault(_keyframesPlugin);\n\nvar _mergeStyleArrayPlugin = require('./merge-style-array-plugin');\n\nvar _mergeStyleArrayPlugin2 = _interopRequireDefault(_mergeStyleArrayPlugin);\n\nvar _prefixPlugin = require('./prefix-plugin');\n\nvar _prefixPlugin2 = _interopRequireDefault(_prefixPlugin);\n\nvar _removeNestedStylesPlugin = require('./remove-nested-styles-plugin');\n\nvar _removeNestedStylesPlugin2 = _interopRequireDefault(_removeNestedStylesPlugin);\n\nvar _resolveInteractionStylesPlugin = require('./resolve-interaction-styles-plugin');\n\nvar _resolveInteractionStylesPlugin2 = _interopRequireDefault(_resolveInteractionStylesPlugin);\n\nvar _resolveMediaQueriesPlugin = require('./resolve-media-queries-plugin');\n\nvar _resolveMediaQueriesPlugin2 = _interopRequireDefault(_resolveMediaQueriesPlugin);\n\nvar _visitedPlugin = require('./visited-plugin');\n\nvar _visitedPlugin2 = _interopRequireDefault(_visitedPlugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n checkProps: _checkPropsPlugin2.default,\n keyframes: _keyframesPlugin2.default,\n mergeStyleArray: _mergeStyleArrayPlugin2.default,\n prefix: _prefixPlugin2.default,\n removeNestedStyles: _removeNestedStylesPlugin2.default,\n resolveInteractionStyles: _resolveInteractionStylesPlugin2.default,\n resolveMediaQueries: _resolveMediaQueriesPlugin2.default,\n visited: _visitedPlugin2.default\n};\n/* eslint-disable block-scoped-const */\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/plugins/index.js\n// module id = 400\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _appendImportantToEachValue = require('./append-important-to-each-value');\n\nvar _appendImportantToEachValue2 = _interopRequireDefault(_appendImportantToEachValue);\n\nvar _cssRuleSetToString = require('./css-rule-set-to-string');\n\nvar _cssRuleSetToString2 = _interopRequireDefault(_cssRuleSetToString);\n\nvar _getState = require('./get-state');\n\nvar _getState2 = _interopRequireDefault(_getState);\n\nvar _getStateKey = require('./get-state-key');\n\nvar _getStateKey2 = _interopRequireDefault(_getStateKey);\n\nvar _hash = require('./hash');\n\nvar _hash2 = _interopRequireDefault(_hash);\n\nvar _mergeStyles = require('./merge-styles');\n\nvar _plugins = require('./plugins/');\n\nvar _plugins2 = _interopRequireDefault(_plugins);\n\nvar _exenv = require('exenv');\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DEFAULT_CONFIG = {\n plugins: [_plugins2.default.mergeStyleArray, _plugins2.default.checkProps, _plugins2.default.resolveMediaQueries, _plugins2.default.resolveInteractionStyles, _plugins2.default.keyframes, _plugins2.default.visited, _plugins2.default.removeNestedStyles, _plugins2.default.prefix, _plugins2.default.checkProps]\n};\n\n// Gross\nvar globalState = {};\n\n// Declare early for recursive helpers.\nvar resolveStyles = null;\n\nvar _shouldResolveStyles = function _shouldResolveStyles(component) {\n return component.type && !component.type._isRadiumEnhanced;\n};\n\nvar _resolveChildren = function _resolveChildren(_ref) {\n var children = _ref.children,\n component = _ref.component,\n config = _ref.config,\n existingKeyMap = _ref.existingKeyMap;\n\n if (!children) {\n return children;\n }\n\n var childrenType = typeof children === 'undefined' ? 'undefined' : _typeof(children);\n\n if (childrenType === 'string' || childrenType === 'number') {\n // Don't do anything with a single primitive child\n return children;\n }\n\n if (childrenType === 'function') {\n // Wrap the function, resolving styles on the result\n return function () {\n var result = children.apply(this, arguments);\n if (_react2.default.isValidElement(result)) {\n return resolveStyles(component, result, config, existingKeyMap, true);\n }\n return result;\n };\n }\n\n if (_react2.default.Children.count(children) === 1 && children.type) {\n // If a React Element is an only child, don't wrap it in an array for\n // React.Children.map() for React.Children.only() compatibility.\n var onlyChild = _react2.default.Children.only(children);\n return resolveStyles(component, onlyChild, config, existingKeyMap, true);\n }\n\n return _react2.default.Children.map(children, function (child) {\n if (_react2.default.isValidElement(child)) {\n return resolveStyles(component, child, config, existingKeyMap, true);\n }\n\n return child;\n });\n};\n\n// Recurse over props, just like children\nvar _resolveProps = function _resolveProps(_ref2) {\n var component = _ref2.component,\n config = _ref2.config,\n existingKeyMap = _ref2.existingKeyMap,\n props = _ref2.props;\n\n var newProps = props;\n\n Object.keys(props).forEach(function (prop) {\n // We already recurse over children above\n if (prop === 'children') {\n return;\n }\n\n var propValue = props[prop];\n if (_react2.default.isValidElement(propValue)) {\n newProps = _extends({}, newProps);\n newProps[prop] = resolveStyles(component, propValue, config, existingKeyMap, true);\n }\n });\n\n return newProps;\n};\n\nvar _buildGetKey = function _buildGetKey(_ref3) {\n var componentName = _ref3.componentName,\n existingKeyMap = _ref3.existingKeyMap,\n renderedElement = _ref3.renderedElement;\n\n // We need a unique key to correlate state changes due to user interaction\n // with the rendered element, so we know to apply the proper interactive\n // styles.\n var originalKey = typeof renderedElement.ref === 'string' ? renderedElement.ref : renderedElement.key;\n var key = (0, _getStateKey2.default)(originalKey);\n\n var alreadyGotKey = false;\n var getKey = function getKey() {\n if (alreadyGotKey) {\n return key;\n }\n\n alreadyGotKey = true;\n\n if (existingKeyMap[key]) {\n var elementName = void 0;\n if (typeof renderedElement.type === 'string') {\n elementName = renderedElement.type;\n } else if (renderedElement.type.constructor) {\n elementName = renderedElement.type.constructor.displayName || renderedElement.type.constructor.name;\n }\n\n throw new Error('Radium requires each element with interactive styles to have a unique ' + 'key, set using either the ref or key prop. ' + (originalKey ? 'Key \"' + originalKey + '\" is a duplicate.' : 'Multiple elements have no key specified.') + ' ' + 'Component: \"' + componentName + '\". ' + (elementName ? 'Element: \"' + elementName + '\".' : ''));\n }\n\n existingKeyMap[key] = true;\n\n return key;\n };\n\n return getKey;\n};\n\nvar _setStyleState = function _setStyleState(component, key, stateKey, value) {\n if (!component._radiumIsMounted) {\n return;\n }\n\n var existing = component._lastRadiumState || component.state && component.state._radiumStyleState || {};\n\n var state = { _radiumStyleState: _extends({}, existing) };\n state._radiumStyleState[key] = _extends({}, state._radiumStyleState[key]);\n state._radiumStyleState[key][stateKey] = value;\n\n component._lastRadiumState = state._radiumStyleState;\n component.setState(state);\n};\n\nvar _runPlugins = function _runPlugins(_ref4) {\n var component = _ref4.component,\n config = _ref4.config,\n existingKeyMap = _ref4.existingKeyMap,\n props = _ref4.props,\n renderedElement = _ref4.renderedElement;\n\n // Don't run plugins if renderedElement is not a simple ReactDOMElement or has\n // no style.\n if (!_react2.default.isValidElement(renderedElement) || typeof renderedElement.type !== 'string' || !props.style) {\n return props;\n }\n\n var newProps = props;\n\n var plugins = config.plugins || DEFAULT_CONFIG.plugins;\n\n var componentName = component.constructor.displayName || component.constructor.name;\n var getKey = _buildGetKey({\n renderedElement: renderedElement,\n existingKeyMap: existingKeyMap,\n componentName: componentName\n });\n var getComponentField = function getComponentField(key) {\n return component[key];\n };\n var getGlobalState = function getGlobalState(key) {\n return globalState[key];\n };\n var componentGetState = function componentGetState(stateKey, elementKey) {\n return (0, _getState2.default)(component.state, elementKey || getKey(), stateKey);\n };\n var setState = function setState(stateKey, value, elementKey) {\n return _setStyleState(component, elementKey || getKey(), stateKey, value);\n };\n\n var addCSS = function addCSS(css) {\n var styleKeeper = component._radiumStyleKeeper || component.context._radiumStyleKeeper;\n if (!styleKeeper) {\n if (__isTestModeEnabled) {\n return {\n remove: function remove() {}\n };\n }\n\n throw new Error('To use plugins requiring `addCSS` (e.g. keyframes, media queries), ' + 'please wrap your application in the StyleRoot component. Component ' + 'name: `' + componentName + '`.');\n }\n\n return styleKeeper.addCSS(css);\n };\n\n var newStyle = props.style;\n\n plugins.forEach(function (plugin) {\n var result = plugin({\n ExecutionEnvironment: _exenv2.default,\n addCSS: addCSS,\n appendImportantToEachValue: _appendImportantToEachValue2.default,\n componentName: componentName,\n config: config,\n cssRuleSetToString: _cssRuleSetToString2.default,\n getComponentField: getComponentField,\n getGlobalState: getGlobalState,\n getState: componentGetState,\n hash: _hash2.default,\n mergeStyles: _mergeStyles.mergeStyles,\n props: newProps,\n setState: setState,\n isNestedStyle: _mergeStyles.isNestedStyle,\n style: newStyle\n }) || {};\n\n newStyle = result.style || newStyle;\n\n newProps = result.props && Object.keys(result.props).length ? _extends({}, newProps, result.props) : newProps;\n\n var newComponentFields = result.componentFields || {};\n Object.keys(newComponentFields).forEach(function (fieldName) {\n component[fieldName] = newComponentFields[fieldName];\n });\n\n var newGlobalState = result.globalState || {};\n Object.keys(newGlobalState).forEach(function (key) {\n globalState[key] = newGlobalState[key];\n });\n });\n\n if (newStyle !== props.style) {\n newProps = _extends({}, newProps, { style: newStyle });\n }\n\n return newProps;\n};\n\n// Wrapper around React.cloneElement. To avoid processing the same element\n// twice, whenever we clone an element add a special prop to make sure we don't\n// process this element again.\nvar _cloneElement = function _cloneElement(renderedElement, newProps, newChildren) {\n // Only add flag if this is a normal DOM element\n if (typeof renderedElement.type === 'string') {\n newProps = _extends({}, newProps, { 'data-radium': true });\n }\n\n return _react2.default.cloneElement(renderedElement, newProps, newChildren);\n};\n\n//\n// The nucleus of Radium. resolveStyles is called on the rendered elements\n// before they are returned in render. It iterates over the elements and\n// children, rewriting props to add event handlers required to capture user\n// interactions (e.g. mouse over). It also replaces the style prop because it\n// adds in the various interaction styles (e.g. :hover).\n//\nresolveStyles = function resolveStyles(component, // ReactComponent, flow+eslint complaining\nrenderedElement) {\n var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_CONFIG;\n var existingKeyMap = arguments[3];\n var shouldCheckBeforeResolve = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // ReactElement\n existingKeyMap = existingKeyMap || {};\n if (!renderedElement ||\n // Bail if we've already processed this element. This ensures that only the\n // owner of an element processes that element, since the owner's render\n // function will be called first (which will always be the case, since you\n // can't know what else to render until you render the parent component).\n renderedElement.props && renderedElement.props['data-radium'] ||\n // Bail if this element is a radium enhanced element, because if it is,\n // then it will take care of resolving its own styles.\n shouldCheckBeforeResolve && !_shouldResolveStyles(renderedElement)) {\n return renderedElement;\n }\n\n var newChildren = _resolveChildren({\n children: renderedElement.props.children,\n component: component,\n config: config,\n existingKeyMap: existingKeyMap\n });\n\n var newProps = _resolveProps({\n component: component,\n config: config,\n existingKeyMap: existingKeyMap,\n props: renderedElement.props\n });\n\n newProps = _runPlugins({\n component: component,\n config: config,\n existingKeyMap: existingKeyMap,\n props: newProps,\n renderedElement: renderedElement\n });\n\n // If nothing changed, don't bother cloning the element. Might be a bit\n // wasteful, as we add the sentinal to stop double-processing when we clone.\n // Assume benign double-processing is better than unneeded cloning.\n if (newChildren === renderedElement.props.children && newProps === renderedElement.props) {\n return renderedElement;\n }\n\n return _cloneElement(renderedElement, newProps !== renderedElement.props ? newProps : {}, newChildren);\n};\n\n// Only for use by tests\nvar __isTestModeEnabled = false;\nif (process.env.NODE_ENV !== 'production') {\n resolveStyles.__clearStateForTests = function () {\n globalState = {};\n };\n resolveStyles.__setTestMode = function (isEnabled) {\n __isTestModeEnabled = isEnabled;\n };\n}\n\nexports.default = resolveStyles;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/resolve-styles.js\n// module id = 401\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.memoize = exports.reverse = exports.compose = exports.map = exports.range = exports.curry = exports.PLACE_HOLDER = void 0;\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nvar identity = function identity(i) {\n return i;\n};\n\nvar PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\nexports.PLACE_HOLDER = PLACE_HOLDER;\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nvar curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\n\nexports.curry = curry;\n\nvar range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\n\nexports.range = range;\nvar map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexports.map = map;\n\nvar compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\n\nexports.compose = compose;\n\nvar reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\n\nexports.reverse = reverse;\n\nvar memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};\n\nexports.memoize = memoize;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts-scale/lib/util/utils.js\n// module id = 402\n// module chunks = 0","import _range from \"lodash/range\";\nimport _isFunction from \"lodash/isFunction\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\n/**\n * @fileOverview Brush\n */\nimport React, { Component, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { scalePoint } from 'd3-scale';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport pureRender from '../util/PureRender';\nimport Layer from '../container/Layer';\nimport Text from '../component/Text';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\n\nvar Brush = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Brush, _Component);\n\n function Brush(props) {\n var _this;\n\n _classCallCheck(this, Brush);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Brush).call(this, props));\n\n _this.handleDrag = function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n };\n\n _this.handleDragEnd = function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n });\n };\n\n _this.handleLeaveWrapper = function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n };\n\n _this.handleEnterSlideOrTraveller = function () {\n _this.setState({\n isTextActive: true\n });\n };\n\n _this.handleLeaveSlideOrTraveller = function () {\n _this.setState({\n isTextActive: false\n });\n };\n\n _this.handleSlideDragStart = function (e) {\n var event = e.changedTouches && e.changedTouches.length ? e.changedTouches[0] : e;\n\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n };\n\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_assertThisInitialized(_this)), 'startX'),\n endX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_assertThisInitialized(_this)), 'endX')\n };\n _this.state = props.data && props.data.length ? _this.updateScale(props) : {};\n return _this;\n }\n\n _createClass(Brush, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this2 = this;\n\n var _this$props = this.props,\n data = _this$props.data,\n width = _this$props.width,\n x = _this$props.x,\n travellerWidth = _this$props.travellerWidth,\n updateId = _this$props.updateId;\n\n if ((nextProps.data !== data || nextProps.updateId !== updateId) && nextProps.data && nextProps.data.length) {\n this.setState(this.updateScale(nextProps));\n } else if (nextProps.width !== width || nextProps.x !== x || nextProps.travellerWidth !== travellerWidth) {\n this.scale.range([nextProps.x, nextProps.x + nextProps.width - nextProps.travellerWidth]);\n this.scaleValues = this.scale.domain().map(function (entry) {\n return _this2.scale(entry);\n });\n this.setState({\n startX: this.scale(nextProps.startIndex),\n endX: this.scale(nextProps.endIndex)\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.scale = null;\n this.scaleValues = null;\n\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref) {\n var startX = _ref.startX,\n endX = _ref.endX;\n var _this$props2 = this.props,\n gap = _this$props2.gap,\n data = _this$props2.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = this.constructor.getIndexInRange(this.scaleValues, min);\n var maxIndex = this.constructor.getIndexInRange(this.scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props3 = this.props,\n data = _this$props3.data,\n tickFormatter = _this$props3.tickFormatter,\n dataKey = _this$props3.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return _isFunction(tickFormatter) ? tickFormatter(text) : text;\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n startIndex = _this$props4.startIndex,\n endIndex = _this$props4.endIndex,\n onChange = _this$props4.onChange;\n var delta = e.pageX - slideMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = e.changedTouches && e.changedTouches.length ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$setState;\n\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props5 = this.props,\n x = _this$props5.x,\n width = _this$props5.width,\n travellerWidth = _this$props5.travellerWidth,\n onChange = _this$props5.onChange,\n gap = _this$props5.gap,\n data = _this$props5.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n\n return false;\n };\n\n this.setState((_this$setState = {}, _defineProperty(_this$setState, movingTravellerId, prevValue + delta), _defineProperty(_this$setState, \"brushMoveStartX\", e.pageX), _this$setState), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"updateScale\",\n value: function updateScale(props) {\n var _this3 = this;\n\n var data = props.data,\n startIndex = props.startIndex,\n endIndex = props.endIndex,\n x = props.x,\n width = props.width,\n travellerWidth = props.travellerWidth;\n var len = data.length;\n this.scale = scalePoint().domain(_range(0, len)).range([x, x + width - travellerWidth]);\n this.scaleValues = this.scale.domain().map(function (entry) {\n return _this3.scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n startX: this.scale(startIndex),\n endX: this.scale(endIndex)\n };\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n fill = _this$props6.fill,\n stroke = _this$props6.stroke;\n return React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props7 = this.props,\n x = _this$props7.x,\n y = _this$props7.y,\n width = _this$props7.width,\n height = _this$props7.height,\n data = _this$props7.data,\n children = _this$props7.children,\n padding = _this$props7.padding;\n var chartElement = Children.only(children);\n\n if (!chartElement) {\n return null;\n }\n\n return React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(travellerX, id) {\n var _this$props8 = this.props,\n y = _this$props8.y,\n travellerWidth = _this$props8.travellerWidth,\n height = _this$props8.height,\n stroke = _this$props8.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n var x = Math.max(travellerX, this.props.x);\n return React.createElement(Layer, {\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n style: {\n cursor: 'col-resize'\n }\n }, React.createElement(\"rect\", {\n x: x,\n y: y,\n width: travellerWidth,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + travellerWidth - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + travellerWidth - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props9 = this.props,\n y = _this$props9.y,\n height = _this$props9.height,\n stroke = _this$props9.stroke;\n return React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: Math.min(startX, endX),\n y: y,\n width: Math.abs(endX - startX),\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props10 = this.props,\n startIndex = _this$props10.startIndex,\n endIndex = _this$props10.endIndex,\n y = _this$props10.y,\n height = _this$props10.height,\n travellerWidth = _this$props10.travellerWidth,\n stroke = _this$props10.stroke;\n var _this$state3 = this.state,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props11 = this.props,\n data = _this$props11.data,\n className = _this$props11.className,\n children = _this$props11.children,\n x = _this$props11.x,\n y = _this$props11.y,\n width = _this$props11.width,\n height = _this$props11.height;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX,\n isTextActive = _this$state4.isTextActive,\n isSlideMoving = _this$state4.isSlideMoving,\n isTravellerMoving = _this$state4.isTravellerMoving;\n\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return React.createElement(Layer, {\n className: layerClass,\n onMouseMove: this.handleDrag,\n onMouseLeave: this.handleLeaveWrapper,\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTraveller(startX, 'startX'), this.renderTraveller(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving) && this.renderText());\n }\n }], [{\n key: \"getIndexInRange\",\n value: function getIndexInRange(range, x) {\n var len = range.length;\n var start = 0;\n var end = len - 1;\n\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n\n if (range[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n\n return x >= range[end] ? end : start;\n }\n }]);\n\n return Brush;\n}(Component), _class2.displayName = 'Brush', _class2.propTypes = {\n className: PropTypes.string,\n fill: PropTypes.string,\n stroke: PropTypes.string,\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number.isRequired,\n travellerWidth: PropTypes.number,\n gap: PropTypes.number,\n padding: PropTypes.shape({\n top: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number\n }),\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n data: PropTypes.array,\n startIndex: PropTypes.number,\n endIndex: PropTypes.number,\n tickFormatter: PropTypes.func,\n children: PropTypes.node,\n onChange: PropTypes.func,\n updateId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n leaveTimeOut: PropTypes.number\n}, _class2.defaultProps = {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000\n}, _temp)) || _class;\n\nexport default Brush;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/cartesian/Brush.js\n// module id = 403\n// module chunks = 0","import _isFunction from \"lodash/isFunction\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { shallowEqual } from '../util/PureRender';\nimport { getStringSize } from '../util/DOMUtils';\nimport Layer from '../container/Layer';\nimport Text from '../component/Text';\nimport Label from '../component/Label';\nimport { isSsr, PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, getPresentationAttributes, filterEventsOfChild } from '../util/ReactUtils';\nimport { isNumber, mathSign } from '../util/DataUtils';\n\nvar CartesianAxis =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(CartesianAxis, _Component);\n\n function CartesianAxis() {\n _classCallCheck(this, CartesianAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(CartesianAxis).apply(this, arguments));\n }\n\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref, state) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, [\"viewBox\"]);\n\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, [\"viewBox\"]);\n\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld) || !shallowEqual(state, this.state);\n }\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + !mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + !mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n\n default:\n x1 = x2 = data.coordinate;\n y2 = y + mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n\n default:\n textAnchor = 'middle';\n break;\n }\n\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n axisLine = _this$props5.axisLine,\n mirror = _this$props5.mirror;\n\n var props = _objectSpread({}, getPresentationAttributes(this.props), {\n fill: 'none'\n }, getPresentationAttributes(axisLine));\n\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n props = _objectSpread({}, props, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n props = _objectSpread({}, props, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n\n return React.createElement(\"line\", _extends({\n className: \"recharts-cartesian-axis-line\"\n }, props));\n }\n }, {\n key: \"renderTicks\",\n\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @return {ReactComponent} renderedTicks\n */\n value: function renderTicks(ticks) {\n var _this = this;\n\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = CartesianAxis.getTicks(_objectSpread({}, this.props, {\n ticks: ticks\n }));\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = getPresentationAttributes(this.props);\n var customTickProps = getPresentationAttributes(tick);\n\n var tickLineProps = _objectSpread({}, axisProps, {\n fill: 'none'\n }, getPresentationAttributes(tickLine));\n\n var items = finalTicks.map(function (entry, i) {\n var _this$getTickLineCoor = _this.getTickLineCoord(entry),\n lineCoord = _this$getTickLineCoor.line,\n tickCoord = _this$getTickLineCoor.tick;\n\n var tickProps = _objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps, {\n stroke: 'none',\n fill: stroke\n }, customTickProps, tickCoord, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length\n });\n\n return React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(i)\n }, filterEventsOfChild(_this.props, entry, i)), tickLine && React.createElement(\"line\", _extends({\n className: \"recharts-cartesian-axis-tick-line\"\n }, tickLineProps, lineCoord)), tick && _this.constructor.renderTickItem(tick, tickProps, \"\".concat(_isFunction(tickFormatter) ? tickFormatter(entry.value) : entry.value).concat(unit || '')));\n });\n return React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n\n if (hide) {\n return null;\n }\n\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, [\"ticks\"]);\n\n var finalTicks = ticks;\n\n if (_isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n\n return React.createElement(Layer, {\n className: classNames('recharts-cartesian-axis', className)\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"getTicks\",\n value: function getTicks(props) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit;\n\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n\n if (isNumber(interval) || isSsr()) {\n return CartesianAxis.getNumberIntervalTicks(ticks, isNumber(interval) ? interval : 0);\n }\n\n if (interval === 'preserveStartEnd') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n }, true);\n }\n\n if (interval === 'preserveStart') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n\n return CartesianAxis.getTicksEnd({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n }, {\n key: \"getNumberIntervalTicks\",\n value: function getNumberIntervalTicks(ticks, interval) {\n return ticks.filter(function (entry, i) {\n return i % (interval + 1) === 0;\n });\n }\n }, {\n key: \"getTicksStart\",\n value: function getTicksStart(_ref2, preserveEnd) {\n var ticks = _ref2.ticks,\n tickFormatter = _ref2.tickFormatter,\n viewBox = _ref2.viewBox,\n orientation = _ref2.orientation,\n minTickGap = _ref2.minTickGap,\n unit = _ref2.unit;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var result = (ticks || []).slice(); // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit)[sizeKey] : 0;\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailContent = _isFunction(tickFormatter) ? tickFormatter(tail.value) : tail.value;\n var tailSize = getStringSize(tailContent)[sizeKey] + unitSize;\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread({}, tail, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = sign * (tail.tickCoord - sign * tailSize / 2 - start) >= 0 && sign * (tail.tickCoord + sign * tailSize / 2 - end) <= 0;\n\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread({}, tail, {\n isShow: true\n });\n }\n }\n\n var count = preserveEnd ? len - 1 : len;\n\n for (var i = 0; i < count; i++) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value) : entry.value;\n var size = getStringSize(content)[sizeKey] + unitSize;\n\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * size / 2 - start);\n result[i] = entry = _objectSpread({}, entry, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread({}, entry, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n start = entry.tickCoord + sign * (size / 2 + minTickGap);\n result[i] = _objectSpread({}, entry, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"getTicksEnd\",\n value: function getTicksEnd(_ref3) {\n var ticks = _ref3.ticks,\n tickFormatter = _ref3.tickFormatter,\n viewBox = _ref3.viewBox,\n orientation = _ref3.orientation,\n minTickGap = _ref3.minTickGap,\n unit = _ref3.unit;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height'; // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit)[sizeKey] : 0;\n var result = (ticks || []).slice();\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n for (var i = len - 1; i >= 0; i--) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value) : entry.value;\n var size = getStringSize(content)[sizeKey] + unitSize;\n\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * size / 2 - end);\n result[i] = entry = _objectSpread({}, entry, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread({}, entry, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n end = entry.tickCoord - sign * (size / 2 + minTickGap);\n result[i] = _objectSpread({}, entry, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n\n if (React.isValidElement(option)) {\n tickItem = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n\n return tickItem;\n }\n }]);\n\n return CartesianAxis;\n}(Component);\n\nCartesianAxis.displayName = 'CartesianAxis';\nCartesianAxis.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, {\n className: PropTypes.string,\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n orientation: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n // The viewBox of svg\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number\n }),\n tick: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.object, PropTypes.element]),\n axisLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n tickLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n mirror: PropTypes.bool,\n tickMargin: PropTypes.number.isRequired,\n minTickGap: PropTypes.number,\n ticks: PropTypes.array,\n tickSize: PropTypes.number,\n stroke: PropTypes.string,\n tickFormatter: PropTypes.func,\n ticksGenerator: PropTypes.func,\n interval: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['preserveStart', 'preserveEnd', 'preserveStartEnd'])])\n});\nCartesianAxis.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n};\nexport default CartesianAxis;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/cartesian/CartesianAxis.js\n// module id = 404\n// module chunks = 0","import _isFunction from \"lodash/isFunction\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Reference Line\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport Layer from '../container/Layer';\nimport Label from '../component/Label';\nimport { LabeledScaleHelper, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/ChartUtils';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { PRESENTATION_ATTRIBUTES } from '../util/ReactUtils';\nimport Rectangle from '../shape/Rectangle';\n\nvar ReferenceArea = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ReferenceArea, _Component);\n\n function ReferenceArea() {\n _classCallCheck(this, ReferenceArea);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ReferenceArea).apply(this, arguments));\n }\n\n _createClass(ReferenceArea, [{\n key: \"getRect\",\n value: function getRect(hasX1, hasX2, hasY1, hasY2) {\n var _this$props = this.props,\n xValue1 = _this$props.x1,\n xValue2 = _this$props.x2,\n yValue1 = _this$props.y1,\n yValue2 = _this$props.y2,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis;\n var scale = LabeledScaleHelper.create({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scale.x.apply(xValue1) : scale.x.rangeMin,\n y: hasY1 ? scale.y.apply(yValue1) : scale.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scale.x.apply(xValue2) : scale.x.rangeMax,\n y: hasY2 ? scale.y.apply(yValue2) : scale.y.rangeMax\n };\n\n if (ifOverflowMatches(this.props, 'discard') && (!scale.isInRange(p1) || !scale.isInRange(p2))) {\n return null;\n }\n\n return rectWithPoints(p1, p2);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n x1 = _this$props2.x1,\n x2 = _this$props2.x2,\n y1 = _this$props2.y1,\n y2 = _this$props2.y2,\n className = _this$props2.className,\n alwaysShow = _this$props2.alwaysShow,\n clipPathId = _this$props2.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2) {\n return null;\n }\n\n var rect = this.getRect(hasX1, hasX2, hasY1, hasY2);\n\n if (!rect) {\n return null;\n }\n\n var shape = this.props.shape;\n var clipPath = ifOverflowMatches(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return React.createElement(Layer, {\n className: classNames('recharts-reference-area', className)\n }, this.constructor.renderRect(shape, _objectSpread({\n clipPath: clipPath\n }, this.props, rect)), Label.renderCallByParent(this.props, rect));\n }\n }], [{\n key: \"renderRect\",\n value: function renderRect(option, props) {\n var rect;\n\n if (React.isValidElement(option)) {\n rect = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rect = option(props);\n } else {\n rect = React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n\n return rect;\n }\n }]);\n\n return ReferenceArea;\n}(Component), _class2.displayName = 'ReferenceArea', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number\n }),\n xAxis: PropTypes.object,\n yAxis: PropTypes.object,\n isFront: PropTypes.bool,\n alwaysShow: PropTypes.bool,\n ifOverflow: PropTypes.oneOf(['hidden', 'visible', 'discard', 'extendDomain']),\n x1: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n x2: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y1: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y2: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n shape: PropTypes.oneOfType([PropTypes.func, PropTypes.element])\n}), _class2.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n}, _temp)) || _class;\n\nexport default ReferenceArea;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/cartesian/ReferenceArea.js\n// module id = 405\n// module chunks = 0","import _isFunction from \"lodash/isFunction\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Reference Dot\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport Layer from '../container/Layer';\nimport Dot from '../shape/Dot';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\nimport Label from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/ChartUtils';\nimport { LabeledScaleHelper } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\n\nvar ReferenceDot = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ReferenceDot, _Component);\n\n function ReferenceDot() {\n _classCallCheck(this, ReferenceDot);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ReferenceDot).apply(this, arguments));\n }\n\n _createClass(ReferenceDot, [{\n key: \"getCoordinate\",\n value: function getCoordinate() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis;\n var scales = LabeledScaleHelper.create({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n\n if (ifOverflowMatches(this.props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n\n return result;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n r = _this$props2.r,\n alwaysShow = _this$props2.alwaysShow,\n clipPathId = _this$props2.clipPathId;\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n\n if (!isX || !isY) {\n return null;\n }\n\n var coordinate = this.getCoordinate();\n\n if (!coordinate) {\n return null;\n }\n\n var cx = coordinate.x,\n cy = coordinate.y;\n var _this$props3 = this.props,\n shape = _this$props3.shape,\n className = _this$props3.className;\n var clipPath = ifOverflowMatches(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var dotProps = _objectSpread({\n clipPath: clipPath\n }, getPresentationAttributes(this.props), filterEventAttributes(this.props), {\n cx: cx,\n cy: cy\n });\n\n return React.createElement(Layer, {\n className: classNames('recharts-reference-dot', className)\n }, this.constructor.renderDot(shape, dotProps), Label.renderCallByParent(this.props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n }\n }], [{\n key: \"renderDot\",\n value: function renderDot(option, props) {\n var dot;\n\n if (React.isValidElement(option)) {\n dot = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n\n return dot;\n }\n }]);\n\n return ReferenceDot;\n}(Component), _class2.displayName = 'ReferenceDot', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, {\n r: PropTypes.number,\n xAxis: PropTypes.shape({\n scale: PropTypes.func\n }),\n yAxis: PropTypes.shape({\n scale: PropTypes.func\n }),\n isFront: PropTypes.bool,\n alwaysShow: PropTypes.bool,\n ifOverflow: PropTypes.oneOf(['hidden', 'visible', 'discard', 'extendDomain']),\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n shape: PropTypes.oneOfType([PropTypes.func, PropTypes.element]),\n clipPathId: PropTypes.string\n}), _class2.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n}, _temp)) || _class;\n\nexport default ReferenceDot;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/cartesian/ReferenceDot.js\n// module id = 406\n// module chunks = 0","import _some from \"lodash/some\";\nimport _isFunction from \"lodash/isFunction\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * @fileOverview Reference Line\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport Layer from '../container/Layer';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\nimport Label from '../component/Label';\nimport { ifOverflowMatches } from '../util/ChartUtils';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { LabeledScaleHelper, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\n\nvar renderLine = function renderLine(option, props) {\n var line;\n\n if (React.isValidElement(option)) {\n line = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n line = option(props);\n } else {\n line = React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n\n return line;\n};\n\nvar ReferenceLine = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ReferenceLine, _Component);\n\n function ReferenceLine() {\n _classCallCheck(this, ReferenceLine);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ReferenceLine).apply(this, arguments));\n }\n\n _createClass(ReferenceLine, [{\n key: \"getEndPoints\",\n value: function getEndPoints(scales, isFixedX, isFixedY, isSegment) {\n var _this$props$viewBox = this.props.viewBox,\n x = _this$props$viewBox.x,\n y = _this$props$viewBox.y,\n width = _this$props$viewBox.width,\n height = _this$props$viewBox.height;\n\n if (isFixedY) {\n var _this$props = this.props,\n yCoord = _this$props.y,\n orientation = _this$props.yAxis.orientation;\n var coord = scales.y.apply(yCoord, {\n bandAware: true\n });\n\n if (ifOverflowMatches(this.props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return orientation === 'left' ? points.reverse() : points;\n }\n\n if (isFixedX) {\n var _this$props2 = this.props,\n xCoord = _this$props2.x,\n _orientation = _this$props2.xAxis.orientation;\n\n var _coord = scales.x.apply(xCoord, {\n bandAware: true\n });\n\n if (ifOverflowMatches(this.props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return _orientation === 'top' ? _points.reverse() : _points;\n }\n\n if (isSegment) {\n var segment = this.props.segment;\n\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n bandAware: true\n });\n });\n\n if (ifOverflowMatches(this.props, 'discard') && _some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n\n return _points2;\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props3 = this.props,\n fixedX = _this$props3.x,\n fixedY = _this$props3.y,\n segment = _this$props3.segment,\n xAxis = _this$props3.xAxis,\n yAxis = _this$props3.yAxis,\n shape = _this$props3.shape,\n className = _this$props3.className,\n alwaysShow = _this$props3.alwaysShow,\n clipPathId = _this$props3.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = LabeledScaleHelper.create({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = this.getEndPoints(scales, isX, isY, isSegment);\n\n if (!endPoints) {\n return null;\n }\n\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n\n var clipPath = ifOverflowMatches(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var props = _objectSpread({\n clipPath: clipPath\n }, getPresentationAttributes(this.props), filterEventAttributes(this.props), {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n\n return React.createElement(Layer, {\n className: classNames('recharts-reference-line', className)\n }, renderLine(shape, props), Label.renderCallByParent(this.props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n }\n }]);\n\n return ReferenceLine;\n}(Component), _class2.displayName = 'ReferenceLine', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number\n }),\n xAxis: PropTypes.object,\n yAxis: PropTypes.object,\n isFront: PropTypes.bool,\n alwaysShow: PropTypes.bool,\n ifOverflow: PropTypes.oneOf(['hidden', 'visible', 'discard', 'extendDomain']),\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n segment: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n })),\n className: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n shape: PropTypes.func\n}), _class2.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n}, _temp)) || _class;\n\nexport default ReferenceLine;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/cartesian/ReferenceLine.js\n// module id = 407\n// module chunks = 0","import _isEqual from \"lodash/isEqual\";\nimport _isPlainObject from \"lodash/isPlainObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _omit from \"lodash/omit\";\nimport _isString from \"lodash/isString\";\nimport _isNumber from \"lodash/isNumber\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Render sectors of a funnel\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Animate from 'react-smooth';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport Layer from '../container/Layer';\nimport Trapezoid from '../shape/Trapezoid';\nimport LabelList from '../component/LabelList';\nimport Cell from '../component/Cell';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, LEGEND_TYPES, TOOLTIP_TYPES, getPresentationAttributes, findAllByType, filterEventsOfChild, isSsr } from '../util/ReactUtils';\nimport { interpolateNumber } from '../util/DataUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\n\nvar Funnel = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Funnel, _Component);\n\n function Funnel() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Funnel);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Funnel)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: false\n };\n\n _this.cachePrevData = function (trapezoids) {\n _this.setState({\n prevTrapezoids: trapezoids\n });\n };\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (_isFunction(onAnimationEnd)) {\n onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n var onAnimationStart = _this.props.onAnimationStart;\n\n _this.setState({\n isAnimationFinished: false\n });\n\n if (_isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Funnel, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n trapezoids = _this$props.trapezoids;\n\n if (nextProps.isAnimationActive !== this.props.isAnimationActive) {\n this.cachePrevData([]);\n } else if (nextProps.animationId !== animationId) {\n this.cachePrevData(trapezoids);\n }\n }\n }, {\n key: \"isActiveIndex\",\n value: function isActiveIndex(i) {\n var activeIndex = this.props.activeIndex;\n\n if (Array.isArray(activeIndex)) {\n return activeIndex.indexOf(i) !== -1;\n }\n\n return i === activeIndex;\n }\n }, {\n key: \"renderTrapezoidsStatically\",\n value: function renderTrapezoidsStatically(trapezoids) {\n var _this2 = this;\n\n var activeShape = this.props.activeShape;\n return trapezoids.map(function (entry, i) {\n var trapezoidOptions = _this2.isActiveIndex(i) ? activeShape : null;\n\n var trapezoidProps = _objectSpread({}, entry, {\n stroke: entry.stroke\n });\n\n return React.createElement(Layer, _extends({\n className: \"recharts-funnel-trapezoid\"\n }, filterEventsOfChild(_this2.props, entry, i), {\n key: \"trapezoid-\".concat(i)\n }), _this2.constructor.renderTrapezoidItem(trapezoidOptions, trapezoidProps));\n });\n }\n }, {\n key: \"renderTrapezoidsWithAnimation\",\n value: function renderTrapezoidsWithAnimation() {\n var _this3 = this;\n\n var _this$props2 = this.props,\n trapezoids = _this$props2.trapezoids,\n isAnimationActive = _this$props2.isAnimationActive,\n animationBegin = _this$props2.animationBegin,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n animationId = _this$props2.animationId;\n var prevTrapezoids = this.state.prevTrapezoids;\n return React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"funnel-\".concat(animationId),\n onAnimationStart: this.handleAnimationStart,\n onAnimationEnd: this.handleAnimationEnd\n }, function (_ref) {\n var t = _ref.t;\n var stepData = trapezoids.map(function (entry, index) {\n var prev = prevTrapezoids && prevTrapezoids[index];\n\n if (prev) {\n var _interpolatorX = interpolateNumber(prev.x, entry.x);\n\n var _interpolatorY = interpolateNumber(prev.y, entry.y);\n\n var _interpolatorUpperWidth = interpolateNumber(prev.upperWidth, entry.upperWidth);\n\n var _interpolatorLowerWidth = interpolateNumber(prev.lowerWidth, entry.lowerWidth);\n\n var _interpolatorHeight = interpolateNumber(prev.height, entry.height);\n\n return _objectSpread({}, entry, {\n x: _interpolatorX(t),\n y: _interpolatorY(t),\n upperWidth: _interpolatorUpperWidth(t),\n lowerWidth: _interpolatorLowerWidth(t),\n height: _interpolatorHeight(t)\n });\n }\n\n var interpolatorX = interpolateNumber(entry.x + entry.upperWidth / 2, entry.x);\n var interpolatorY = interpolateNumber(entry.y + entry.height / 2, entry.y);\n var interpolatorUpperWidth = interpolateNumber(0, entry.upperWidth);\n var interpolatorLowerWidth = interpolateNumber(0, entry.lowerWidth);\n var interpolatorHeight = interpolateNumber(0, entry.height);\n return _objectSpread({}, entry, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n upperWidth: interpolatorUpperWidth(t),\n lowerWidth: interpolatorLowerWidth(t),\n height: interpolatorHeight(t)\n });\n });\n return React.createElement(Layer, null, _this3.renderTrapezoidsStatically(stepData));\n });\n }\n }, {\n key: \"renderTrapezoids\",\n value: function renderTrapezoids() {\n var _this$props3 = this.props,\n trapezoids = _this$props3.trapezoids,\n isAnimationActive = _this$props3.isAnimationActive;\n var prevTrapezoids = this.state.prevTrapezoids;\n\n if (isAnimationActive && trapezoids && trapezoids.length && (!prevTrapezoids || !_isEqual(prevTrapezoids, trapezoids))) {\n return this.renderTrapezoidsWithAnimation();\n }\n\n return this.renderTrapezoidsStatically(trapezoids);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n hide = _this$props4.hide,\n trapezoids = _this$props4.trapezoids,\n className = _this$props4.className,\n isAnimationActive = _this$props4.isAnimationActive;\n var isAnimationFinished = this.state.isAnimationFinished;\n\n if (hide || !trapezoids || !trapezoids.length) {\n return null;\n }\n\n var layerClass = classNames('recharts-trapezoids', className);\n return React.createElement(Layer, {\n className: layerClass\n }, this.renderTrapezoids(), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, trapezoids));\n }\n }], [{\n key: \"renderTrapezoidItem\",\n value: function renderTrapezoidItem(option, props) {\n if (React.isValidElement(option)) {\n return React.cloneElement(option, props);\n }\n\n if (_isFunction(option)) {\n return option(props);\n }\n\n if (_isPlainObject(option)) {\n return React.createElement(Trapezoid, _extends({}, props, option));\n }\n\n return React.createElement(Trapezoid, props);\n }\n }]);\n\n return Funnel;\n}(Component), _class2.displayName = 'Funnel', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, {\n className: PropTypes.string,\n animationId: PropTypes.number,\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n nameKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n data: PropTypes.arrayOf(PropTypes.object),\n trapezoids: PropTypes.arrayOf(PropTypes.object),\n hide: PropTypes.bool,\n activeShape: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.element]),\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n tooltipType: PropTypes.oneOf(TOOLTIP_TYPES),\n activeIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),\n isAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'spring', 'linear'])\n}), _class2.defaultProps = {\n stroke: '#fff',\n fill: '#808080',\n legendType: 'rect',\n labelLine: true,\n hide: false,\n isAnimationActive: !isSsr(),\n animationBegin: 400,\n animationDuration: 1500,\n animationEasing: 'ease',\n nameKey: 'name'\n}, _class2.getRealFunnelData = function (item) {\n var _item$props = item.props,\n data = _item$props.data,\n children = _item$props.children;\n var presentationProps = getPresentationAttributes(item.props);\n var cells = findAllByType(children, Cell);\n\n if (data && data.length) {\n return data.map(function (entry, index) {\n return _objectSpread({\n payload: entry\n }, presentationProps, entry, cells && cells[index] && cells[index].props);\n });\n }\n\n if (cells && cells.length) {\n return cells.map(function (cell) {\n return _objectSpread({}, presentationProps, cell.props);\n });\n }\n\n return [];\n}, _class2.getRealWidthHeight = function (item, offset) {\n var customWidth = item.props.width;\n var width = offset.width,\n height = offset.height,\n left = offset.left,\n right = offset.right,\n top = offset.top,\n bottom = offset.bottom;\n var realHeight = height;\n var realWidth = width;\n\n if (_isNumber(customWidth)) {\n realWidth = customWidth;\n } else if (_isString(customWidth)) {\n realWidth = realWidth * parseFloat(customWidth) / 100;\n }\n\n return {\n realWidth: realWidth - left - right - 50,\n realHeight: realHeight - bottom - top,\n offsetX: (width - realWidth) / 2,\n offsetY: (height - realHeight) / 2\n };\n}, _class2.getComposedData = function (_ref2) {\n var item = _ref2.item,\n offset = _ref2.offset,\n onItemMouseLeave = _ref2.onItemMouseLeave,\n onItemMouseEnter = _ref2.onItemMouseEnter;\n var funnelData = Funnel.getRealFunnelData(item);\n var _item$props2 = item.props,\n dataKey = _item$props2.dataKey,\n nameKey = _item$props2.nameKey,\n tooltipType = _item$props2.tooltipType;\n var left = offset.left,\n top = offset.top;\n\n var _Funnel$getRealWidthH = Funnel.getRealWidthHeight(item, offset),\n realHeight = _Funnel$getRealWidthH.realHeight,\n realWidth = _Funnel$getRealWidthH.realWidth,\n offsetX = _Funnel$getRealWidthH.offsetX,\n offsetY = _Funnel$getRealWidthH.offsetY;\n\n var maxValue = getValueByDataKey(funnelData[0], dataKey, 0);\n var len = funnelData.length;\n var rowHeight = realHeight / len;\n var trapezoids = funnelData.map(function (entry, i) {\n var val = getValueByDataKey(entry, dataKey, 0);\n var name = getValueByDataKey(entry, nameKey, i);\n var nextVal = 0;\n\n if (i !== len - 1) {\n nextVal = getValueByDataKey(funnelData[i + 1], dataKey, 0);\n }\n\n var x = (maxValue - val) * realWidth / (2 * maxValue) + top + 25 + offsetX;\n var y = realHeight / len * i + left + offsetY;\n var upperWidth = val / maxValue * realWidth;\n var lowerWidth = nextVal / maxValue * realWidth;\n var tooltipPayload = [{\n name: name,\n value: val,\n payload: entry,\n dataKey: dataKey,\n type: tooltipType\n }];\n var tooltipPosition = {\n x: x + upperWidth / 2,\n y: y + rowHeight / 2\n };\n return _objectSpread({\n x: x,\n y: y,\n width: Math.max(upperWidth, lowerWidth),\n upperWidth: upperWidth,\n lowerWidth: lowerWidth,\n height: rowHeight,\n name: name,\n val: val,\n tooltipPayload: tooltipPayload,\n tooltipPosition: tooltipPosition\n }, _omit(entry, 'width'), {\n payload: entry\n });\n });\n return {\n trapezoids: trapezoids,\n data: funnelData,\n onMouseLeave: onItemMouseLeave,\n onMouseEnter: onItemMouseEnter\n };\n}, _temp)) || _class;\n\nexport default Funnel;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/numberAxis/Funnel.js\n// module id = 408\n// module chunks = 0","import _isEqual from \"lodash/isEqual\";\nimport _get from \"lodash/get\";\nimport _isPlainObject from \"lodash/isPlainObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Render sectors of a pie\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Animate from 'react-smooth';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport Layer from '../container/Layer';\nimport Sector from '../shape/Sector';\nimport Curve from '../shape/Curve';\nimport Text from '../component/Text';\nimport Label from '../component/Label';\nimport LabelList from '../component/LabelList';\nimport Cell from '../component/Cell';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, LEGEND_TYPES, TOOLTIP_TYPES, getPresentationAttributes, findAllByType, filterEventsOfChild, isSsr } from '../util/ReactUtils';\nimport { polarToCartesian, getMaxRadius } from '../util/PolarUtils';\nimport { isNumber, getPercentValue, mathSign, interpolateNumber, uniqueId } from '../util/DataUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { warn } from '../util/LogUtils';\n\nvar Pie = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Pie, _Component);\n\n function Pie() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Pie);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Pie)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: false\n };\n _this.id = uniqueId('recharts-pie-');\n\n _this.cachePrevData = function (sectors) {\n _this.setState({\n prevSectors: sectors\n });\n };\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (_isFunction(onAnimationEnd)) {\n onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n var onAnimationStart = _this.props.onAnimationStart;\n\n _this.setState({\n isAnimationFinished: false\n });\n\n if (_isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Pie, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n sectors = _this$props.sectors;\n\n if (nextProps.isAnimationActive !== this.props.isAnimationActive) {\n this.cachePrevData([]);\n } else if (nextProps.animationId !== animationId) {\n this.cachePrevData(sectors);\n }\n }\n }, {\n key: \"isActiveIndex\",\n value: function isActiveIndex(i) {\n var activeIndex = this.props.activeIndex;\n\n if (Array.isArray(activeIndex)) {\n return activeIndex.indexOf(i) !== -1;\n }\n\n return i === activeIndex;\n }\n }, {\n key: \"renderLabels\",\n value: function renderLabels(sectors) {\n var _this2 = this;\n\n var isAnimationActive = this.props.isAnimationActive;\n\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props2 = this.props,\n label = _this$props2.label,\n labelLine = _this$props2.labelLine,\n dataKey = _this$props2.dataKey,\n valueKey = _this$props2.valueKey;\n var pieProps = getPresentationAttributes(this.props);\n var customLabelProps = getPresentationAttributes(label);\n var customLabelLineProps = getPresentationAttributes(labelLine);\n var offsetRadius = label && label.offsetRadius || 20;\n var labels = sectors.map(function (entry, i) {\n var midAngle = (entry.startAngle + entry.endAngle) / 2;\n var endPoint = polarToCartesian(entry.cx, entry.cy, entry.outerRadius + offsetRadius, midAngle);\n\n var labelProps = _objectSpread({}, pieProps, entry, {\n stroke: 'none'\n }, customLabelProps, {\n index: i,\n textAnchor: _this2.constructor.getTextAnchor(endPoint.x, entry.cx)\n }, endPoint);\n\n var lineProps = _objectSpread({}, pieProps, entry, {\n fill: 'none',\n stroke: entry.fill\n }, customLabelLineProps, {\n index: i,\n points: [polarToCartesian(entry.cx, entry.cy, entry.outerRadius, midAngle), endPoint],\n key: 'line'\n });\n\n var realDataKey = dataKey; // TODO: compatible to lower versions\n\n if (_isNil(dataKey) && _isNil(valueKey)) {\n realDataKey = 'value';\n } else if (_isNil(dataKey)) {\n realDataKey = valueKey;\n }\n\n return React.createElement(Layer, {\n key: \"label-\".concat(i)\n }, labelLine && _this2.constructor.renderLabelLineItem(labelLine, lineProps), _this2.constructor.renderLabelItem(label, labelProps, getValueByDataKey(entry, realDataKey)));\n });\n return React.createElement(Layer, {\n className: \"recharts-pie-labels\"\n }, labels);\n }\n }, {\n key: \"renderSectorsStatically\",\n value: function renderSectorsStatically(sectors) {\n var _this3 = this;\n\n var _this$props3 = this.props,\n activeShape = _this$props3.activeShape,\n blendStroke = _this$props3.blendStroke;\n return sectors.map(function (entry, i) {\n var sectorOptions = _this3.isActiveIndex(i) ? activeShape : null;\n\n var sectorProps = _objectSpread({}, entry, {\n stroke: blendStroke ? entry.fill : entry.stroke\n });\n\n return React.createElement(Layer, _extends({\n className: \"recharts-pie-sector\"\n }, filterEventsOfChild(_this3.props, entry, i), {\n key: \"sector-\".concat(i)\n }), _this3.constructor.renderSectorItem(sectorOptions, sectorProps));\n });\n }\n }, {\n key: \"renderSectorsWithAnimation\",\n value: function renderSectorsWithAnimation() {\n var _this4 = this;\n\n var _this$props4 = this.props,\n sectors = _this$props4.sectors,\n isAnimationActive = _this$props4.isAnimationActive,\n animationBegin = _this$props4.animationBegin,\n animationDuration = _this$props4.animationDuration,\n animationEasing = _this$props4.animationEasing,\n animationId = _this$props4.animationId;\n var prevSectors = this.state.prevSectors;\n return React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"pie-\".concat(animationId),\n onAnimationStart: this.handleAnimationStart,\n onAnimationEnd: this.handleAnimationEnd\n }, function (_ref) {\n var t = _ref.t;\n var stepData = [];\n var first = sectors && sectors[0];\n var curAngle = first.startAngle;\n sectors.forEach(function (entry, index) {\n var prev = prevSectors && prevSectors[index];\n var paddingAngle = index > 0 ? _get(entry, 'paddingAngle', 0) : 0;\n\n if (prev) {\n var angleIp = interpolateNumber(prev.endAngle - prev.startAngle, entry.endAngle - entry.startAngle);\n\n var latest = _objectSpread({}, entry, {\n startAngle: curAngle + paddingAngle,\n endAngle: curAngle + angleIp(t) + paddingAngle\n });\n\n stepData.push(latest);\n curAngle = latest.endAngle;\n } else {\n var endAngle = entry.endAngle,\n startAngle = entry.startAngle;\n var interpolatorAngle = interpolateNumber(0, endAngle - startAngle);\n var deltaAngle = interpolatorAngle(t);\n\n var _latest = _objectSpread({}, entry, {\n startAngle: curAngle + paddingAngle,\n endAngle: curAngle + deltaAngle + paddingAngle\n });\n\n stepData.push(_latest);\n curAngle = _latest.endAngle;\n }\n });\n return React.createElement(Layer, null, _this4.renderSectorsStatically(stepData));\n });\n }\n }, {\n key: \"renderSectors\",\n value: function renderSectors() {\n var _this$props5 = this.props,\n sectors = _this$props5.sectors,\n isAnimationActive = _this$props5.isAnimationActive;\n var prevSectors = this.state.prevSectors;\n\n if (isAnimationActive && sectors && sectors.length && (!prevSectors || !_isEqual(prevSectors, sectors))) {\n return this.renderSectorsWithAnimation();\n }\n\n return this.renderSectorsStatically(sectors);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n sectors = _this$props6.sectors,\n className = _this$props6.className,\n label = _this$props6.label,\n cx = _this$props6.cx,\n cy = _this$props6.cy,\n innerRadius = _this$props6.innerRadius,\n outerRadius = _this$props6.outerRadius,\n isAnimationActive = _this$props6.isAnimationActive,\n prevSectors = _this$props6.prevSectors;\n\n if (hide || !sectors || !sectors.length || !isNumber(cx) || !isNumber(cy) || !isNumber(innerRadius) || !isNumber(outerRadius)) {\n return null;\n }\n\n var layerClass = classNames('recharts-pie', className);\n return React.createElement(Layer, {\n className: layerClass\n }, this.renderSectors(), label && this.renderLabels(sectors), Label.renderCallByParent(this.props, null, false), (!isAnimationActive || prevSectors && _isEqual(prevSectors, sectors)) && LabelList.renderCallByParent(this.props, sectors, false));\n }\n }], [{\n key: \"getTextAnchor\",\n value: function getTextAnchor(x, cx) {\n if (x > cx) {\n return 'start';\n }\n\n if (x < cx) {\n return 'end';\n }\n\n return 'middle';\n }\n }, {\n key: \"renderLabelLineItem\",\n value: function renderLabelLineItem(option, props) {\n if (React.isValidElement(option)) {\n return React.cloneElement(option, props);\n }\n\n if (_isFunction(option)) {\n return option(props);\n }\n\n return React.createElement(Curve, _extends({}, props, {\n type: \"linear\",\n className: \"recharts-pie-label-line\"\n }));\n }\n }, {\n key: \"renderLabelItem\",\n value: function renderLabelItem(option, props, value) {\n if (React.isValidElement(option)) {\n return React.cloneElement(option, props);\n }\n\n var label = value;\n\n if (_isFunction(option)) {\n label = option(props);\n\n if (React.isValidElement(label)) {\n return label;\n }\n }\n\n return React.createElement(Text, _extends({}, props, {\n alignmentBaseline: \"middle\",\n className: \"recharts-pie-label-text\"\n }), label);\n }\n }, {\n key: \"renderSectorItem\",\n value: function renderSectorItem(option, props) {\n if (React.isValidElement(option)) {\n return React.cloneElement(option, props);\n }\n\n if (_isFunction(option)) {\n return option(props);\n }\n\n if (_isPlainObject(option)) {\n return React.createElement(Sector, _extends({}, props, option));\n }\n\n return React.createElement(Sector, props);\n }\n }]);\n\n return Pie;\n}(Component), _class2.displayName = 'Pie', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, {\n className: PropTypes.string,\n animationId: PropTypes.number,\n cx: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n cy: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n startAngle: PropTypes.number,\n endAngle: PropTypes.number,\n paddingAngle: PropTypes.number,\n innerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n outerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n cornerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n nameKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n valueKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n data: PropTypes.arrayOf(PropTypes.object),\n blendStroke: PropTypes.bool,\n minAngle: PropTypes.number,\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n tooltipType: PropTypes.oneOf(TOOLTIP_TYPES),\n maxRadius: PropTypes.number,\n sectors: PropTypes.arrayOf(PropTypes.object),\n hide: PropTypes.bool,\n labelLine: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.element, PropTypes.bool]),\n label: PropTypes.oneOfType([PropTypes.shape({\n offsetRadius: PropTypes.number\n }), PropTypes.func, PropTypes.element, PropTypes.bool]),\n activeShape: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.element]),\n activeIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),\n isAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'spring', 'linear']),\n id: PropTypes.string\n}), _class2.defaultProps = {\n stroke: '#fff',\n fill: '#808080',\n legendType: 'rect',\n // The abscissa of pole\n cx: '50%',\n // The ordinate of pole\n cy: '50%',\n // The start angle of first sector\n startAngle: 0,\n // The direction of drawing sectors\n endAngle: 360,\n // The inner radius of sectors\n innerRadius: 0,\n // The outer radius of sectors\n outerRadius: '80%',\n paddingAngle: 0,\n labelLine: true,\n hide: false,\n minAngle: 0,\n isAnimationActive: !isSsr(),\n animationBegin: 400,\n animationDuration: 1500,\n animationEasing: 'ease',\n nameKey: 'name',\n // Match each sector's stroke color to it's fill color\n blendStroke: false\n}, _class2.parseDeltaAngle = function (_ref2) {\n var startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n}, _class2.getRealPieData = function (item) {\n var _item$props = item.props,\n data = _item$props.data,\n children = _item$props.children;\n var presentationProps = getPresentationAttributes(item.props);\n var cells = findAllByType(children, Cell);\n\n if (data && data.length) {\n return data.map(function (entry, index) {\n return _objectSpread({\n payload: entry\n }, presentationProps, entry, cells && cells[index] && cells[index].props);\n });\n }\n\n if (cells && cells.length) {\n return cells.map(function (cell) {\n return _objectSpread({}, presentationProps, cell.props);\n });\n }\n\n return [];\n}, _class2.parseCoordinateOfPie = function (item, offset) {\n var top = offset.top,\n left = offset.left,\n width = offset.width,\n height = offset.height;\n var maxPieRadius = getMaxRadius(width, height);\n var cx = left + getPercentValue(item.props.cx, width, width / 2);\n var cy = top + getPercentValue(item.props.cy, height, height / 2);\n var innerRadius = getPercentValue(item.props.innerRadius, maxPieRadius, 0);\n var outerRadius = getPercentValue(item.props.outerRadius, maxPieRadius, maxPieRadius * 0.8);\n var maxRadius = item.props.maxRadius || Math.sqrt(width * width + height * height) / 2;\n return {\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n maxRadius: maxRadius\n };\n}, _class2.getComposedData = function (_ref3) {\n var item = _ref3.item,\n offset = _ref3.offset,\n onItemMouseLeave = _ref3.onItemMouseLeave,\n onItemMouseEnter = _ref3.onItemMouseEnter;\n var pieData = Pie.getRealPieData(item);\n\n if (!pieData || !pieData.length) {\n return [];\n }\n\n var _item$props2 = item.props,\n cornerRadius = _item$props2.cornerRadius,\n startAngle = _item$props2.startAngle,\n endAngle = _item$props2.endAngle,\n paddingAngle = _item$props2.paddingAngle,\n dataKey = _item$props2.dataKey,\n nameKey = _item$props2.nameKey,\n valueKey = _item$props2.valueKey,\n tooltipType = _item$props2.tooltipType;\n var minAngle = Math.abs(item.props.minAngle);\n var coordinate = Pie.parseCoordinateOfPie(item, offset);\n var len = pieData.length;\n var deltaAngle = Pie.parseDeltaAngle({\n startAngle: startAngle,\n endAngle: endAngle\n });\n var absDeltaAngle = Math.abs(deltaAngle);\n var totalPadingAngle = (absDeltaAngle >= 360 ? len : len - 1) * paddingAngle;\n var realTotalAngle = absDeltaAngle - len * minAngle - totalPadingAngle;\n var realDataKey = dataKey;\n\n if (_isNil(dataKey) && _isNil(valueKey)) {\n warn(false, \"Use \\\"dataKey\\\" to specify the value of pie,\\n the props \\\"valueKey\\\" will be deprecated in 1.1.0\");\n realDataKey = 'value';\n } else if (_isNil(dataKey)) {\n warn(false, \"Use \\\"dataKey\\\" to specify the value of pie,\\n the props \\\"valueKey\\\" will be deprecated in 1.1.0\");\n realDataKey = valueKey;\n }\n\n var sum = pieData.reduce(function (result, entry) {\n var val = getValueByDataKey(entry, realDataKey, 0);\n return result + (isNumber(val) ? val : 0);\n }, 0);\n var sectors;\n\n if (sum > 0) {\n var prev;\n sectors = pieData.map(function (entry, i) {\n var val = getValueByDataKey(entry, realDataKey, 0);\n var name = getValueByDataKey(entry, nameKey, i);\n var percent = (isNumber(val) ? val : 0) / sum;\n var tempStartAngle;\n\n if (i) {\n tempStartAngle = prev.endAngle + mathSign(deltaAngle) * paddingAngle;\n } else {\n tempStartAngle = startAngle;\n }\n\n var tempEndAngle = tempStartAngle + mathSign(deltaAngle) * (minAngle + percent * realTotalAngle);\n var midAngle = (tempStartAngle + tempEndAngle) / 2;\n var middleRadius = (coordinate.innerRadius + coordinate.outerRadius) / 2;\n var tooltipPayload = [{\n name: name,\n value: val,\n payload: entry,\n dataKey: realDataKey,\n type: tooltipType\n }];\n var tooltipPosition = polarToCartesian(coordinate.cx, coordinate.cy, middleRadius, midAngle);\n prev = _objectSpread({\n percent: percent,\n cornerRadius: cornerRadius,\n name: name,\n tooltipPayload: tooltipPayload,\n midAngle: midAngle,\n middleRadius: middleRadius,\n tooltipPosition: tooltipPosition\n }, entry, coordinate, {\n value: getValueByDataKey(entry, realDataKey),\n startAngle: tempStartAngle,\n endAngle: tempEndAngle,\n payload: entry,\n paddingAngle: mathSign(deltaAngle) * paddingAngle\n });\n return prev;\n });\n }\n\n return _objectSpread({}, coordinate, {\n sectors: sectors,\n data: pieData,\n onMouseLeave: onItemMouseLeave,\n onMouseEnter: onItemMouseEnter\n });\n}, _temp)) || _class;\n\nexport default Pie;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/polar/Pie.js\n// module id = 409\n// module chunks = 0","import _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Radar\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Animate from 'react-smooth';\nimport classNames from 'classnames';\nimport { interpolateNumber } from '../util/DataUtils';\nimport pureRender from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, LEGEND_TYPES, TOOLTIP_TYPES, filterEventAttributes, getPresentationAttributes, isSsr } from '../util/ReactUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport Polygon from '../shape/Polygon';\nimport Dot from '../shape/Dot';\nimport Layer from '../container/Layer';\nimport LabelList from '../component/LabelList';\n\nvar Radar = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Radar, _Component);\n\n function Radar() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Radar);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Radar)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: false\n };\n\n _this.cachePrevData = function (points) {\n _this.setState({\n prevPoints: points\n });\n };\n\n _this.handleAnimationEnd = function () {\n _this.setState({\n isAnimationFinished: true\n });\n };\n\n _this.handleAnimationStart = function () {\n _this.setState({\n isAnimationFinished: false\n });\n };\n\n _this.handleMouseEnter = function (e) {\n var onMouseEnter = _this.props.onMouseEnter;\n\n if (onMouseEnter) {\n onMouseEnter(_this.props, e);\n }\n };\n\n _this.handleMouseLeave = function (e) {\n var onMouseLeave = _this.props.onMouseLeave;\n\n if (onMouseLeave) {\n onMouseLeave(_this.props, e);\n }\n };\n\n return _this;\n }\n\n _createClass(Radar, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n points = _this$props.points;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(points);\n }\n }\n }, {\n key: \"renderDots\",\n value: function renderDots(points) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n dot = _this$props2.dot,\n dataKey = _this$props2.dataKey;\n var baseProps = getPresentationAttributes(this.props);\n var customDotProps = getPresentationAttributes(dot);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, baseProps, customDotProps, {\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n payload: entry\n });\n\n return _this2.constructor.renderDotItem(dot, dotProps);\n });\n return React.createElement(Layer, {\n className: \"recharts-radar-dots\"\n }, dots);\n }\n }, {\n key: \"renderPolygonStatically\",\n value: function renderPolygonStatically(points) {\n var _this$props3 = this.props,\n shape = _this$props3.shape,\n dot = _this$props3.dot;\n var radar;\n\n if (React.isValidElement(shape)) {\n radar = React.cloneElement(shape, _objectSpread({}, this.props, {\n points: points\n }));\n } else if (_isFunction(shape)) {\n radar = shape(_objectSpread({}, this.props, {\n points: points\n }));\n } else {\n radar = React.createElement(Polygon, _extends({}, filterEventAttributes(this.props), {\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave\n }, getPresentationAttributes(this.props), {\n points: points\n }));\n }\n\n return React.createElement(Layer, {\n className: \"recharts-radar-polygon\"\n }, radar, dot ? this.renderDots(points) : null);\n }\n }, {\n key: \"renderPolygonWithAnimation\",\n value: function renderPolygonWithAnimation() {\n var _this3 = this;\n\n var _this$props4 = this.props,\n points = _this$props4.points,\n isAnimationActive = _this$props4.isAnimationActive,\n animationBegin = _this$props4.animationBegin,\n animationDuration = _this$props4.animationDuration,\n animationEasing = _this$props4.animationEasing,\n animationId = _this$props4.animationId;\n var prevPoints = this.state.prevPoints;\n return React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"radar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var prevPointsDiffFactor = prevPoints && prevPoints.length / points.length;\n var stepData = points.map(function (entry, index) {\n var prev = prevPoints && prevPoints[Math.floor(index * prevPointsDiffFactor)];\n\n if (prev) {\n var _interpolatorX = interpolateNumber(prev.x, entry.x);\n\n var _interpolatorY = interpolateNumber(prev.y, entry.y);\n\n return _objectSpread({}, entry, {\n x: _interpolatorX(t),\n y: _interpolatorY(t)\n });\n }\n\n var interpolatorX = interpolateNumber(entry.cx, entry.x);\n var interpolatorY = interpolateNumber(entry.cy, entry.y);\n return _objectSpread({}, entry, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n });\n return _this3.renderPolygonStatically(stepData);\n });\n }\n }, {\n key: \"renderPolygon\",\n value: function renderPolygon() {\n var _this$props5 = this.props,\n points = _this$props5.points,\n isAnimationActive = _this$props5.isAnimationActive;\n var prevPoints = this.state.prevPoints;\n\n if (isAnimationActive && points && points.length && (!prevPoints || !_isEqual(prevPoints, points))) {\n return this.renderPolygonWithAnimation();\n }\n\n return this.renderPolygonStatically(points);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n className = _this$props6.className,\n points = _this$props6.points,\n isAnimationActive = _this$props6.isAnimationActive;\n\n if (hide || !points || !points.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = classNames('recharts-radar', className);\n return React.createElement(Layer, {\n className: layerClass\n }, this.renderPolygon(), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"renderDotItem\",\n value: function renderDotItem(option, props) {\n var dotItem;\n\n if (React.isValidElement(option)) {\n dotItem = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dotItem = option(props);\n } else {\n dotItem = React.createElement(Dot, _extends({}, props, {\n className: \"recharts-radar-dot\"\n }));\n }\n\n return dotItem;\n }\n }]);\n\n return Radar;\n}(Component), _class2.displayName = 'Radar', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n className: PropTypes.string,\n dataKey: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.func]).isRequired,\n angleAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n radiusAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n points: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n cx: PropTypes.number,\n cy: PropTypes.number,\n angle: PropTypes.number,\n radius: PropTypes.number,\n value: PropTypes.number,\n payload: PropTypes.object\n })),\n shape: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n activeDot: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool]),\n // whether have dot in poly line\n dot: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool]),\n label: PropTypes.oneOfType([PropTypes.element, PropTypes.func, PropTypes.object, PropTypes.bool]),\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n tooltipType: PropTypes.oneOf(TOOLTIP_TYPES),\n hide: PropTypes.bool,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onClick: PropTypes.func,\n isAnimationActive: PropTypes.bool,\n animationId: PropTypes.number,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear'])\n}), _class2.defaultProps = {\n angleAxisId: 0,\n radiusAxisId: 0,\n hide: false,\n activeDot: true,\n dot: false,\n legendType: 'rect',\n isAnimationActive: !isSsr(),\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n}, _class2.getComposedData = function (_ref2) {\n var radiusAxis = _ref2.radiusAxis,\n angleAxis = _ref2.angleAxis,\n displayedData = _ref2.displayedData,\n dataKey = _ref2.dataKey,\n bandSize = _ref2.bandSize;\n var cx = angleAxis.cx,\n cy = angleAxis.cy;\n var points = displayedData.map(function (entry, i) {\n var name = getValueByDataKey(entry, angleAxis.dataKey, i);\n var value = getValueByDataKey(entry, dataKey, 0);\n var angle = angleAxis.scale(name) + (bandSize || 0);\n var radius = radiusAxis.scale(value);\n return _objectSpread({}, polarToCartesian(cx, cy, radius, angle), {\n name: name,\n value: value,\n cx: cx,\n cy: cy,\n radius: radius,\n angle: angle,\n payload: entry\n });\n });\n return {\n points: points\n };\n}, _temp)) || _class;\n\nexport default Radar;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/polar/Radar.js\n// module id = 410\n// module chunks = 0","import _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isArray from \"lodash/isArray\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Render a group of radial bar\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport Sector from '../shape/Sector';\nimport Layer from '../container/Layer';\nimport { PRESENTATION_ATTRIBUTES, LEGEND_TYPES, TOOLTIP_TYPES, findAllByType, getPresentationAttributes, filterEventsOfChild, isSsr } from '../util/ReactUtils';\nimport pureRender from '../util/PureRender';\nimport LabelList from '../component/LabelList';\nimport Cell from '../component/Cell';\nimport { mathSign, interpolateNumber } from '../util/DataUtils';\nimport { getCateCoordinateOfBar, findPositionOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar } from '../util/ChartUtils';\n\nvar RadialBar = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(RadialBar, _Component);\n\n function RadialBar() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, RadialBar);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(RadialBar)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: false\n };\n\n _this.cachePrevData = function (data) {\n _this.setState({\n prevData: data\n });\n };\n\n _this.handleAnimationEnd = function () {\n _this.setState({\n isAnimationFinished: true\n });\n };\n\n _this.handleAnimationStart = function () {\n _this.setState({\n isAnimationFinished: false\n });\n };\n\n return _this;\n }\n\n _createClass(RadialBar, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n data = _this$props.data;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(data);\n }\n }\n }, {\n key: \"getDeltaAngle\",\n value: function getDeltaAngle() {\n var _this$props2 = this.props,\n startAngle = _this$props2.startAngle,\n endAngle = _this$props2.endAngle;\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n }\n }, {\n key: \"renderSectorsStatically\",\n value: function renderSectorsStatically(sectors) {\n var _this2 = this;\n\n var _this$props3 = this.props,\n shape = _this$props3.shape,\n activeShape = _this$props3.activeShape,\n activeIndex = _this$props3.activeIndex,\n cornerRadius = _this$props3.cornerRadius,\n others = _objectWithoutProperties(_this$props3, [\"shape\", \"activeShape\", \"activeIndex\", \"cornerRadius\"]);\n\n var baseProps = getPresentationAttributes(others);\n return sectors.map(function (entry, i) {\n var props = _objectSpread({}, baseProps, {\n cornerRadius: cornerRadius\n }, entry, filterEventsOfChild(_this2.props, entry, i), {\n key: \"sector-\".concat(i),\n className: 'recharts-radial-bar-sector',\n forceCornerRadius: others.forceCornerRadius,\n cornerIsExternal: others.cornerIsExternal\n });\n\n return _this2.constructor.renderSectorShape(i === activeIndex ? activeShape : shape, props);\n });\n }\n }, {\n key: \"renderSectorsWithAnimation\",\n value: function renderSectorsWithAnimation() {\n var _this3 = this;\n\n var _this$props4 = this.props,\n data = _this$props4.data,\n isAnimationActive = _this$props4.isAnimationActive,\n animationBegin = _this$props4.animationBegin,\n animationDuration = _this$props4.animationDuration,\n animationEasing = _this$props4.animationEasing,\n animationId = _this$props4.animationId;\n var prevData = this.state.prevData;\n return React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"radialBar-\".concat(animationId),\n onAnimationStart: this.handleAnimationStart,\n onAnimationEnd: this.handleAnimationEnd\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n\n if (prev) {\n var interpolatorStartAngle = interpolateNumber(prev.startAngle, entry.startAngle);\n var interpolatorEndAngle = interpolateNumber(prev.endAngle, entry.endAngle);\n return _objectSpread({}, entry, {\n startAngle: interpolatorStartAngle(t),\n endAngle: interpolatorEndAngle(t)\n });\n }\n\n var endAngle = entry.endAngle,\n startAngle = entry.startAngle;\n var interpolator = interpolateNumber(startAngle, endAngle);\n return _objectSpread({}, entry, {\n endAngle: interpolator(t)\n });\n });\n return React.createElement(Layer, null, _this3.renderSectorsStatically(stepData));\n });\n }\n }, {\n key: \"renderSectors\",\n value: function renderSectors() {\n var _this$props5 = this.props,\n data = _this$props5.data,\n isAnimationActive = _this$props5.isAnimationActive;\n var prevData = this.state.prevData;\n\n if (isAnimationActive && data && data.length && (!prevData || !_isEqual(prevData, data))) {\n return this.renderSectorsWithAnimation();\n }\n\n return this.renderSectorsStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground(sectors) {\n var _this4 = this;\n\n var cornerRadius = this.props.cornerRadius;\n var backgroundProps = getPresentationAttributes(this.props.background);\n return sectors.map(function (entry, i) {\n // eslint-disable-next-line no-unused-vars\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, [\"value\", \"background\"]);\n\n if (!background) {\n return null;\n }\n\n var props = _objectSpread({\n cornerRadius: cornerRadius\n }, rest, {\n fill: '#eee'\n }, background, backgroundProps, filterEventsOfChild(_this4.props, entry, i), {\n index: i,\n key: \"sector-\".concat(i),\n className: 'recharts-radial-bar-background-sector'\n });\n\n return _this4.constructor.renderSectorShape(background, props);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n data = _this$props6.data,\n className = _this$props6.className,\n background = _this$props6.background,\n isAnimationActive = _this$props6.isAnimationActive;\n\n if (hide || !data || !data.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = classNames('recharts-area', className);\n return React.createElement(Layer, {\n className: layerClass\n }, background && React.createElement(Layer, {\n className: \"recharts-radial-bar-background\"\n }, this.renderBackground(data)), React.createElement(Layer, {\n className: \"recharts-radial-bar-sectors\"\n }, this.renderSectors(data)), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(_objectSpread({}, this.props, {\n clockWise: this.getDeltaAngle() < 0\n }), data));\n }\n }], [{\n key: \"renderSectorShape\",\n value: function renderSectorShape(shape, props) {\n var sectorShape;\n\n if (React.isValidElement(shape)) {\n sectorShape = React.cloneElement(shape, props);\n } else if (_isFunction(shape)) {\n sectorShape = shape(props);\n } else {\n sectorShape = React.createElement(Sector, props);\n }\n\n return sectorShape;\n }\n }]);\n\n return RadialBar;\n}(Component), _class2.displayName = 'RadialBar', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n className: PropTypes.string,\n angleAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n radiusAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n shape: PropTypes.oneOfType([PropTypes.func, PropTypes.element]),\n activeShape: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.element]),\n activeIndex: PropTypes.number,\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n cornerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n forceCornerRadius: PropTypes.bool,\n cornerIsExternal: PropTypes.bool,\n minPointSize: PropTypes.number,\n maxBarSize: PropTypes.number,\n data: PropTypes.arrayOf(PropTypes.shape({\n cx: PropTypes.number,\n cy: PropTypes.number,\n innerRadius: PropTypes.number,\n outerRadius: PropTypes.number,\n value: PropTypes.value\n })),\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n tooltipType: PropTypes.oneOf(TOOLTIP_TYPES),\n label: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.element, PropTypes.object]),\n background: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.object, PropTypes.element]),\n hide: PropTypes.bool,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onClick: PropTypes.func,\n isAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear', 'spring'])\n}), _class2.defaultProps = {\n angleAxisId: 0,\n radiusAxisId: 0,\n minPointSize: 0,\n hide: false,\n legendType: 'rect',\n data: [],\n isAnimationActive: !isSsr(),\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n forceCornerRadius: false,\n cornerIsExternal: false\n}, _class2.getComposedData = function (_ref2) {\n var item = _ref2.item,\n props = _ref2.props,\n radiusAxis = _ref2.radiusAxis,\n radiusAxisTicks = _ref2.radiusAxisTicks,\n angleAxis = _ref2.angleAxis,\n angleAxisTicks = _ref2.angleAxisTicks,\n displayedData = _ref2.displayedData,\n dataKey = _ref2.dataKey,\n stackedData = _ref2.stackedData,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n dataStartIndex = _ref2.dataStartIndex;\n var pos = findPositionOfBar(barPosition, item);\n\n if (!pos) {\n return [];\n }\n\n var cx = angleAxis.cx,\n cy = angleAxis.cy;\n var layout = props.layout;\n var _item$props = item.props,\n children = _item$props.children,\n minPointSize = _item$props.minPointSize;\n var numericAxis = layout === 'radial' ? angleAxis : radiusAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n props: props,\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell);\n var sectors = displayedData.map(function (entry, index) {\n var value, innerRadius, outerRadius, startAngle, endAngle, backgroundSector;\n\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n\n if (!_isArray(value)) {\n value = [baseValue, value];\n }\n }\n\n if (layout === 'radial') {\n innerRadius = getCateCoordinateOfBar({\n axis: radiusAxis,\n ticks: radiusAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n endAngle = angleAxis.scale(value[1]);\n startAngle = angleAxis.scale(value[0]);\n outerRadius = innerRadius + pos.size;\n var deltaAngle = endAngle - startAngle;\n\n if (Math.abs(minPointSize) > 0 && Math.abs(deltaAngle) < Math.abs(minPointSize)) {\n var delta = mathSign(deltaAngle || minPointSize) * (Math.abs(minPointSize) - Math.abs(deltaAngle));\n endAngle += delta;\n }\n\n backgroundSector = {\n background: {\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: props.startAngle,\n endAngle: props.endAngle\n }\n };\n } else {\n innerRadius = radiusAxis.scale(value[0]);\n outerRadius = radiusAxis.scale(value[1]);\n startAngle = getCateCoordinateOfBar({\n axis: angleAxis,\n ticks: angleAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n endAngle = startAngle + pos.size;\n var deltaRadius = outerRadius - innerRadius;\n\n if (Math.abs(minPointSize) > 0 && Math.abs(deltaRadius) < Math.abs(minPointSize)) {\n var _delta = mathSign(deltaRadius || minPointSize) * (Math.abs(minPointSize) - Math.abs(deltaRadius));\n\n outerRadius += _delta;\n }\n }\n\n return _objectSpread({}, entry, backgroundSector, {\n payload: entry,\n value: stackedData ? value : value[1],\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n }, cells && cells[index] && cells[index].props);\n });\n return {\n data: sectors,\n layout: layout\n };\n}, _temp)) || _class;\n\nexport default RadialBar;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/polar/RadialBar.js\n// module id = 411\n// module chunks = 0","var _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Cross\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport { isNumber } from '../util/DataUtils';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes } from '../util/ReactUtils';\n\nvar Cross = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Cross, _Component);\n\n function Cross() {\n _classCallCheck(this, Cross);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Cross).apply(this, arguments));\n }\n\n _createClass(Cross, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n top = _this$props.top,\n left = _this$props.left,\n className = _this$props.className;\n\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n\n return React.createElement(\"path\", _extends({}, getPresentationAttributes(this.props), {\n className: classNames('recharts-cross', className),\n d: this.constructor.getPath(x, y, width, height, top, left)\n }));\n }\n }], [{\n key: \"getPath\",\n value: function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n }\n }]);\n\n return Cross;\n}(Component), _class2.displayName = 'Cross', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n top: PropTypes.number,\n left: PropTypes.number,\n className: PropTypes.string\n}), _class2.defaultProps = {\n x: 0,\n y: 0,\n top: 0,\n left: 0,\n width: 0,\n height: 0\n}, _temp)) || _class;\n\nexport default Cross;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/shape/Cross.js\n// module id = 412\n// module chunks = 0","var _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Rectangle\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport pureRender from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\n\nvar getTrapezoidPath = function getTrapezoidPath(x, y, upperWidth, lowerWidth, height) {\n var widthGap = upperWidth - lowerWidth;\n var path;\n path = \"M \".concat(x, \",\").concat(y);\n path += \"L \".concat(x + upperWidth, \",\").concat(y);\n path += \"L \".concat(x + upperWidth - widthGap / 2, \",\").concat(y + height);\n path += \"L \".concat(x + upperWidth - widthGap / 2 - lowerWidth, \",\").concat(y + height);\n path += \"L \".concat(x, \",\").concat(y, \" Z\");\n return path;\n};\n\nvar Trapezoid = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Trapezoid, _Component);\n\n function Trapezoid() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Trapezoid);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Trapezoid)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n totalLength: -1\n };\n return _this;\n }\n\n _createClass(Trapezoid, [{\n key: \"componentDidMount\",\n\n /* eslint-disable react/no-did-mount-set-state */\n value: function componentDidMount() {\n if (this.node && this.node.getTotalLength) {\n try {\n var totalLength = this.node.getTotalLength();\n\n if (totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n } catch (err) {// calculate total length error\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n upperWidth = _this$props.upperWidth,\n lowerWidth = _this$props.lowerWidth,\n height = _this$props.height,\n className = _this$props.className;\n var totalLength = this.state.totalLength;\n var _this$props2 = this.props,\n animationEasing = _this$props2.animationEasing,\n animationDuration = _this$props2.animationDuration,\n animationBegin = _this$props2.animationBegin,\n isUpdateAnimationActive = _this$props2.isUpdateAnimationActive;\n\n if (x !== +x || y !== +y || upperWidth !== +upperWidth || lowerWidth !== +lowerWidth || height !== +height || upperWidth === 0 && lowerWidth === 0 || height === 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-trapezoid', className);\n\n if (!isUpdateAnimationActive) {\n return React.createElement(\"g\", null, React.createElement(\"path\", _extends({}, getPresentationAttributes(this.props), filterEventAttributes(this.props), {\n className: layerClass,\n d: getTrapezoidPath(x, y, upperWidth, lowerWidth, height)\n })));\n }\n\n return React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n upperWidth: 0,\n lowerWidth: 0,\n height: height,\n x: x,\n y: y\n },\n to: {\n upperWidth: upperWidth,\n lowerWidth: lowerWidth,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currUpperWidth = _ref.upperWidth,\n currLowerWidth = _ref.lowerWidth,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n easing: animationEasing\n }, React.createElement(\"path\", _extends({}, getPresentationAttributes(_this2.props), filterEventAttributes(_this2.props), {\n className: layerClass,\n d: getTrapezoidPath(currX, currY, currUpperWidth, currLowerWidth, currHeight),\n ref: function ref(node) {\n _this2.node = node;\n }\n })));\n });\n }\n }]);\n\n return Trapezoid;\n}(Component), _class2.displayName = 'Trapezoid', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, {\n className: PropTypes.string,\n x: PropTypes.number,\n y: PropTypes.number,\n upperWidth: PropTypes.number,\n lowerWidth: PropTypes.number,\n height: PropTypes.number,\n isUpdateAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear'])\n}), _class2.defaultProps = {\n x: 0,\n y: 0,\n upperWidth: 0,\n lowerWidth: 0,\n height: 0,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n}, _temp)) || _class;\n\nexport default Trapezoid;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/shape/Trapezoid.js\n// module id = 413\n// module chunks = 0","var cof = require('./_cof');\nmodule.exports = function (it, msg) {\n if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n return +it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_a-number-value.js\n// module id = 414\n// module chunks = 0","// 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//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_ctx.js\n// module id = 415\n// module chunks = 0","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_dom-create.js\n// module id = 416\n// module chunks = 0","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_hide.js\n// module id = 417\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_ie8-dom-define.js\n// module id = 418\n// module chunks = 0","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_is-integer.js\n// module id = 419\n// module chunks = 0","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_math-log1p.js\n// module id = 420\n// module chunks = 0","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_object-gopd.js\n// module id = 421\n// module chunks = 0","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_object-keys-internal.js\n// module id = 422\n// module chunks = 0","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//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_property-desc.js\n// module id = 423\n// module chunks = 0","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_redefine.js\n// module id = 424\n// module chunks = 0","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_shared-key.js\n// module id = 425\n// module chunks = 0","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_shared.js\n// module id = 426\n// module chunks = 0","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_uid.js\n// module id = 427\n// module chunks = 0","'use strict';\n\n// Convenience main entrypoint if you are running with destructuring support:\n//\n// import {VelocityComponent, VelocityTransitionGroup} from 'velocity-react';\n//\n// You can also require just the component(s) you're using:\n//\n// var VelocityComponent = require('velocity-react/velocity-component');\n//\n// Note that if you want to use UI Pack you will need to require 'velocity' and\n// 'velocity.ui' at a top level in your app:\n//\n// require('velocity');\n// require('velocity-animate/velocity.ui');\n\nmodule.exports = {\n VelocityComponent: require('./velocity-component'),\n VelocityTransitionGroup: require('./velocity-transition-group'),\n velocityHelpers: require('./velocity-helpers')\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/velocity-react/index.js\n// module id = 428\n// module chunks = 0","module.exports = function() {\r\n\tthrow new Error(\"define cannot be used indirect\");\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/amd-define.js\n// module id = 429\n// module chunks = 0","/// \r\n/// \r\n\r\nimport {ControllerBase} from \"./ControllerBase\";\r\nimport { DevPortalAppBase } from \"../DevPortalAppBase\";\r\nimport * as Dialogs from \"../Dialogs/MessageBox\";\r\n\r\n/**\r\n * Turn flighted features on or off.\r\n */\r\nexport class FlightController extends ControllerBase {\r\n constructor(app: DevPortalAppBase) {\r\n super(app);\r\n }\r\n\r\n public render(params: SimpleMvc.QueryParams): void {\r\n super.render(params);\r\n this.processParams(params);\r\n this.app.navigate('/');\r\n }\r\n\r\n private processParams(params: SimpleMvc.QueryParams): void {\r\n for (let feature in params) {\r\n if (params.hasOwnProperty(feature)) {\r\n let turnOn = params[feature] === 'on';\r\n this.app.setFeatureFlighting(feature, turnOn);\r\n }\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Controllers/FlightController.ts","/// \r\n/// \r\n\r\nimport {ControllerBase} from \"./ControllerBase\";\r\nimport { DevPortalAppBase } from \"../DevPortalAppBase\";\r\n\r\n/**\r\n * Redirects user to an app URL, after he/she logs in.\r\n */\r\nexport class RedirectController extends ControllerBase {\r\n constructor(app: DevPortalAppBase) {\r\n super(app);\r\n }\r\n\r\n public render(params: SimpleMvc.QueryParams): void {\r\n super.render(params);\r\n\r\n // We know the user is logged in because this method is only called if the user is logged in.\r\n // If the user is not logged in the login screen will be shown and this method will be called when the user logs in.\r\n\r\n var app = params['app'];\r\n if (app) {\r\n var newUrl = `/ConfigChannel.aspx?app=${app}`;\r\n window.location.assign(newUrl);\r\n }\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Controllers/RedirectController.ts","/// \r\n\r\nimport { clientAppSettings } from \"./Models/ClientAppSettings\";\r\nimport { ControllerBase } from \"./Controllers/ControllerBase\";\r\nimport Rest = require(\"./Generated/RestClient\");\r\nimport { parseQuery } from \"../../Intercom.ReactUI/Utils/Url\";\r\nimport { TrackingCookieConsent } from './Utils/TrackingCookieConsent';\r\n\r\nimport { Resources } from './Resources/Intercom.Resources.DevPortal';\r\nimport { Culture } from './Resources/Culture';\r\nimport { CultureUtility } from './Resources/CultureUtility';\r\n\r\ndeclare var WL: any;\r\n\r\nexport class DevPortalAppBase extends SimpleMvc.App {\r\n public signedInUser: Rest.AuthData;\r\n public availableChannels: Rest.Channel[];\r\n public trackingCookieConsent = new TrackingCookieConsent();\r\n public announcements: IAnnouncements;\r\n\r\n private scrollHandlers: { (element: Element): void }[] = [];\r\n\r\n public scrolled(element: Element) {\r\n [...this.scrollHandlers].forEach((handler) => handler(element));\r\n }\r\n\r\n public onscroll(handler: (element) => void): { (): void } {\r\n let isSubscribed = true;\r\n this.scrollHandlers.push(handler);\r\n const unsubscribe = () => {\r\n if (!isSubscribed) {\r\n return;\r\n }\r\n isSubscribed = false;\r\n const index = this.scrollHandlers.indexOf(handler);\r\n this.scrollHandlers.splice(index, 1);\r\n }\r\n return unsubscribe;\r\n }\r\n\r\n constructor() {\r\n super({\r\n appBody: document.getElementById(\"app-body\"),\r\n useHistory: true\r\n });\r\n\r\n // Ibiza/Azure sends us the preferred language in a query string - if present parse that out and set it for use on other pages.\r\n const queryParams: { [key: string]: string } = parseQuery(window.location.search.substring(1));\r\n if (queryParams) {\r\n CultureUtility.setLocale(queryParams[\"l\"]);\r\n if (CultureUtility.displayLanguage) {\r\n Culture.Lang = CultureUtility.displayLanguage;\r\n }\r\n if (CultureUtility.cultureCode) {\r\n Culture.CultureCode = CultureUtility.cultureCode;\r\n }\r\n }\r\n\r\n Rest.showNetworkIcon = show => {\r\n var $loading = $(\".loading-animation\");\r\n if (show) {\r\n $loading.toggleClass(\"loading\", true);\r\n }\r\n else {\r\n $loading.toggleClass(\"loading\", false);\r\n }\r\n };\r\n\r\n if (clientAppSettings.applicationPath !== \"/\") {\r\n Rest.urlPrefix = clientAppSettings.applicationPath;\r\n }\r\n\r\n window.onbeforeunload = () => this.onBeforeUnloadHandler();\r\n }\r\n\r\n private onBeforeUnloadHandler(): string {\r\n let currentController = this.getRouter().getCurrentController();\r\n if ($.isFunction(currentController.hasUnsavedChanges) && currentController.hasUnsavedChanges())\r\n return Resources.unsavedChangesWillBeLost;\r\n return undefined; // Note: can't return null here. We have to (implicitly or explicitly) return undefined to not prompt the user.\r\n }\r\n\r\n public isFeatureFlighted(feature: string): boolean {\r\n return clientAppSettings.flightedFeatures.indexOf(feature) != -1;\r\n }\r\n\r\n public isUserFeatureFlighted(feature: string): boolean {\r\n return this.isFeatureFlighted(feature);\r\n }\r\n\r\n public setFeatureFlighting(feature: string, turnOn: boolean): void {\r\n let index = clientAppSettings.flightedFeatures.indexOf(feature);\r\n if (turnOn) {\r\n if (index === -1) {\r\n clientAppSettings.flightedFeatures.push(feature);\r\n }\r\n }\r\n else {\r\n if (index !== -1) {\r\n clientAppSettings.flightedFeatures.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n public isSubmitForReviewFlighted(): boolean {\r\n return this.isFeatureFlighted('SubmitForReview');\r\n }\r\n}\r\n\r\nexport interface IAnnouncements {\r\n isFeatureFlighted: boolean;\r\n all: Rest.Announcement[];\r\n addShown: () => void;\r\n shownIdCount: { [id: string]: number };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/DevPortalAppBase.ts","import * as Rest from './../../Generated/RestClient';\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { ControllerBase } from \"./ControllerBase\";\r\nimport { AccountSettingsPage } from \"../Views/AccountSettingsPage\";\r\nimport { MessageBox } from '../../Dialogs/MessageBox';\r\n\r\nexport class AccountSettingsController extends ControllerBase {\r\n private component: AccountSettingsPage;\r\n\r\n public render(params: SimpleMvc.QueryParams) {\r\n super.render(params);\r\n\r\n const element = React.createElement(AccountSettingsPage, {\r\n user: this.app.signedInUser,\r\n deleteAccount: _.bind(this.deleteAccount, this)\r\n });\r\n\r\n this.component = ReactDOM.render(element, this.pageContent);\r\n }\r\n\r\n private deleteAccount(user: Rest.AuthData): void {\r\n Rest.AccountClient.delete().then(() => {\r\n window.location.href = \"/Identity/SignOut\";\r\n }).fail(xhr => {\r\n const errorMessage = `Account deletion failed. ${xhr.status}.`;\r\n MessageBox.show(errorMessage);\r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Controllers/AccountSettingsController.ts","/// \r\n\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {ControllerBase} from \"./ControllerBase\";\r\nimport { DevPortalAppBase } from \"../../DevPortalAppBase\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport * as Views from \"../Views/BotCreateSwitch\";\r\nimport {clientAppSettings} from \"../../Models/ClientAppSettings\";\r\nimport {BotTypes} from \"../../Utils/BotUtils\";\r\nimport { Environment } from \"../../Utils/Environment\";\r\nimport {AbsCodeChoicePanel, AbsCodeChoiceState, AbsCodeChoiceProps, AbsCodeChoice} from \"../Views/AbsCodeChoicePanel\";\r\nimport {InputDialogBase} from \"../../Dialogs/InputDialogBase\";\r\nimport openTab from \"../Services/openTab\";\r\nimport {getAzurePortalBladeUrl, BladeType} from \"../Services/azurePortalLinks\";\r\nimport { HeaderKind } from \"../Utility/HeaderKind\";\r\n\r\nexport class BotCreateSwitchController extends ControllerBase {\r\n private component: React.Component;\r\n\r\n constructor(public app: DevPortalAppBase) {\r\n super(app, HeaderKind.Jumbo);\r\n }\r\n\r\n public render(params: SimpleMvc.QueryParams): void {\r\n super.render(params);\r\n var element = React.createElement(Views.BotCreateSwitch, {\r\n showAbsGACreate: clientAppSettings.flightedFeatures.indexOf(\"absGACreate\") >= 0,\r\n onCreate: botType => this.createBot(botType),\r\n createFirstBot: params['createFirstBot']\r\n });\r\n this.component = ReactDOM.render(element, this.pageContent);\r\n }\r\n\r\n private promptAbsCodeChoice(): JQueryPromise {\r\n const showDialog = clientAppSettings.flightedFeatures.indexOf('absCode') >= 0;\r\n if (showDialog) {\r\n let dialog = new InputDialogBase(AbsCodeChoicePanel, {},\r\n { dialogClass: 'status-panel-dialog' });\r\n return dialog.showDialog();\r\n } else {\r\n return $.Deferred().resolve({choice: 'register'});\r\n }\r\n }\r\n\r\n private createAbsCodeBot(choice: AbsCodeChoice) {\r\n switch (choice) {\r\n case 'register':\r\n this.app.navigate('/bots/new');\r\n break;\r\n case 'host-in-azure':\r\n openTab(getAzurePortalBladeUrl(null, null, BladeType.createAbs));\r\n break;\r\n }\r\n }\r\n\r\n private createBot(botType: BotTypes) {\r\n switch (botType) {\r\n case BotTypes.None:\r\n this.promptAbsCodeChoice().then(choiceState => {\r\n this.createAbsCodeBot(choiceState.choice);\r\n });\r\n break;\r\n case BotTypes.SDK:\r\n window.open('//aka.ms/bf-createsdkbot', '_blank');\r\n break;\r\n case BotTypes.ABSGACreate:\r\n window.open(Environment.azureCreateBotUrl(), \"_blank\");\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Controllers/BotCreateSwitchController.ts","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport {ControllerBase} from \"./ControllerBase\";\r\nimport {BotOpenComposer, BotOpenComposerProps} from \"../Views/index\";\r\nimport {DevPortalAppBase} from \"../../DevPortalAppBase\";\r\nimport { HeaderKind } from \"../Utility/HeaderKind\";\r\n\r\nexport class BotOpenComposerController extends ControllerBase {\r\n component: BotOpenComposer;\r\n\r\n constructor(app: DevPortalAppBase, containerController?: ControllerBase) {\r\n super(app);\r\n this.headerKind = HeaderKind.None;\r\n this.containerController = containerController;\r\n }\r\n\r\n public load(params: SimpleMvc.QueryParams): void {\r\n super.load(params);\r\n }\r\n\r\n private renderPage(botId: string) {\r\n const payloadJson = this.params['payload'] || '{}';\r\n const element = React.createElement(BotOpenComposer, {\r\n downloadUrl: 'https://docs.microsoft.com/composer/install-composer#install-composer-as-a-desktop-application',\r\n payload: JSON.parse(payloadJson)\r\n });\r\n this.component = ReactDOM.render(element, this.pageContent);\r\n\r\n Rest.BotManagerClient.getById(botId)\r\n .then(botSubscription => {\r\n if (!this.isLoaded()) {\r\n return;\r\n }\r\n\r\n this.component.setState({bot: botSubscription.Bot})\r\n });\r\n }\r\n\r\n protected render(params: SimpleMvc.QueryParams) {\r\n super.render(params);\r\n this.renderPage(params['id']);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Controllers/BotOpenComposerController.ts","/// \r\n\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as Dialogs from \"../../Dialogs/MessageBox\";\r\nimport { ControllerBase } from \"./ControllerBase\";\r\nimport { DevPortalAppBase } from \"../../DevPortalAppBase\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport * as Views from \"../Views/BotsPage\";\r\nimport { HeaderKind } from \"../Utility/HeaderKind\";\r\nimport { resourceStrings, NavLinks } from \"../../../../Intercom.ReactUI/Views/index\";\r\nimport * as ImageUtils from \"../../Utils/ImageUtils\";\r\nimport { BotProgress } from \"../Views/status/index\";\r\nimport { ArmClient } from \"../../Services/index\";\r\nimport { BotUtils, RollbackEndpointVersionName, BotUtilsV2 } from \"../../Utils/BotUtils\";\r\nimport { FlightUtils } from '../../Utils/FlightUtils';\r\nimport { Resources } from \"../../Resources/Intercom.Resources.DevPortal\";\r\nimport { getAzureIbizaBotUrl } from \"../../Utils/Links\";\r\nimport { clientAppSettings } from \"../../Models/ClientAppSettings\";\r\n\r\nconst PAGE_SIZE = 40;\r\n\r\nexport class BotsController extends ControllerBase {\r\n private state: Views.BotsPageState;\r\n private component: React.Component;\r\n private armClient: ArmClient;\r\n\r\n constructor(app: DevPortalAppBase) {\r\n super(app);\r\n this.headerKind = HeaderKind.Jumbo;\r\n\r\n // if coming back to this page from migration, navigate to the bot id\r\n const migrationBotId = localStorage.getItem(\"migrationBotId\");\r\n if (migrationBotId) {\r\n this.app.navigate(\"/bots\", { id: migrationBotId });\r\n }\r\n }\r\n\r\n protected handleSearch(s: string) {\r\n const search = s.trim();\r\n if (search) {\r\n if (!this.state.loadingMoreBots) {\r\n this.state.bots = [];\r\n this.state.searchString = search;\r\n this.state.continuationToken = null;\r\n }\r\n this.component.setState(this.state);\r\n this.fetchMore();\r\n }\r\n }\r\n\r\n private get filterSetting(): string {\r\n const param = (this.params['c'] || '').trim();\r\n let channel = param;\r\n if (param.indexOf('_all_') === 0) {\r\n channel = param.substr(5);\r\n }\r\n if (clientAppSettings.channels.filter(x => x.Id === channel).length) {\r\n return param;\r\n }\r\n return null;\r\n }\r\n\r\n public render(params: SimpleMvc.QueryParams): void {\r\n\r\n super.render(params);\r\n this.updateTitle('My bots | ' + resourceStrings.botFrameworkExtended);\r\n\r\n this.state = {\r\n bots: [],\r\n searchString: params['s'],\r\n continuationToken: null\r\n };\r\n\r\n this.setSearchState(this.state.searchString, !!this.state.searchString);\r\n\r\n var props: Views.BotsPageProps = {\r\n channelFilter: this.filterSetting,\r\n controller: this,\r\n onNextPage: () => {\r\n if (!this.state.loadingMoreBots && this.state.hasMoreBots) {\r\n this.fetchMore()\r\n }\r\n },\r\n createBot: () => {\r\n this.app.navigate('/bots/provision');\r\n },\r\n navigateToBot: (bot: Rest.BotDocument): void => {\r\n if (bot.Kind) {\r\n // if the bot has been migrated, link to Azure, otherwise stay on dev portal\r\n const link = getAzureIbizaBotUrl(bot.SubscriptionId, bot.ResourceGroupName, bot.Id);\r\n const $anchor = $(``).appendTo(\"body\");\r\n $anchor[0].click();\r\n $anchor.remove();\r\n } else {\r\n this.app.navigate(\"/bots\", { id: bot.Id });\r\n }\r\n },\r\n deleteBot: (botId: string) => {\r\n var options: Dialogs.IMessageBoxOptions = {\r\n okButtonLabel: Resources.deleteBotDialogDeleteButtonText,\r\n cancelButtonLabel: Resources.cancelButtonText,\r\n className: \"danger\"\r\n };\r\n\r\n var mb = new Dialogs.MessageBox(options);\r\n mb.header = Resources.deleteBotDialogTitleText;\r\n mb.message = Resources.deleteBotDialogBodyText;\r\n mb.showDialog().done(() => {\r\n this.performDelete(botId);\r\n });\r\n }\r\n }\r\n\r\n var element = React.createElement(Views.BotsPage, props);\r\n this.component = ReactDOM.render(element, this.pageContent);\r\n\r\n this.setActiveJumboActiveLink(NavLinks.mybots);\r\n this.initArmClient();\r\n\r\n this.fetchMore();\r\n }\r\n\r\n /** Refreshes the page */\r\n private refreshPage(): void {\r\n window.location.href = \"/bots\";\r\n }\r\n\r\n /** Initializes instance of ARM client */\r\n private initArmClient(): void {\r\n if (this.azureAccessToken) {\r\n this.armClient = new ArmClient(this.azureAccessToken);\r\n }\r\n }\r\n\r\n /** Shows an overlay with status about bot rollback, rolls back bot, and then refreshes bots list. */\r\n private performRollback(bot: Rest.BotService): void {\r\n this.statusBar = React.createElement(BotProgress, { progress: Resources.rollbackBotDialogStatusPreparing });\r\n\r\n // ABSv1 & ABSCode bots need to rollback to old web / function app\r\n let upgradeAppName = null;\r\n // get rollback endpoint\r\n const oldEndpoint = _.find(bot.Endpoints || [], x => x.Version === RollbackEndpointVersionName) || { Url: bot.Endpoint };\r\n const oldEndpointUrl = oldEndpoint.Url;\r\n\r\n if (!BotUtils.isSDKBot(bot)) {\r\n // ensure there is an ARM client before starting the rollback process for non-registration-only bots\r\n if (!this.armClient) {\r\n this.statusBar = null;\r\n var options: Dialogs.IMessageBoxOptions = {\r\n hideCancelButton: true,\r\n okButtonLabel: Resources.okButtonText,\r\n okButtonClass: \"primary\"\r\n };\r\n var mb = new Dialogs.MessageBox(options);\r\n mb.header = Resources.errorMessageErrorOccurred;\r\n mb.message = Resources.rollbackBotDialogErrorNoAzureToken;\r\n mb.showDialog();\r\n return;\r\n }\r\n\r\n upgradeAppName = bot.ProvisionInfo.SiteName;\r\n\r\n const siteNameRegex = /^https:\\/\\/(.*)\\.azurewebsites.net/;\r\n let oldSiteName: string;\r\n try {\r\n const matches = siteNameRegex.exec(oldEndpointUrl);\r\n oldSiteName = matches[1];\r\n } catch (e) {\r\n this.statusBar = null;\r\n var options: Dialogs.IMessageBoxOptions = {\r\n hideCancelButton: true,\r\n okButtonLabel: Resources.okButtonText,\r\n okButtonClass: \"primary\"\r\n };\r\n var mb = new Dialogs.MessageBox(options);\r\n mb.header = Resources.errorMessageErrorOccurred;\r\n mb.message = Resources.rollbackBotDialogErrorNoEndpoint;\r\n mb.showDialog();\r\n return;\r\n }\r\n\r\n bot.ProvisionInfo.SiteName = oldSiteName;\r\n }\r\n\r\n bot.Endpoint = oldEndpointUrl;\r\n if (bot.Endpoints) {\r\n bot.Endpoints = bot.Endpoints.filter(x => x.Version !== RollbackEndpointVersionName);\r\n }\r\n\r\n // for all types of bots\r\n bot.Kind = \"\";\r\n bot.ServicePlan = null;\r\n bot.ProvisioningState = null;\r\n bot.MigratedDate = null;\r\n\r\n this.statusBar = React.createElement(BotProgress, { progress: Resources.rollbackBotDialogStatusReverting });\r\n Rest.BotManagerClient.update(bot, false)\r\n .done(updatedBot => {\r\n if (upgradeAppName) {\r\n this.wipeUpgradeEvidence(updatedBot, upgradeAppName);\r\n } else {\r\n this.statusBar = null;\r\n this.showPostRollbackDialog(bot.Id);\r\n }\r\n })\r\n .fail(err => {\r\n this.statusBar = null;\r\n this.handleHttpResponseError(err);\r\n });\r\n }\r\n\r\n /** Removes the deployment and web app caused by the upgrade. */\r\n private wipeUpgradeEvidence(bot: Rest.BotService, appName: string): void {\r\n const subId = bot.ProvisionInfo.SubscriptionId;\r\n const rgName = bot.ProvisionInfo.ResourceGroupName;\r\n const deploymentId = bot.ProvisionInfo.Deployment.id;\r\n\r\n this.statusBar = React.createElement(BotProgress, { progress: Resources.rollbackBotDialogStatusDeletingApp });\r\n this.armClient.deleteWebApp(subId, rgName, appName)\r\n .then(() => {\r\n this.statusBar = React.createElement(BotProgress, { progress: Resources.rollbackBotDialogStatusDeletingDeployment });\r\n return this.armClient.deleteDeployment(deploymentId);\r\n })\r\n .done(() => {\r\n this.statusBar = null;\r\n this.showPostRollbackDialog(bot.Id);\r\n })\r\n .fail(err => {\r\n this.statusBar = null;\r\n this.handleHttpResponseError(err);\r\n });\r\n }\r\n\r\n /** Shows a post-rollback confirmation dialogue */\r\n private showPostRollbackDialog(botId: string): void {\r\n var options: Dialogs.IMessageBoxOptions = {\r\n okButtonLabel: Resources.okButtonText,\r\n className: \"primary\",\r\n hideCancelButton: true\r\n };\r\n\r\n var mb = new Dialogs.MessageBox(options);\r\n mb.header = Resources.rollbackBotDialogConfirmationTitleText;\r\n mb.message = `${botId} ${Resources.rollbackBotDialogConfirmationBodyText}`;\r\n mb.showDialog().done(() => this.refreshPage());\r\n }\r\n\r\n /** Shows an overlay with status message and deletes the bot, then refreshes bots list */\r\n private performDelete(botId: string): void {\r\n this.statusBar = React.createElement(BotProgress, { progress: Resources.deleteBotDialogStatusDeleting });\r\n\r\n Rest.BotManagerClient.delete(botId).done(() => {\r\n if (this.isLoaded()) {\r\n this.statusBar = null;\r\n Dialogs.MessageBox.show(Resources.deleteBotDialogStatusDeleted).done(() => {\r\n this.refreshPage();\r\n });\r\n }\r\n }).fail(xhr => {\r\n this.statusBar = null;\r\n this.handleHttpResponseError(xhr);\r\n });\r\n }\r\n\r\n private fetchMore() {\r\n if (this.state.searchString) {\r\n this.searchMore();\r\n } else {\r\n this.listMore();\r\n }\r\n }\r\n\r\n private searchMore() {\r\n this.state.loadingMoreBots = true;\r\n Rest.BotManagerClient.searchBotsPage(this.state.searchString, PAGE_SIZE, this.state.continuationToken).done(botSearchResult => {\r\n this.state.bots = this.state.bots.concat(botSearchResult.Items);\r\n this.state.loadingMoreBots = false;\r\n this.state.hasMoreBots = botSearchResult.HasMore;\r\n this.state.continuationToken = botSearchResult.ContinuationToken;\r\n this.component.setState(this.state);\r\n this.initAgentIcons();\r\n if (this.state.bots.length == 0) {\r\n // turn on no bots prompt in the botspage\r\n $('.no-bots-prompt').show();\r\n }\r\n }).fail(xhr => this.handleHttpResponseError(xhr));\r\n }\r\n\r\n private listMore() {\r\n this.state.loadingMoreBots = true;\r\n Rest.BotManagerClient.getPage(PAGE_SIZE, this.state.continuationToken).done(botSearchResult => {\r\n this.state.bots = this.state.bots.concat(botSearchResult.Items);\r\n this.state.loadingMoreBots = false;\r\n this.state.hasMoreBots = botSearchResult.HasMore;\r\n this.state.continuationToken = botSearchResult.ContinuationToken;\r\n this.component.setState(this.state);\r\n this.initAgentIcons();\r\n if (this.state.bots.length === 0) {\r\n // user has no bots, prompt to create/register\r\n this.app.navigate('/bots/provision', { createFirstBot: 'true' });\r\n }\r\n }).fail(xhr => this.handleHttpResponseError(xhr));\r\n }\r\n\r\n // TODO: shouldn't this be moved to view instead of leaving in the controller?\r\n private initAgentIcons(): void {\r\n var $icons = $(this.pageContent).find(\".agent-icon\");\r\n for (var i = 0; i < $icons.length; i++) {\r\n var $icon = $icons.eq(i);\r\n var iconUrl = $icon.data('icon');\r\n if (iconUrl) {\r\n $icon.empty();\r\n $icon.removeData('icon');\r\n ImageUtils.addImageToContainer($icon, iconUrl, ImageUtils.ImageDisplayMode.Fill);\r\n }\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Controllers/BotsController.ts","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport * as Views from \"../../Views/LogoutPanel\";\r\nimport {clientAppSettings} from \"../../Models/ClientAppSettings\";\r\nimport {LogoutPage, LogoutPageProps, LogoutPageState} from \"../../Views/LogoutPage\";\r\n\r\nlet component: React.Component;\r\nlet state: LogoutPageState = { items: [] };\r\nlet siteSignOutSuccess = false; // apps and channels\r\n\r\nfunction redirectOnAllSuccess(): void {\r\n if (siteSignOutSuccess) {\r\n if (window.location.protocol.indexOf('https:') == 0) {\r\n window.location.href = '/Identity/SignOut';\r\n } else {\r\n window.location.assign('/');\r\n }\r\n }\r\n}\r\n\r\nfunction getChannels() : Rest.Channel[] {\r\n //return clientAppSettings.channels.filter(ch => !!ch.DeveloperConfigLogoutUrl);\r\n return [];\r\n}\r\n\r\nfunction singleSignOut(): void {\r\n var status = {\r\n failureCount: 0,\r\n successCount: 0\r\n };\r\n\r\n const channels = getChannels();\r\n\r\n function onSiteSignOutSuccess(): void {\r\n siteSignOutSuccess = true;\r\n redirectOnAllSuccess();\r\n }\r\n function markPanelStatus(key: string, logoutPanelStatus: Views.LogoutPanelStatus): void {\r\n for (let item of state.items) {\r\n if (item.key === key) {\r\n item.status = logoutPanelStatus;\r\n component.setState(state);\r\n return;\r\n }\r\n }\r\n }\r\n function onImageLoadSuccess(e: JQueryEventObject): void {\r\n let $src = $(e.target);\r\n let tag = $src.attr('data-tag');\r\n markPanelStatus(tag, Views.LogoutPanelStatus.Success);\r\n if (++status.successCount === state.items.length) {\r\n onSiteSignOutSuccess();\r\n }\r\n }\r\n function onImageLoadFailure(e: JQueryEventObject): void {\r\n let $src = $(e.target);\r\n let tag = $src.attr('data-tag');\r\n markPanelStatus(tag, Views.LogoutPanelStatus.Failure);\r\n ++status.failureCount;\r\n }\r\n if (channels.length === 0) {\r\n onSiteSignOutSuccess();\r\n }\r\n else \r\n {\r\n for (let channel of channels) {\r\n var $img = $(``);\r\n $img.bind(\"load\", e => onImageLoadSuccess(e));\r\n $img.bind(\"error\", e => onImageLoadFailure(e));\r\n $img.attr(\"src\", channel.DeveloperConfigLogoutUrl);\r\n } \r\n }\r\n}\r\n\r\nfunction addChannelsToState(): void {\r\n const channels = getChannels();\r\n for (let channel of channels) {\r\n state.items.push({\r\n key: 'channel:' + channel.Id,\r\n title: channel.Name + ' Channel',\r\n status: Views.LogoutPanelStatus.InProgress\r\n });\r\n }\r\n}\r\n\r\nexport function signOut($el: JQuery): void {\r\n var element = React.createElement(LogoutPage, {});\r\n component = ReactDOM.render(element, $el[0], () => {\r\n singleSignOut();\r\n });\r\n addChannelsToState();\r\n component.setState(state);\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Controllers/SignOut.ts","/**\r\n * lazy decorator\r\n * \r\n * @lazy()\r\n * get prop() : T {\r\n * // code to create the return type and then once\r\n * // created it is cached for future invocations\r\n * }\r\n */\r\nexport function lazy() {\r\n return function(target: any, propertyKey: string, descriptor: PropertyDescriptor) {\r\n let {configurable, enumerable, writable} = descriptor;\r\n let innerGet = descriptor.get;\r\n if (typeof innerGet === 'function') {\r\n let getter = function() {\r\n let val = innerGet.apply(this);\r\n Object.defineProperty(this, propertyKey, {\r\n configurable, enumerable, writable, value: val\r\n });\r\n return val;\r\n }\r\n descriptor.get = getter;\r\n }\r\n return descriptor;\r\n }\r\n }\n\n\n// WEBPACK FOOTER //\n// ./Client/Decorators/lazy.ts","/// \r\n\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {DialogBase} from \"./DialogBase\";\r\nimport * as View from \"../v4/Views/TermsOfServiceDialog\";\r\n\r\nexport class TermsOfServiceDialog extends DialogBase {\r\n public header: string;\r\n private options: View.TermsOfServiceDialogProps;\r\n\r\n constructor(options: View.TermsOfServiceDialogProps) {\r\n super();\r\n this.options = options;\r\n }\r\n\r\n protected render(): void {\r\n var element = React.createElement(View.TermsOfServiceDialog, this.options);\r\n ReactDOM.render(element, this.$el[0], () => {\r\n this.init();\r\n });\r\n }\r\n\r\n protected init(): void {\r\n // Call base class method to complete initialization.\r\n super.init();\r\n }\r\n\r\n //over-write enter key pressing to avoid users being able to by pass this dialog\r\n protected onEnterKeyPressed(): boolean {\r\n return false;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Dialogs/TermsOfServiceDialog.ts","import {Method} from \"./HttpMethods\";\r\n\r\nexport interface GithubUser {\r\n login: string,\r\n id: number,\r\n avatar_url: string,\r\n gravatar_id: string,\r\n url: string,\r\n html_url: string,\r\n followers_url: string,\r\n following_url: string,\r\n gists_url: string,\r\n starred_url: string,\r\n subscriptions_url: string,\r\n organizations_url: string,\r\n repos_url: string,\r\n events_url: string,\r\n received_events_url: string,\r\n type: string,\r\n site_admin: false,\r\n name: string,\r\n company: string,\r\n blog: string,\r\n location: null,\r\n email: null,\r\n hireable: null,\r\n bio: null,\r\n public_repos: 6,\r\n public_gists: 0,\r\n followers: 0,\r\n following: 0,\r\n created_at: string,\r\n updated_at: string\r\n}\r\n\r\nconst apiHost = 'https://api.github.com'\r\nexport class GithubApi {\r\n constructor(private token: string){\r\n }\r\n\r\n public get user() : JQueryPromise {\r\n return this.request(`${apiHost}/user`, Method.GET);\r\n }\r\n\r\n private get authHeader() : string {\r\n return `token ${this.token}`;\r\n }\r\n \r\n private request(url: string, method:Method, data?: any) : JQueryPromise {\r\n return $.ajax({\r\n url: url,\r\n type: Method[method],\r\n contentType: 'application/json',\r\n data: data ? JSON.stringify(data) : data,\r\n headers: {\r\n 'Authorization': this.authHeader,\r\n 'Accept': 'application/vnd.github.v3+json'\r\n }\r\n })\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/Services/GithubApi.ts","export interface TenantInfo {\r\n Current: boolean,\r\n DisplayName: string,\r\n DomainName: string,\r\n TenantId: string\r\n}\r\n\r\ninterface GraphData {\r\n \"odata.metadata\": string,\r\n \"value\": T[]\r\n}\r\n\r\ninterface TenantDetails {\r\n \"odata.type\": \"Microsoft.DirectoryServices.TenantDetail\",\r\n displayName: string,\r\n verifiedDomains: {\r\n default: boolean,\r\n id: string,\r\n initial: boolean,\r\n name: string,\r\n type: string\r\n }[]\r\n}\r\n\r\nconst graphApiVersion = '1.6';\r\nconst graphApiRoot = 'https://graph.windows.net'\r\nexport class GraphApi {\r\n constructor(private token: string) { \r\n }\r\n\r\n public getTenantDetails(tenantId: string) : JQueryPromise {\r\n return this.get(`${graphApiRoot}/${tenantId}/tenantDetails?api-version=${graphApiVersion}`)\r\n .then((details: GraphData) => {\r\n const td = details.value[0];\r\n const defaultDomains = td.verifiedDomains.filter(x => x.default);\r\n if (defaultDomains.length) {\r\n const ti: TenantInfo = {\r\n Current: true,\r\n DisplayName: td.displayName,\r\n DomainName: defaultDomains[0].name,\r\n TenantId: tenantId\r\n }\r\n return $.Deferred().resolve(ti);\r\n }\r\n return $.Deferred().reject(\"no default domain found\");\r\n });\r\n }\r\n\r\n private get authHeader() : string {\r\n return `Bearer ${this.token}`;\r\n }\r\n\r\n private get(url: string) : JQueryPromise {\r\n return $.ajax({\r\n url: url,\r\n type: 'GET',\r\n dataType: 'json',\r\n headers: {\r\n 'Authorization': this.authHeader,\r\n 'Accept': 'application/json,*/*'\r\n }\r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/Services/GraphApi.ts","import {Method} from \"./HttpMethods\";\r\n\r\nexport interface VsoAccount {\r\n AccountId: string,\r\n NamespaceId: string,\r\n AccountName: string,\r\n OrganizationName: string,\r\n AccountType: number,\r\n AccountOwner: string,\r\n CreatedBy: string,\r\n CreatedDate: string,\r\n AccountStatus: 0,\r\n StatusReason: string,\r\n LastUpdatedBy: string,\r\n Properties: {[key:string]: any}\r\n}\r\n\r\nconst vsoApiRoot = 'https://app.vssps.visualstudio.com/_apis';\r\n\r\nexport class VsoApi {\r\n constructor(private token: string) {\r\n\r\n }\r\n\r\n public get accounts() : JQueryPromise {\r\n return this.request(`${vsoApiRoot}/Accounts`, Method.GET);\r\n }\r\n\r\n private request(url: string, method: Method, data?: any) : JQueryPromise {\r\n return $.ajax({\r\n url: url,\r\n type: Method[method],\r\n contentType: \"application/json\",\r\n dataType: \"json\",\r\n headers: {\r\n Authorization: `token ${this.token}`\r\n },\r\n data: data ? JSON.stringify(data) : data\r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/Services/VsoApi.ts","/// \r\n\r\nvar MaxScaleUp = 2; // Small images can be scaled up by a factor of upto this number in order to fit/fill the container.\r\n\r\nexport interface IImage {\r\n href?: string;\r\n width?: number;\r\n height?: number;\r\n}\r\n\r\nexport function findWidestImage(images: IImage[]): IImage {\r\n if (!images || !images.length)\r\n return null;\r\n var widest = images[0];\r\n for (var i = 1; i < images.length; i++) {\r\n if (images[i].width > widest.width)\r\n widest = images[i];\r\n }\r\n return widest;\r\n}\r\n\r\nexport enum ImageDisplayMode {\r\n /** Scales image to fit the size of the parent. Aspect ratio is maintained. Any remaining area of the parent's bounds is transparent. */\r\n Fit,\r\n /** Scales the image to fill the size of the parent. Aspect ratio is maintained. Some portion of the image may be clipped to fill the parent's bounds. */\r\n Fill\r\n}\r\n\r\n/** Sets image url to img element, then scales and positions the image inside its parent, as specified by the mode parameter. */\r\nexport function setImageSource($img: JQuery, imageUrl: string, mode: ImageDisplayMode): void {\r\n $img.bind('load', () => {\r\n scaleAndCenterImage($img, mode);\r\n });\r\n $img.attr('src', imageUrl);\r\n}\r\n\r\n/** Creates an img element and adds it to the specified container, scaling and positioning as specified by the mode parameter. */\r\nexport function addImageToContainer($container: JQuery, imageUrl: string, mode: ImageDisplayMode): void {\r\n var img = new Image();\r\n var $img = $(img);\r\n $img.attr('draggable', 'false');\r\n $img.bind('load', () => {\r\n $container.append($img);\r\n scaleAndCenterImage($img, mode);\r\n });\r\n img.src = imageUrl;\r\n}\r\n\r\n/** Scales and centers supplied image inside its parent element.\r\n * Image must already be loaded before calling this function.\r\n * If mode is set to fill then the parent should have overflow: hidden style.\r\n */\r\nexport function scaleAndCenterImage($img: JQuery, mode: ImageDisplayMode): void {\r\n var $container = $img.parent();\r\n var containerWidth = $container.width();\r\n var containerHeight = $container.height();\r\n var img = $img[0];\r\n var scaleX = img.naturalWidth / containerWidth;\r\n var scaleY = img.naturalHeight / containerHeight;\r\n var scale: number;\r\n switch (mode) {\r\n case ImageDisplayMode.Fit:\r\n scale = Math.max(scaleX, scaleY);\r\n break;\r\n case ImageDisplayMode.Fill:\r\n scale = Math.min(scaleX, scaleY);\r\n break;\r\n }\r\n if (scale < 1 / MaxScaleUp)\r\n scale = 1 / MaxScaleUp;\r\n var w = Math.round(img.naturalWidth / scale);\r\n var h = Math.round(img.naturalHeight / scale);\r\n var x = (containerWidth - w) / 2;\r\n var y = (containerHeight - h) / 2;\r\n $img.css({ width: w, height: h, marginLeft: Math.round(x) + 'px', marginTop: Math.round(y) + 'px' });\r\n}\r\n\r\n/** Loads an image from supplied file.\r\n * @maxImageWidth: If a non-zero value is supplied, reduces the image to be no wider than this value.\r\n */\r\nexport function loadImageFromFile(file: any, maxImageWidth: number, callback: (image: IImage) => void): void {\r\n var reader = new FileReader();\r\n reader.onload = ev => {\r\n var imageUrl = (ev.target).result;\r\n if (maxImageWidth)\r\n reduceImageSize(imageUrl, maxImageWidth, image => callback(image));\r\n else\r\n preloadImages([{ href: imageUrl }], images => callback(images[0]));\r\n };\r\n reader.readAsDataURL(file);\r\n}\r\n\r\n/** Reduces the size of the image.\r\n * @imageUrl: The url of the image. This is typically a data url. Cross-domain urls will cause a security error.\r\n * @maxImageWidth: The desired max width of the image. If the width of the image is smaller then the image is not resized.\r\n */\r\nexport function reduceImageSize(imageUrl: string, maxImageWidth: number, callback: (image: IImage) => void): void {\r\n var $img = $('');\r\n $img.load(() => {\r\n var img = $img[0];\r\n var canvas = document.createElement(\"canvas\");\r\n canvas.width = Math.min(img.naturalWidth, maxImageWidth);\r\n canvas.height = Math.round(img.naturalHeight * canvas.width / img.naturalWidth);\r\n var ctx = canvas.getContext(\"2d\");\r\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\r\n callback({ href: canvas.toDataURL(\"image/jpeg\", 0.8), width: canvas.width, height: canvas.height });\r\n });\r\n $img.error(() => {\r\n callback(null);\r\n });\r\n $img.attr('src', imageUrl);\r\n}\r\n\r\n/** Load images, with timeout, to get their sizes. */\r\nexport function preloadImages(items: IImage[], callback: (items: IImage[]) => void) {\r\n const status = { // This is an object because values in it need to be modified by closures.\r\n loadedCount: 0,\r\n completed: false\r\n };\r\n const elements = [];\r\n let timeoutId = null;\r\n function complete(): void {\r\n if (!status.completed) {\r\n status.completed = true;\r\n if (timeoutId !== null) {\r\n clearTimeout(timeoutId);\r\n timeoutId = null;\r\n }\r\n $.each(elements, function (elementIndex, $element) {\r\n $element.unbind();\r\n });\r\n const filtered = [];\r\n $.each(items, function (itemIndex, item) {\r\n const minImageSize = 32;\r\n if (item.width >= minImageSize && item.height >= minImageSize) {\r\n filtered.push(item);\r\n }\r\n });\r\n callback(filtered);\r\n }\r\n }\r\n const imageCount = items.length;\r\n if (imageCount === 0) {\r\n complete();\r\n }\r\n else {\r\n timeoutId = setTimeout(function () {\r\n timeoutId = null;\r\n complete();\r\n }, 8000);\r\n for (let i = 0; i < items.length; i++) {\r\n const $img = $(\"\");\r\n elements.push($img);\r\n $img.bind(\"load\", function (e?: JQueryEventObject) {\r\n const $src: any = $(e.target);\r\n const index = $src.attr('data-index') * 1;\r\n items[index].width = (typeof $src[0].naturalWidth === 'number') ? $src[0].naturalWidth : $src[0].width;\r\n items[index].height = (typeof $src[0].naturalHeight === 'number') ? $src[0].naturalHeight : $src[0].height;\r\n if (++status.loadedCount === imageCount) {\r\n complete();\r\n }\r\n });\r\n $img.bind(\"error\", function (e?: JQueryEventObject) {\r\n if (++status.loadedCount === imageCount) {\r\n complete();\r\n }\r\n });\r\n $img.attr(\"src\", items[i].href);\r\n }\r\n }\r\n}\r\n\r\n/** Load image, with timeout, to get its size. */\r\nexport function preloadImage(href: string, callback: (item: IImage) => void) {\r\n var images: IImage[] = [{ href: href }];\r\n preloadImages(images, items => {\r\n callback(items.length === 1 ? items[0] : null);\r\n });\r\n}\r\n\r\nexport function IsImageFile(file: any): boolean {\r\n return (file.type === \"image/png\" || file.type === \"image/jpeg\" || file.type === \"image/gif\");\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Utils/ImageUtils.ts","import { Resources } from \"../Resources/Intercom.Resources.DevPortal\";\r\n\r\n/**\r\n * Helper function for localizing a list of words. Doesn't support the Oxford comma.\r\n * Examples:\r\n * [\"apple\", \"orange\", \"pear\", \"peach\"] => \"apple, orange, pear and peach\"\r\n * [\"apple\"] => \"apple\"\r\n * [\"apple\", \"orange\"] => \"apple and orange\"\r\n * If there's a language where conjunctions happen only at the beginning of a series\r\n * (ie, \"apple and orange, pear, peach\"), or that modify conjunctions (based on \r\n * plurality, gendered nouns, or length of series), this function will have trouble.\r\n */\r\nexport function localizeAndList(input:string[]):string {\r\n if (input.length === 1) {\r\n return input[0];\r\n } else {\r\n let result = \"\";\r\n for (let i = 0; i < input.length - 2; i++) {\r\n result += Resources.listElem.replace(\"{0}\", input[i]);\r\n }\r\n result += Resources.andListEnd\r\n .replace(\"{0}\", input[input.length - 2])\r\n .replace(\"{1}\", input[input.length - 1]);\r\n return result;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/Utils/LocalizationUtils.ts","import { EmailOptingOptions } from '../Generated/RestClient';\r\n\r\nexport let OptingOptions = EmailOptingOptions;\r\nexport let CountryCodeOptInOut = {\r\n \"AF\": OptingOptions.OptOut,\r\n \"AX\": OptingOptions.OptOut,\r\n \"AL\": OptingOptions.OptOut,\r\n \"DZ\": OptingOptions.OptOut,\r\n \"AS\": OptingOptions.OptOut,\r\n \"AD\": OptingOptions.OptOut,\r\n \"AO\": OptingOptions.OptIn,\r\n \"AI\": OptingOptions.OptOut,\r\n \"AQ\": OptingOptions.OptOut,\r\n \"AG\": OptingOptions.OptOut,\r\n \"AR\": OptingOptions.OptIn,\r\n \"AM\": OptingOptions.OptIn,\r\n \"AW\": OptingOptions.OptOut,\r\n \"AC\": OptingOptions.OptOut,\r\n \"AU\": OptingOptions.OptIn,\r\n \"AT\": OptingOptions.DoubleOptIn,\r\n \"AZ\": OptingOptions.OptIn,\r\n \"BS\": OptingOptions.OptOut,\r\n \"BH\": OptingOptions.Notice,\r\n \"BD\": OptingOptions.OptOut,\r\n \"BB\": OptingOptions.OptOut,\r\n \"BY\": OptingOptions.OptOut,\r\n \"BE\": OptingOptions.OptIn,\r\n \"BZ\": OptingOptions.OptOut,\r\n \"BJ\": OptingOptions.OptIn,\r\n \"BM\": OptingOptions.OptOut,\r\n \"BT\": OptingOptions.OptOut,\r\n \"BO\": OptingOptions.Notice,\r\n \"BA\": OptingOptions.OptOut,\r\n \"BW\": OptingOptions.Notice,\r\n \"BV\": OptingOptions.OptOut,\r\n \"BR\": OptingOptions.Notice,\r\n \"IO\": OptingOptions.OptOut,\r\n \"VG\": OptingOptions.OptOut,\r\n \"BN\": OptingOptions.OptOut,\r\n \"BG\": OptingOptions.OptIn,\r\n \"BF\": OptingOptions.OptIn,\r\n \"BI\": OptingOptions.Notice,\r\n \"KH\": OptingOptions.OptOut,\r\n \"CM\": OptingOptions.Notice,\r\n \"CA\": OptingOptions.OptIn,\r\n \"CV\": OptingOptions.OptIn,\r\n \"KY\": OptingOptions.OptOut,\r\n \"CF\": OptingOptions.Notice,\r\n \"TD\": OptingOptions.Notice,\r\n \"CL\": OptingOptions.OptOut,\r\n \"CN\": OptingOptions.OptOut,\r\n \"CX\": OptingOptions.OptOut,\r\n \"CC\": OptingOptions.OptOut,\r\n \"CO\": OptingOptions.OptIn,\r\n \"KM\": OptingOptions.OptOut,\r\n \"CG\": OptingOptions.OptOut,\r\n \"CD\": OptingOptions.OptOut,\r\n \"CK\": OptingOptions.OptOut,\r\n \"CR\": OptingOptions.OptIn,\r\n \"CI\": OptingOptions.OptOut,\r\n \"HR\": OptingOptions.OptOut,\r\n \"CU\": OptingOptions.OptOut,\r\n \"CY\": OptingOptions.OptOut,\r\n \"CZ\": OptingOptions.OptOut,\r\n \"CS\": OptingOptions.OptOut,\r\n \"DK\": OptingOptions.OptIn,\r\n \"DJ\": OptingOptions.OptOut,\r\n \"DM\": OptingOptions.OptOut,\r\n \"DO\": OptingOptions.Notice,\r\n \"TP\": OptingOptions.OptOut,\r\n \"EC\": OptingOptions.Notice,\r\n \"EG\": OptingOptions.OptOut,\r\n \"SV\": OptingOptions.Notice,\r\n \"GQ\": OptingOptions.Notice,\r\n \"ER\": OptingOptions.Notice,\r\n \"EE\": OptingOptions.OptIn,\r\n \"ET\": OptingOptions.OptOut,\r\n \"FK\": OptingOptions.OptOut,\r\n \"FO\": OptingOptions.OptOut,\r\n \"FJ\": OptingOptions.OptOut,\r\n \"FI\": OptingOptions.OptOut,\r\n \"FR\": OptingOptions.OptOut,\r\n \"FX\": OptingOptions.OptOut,\r\n \"GF\": OptingOptions.OptOut,\r\n \"PF\": OptingOptions.OptOut,\r\n \"TF\": OptingOptions.OptOut,\r\n \"GA\": OptingOptions.Notice,\r\n \"GM\": OptingOptions.Notice,\r\n \"GE\": OptingOptions.OptIn,\r\n \"DE\": OptingOptions.DoubleOptIn,\r\n \"GH\": OptingOptions.OptIn,\r\n \"GI\": OptingOptions.OptOut,\r\n \"GB\": OptingOptions.OptOut,\r\n \"GR\": OptingOptions.DoubleOptIn,\r\n \"GL\": OptingOptions.OptOut,\r\n \"GD\": OptingOptions.OptOut,\r\n \"GP\": OptingOptions.OptOut,\r\n \"GU\": OptingOptions.OptOut,\r\n \"GT\": OptingOptions.OptOut,\r\n \"GW\": OptingOptions.Notice,\r\n \"GN\": OptingOptions.OptOut,\r\n \"GY\": OptingOptions.OptOut,\r\n \"HT\": OptingOptions.OptOut,\r\n \"HM\": OptingOptions.OptOut,\r\n \"HN\": OptingOptions.Notice,\r\n \"HK\": OptingOptions.OptIn,\r\n \"HU\": OptingOptions.OptIn,\r\n \"IS\": OptingOptions.OptOut,\r\n \"IN\": OptingOptions.Notice,\r\n \"ID\": OptingOptions.OptOut,\r\n \"IR\": OptingOptions.OptOut,\r\n \"IQ\": OptingOptions.OptOut,\r\n \"IE\": OptingOptions.OptOut,\r\n \"IM\": OptingOptions.OptOut,\r\n \"IL\": OptingOptions.OptIn,\r\n \"IT\": OptingOptions.OptIn,\r\n \"JM\": OptingOptions.Notice,\r\n \"JP\": OptingOptions.DoubleOptIn,\r\n \"JE\": OptingOptions.OptOut,\r\n \"JO\": OptingOptions.OptOut,\r\n \"KZ\": OptingOptions.OptOut,\r\n \"KE\": OptingOptions.Notice,\r\n \"KI\": OptingOptions.OptOut,\r\n \"KR\": OptingOptions.OptIn,\r\n \"KP\": OptingOptions.OptOut,\r\n \"KW\": OptingOptions.OptIn,\r\n \"KG\": OptingOptions.OptOut,\r\n \"LA\": OptingOptions.OptOut,\r\n \"LV\": OptingOptions.OptOut,\r\n \"LB\": OptingOptions.OptOut,\r\n \"LS\": OptingOptions.Notice,\r\n \"LR\": OptingOptions.OptOut,\r\n \"LY\": OptingOptions.Notice,\r\n \"LI\": OptingOptions.OptOut,\r\n \"LT\": OptingOptions.OptOut,\r\n \"LU\": OptingOptions.OptIn,\r\n \"MO\": OptingOptions.Notice,\r\n \"MK\": OptingOptions.OptOut,\r\n \"MG\": OptingOptions.OptIn,\r\n \"MW\": OptingOptions.Notice,\r\n \"MY\": OptingOptions.OptIn,\r\n \"MV\": OptingOptions.OptOut,\r\n \"ML\": OptingOptions.Notice,\r\n \"MT\": OptingOptions.OptOut,\r\n \"MH\": OptingOptions.OptOut,\r\n \"MQ\": OptingOptions.OptOut,\r\n \"MR\": OptingOptions.Notice,\r\n \"MU\": OptingOptions.OptIn,\r\n \"YT\": OptingOptions.OptOut,\r\n \"MX\": OptingOptions.OptOut,\r\n \"FM\": OptingOptions.OptOut,\r\n \"MD\": OptingOptions.OptOut,\r\n \"MC\": OptingOptions.OptOut,\r\n \"ME\": OptingOptions.OptOut,\r\n \"MS\": OptingOptions.OptOut,\r\n \"MA\": OptingOptions.OptIn,\r\n \"MZ\": OptingOptions.OptIn,\r\n \"MM\": OptingOptions.OptOut,\r\n \"NA\": OptingOptions.OptOut,\r\n \"NR\": OptingOptions.OptOut,\r\n \"NP\": OptingOptions.OptOut,\r\n \"NL\": OptingOptions.OptOut,\r\n \"AN\": OptingOptions.OptOut,\r\n \"NT\": OptingOptions.OptOut,\r\n \"NC\": OptingOptions.OptOut,\r\n \"NZ\": OptingOptions.OptIn,\r\n \"NI\": OptingOptions.OptOut,\r\n \"NE\": OptingOptions.Notice,\r\n \"NG\": OptingOptions.OptOut,\r\n \"NU\": OptingOptions.OptOut,\r\n \"NF\": OptingOptions.OptOut,\r\n \"MP\": OptingOptions.OptOut,\r\n \"NO\": OptingOptions.OptIn,\r\n \"OM\": OptingOptions.Notice,\r\n \"PK\": OptingOptions.OptIn,\r\n \"PW\": OptingOptions.OptOut,\r\n \"PS\": OptingOptions.OptOut,\r\n \"PA\": OptingOptions.OptOut,\r\n \"PG\": OptingOptions.OptOut,\r\n \"PY\": OptingOptions.Notice,\r\n \"PE\": OptingOptions.OptIn,\r\n \"PH\": OptingOptions.OptIn,\r\n \"PN\": OptingOptions.OptOut,\r\n \"PL\": OptingOptions.OptIn,\r\n \"PT\": OptingOptions.OptOut,\r\n \"PR\": OptingOptions.OptOut,\r\n \"QA\": OptingOptions.Notice,\r\n \"RE\": OptingOptions.OptOut,\r\n \"RO\": OptingOptions.OptOut,\r\n \"RU\": OptingOptions.DoubleOptIn,\r\n \"RW\": OptingOptions.Notice,\r\n \"GS\": OptingOptions.OptOut,\r\n \"KN\": OptingOptions.OptOut,\r\n \"LC\": OptingOptions.OptOut,\r\n \"VC\": OptingOptions.OptOut,\r\n \"WS\": OptingOptions.OptOut,\r\n \"SM\": OptingOptions.OptOut,\r\n \"ST\": OptingOptions.OptIn,\r\n \"SA\": OptingOptions.Notice,\r\n \"SN\": OptingOptions.OptOut,\r\n \"RS\": OptingOptions.OptIn,\r\n \"SC\": OptingOptions.Notice,\r\n \"SL\": OptingOptions.OptOut,\r\n \"SG\": OptingOptions.OptIn,\r\n \"SK\": OptingOptions.OptIn,\r\n \"SI\": OptingOptions.OptIn,\r\n \"SB\": OptingOptions.OptOut,\r\n \"SO\": OptingOptions.OptOut,\r\n \"ZA\": OptingOptions.OptOut,\r\n \"ES\": OptingOptions.OptOut,\r\n \"LK\": OptingOptions.OptOut,\r\n \"SH\": OptingOptions.OptOut,\r\n \"PM\": OptingOptions.OptOut,\r\n \"SD\": OptingOptions.Notice,\r\n \"SR\": OptingOptions.OptOut,\r\n \"SJ\": OptingOptions.OptOut,\r\n \"SZ\": OptingOptions.OptOut,\r\n \"SE\": OptingOptions.OptOut,\r\n \"CH\": OptingOptions.OptOut,\r\n \"SY\": OptingOptions.Notice,\r\n \"TW\": OptingOptions.OptIn,\r\n \"TJ\": OptingOptions.OptOut,\r\n \"TZ\": OptingOptions.Notice,\r\n \"TH\": OptingOptions.OptOut,\r\n \"TG\": OptingOptions.Notice,\r\n \"TK\": OptingOptions.OptOut,\r\n \"TO\": OptingOptions.OptOut,\r\n \"TT\": OptingOptions.Notice,\r\n \"TN\": OptingOptions.OptIn,\r\n \"TR\": OptingOptions.OptIn,\r\n \"TM\": OptingOptions.Notice,\r\n \"TC\": OptingOptions.OptOut,\r\n \"TV\": OptingOptions.OptOut,\r\n \"UM\": OptingOptions.OptOut,\r\n \"SU\": OptingOptions.OptOut,\r\n \"UG\": OptingOptions.Notice,\r\n \"UA\": OptingOptions.OptIn,\r\n \"AE\": OptingOptions.OptIn,\r\n \"UK\": OptingOptions.OptIn,\r\n \"US\": OptingOptions.Notice,\r\n \"UY\": OptingOptions.OptIn,\r\n \"UZ\": OptingOptions.OptOut,\r\n \"VU\": OptingOptions.OptOut,\r\n \"VA\": OptingOptions.OptOut,\r\n \"VE\": OptingOptions.OptIn,\r\n \"VN\": OptingOptions.OptIn,\r\n \"VI\": OptingOptions.OptOut,\r\n \"WF\": OptingOptions.OptOut,\r\n \"EH\": OptingOptions.OptOut,\r\n \"YE\": OptingOptions.Notice,\r\n \"YU\": OptingOptions.OptOut,\r\n \"ZR\": OptingOptions.OptOut,\r\n \"ZM\": OptingOptions.Notice,\r\n \"ZW\": OptingOptions.Notice\r\n}; \n\n\n// WEBPACK FOOTER //\n// ./Client/Utils/PromotionEmailUtils.ts","import { clientAppSettings } from '../Models/ClientAppSettings';\r\n\r\n// TODO: Should not use libraries outside of Intercom.DevPortal\r\nimport { readCookie, setCookie } from '../../../Intercom.ReactUI/Utils/Cookies';\r\n\r\nconst cookieInformed = 'cookie-inform';\r\n\r\nexport class TrackingCookieConsent {\r\n private _pageTrackingLoaded: boolean;\r\n\r\n public informed(): boolean {\r\n return !!readCookie(cookieInformed);\r\n }\r\n\r\n public markAsInformed() {\r\n const nextYear = new Date();\r\n\r\n nextYear.setFullYear(nextYear.getFullYear() + 1);\r\n\r\n setCookie({ name: cookieInformed, value: 'true', path: '/', expires: nextYear, secure: true, sameSite: 'none' });\r\n }\r\n\r\n public loadPageTrackingIfInformed() {\r\n if (!this.informed() || this._pageTrackingLoaded) { return; }\r\n\r\n this._pageTrackingLoaded = true;\r\n\r\n this.trackClientJSBundle();\r\n this.trackPageViewViaAppInsights();\r\n }\r\n\r\n private trackClientJSBundle() {\r\n const clientJSBundleElement = document.getElementById('clientJsBundle');\r\n const appInsights = getAppInsights();\r\n\r\n if (clientJSBundleElement && appInsights) {\r\n appInsights.trackEvent('ClientJsBundle', { src: clientJSBundleElement.getAttribute('src') });\r\n }\r\n }\r\n\r\n private trackPageViewViaAppInsights() {\r\n const appInsights = getAppInsights();\r\n\r\n if (appInsights) {\r\n appInsights.trackPageView();\r\n }\r\n }\r\n}\r\n\r\ninterface AppInsights {\r\n trackEvent: (name: string, data: any) => void;\r\n trackPageView: () => void;\r\n}\r\n\r\nfunction getAppInsights(): AppInsights {\r\n return window['appInsights'] as AppInsights;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Utils/TrackingCookieConsent.ts","import * as React from \"react\";\r\nimport * as Rest from \"../Generated/RestClient\";\r\nimport {clientAppSettings} from \"../Models/ClientAppSettings\"\r\nimport {resourceStrings} from \"../../../Intercom.ReactUI/Views/Strings\";\r\nimport reflectName from \"../../../Intercom.ReactUI/Utils/NameReflector\";\r\nimport {log} from \"../../../Intercom.ReactUI/Utils/clacky\";\r\nimport { BlockRowInputLabel } from './Shared/BlockRowInputLabel';\r\n\r\nexport interface BotMsaEditorProps extends React.Props {\r\n inCreateMode: boolean,\r\n buttonClassName?: string,\r\n errors: { [key: string]: string },\r\n handleChange(field:string, ev: React.FormEvent),\r\n isAppTypeFlighted: boolean;\r\n bot: Rest.BotService,\r\n}\r\n\r\nexport interface BotMsaEditorState {\r\n uniqueId: string\r\n}\r\n\r\nexport class BotMsaEditor extends React.Component {\r\n public appSecret: HTMLInputElement;\r\n constructor(props: BotMsaEditorProps) {\r\n super(props);\r\n this.state = {\r\n uniqueId: 'MsaEditor' + new Date().valueOf()\r\n }\r\n }\r\n\r\n private checkForAppID(requestingId: string) {\r\n const msaAppId = this.props.bot.MsaAppId;\r\n //see if thethe requestingId is still on this page\r\n if (document.getElementById(requestingId) && !msaAppId) {\r\n\r\n //this is a workaround for IE to trigger a refresh of localStorage\r\n localStorage.setItem('temp', '0');\r\n localStorage.removeItem('temp');\r\n\r\n //see if the other tab has set the createId\r\n var createId = localStorage.getItem('createId');\r\n if (createId) {\r\n\r\n localStorage.removeItem('createId');\r\n (window as any).refreshBotMsaApp(createId);\r\n\r\n } else {\r\n setTimeout(() => { this.checkForAppID(requestingId); }, 500);\r\n }\r\n }\r\n }\r\n\r\n\r\n private openMSAPage() {\r\n if (this.props.inCreateMode) {\r\n log('/bots/create#openMSAPage', 'openMSAPage');\r\n }\r\n localStorage.removeItem('createId');\r\n\r\n //don't start polling until 3 seconds - user will need to got through UX on MSA side for creating password, etc.\r\n setTimeout(() => { this.checkForAppID(this.state.uniqueId); }, 3000);\r\n\r\n window.open(this.msaUrl());\r\n }\r\n\r\n private msaLink() {\r\n const msaAppId = this.props.bot.MsaAppId;\r\n const classNames = ['m-button-primary-outline-md', 'button-focus'];\r\n if (!msaAppId) {\r\n classNames.push('get-agent-appId');\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private msaUrl() {\r\n const bot = this.props.bot;\r\n const msaAppId = bot.MsaAppId;\r\n\r\n if (msaAppId) {\r\n return clientAppSettings.msaPortalEndpoint + 'ApplicationMenuBlade/Overview/appId/' + msaAppId + '/isMSAApp/';\r\n } else {\r\n return clientAppSettings.msaPortalEndpoint + 'ApplicationsListBlade';\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n let appIdElement: JSX.Element[];\r\n let x = {} as Rest.BotService;\r\n const errorClass = \" input-in-error\";\r\n const msaAppId = this.props.bot.MsaAppId;\r\n if (this.props.inCreateMode) {\r\n //editable appId textbox\r\n var lowercaseAppId = (msaAppId || '').toLowerCase();\r\n var appIdError = this.props.errors[reflectName(() => (x.MsaAppId = null, x))];\r\n appIdElement = [\r\n this.props.handleChange('MsaAppId', ev) }/>\r\n ];\r\n\r\n if (appIdError) {\r\n appIdElement.push(
    {appIdError}
    );\r\n }\r\n\r\n } else {\r\n //show the appid but do not allow editing\r\n appIdElement = [\r\n ,\r\n
    {msaAppId}
    \r\n ];\r\n }\r\n\r\n let msaDocsLink = !this.props.bot.MsaAppId ? (\r\n

    {resourceStrings.msaLearnMore}

    \r\n ) : null;\r\n\r\n let readonlyClass = !this.props.inCreateMode ? \"readonly-value\" : \"\";\r\n let showMsiResourceId = this.props.isAppTypeFlighted && this.props.bot.MsaAppType == Rest.BotAppType.UserAssignedMSI;\r\n let msiResourceIdSection = showMsiResourceId ? (\r\n
    \r\n \r\n this.props.handleChange('MsaAppMSIResourceId', ev)}/>\r\n
    \r\n ) : null;\r\n let showTenantId = this.props.isAppTypeFlighted && (this.props.bot.MsaAppType == Rest.BotAppType.SingleTenant || this.props.bot.MsaAppType == Rest.BotAppType.UserAssignedMSI);\r\n let tenantIdSection = showTenantId ? (\r\n
    \r\n \r\n this.props.handleChange('MsaAppTenantId', ev)}/>\r\n
    \r\n ) : null;\r\n\r\n return (\r\n
    \r\n {this.props.isAppTypeFlighted ?\r\n
    \r\n \r\n
    \r\n this.props.handleChange(\"MsaAppType\", ev) }\r\n value={this.props.bot.MsaAppType || Rest.BotAppType.MultiTenant}\r\n >\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n : null}\r\n
    \r\n
    \r\n \r\n { this.msaLink() }\r\n { msaDocsLink }\r\n
    \r\n
    \r\n \r\n { appIdElement }\r\n
    \r\n
    \r\n { tenantIdSection }\r\n { msiResourceIdSection }\r\n
    \r\n );\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/BotMsaEditor.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {resourceStrings} from \"../../../Intercom.ReactUI/Views/Strings\";\r\n\r\nexport interface ChannelEnabledPanelProps extends React.Props {\r\n channelName: string;\r\n message: string;\r\n showErrorIcon: boolean;\r\n title: string;\r\n}\r\n\r\nexport interface ChannelEnabledPanelState {\r\n}\r\n\r\nexport class ChannelEnabledPanel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n\r\n public render(): JSX.Element {\r\n\r\n var icon = this.props.showErrorIcon ? {'\\uE7BA'} : null;\r\n\r\n return (\r\n
    \r\n
    \r\n

    {this.props.channelName}

    \r\n

    \r\n {icon}\r\n

    \r\n {this.props.message}\r\n
    \r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/ChannelEnabledPanel.tsx","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {resourceStrings} from \"../../../Intercom.ReactUI/Views/Strings\";\r\nimport {DialogBase} from \"../Dialogs/DialogBase\";\r\nimport * as Rest from \"../Generated/RestClient\";\r\nimport { Resources } from \"../Resources/Intercom.Resources.DevPortal\";\r\nimport { Culture } from '../Resources/Culture';\r\n\r\nexport interface ChannelLogPanelProps extends React.Props {\r\n botId: string;\r\n channelId: string;\r\n title: string;\r\n statusClassName: string;\r\n channelName: string;\r\n channelLog: Rest.BotLog[];\r\n channelLogChangeHandler: () => void;\r\n dialog: DialogBase;\r\n}\r\n\r\nexport interface ChannelLogPanelState {\r\n}\r\n\r\nexport class ChannelLogPanel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n private onClearAllClick() {\r\n Rest.BotManagerClient.deleteBotLogs(this.props.botId, this.props.channelId).done(obj => {\r\n this.props.channelLogChangeHandler();\r\n this.props.dialog.closeDialog();\r\n })\r\n }\r\n\r\n public render(): JSX.Element {\r\n\r\n let entries = this.props.channelLog.map(entry =>\r\n \r\n {new Date(entry.When.toString()).toLocaleString(Culture.CultureCode)}\r\n {entry.Message}\r\n {entry.CorrelationId}\r\n );\r\n\r\n var title = this.props.channelName;\r\n var message = Resources.channelIssuesPanelSubtitle;\r\n\r\n return (\r\n
    \r\n
    \r\n
    {title}
    \r\n
    {message}
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    {Resources.channelIssuesPanelTimeColumnLabel}{Resources.channelIssuesPanelMessageColumnLabel}{Resources.channelIssuesPanelCorrelationIdColumnLabel}
    \r\n \r\n \r\n {entries}\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/ChannelLogPanel.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { EmailSubscriptionInfo } from '../Generated/RestClient';\r\nimport { resourceStrings } from \"../../../Intercom.ReactUI/Views/Strings\";\r\nimport { ProgressRingControl } from \"../../../Intercom.ReactUI/Views/ProgressRingControl\";\r\nimport { EmailSubscriptionConsentFormFields } from './EmailSubscriptionConsentFormFields';\r\nimport { UserAgreementConsentFormFields } from './UserAgreementConsentFormFields';\r\n\r\nexport interface EmailSubscriptionConsentFormProps extends React.Props {\r\n subscriptionInfo: EmailSubscriptionInfo;\r\n askUserAgreement: boolean;\r\n onSave?: (EmailSubscriptionInfo) => any;\r\n onCancel?: (EmailSubscriptionInfo) => any;\r\n}\r\n\r\nexport interface EmailSubscriptionConsentFormState {\r\n saveButtonEnabled?: boolean;\r\n enabled?: boolean;\r\n}\r\n\r\nexport class EmailSubscriptionConsentForm extends React.Component {\r\n constructor(props?: EmailSubscriptionConsentFormProps, context?: any) {\r\n super(props, context);\r\n if (this.props.askUserAgreement) {\r\n this.state = {\r\n saveButtonEnabled: false,\r\n enabled: false\r\n };\r\n } else {\r\n this.state = {\r\n saveButtonEnabled: true,\r\n enabled: false\r\n }\r\n }\r\n }\r\n\r\n private onAgreementChanged = (enabled: boolean) => {\r\n let mutatedState = _.extend({}, this.state) as EmailSubscriptionConsentFormState;\r\n if (mutatedState) {\r\n mutatedState.saveButtonEnabled = enabled;\r\n }\r\n\r\n this.setState(mutatedState);\r\n }\r\n\r\n private onCancelClicked = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (this.props.onCancel) {\r\n this.props.onCancel(_.extend({}, this.props.subscriptionInfo))\r\n }\r\n }\r\n\r\n private onSubmitClicked = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (!this.state.saveButtonEnabled) {\r\n return;\r\n }\r\n\r\n // need Country Code or there is a server error\r\n if (this.props.subscriptionInfo && !this.props.subscriptionInfo.CountryCode) {\r\n $('#country-select').addClass('must-check');\r\n return;\r\n }\r\n\r\n if (this.props.onSave) {\r\n this.props.onSave(_.extend({}, this.props.subscriptionInfo))\r\n }\r\n }\r\n\r\n private renderBusy(): JSX.Element {\r\n return
    \r\n \r\n
    ;\r\n }\r\n\r\n private renderHeaderPrefixes(): JSX.Element[] {\r\n if ( this.props.subscriptionInfo ) {\r\n return [\r\n

    \r\n {resourceStrings.subscriptionConsentDialog.title}\r\n

    ,\r\n\r\n

    \r\n {resourceStrings.subscriptionConsentDialog.description}\r\n

    \r\n ];\r\n }\r\n\r\n return [\r\n

    \r\n {resourceStrings.subscriptionConsentDialog.agreementHeading}\r\n

    ,\r\n

    \r\n {resourceStrings.subscriptionConsentDialog.agreementDescription}\r\n

    \r\n ];\r\n }\r\n\r\n private renderEmailSubscriptionFields(): JSX.Element {\r\n if (this.props.subscriptionInfo) {\r\n return \r\n }\r\n return null;\r\n }\r\n\r\n private renderUserAgreementFields(): JSX.Element {\r\n if (this.props.askUserAgreement) {\r\n return \r\n }\r\n return null;\r\n }\r\n\r\n public render() {\r\n if (this.state.enabled) {\r\n return this.renderBusy();\r\n }\r\n\r\n return
    \r\n {this.renderHeaderPrefixes()}\r\n\r\n {this.renderEmailSubscriptionFields()}\r\n\r\n {this.renderUserAgreementFields()}\r\n\r\n
    \r\n \r\n  \r\n \r\n
    \r\n
    ;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/EmailSubscriptionConsentForm.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { EmailSubscriptionInfo, EmailSubscription } from '../Generated/RestClient';\r\nimport { resourceStrings } from \"../../../Intercom.ReactUI/Views/Strings\";\r\nimport { CountryCodeOptInOut, OptingOptions } from '../Utils/PromotionEmailUtils';\r\n\r\n/**\r\n * List of disabled country codes for consent collection\r\n */\r\nconst DISABLED_COUNTRY_CODES = {'RU': true};\r\n\r\nexport interface EmailSubscriptionConsentFormFieldsProps {\r\n subscriptionInfo: EmailSubscriptionInfo;\r\n onSubscriptionChanged?: (EmailSubscriptionInfo) => any;\r\n}\r\n\r\nexport interface EmailSubscriptionConsentFormFieldsState {\r\n showCountryDropdown?: boolean;\r\n}\r\n\r\nexport class EmailSubscriptionConsentFormFields extends React.Component {\r\n constructor(props?: EmailSubscriptionConsentFormFieldsProps, context?: any) {\r\n super(props, context);\r\n this.state = this.prepareState(props);\r\n }\r\n\r\n private triggerSubscriptionStateChanged = () => {\r\n if (this.props.onSubscriptionChanged) {\r\n this.props.onSubscriptionChanged(this.props.subscriptionInfo);\r\n }\r\n }\r\n\r\n private onCountryChanged = (e: React.FormEvent) => {\r\n let countryCode: string = $(e.target).val();\r\n let subscription = this.props.subscriptionInfo;\r\n subscription.CountryCode = countryCode;\r\n \r\n if (CountryCodeOptInOut[countryCode]) {\r\n let enabled = CountryCodeOptInOut[countryCode] == OptingOptions.OptOut ||\r\n CountryCodeOptInOut[countryCode] == OptingOptions.Notice;\r\n subscription.IsEnabled = enabled;\r\n subscription.SubscriptionType = CountryCodeOptInOut[countryCode];\r\n } else {\r\n subscription.IsEnabled = false;\r\n subscription.SubscriptionType = null;\r\n }\r\n\r\n this.forceUpdate(this.triggerSubscriptionStateChanged);\r\n }\r\n\r\n private onAllowPromotionalEmail = (e: React.FormEvent) => {\r\n let t: any = e.target;\r\n let subscription = this.props.subscriptionInfo;\r\n subscription.IsEnabled = t.checked;\r\n this.forceUpdate(this.triggerSubscriptionStateChanged);\r\n }\r\n\r\n private prepareState(props: EmailSubscriptionConsentFormFieldsProps): EmailSubscriptionConsentFormFieldsState {\r\n let state = {\r\n showCountryDropdown: true,\r\n termsAgreed: false\r\n } as EmailSubscriptionConsentFormFieldsState;\r\n\r\n if (props && props.subscriptionInfo && props.subscriptionInfo.CountryCode) {\r\n state.showCountryDropdown = false;\r\n }\r\n\r\n return state;\r\n }\r\n \r\n private renderCountryOptions(): JSX.Element[] {\r\n return _.chain(MsMarkets.markets)\r\n .pairs()\r\n .filter(tuple => {\r\n let [countryCode] = tuple;\r\n return DISABLED_COUNTRY_CODES[countryCode] !== true\r\n })\r\n .map((p) => {\r\n let label = p[1];\r\n let value = p[0];\r\n return ;\r\n })\r\n .value();\r\n }\r\n\r\n private renderCountryDropdown(selectedCountry: string): JSX.Element {\r\n // - Do not return any list if show country dropdown is disabled \r\n if (!this.state.showCountryDropdown) {\r\n return null;\r\n }\r\n\r\n let defaultOption: JSX.Element = ;\r\n if (selectedCountry) {\r\n defaultOption = null;\r\n }\r\n\r\n return
    \r\n
    \r\n {resourceStrings.subscriptionConsentDialog.selectCountryLabel}\r\n
    \r\n \r\n
    ;\r\n }\r\n\r\n private getPromotionLabelContent(countryCode: string) {\r\n let html = resourceStrings.subscriptionConsentDialog.allowPromotionalEmailLabelHtml;\r\n let countrySpecificMap = resourceStrings.subscriptionConsentDialog.countrySpecificPromotionalEmailLablesHtml;\r\n if (countrySpecificMap[countryCode]) {\r\n html = countrySpecificMap[countryCode]\r\n }\r\n\r\n return {\r\n __html: html\r\n }\r\n }\r\n\r\n public render() {\r\n let subInfo = this.props.subscriptionInfo;\r\n let countryCode = subInfo.CountryCode && subInfo.CountryCode.toUpperCase();\r\n \r\n return
    \r\n {this.renderCountryDropdown(countryCode)}\r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    ;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/EmailSubscriptionConsentFormFields.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as Rest from \"../Generated/RestClient\";\r\n\r\nexport interface LogStreamProps extends React.Props {\r\n logs: string;\r\n}\r\n\r\nexport interface LogStreamState {\r\n}\r\n\r\n\r\nexport class LogStream extends React.Component {\r\n private pre: HTMLPreElement;\r\n\r\n constructor(props: LogStreamProps) {\r\n super(props);\r\n this.state = {\r\n logs: ''\r\n }\r\n }\r\n\r\n public componentDidUpdate(prevProps: LogStreamProps, prevState: LogStreamState) {\r\n //auto scroll log stream to the latest\r\n const $logstream = $(this.pre);\r\n const scrollHeight = $logstream[0].scrollHeight;\r\n\r\n if (_.isNumber(scrollHeight) && scrollHeight > $logstream.height() + $logstream.scrollTop()) {\r\n $('.log-stream').scrollTop($logstream[0].scrollHeight - $logstream.height());\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
     this.pre = x}>\r\n                {this.props.logs}\r\n            
    \r\n );\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/LogStream.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {LogoutPanelStatus, LogoutPanel} from \"./LogoutPanel\";\r\n\r\nexport interface LogoutItem {\r\n key: string;\r\n title: string;\r\n status: LogoutPanelStatus;\r\n}\r\n\r\nexport interface LogoutPageProps extends React.Props {\r\n}\r\n\r\nexport interface LogoutPageState {\r\n items: LogoutItem[];\r\n}\r\n\r\nexport class LogoutPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n items: []\r\n };\r\n }\r\n\r\n public render(): JSX.Element {\r\n var haveFailures = false;\r\n var panels: JSX.Element[] = [];\r\n for (let item of this.state.items) {\r\n if (item.status === LogoutPanelStatus.Failure) {\r\n haveFailures = true;\r\n }\r\n panels.push(\r\n \r\n );\r\n }\r\n return (\r\n
    \r\n

    Sign-out in progress...

    \r\n

    Please wait while we sign you out of the following applications:

    \r\n {panels}\r\n {haveFailures ?

    Could not sign you out of one or more applications.

    : null}\r\n
    \r\n );\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/LogoutPage.tsx","/// \r\nimport * as React from \"react\";\r\n\r\nimport * as Rest from \"../Generated/RestClient\";\r\nimport {NavLinks} from \"../../../Intercom.ReactUI/Views/JumboHeadControl\";\r\nimport {SearchControl} from \"../../../Intercom.ReactUI/Views/SearchControl\";\r\nimport {JumboHeadControl} from \"../../../Intercom.ReactUI/Views/JumboHeadControl\";\r\nimport {DropdownMenu, DropdownMenuItem} from \"./DropdownMenu\";\r\nimport {HeaderControl} from \"../../../Intercom.ReactUI/Views/HeaderControl\";\r\nimport {FooterControl} from \"../../../Intercom.ReactUI/Views/FooterControl\";\r\nimport {ProgressBarControl} from \"../../../Intercom.ReactUI/Views/ProgressBarControl\";\r\nimport {resourceStrings} from \"../../../Intercom.ReactUI/Views/Strings\";\r\nimport {clientAppSettings} from \"../Models/ClientAppSettings\";\r\nimport {relativeUrl} from \"../Utils/Links\";\r\nimport isInFrame from \"../../../Intercom.ReactUI/Utils/InFrame\";\r\nimport { EmailSubscriptionConsentConductor } from '../Controllers/EmailSubscriptionConsent';\r\nimport {isBrowserSupported} from \"../Controllers/ControllerBase\";\r\n\r\nexport interface SearchablePageProps {\r\n onSearch: (s: string) => void;\r\n}\r\n\r\nexport interface MasterPageProps extends SearchablePageProps {\r\n signInRequired: boolean;\r\n isAdmin: () => boolean;\r\n isReviewer: () => boolean;\r\n onSignOutClicked: () => void;\r\n refreshSignedInUser: () => void;\r\n isRoutableUrl: (url: string) => boolean;\r\n}\r\n\r\nexport interface MasterPageState {\r\n signInState: string;\r\n signedInUser: Rest.AuthData;\r\n signInInProgress: boolean;\r\n signInError: string;\r\n activeLink: NavLinks\r\n searchString?: string;\r\n expandSearch?: boolean;\r\n unsupportedBrowser?: boolean;\r\n}\r\n\r\nexport class MasterPage extends React.Component {\r\n private singleSignOnChecker: HTMLIFrameElement;\r\n private emailSubscriptionConsent: EmailSubscriptionConsentConductor;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n signInState: null,\r\n signedInUser: null,\r\n signInInProgress: false,\r\n signInError: null,\r\n activeLink: NavLinks.root\r\n };\r\n\r\n this.emailSubscriptionConsent = new EmailSubscriptionConsentConductor();\r\n }\r\n\r\n render() : JSX.Element {\r\n if (this.state.unsupportedBrowser) {\r\n return this.renderUnsupportedBrowser();\r\n } else if (this.state.signInState) {\r\n return this.renderWaitListScreen();\r\n } else if (this.props.signInRequired && !this.state.signedInUser) {\r\n return this.renderSignInScreen();\r\n } else {\r\n return this.renderRegularScreen();\r\n }\r\n }\r\n\r\n public componentWillUpdate(nextProps: MasterPageProps, state: MasterPageState) {\r\n var jumbo = this.refs['jumbo'] as JumboHeadControl;\r\n if (jumbo) {\r\n jumbo.setState({ activeLink: state.activeLink });\r\n }\r\n\r\n var search = this.refs['searchBox'] as SearchControl;\r\n if (search) {\r\n search.setState({ searchString: state.searchString });\r\n }\r\n }\r\n\r\n public componentDidUpdate(prevProps: MasterPageProps, prevState: MasterPageState) {\r\n if (this.state.signedInUser) {\r\n this.emailSubscriptionConsent.showIfRequired();\r\n }\r\n }\r\n\r\n private toggleSearch() {\r\n var opened = _.isUndefined(this.state.expandSearch) ? true : !this.state.expandSearch;\r\n this.setState(_.extend(this.state, { expandSearch: opened }));\r\n }\r\n\r\n private userFlightedDocuemntationLink(): string {\r\n var features = clientAppSettings.flightedFeatures;\r\n if (_.indexOf(features, \"v3\") >= 0) {\r\n return '//aka.ms/bf-docs-nav';\r\n } else {\r\n return clientAppSettings.documentationUrl;\r\n }\r\n }\r\n\r\n private getSignInUrl(): string {\r\n const paramValue = encodeURIComponent(relativeUrl(window.location));\r\n return `/identity/signin?requestUrl=${paramValue}`;\r\n }\r\n\r\n private checkAzureSingleSignOn() {\r\n let host = null;\r\n try {\r\n host = this.singleSignOnChecker.contentWindow.location.hostname;\r\n } catch (error) {\r\n host = null;\r\n }\r\n if (host) {\r\n const curHost = window.location.hostname;\r\n if (host === curHost) {\r\n // user already logged in azure, fetched user and re-render\r\n this.props.refreshSignedInUser();\r\n }\r\n }\r\n }\r\n\r\n private renderHiddenFrameToCheckAzureSingleSignOn(): JSX.Element {\r\n return null;\r\n }\r\n\r\n renderHeader(showLinks: boolean = true): JSX.Element {\r\n if (isInFrame()) {\r\n return null;\r\n }\r\n let navLinks: string[] = [];\r\n let userInfo = null as JSX.Element;\r\n let searchControl = null as JSX.Element;\r\n\r\n if (showLinks) {\r\n navLinks = [\r\n '/bots',\r\n '/bots/new',\r\n this.userFlightedDocuemntationLink(),\r\n clientAppSettings.homeUrl,\r\n 'http://blog.botframework.com'\r\n ];\r\n\r\n if (this.state.signedInUser) {\r\n userInfo = (\r\n \r\n
    {this.state.signedInUser.FirstName || this.state.signedInUser.EmailAddress }
    \r\n
    \r\n );\r\n }\r\n else {\r\n userInfo = (\r\n );\r\n }\r\n\r\n searchControl = this.props.isAdmin() || this.props.isReviewer() ? (\r\n \r\n ) : null;\r\n }\r\n\r\n let userMenu = null;\r\n if (this.state.signedInUser) {\r\n userMenu = (\r\n \r\n \r\n
    \r\n
    {this.state.signedInUser.FirstName} {this.state.signedInUser.LastName}
    \r\n
    {this.state.signedInUser.EmailAddress}
    \r\n
    \r\n
    \r\n this.props.onSignOutClicked() }>\r\n Sign out\r\n \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n {userMenu}\r\n \r\n
    \r\n {userInfo}\r\n
    \r\n \r\n \r\n {searchControl}\r\n \r\n
    \r\n );\r\n }\r\n\r\n renderRegularScreen(): JSX.Element {\r\n let footer = isInFrame() ? null : (\r\n \r\n
  • Terms of use
  • \r\n
  • Code of conduct
  • \r\n
    \r\n );\r\n return (\r\n
    \r\n {this.renderHeader() }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {footer}\r\n
    \r\n );\r\n }\r\n\r\n renderUnsupportedBrowser(): JSX.Element {\r\n return (\r\n
    \r\n { this.renderHeader() }\r\n
    \r\n
    {isInFrame() ?\r\n \"The Azure Bot Service doesn't support your browser yet.\" :\r\n \"Bot Framework doesn't support your browser yet.\"}\r\n
    \r\n
    \r\n
    );\r\n }\r\n\r\n renderWaitListScreen(): JSX.Element {\r\n return null;\r\n }\r\n\r\n renderSignInScreen(): JSX.Element {\r\n var bottomPanel: JSX.Element;\r\n var errorMessagePanel: JSX.Element;\r\n if (isInFrame()) {\r\n return null;\r\n }\r\n if (this.state.signInInProgress) {\r\n bottomPanel = (\r\n
    \r\n
    Signing in...
    \r\n
    \r\n
    \r\n );\r\n }\r\n else {\r\n bottomPanel = (\r\n
    \r\n \r\n {this.renderHiddenFrameToCheckAzureSingleSignOn()}\r\n
    \r\n );\r\n }\r\n\r\n if (this.state.signInError) {\r\n errorMessagePanel =
    {this.state.signInError}
    ;\r\n }\r\n\r\n return (\r\n
    \r\n { this.renderHeader(false) }\r\n
    \r\n
    Sign in
    \r\n
    \r\n
    Welcome to {resourceStrings.botFramework} developer portal.
    \r\n
    To continue sign in with your work or school, or personal Microsoft account.
    \r\n
    \r\n {bottomPanel}\r\n {errorMessagePanel}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/MasterPage.tsx","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {combineClassNames} from \"../Utils/ReactUtils\";\r\n\r\nexport interface MessageBoxPanelProps {\r\n className?: string;\r\n header?: string;\r\n message: string;\r\n hideCancelButton: boolean;\r\n cancelButtonLabel: string;\r\n okButtonLabel: string;\r\n okButtonClass?: string;\r\n}\r\n\r\nexport interface MessageBoxPanelState {\r\n}\r\n\r\nexport class MessageBoxPanel extends React.Component {\r\n private _okBtn: React.ReactInstance;\r\n private _cancelBtn: React.ReactInstance;\r\n private _currentFocusedElement: React.ReactInstance;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.focusToggle = this.focusToggle.bind(this);\r\n }\r\n\r\n private focusToggle(): void {\r\n\r\n if(this._currentFocusedElement == null){\r\n this._currentFocusedElement = this._okBtn;\r\n }\r\n\r\n if(!this.props.hideCancelButton && this._currentFocusedElement == this._okBtn) {\r\n this._currentFocusedElement = this._cancelBtn;\r\n } else {\r\n this._currentFocusedElement = this._okBtn;\r\n }\r\n\r\n const _focusElt = ReactDOM.findDOMNode(this._currentFocusedElement) as HTMLElement;\r\n _focusElt && _focusElt.focus();\r\n }\r\n\r\n render() {\r\n var okClass = this.props.okButtonClass || \"default-button\";\r\n var cancelButton = this.props.hideCancelButton ?\r\n null : \r\n return (\r\n
    \r\n \r\n {this.props.header?

    {this.props.header}

    : null}\r\n
    {this.props.message}
    \r\n
    \r\n {cancelButton}\r\n \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/MessageBox.tsx","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {ProgressRingControl} from \"../../../Intercom.ReactUI/Views/ProgressRingControl\";\r\n\r\nexport interface ProgressPanelProps {\r\n message: string;\r\n}\r\n\r\nexport interface ProgressPanelState {\r\n}\r\n\r\nexport class ProgressPanel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
    \r\n \r\n
    {this.props.message}
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/ProgressPanel.tsx","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\n\r\nexport interface SecretControlProps extends React.Props {\r\n keyType: string;\r\n secret: string;\r\n}\r\n\r\nexport interface SecretControlState {\r\n shown?: boolean;\r\n}\r\n\r\nexport class SecretControl extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n shown: false\r\n };\r\n }\r\n\r\n private onToggleClick(event: React.MouseEvent): void {\r\n this.setState({ shown: !this.state.shown });\r\n }\r\n\r\n public render(): JSX.Element {\r\n\r\n var regenStyle = {\r\n display: this.state.shown ? 'inline' : 'none'\r\n };\r\n\r\n var showStyle = {\r\n display: this.state.shown ? 'none' : 'inline'\r\n };\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/SecretControl.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { BlockRowInputTooltipDisposer, BlockRowInputLabel } from './BlockRowInputLabel';\r\nexport interface BlockRowInputFieldProps extends React.Props {\r\n id: string;\r\n containerClassName: string;\r\n errorContainerClassName: string;\r\n label?: string;\r\n required?: boolean,\r\n placeholder?: string;\r\n tip?: string;\r\n tipAsHtml?: boolean;\r\n maxlen?: number;\r\n readonly?: boolean;\r\n error?: string;\r\n value?: string;\r\n eventMetaData?: any;\r\n skipInputs?: boolean;\r\n password?: boolean;\r\n\r\n onValueChanged?: (ev: React.FormEvent, metaData: any) => void;\r\n onTooltipVisibilityChanged?: (visible: boolean, closeTip: BlockRowInputTooltipDisposer) => void;\r\n}\r\n\r\ninterface BlockRowInputFieldState {\r\n}\r\n\r\nexport class BlockRowInputField extends React.Component {\r\n public static ElementId(elementId: string): string {\r\n return `input-${elementId}`;\r\n }\r\n\r\n private renderReadonlyTextInput(): JSX.Element {\r\n return (\r\n
    \r\n \r\n
    {this.props.value || '(empty)'}  
    \r\n
    \r\n );\r\n }\r\n\r\n private renderTextInput(): JSX.Element {\r\n if (this.props.skipInputs) {\r\n return null;\r\n }\r\n if (this.props.readonly) {\r\n return this.renderReadonlyTextInput();\r\n }\r\n\r\n return (\r\n this.props.onValueChanged(ev, this.props.eventMetaData) }\r\n className={this.props.error ? this.props.errorContainerClassName : ''}\r\n placeholder={this.props.placeholder}\r\n value={this.props.value}\r\n type={this.props.password ? \"password\" : \"text\"}/>\r\n );\r\n }\r\n\r\n private renderError(): JSX.Element {\r\n if (!this.props.error) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n {this.props.error}\r\n
    \r\n );\r\n }\r\n\r\n public render() {\r\n return (\r\n
    \r\n \r\n {this.renderTextInput() }\r\n {this.renderError() }\r\n {this.props.children}\r\n
    \r\n );\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/Shared/BlockRowInputField.tsx","import {theme} from \"react-treebeard\";\r\n\r\nconst codeTreeTyle = $.extend(true, theme, {\r\n base: {\r\n backgroundColor: '#F2F2F2',\r\n color: '#222'\r\n },\r\n tree: {\r\n base: {\r\n backgroundColor: '#F2F2F2',\r\n color: '#222'\r\n },\r\n node: {\r\n toggle: {\r\n\r\n },\r\n activeLink: {\r\n background: '#D6D6D6'\r\n }\r\n }\r\n }\r\n});\r\n\r\nexport default codeTreeTyle;\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/Views/TreeStyle.ts","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as $ from \"jquery\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport {BotCodeEditor, BotCodeEditorProps, BotCodeEditorState, mapFilesToTreeNodes, ExpiredSubscrition} from \"../Views/index\";\r\nimport {ControllerBase} from \"./ControllerBase\";\r\nimport { DevPortalAppBase } from \"../../DevPortalAppBase\";\r\nimport {TreeNode} from \"react-treebeard\";\r\nimport {KuduClient} from \"../../Services/KuduApi\";\r\nimport {ArmClient} from \"../../Services/ArmApi\";\r\nimport {Poller} from \"../../Models/PollingModel\";\r\nimport {parseUrl} from \"../../../../Intercom.ReactUI/Utils/Url\";\r\nimport {resolve} from \"../../../../Intercom.ReactUI/Utils/Path\";\r\nimport logger from \"../../../../Intercom.ReactUI/Utils/logger\";\r\nimport {BladeType} from \"../Services/azurePortalLinks\";\r\n\r\nconst relativePathRegex = /^https:\\/\\/[^\\/]+\\/api\\/vfs\\/site\\/wwwroot\\/(.*)$/g;\r\n\r\nexport class BotCodeEditorController extends ControllerBase {\r\n public subscriptionId: string;\r\n private state: BotCodeEditorState;\r\n private botId: string;\r\n private component: BotCodeEditor;\r\n private KuduClient: KuduClient;\r\n private poller: Poller;\r\n private functionName: string;\r\n private botCodeFetched: string;\r\n private _armClient: ArmClient;\r\n\r\n\r\n constructor(app: DevPortalAppBase, container: ControllerBase) {\r\n super(app);\r\n this.containerController = container;\r\n }\r\n\r\n public setComponent(editor: BotCodeEditor) {\r\n this.component = editor;\r\n if (this.component && this.botId && this.botId != this.botCodeFetched) {\r\n this.fetchCode();\r\n } else if (this.component && this.state) {\r\n this.component.setState(this.state);\r\n }\r\n }\r\n\r\n public render(params: SimpleMvc.QueryParams): void {\r\n super.render(params);\r\n\r\n this.botId = params[\"id\"];\r\n\r\n this.renderPage();\r\n }\r\n\r\n public unload() {\r\n super.unload();\r\n if (this.poller) {\r\n this.poller.stop();\r\n this.poller = null;\r\n }\r\n } \r\n\r\n private relativeCodePath(url: string) : string {\r\n var matches = relativePathRegex.exec(url);\r\n if (matches) {\r\n var result = matches[1];\r\n relativePathRegex.lastIndex = 0;\r\n return result;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n private get armClient(): ArmClient {\r\n if (!this._armClient) {\r\n this._armClient = new ArmClient(this.azureAccessToken);\r\n }\r\n return this._armClient;\r\n }\r\n\r\n private checkSubscription(): JQueryPromise {\r\n let deferred = $.Deferred();\r\n this.armClient.getSubscription(this.subscriptionId).then(sub => {\r\n deferred.resolve(sub && sub.state == \"Enabled\");\r\n }).fail(xhr => {\r\n if (xhr && xhr.status == 404) {\r\n deferred.resolve(false);\r\n } else {\r\n deferred.reject(xhr);\r\n }\r\n })\r\n return deferred;\r\n }\r\n\r\n private toggleTreeNode(node: TreeNode, toggle: boolean): JQueryPromise {\r\n let deferred = $.Deferred();\r\n\r\n // null check\r\n if (!node) {\r\n deferred.reject();\r\n return deferred;\r\n }\r\n\r\n node.toggled = toggle;\r\n const isFolder = node.id.slice(-1) === '/';\r\n\r\n if (this.state.activeNode) {\r\n const prevCursorPos = this.component.getCursorPosition();\r\n this.state.activeNode['cursorPos'] = prevCursorPos;\r\n }\r\n\r\n if (isFolder) {\r\n if (node.toggled) {\r\n node.loading = true;\r\n this.KuduClient.get(node.id === '/' ? `${this.KuduClient.scmUri.format()}/api/vfs/site/wwwroot/` : node.id)\r\n .done((files : Rest.VfsNodeInfo[]) => {\r\n node.loading = false;\r\n node.children = mapFilesToTreeNodes(files);\r\n this.component.setState(this.state);\r\n deferred.resolve(node);\r\n });\r\n } else {\r\n node.children = [];\r\n deferred.resolve(node);\r\n }\r\n } else {\r\n let okToSwitch = $.Deferred();\r\n\r\n if (this.state.activeFile && this.state.activeCodeDirty) {\r\n let curNode = this.state.activeFile;\r\n this.updateFile(curNode.id, this.state.activeCode).then(() => {\r\n this.state.activeCodeDirty = false;\r\n if (curNode && curNode.newFile) {\r\n // we just saved file, this file no longer new\r\n curNode.newFile = undefined;\r\n }\r\n\r\n okToSwitch.resolve(true);\r\n }).fail(() => {\r\n okToSwitch.resolve(false);\r\n });\r\n } else {\r\n okToSwitch.resolve(true);\r\n }\r\n\r\n okToSwitch.then((f: boolean) => {\r\n if (f) {\r\n this.state.activeFile = node;\r\n if (!node.newFile) {\r\n node.loading = true;\r\n this.KuduClient.get(node.id)\r\n .done((txt: string) => {\r\n node.loading = false;\r\n this.state.activeCode = txt;\r\n this.component.setState(this.state, () => {\r\n this.component.resetUndoStack();\r\n });\r\n });\r\n } else {\r\n this.state.activeCode = \"\";\r\n this.component.setState(this.state);\r\n }\r\n deferred.resolve(node);\r\n } else {\r\n deferred.reject();\r\n }\r\n });\r\n }\r\n\r\n if (this.state.activeNode) {\r\n this.state.activeNode.active = false;\r\n }\r\n node.active = true;\r\n this.state.activeNode = node;\r\n this.component.setState(this.state);\r\n\r\n return deferred;\r\n }\r\n\r\n private updateFile(url: string, content: string): JQueryPromise {\r\n let deferred = $.Deferred();\r\n this.KuduClient.put(url, content)\r\n .then(() => {\r\n deferred.resolve(true);\r\n })\r\n .fail(xhr => {\r\n deferred.reject(false);\r\n this.handleHttpResponseError(xhr);\r\n });\r\n return deferred;\r\n }\r\n\r\n private saveFile(url: string, content: string) {\r\n this.updateFile(url, content).done(() => {\r\n this.state.activeCode = content;\r\n this.state.activeCodeDirty = false;\r\n const node = this.findNodeById(url);\r\n if (node && node.newFile) {\r\n // we just saved file, this file no longer new\r\n node.newFile = undefined;\r\n }\r\n this.component.setState(this.state);\r\n }).fail(xhr => this.handleHttpResponseError(xhr));\r\n }\r\n\r\n private appendLogStream(t: string) {\r\n // append the log stream\r\n if (t) {\r\n const oldLength = this.state.logStream.length;\r\n const newLength = oldLength + t.length;\r\n const MaxLength = 500000;\r\n let startIndex = 0;\r\n if (newLength > MaxLength) {\r\n startIndex = newLength - MaxLength;\r\n }\r\n this.state.logStream = this.state.logStream.substr(startIndex) + t;\r\n if (this.component) {\r\n this.component.setState(this.state);\r\n }\r\n }\r\n }\r\n\r\n private onLogStreamStopped() {\r\n logger.debug('log stream stopped, reconnect');\r\n this.poller = this.KuduClient.logStream(this.functionName, _.bind(this.appendLogStream, this));\r\n this.poller.start();\r\n this.poller.onStop(() => this.onLogStreamStopped());\r\n }\r\n\r\n private fetchCode() {\r\n if (!this.botId) {\r\n return;\r\n }\r\n\r\n var newState: BotCodeEditorState = {\r\n root: {\r\n id: \"/\",\r\n name: this.botId,\r\n toggled: true,\r\n loading: false\r\n },\r\n activeNode: null,\r\n activeFile: null,\r\n activeCode: \"\",\r\n activeCodeDirty: false,\r\n logStream: \"\",\r\n };\r\n\r\n var checkAllInfo = () => {\r\n if (newState.root.children) {\r\n this.state = newState;\r\n if (this.component) {\r\n this.component.setState(this.state);\r\n }\r\n }\r\n }\r\n\r\n this.botCodeFetched = this.botId;\r\n\r\n let fetchRoot = Rest.CodeClient.getScmAuthz(this.botId)\r\n .then(authz => {\r\n this.KuduClient = KuduClient.createFromScmAuthorization(authz);\r\n return this.KuduClient.get(`${this.KuduClient.scmUri.format()}/api/vfs/site/wwwroot/`)\r\n })\r\n .then((items: Rest.VfsNodeInfo[]) => {\r\n if (this.component) {\r\n this.component.setState({lastFetchTime: new Date()} as any);\r\n }\r\n // find the function name\r\n let deferred = $.Deferred();\r\n let functionName = _.find(items, (item: Rest.VfsNodeInfo) => item.mime === 'inode/directory').name;\r\n if (this.component && this.component.props && this.component.props.botEndpoint) {\r\n let uri = parseUrl(this.component.props.botEndpoint);\r\n functionName = _.last(uri.path.split('/'));\r\n }\r\n this.functionName = functionName;\r\n this.poller = this.KuduClient.logStream(functionName, _.bind(this.appendLogStream, this));\r\n this.poller.onStop(()=> this.onLogStreamStopped());\r\n this.poller.start();\r\n\r\n newState.root.children = mapFilesToTreeNodes(items);\r\n\r\n checkAllInfo();\r\n // navigate to the function folder\r\n let functionRoot = _.find(newState.root.children, node => node.name == functionName && node.children);\r\n if (functionRoot) {\r\n deferred.resolve(functionRoot);\r\n } else {\r\n // otherwise just resolve to the root\r\n deferred.resolve(newState.root);\r\n }\r\n return deferred;\r\n });\r\n\r\n $.when(fetchRoot)\r\n .then((node: TreeNode) => {\r\n // expand the function folder tree node\r\n let deferred = this.toggleTreeNode(node, true);\r\n checkAllInfo();\r\n return deferred;\r\n })\r\n .then((node: TreeNode) => {\r\n // now navigate to either run.csx or index.js\r\n let file = _.find(node.children, child => child.name == 'run.csx' || child.name == 'index.js');\r\n // fallback to first file\r\n file = file || _.find(node.children, child => !child.children);\r\n checkAllInfo();\r\n return this.toggleTreeNode(file, true);\r\n })\r\n .fail(xhr => {\r\n this.botCodeFetched = null;\r\n this.checkSubscription().then(valid => {\r\n if (valid) {\r\n this.handleHttpResponseError(xhr);\r\n } else {\r\n this.statusBar = React.createElement(ExpiredSubscrition, {});\r\n }\r\n }).fail(() => {\r\n this.handleHttpResponseError(xhr);\r\n })\r\n });\r\n }\r\n\r\n private findNodeById(id: string) {\r\n let level = this.state.root.children;\r\n for (; ;) {\r\n let match = _.find(level, node => id.indexOf(node.id) === 0);\r\n if (!match || match.id === id) {\r\n return match;\r\n }\r\n level = match.children;\r\n if (!level) {\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n private findParent(root: TreeNode, cur: TreeNode): TreeNode {\r\n // compute the parent Id\r\n let curUrl = parseUrl(cur.id);\r\n curUrl.path = resolve(curUrl.path, '..');\r\n let parentId = `${curUrl.format()}/`;\r\n return this.findNodeById(parentId);\r\n }\r\n\r\n private addNewFile() {\r\n // first find the current folder\r\n let cur = this.state.activeNode;\r\n if (cur) {\r\n if (!cur.children) {\r\n // cur node is a file\r\n // find its parent\r\n cur = this.findParent(this.state.root, cur);\r\n }\r\n }\r\n\r\n if (cur) {\r\n // make sure the folder is open\r\n let newFile: TreeNode = {\r\n name: '_new',\r\n id: `${cur.id}_new`,\r\n newFile: true,\r\n }\r\n cur.toggled = true;\r\n cur.children.splice(0, 0, newFile);\r\n this.state.newFileNodeId = newFile.id;\r\n let setNewFilew = () => {\r\n this.state.activeFile = newFile;\r\n this.state.activeCode = '';\r\n this.component.setState(this.state);\r\n };\r\n\r\n if (this.state.activeFile && this.state.activeCodeDirty) {\r\n this.updateFile(this.state.activeFile.id, this.state.activeCode)\r\n .then((ok) => {\r\n if (ok) {\r\n setNewFilew();\r\n }\r\n });\r\n }\r\n else {\r\n setNewFilew();\r\n }\r\n }\r\n }\r\n\r\n private onRenameFile(newName: string) {\r\n // TODO: validate file name\r\n logger.debug('newName', newName);\r\n if (newName.indexOf('/') >= 0 || newName.indexOf('..') >= 0) {\r\n return;\r\n }\r\n let treeNode = this.findNodeById(this.state.newFileNodeId);\r\n if (treeNode) {\r\n const parentId = treeNode.id.substr(0, this.state.newFileNodeId.lastIndexOf('/') + 1);\r\n treeNode.name = newName.trim();\r\n if (treeNode.name.length) {\r\n treeNode.id = parentId + treeNode.name;\r\n this.state.newFileNodeId = undefined;\r\n } else {\r\n treeNode.id = parentId + '_new';\r\n }\r\n }\r\n this.component.setState(this.state);\r\n }\r\n\r\n private onChangeCode(txt: string, dirty: boolean) {\r\n this.state.activeCode = txt;\r\n this.state.activeCodeDirty = dirty;\r\n this.component.setState(this.state);\r\n }\r\n\r\n private clearLogStream() {\r\n this.state.logStream = '';\r\n this.component.setState(this.state);\r\n }\r\n\r\n public getBotCodeEditorProps(props: Partial): BotCodeEditorProps {\r\n return _.extend({\r\n botId: this.botId,\r\n onToggle: _.bind(this.toggleTreeNode, this),\r\n onSave: _.bind(this.saveFile, this),\r\n onSetBotId: _.bind(this.setBotId, this),\r\n onAddFile: _.bind(this.addNewFile, this),\r\n onRenameFile: _.bind(this.onRenameFile, this),\r\n onChangeCode: _.bind(this.onChangeCode, this),\r\n clearLogStream: _.bind(this.clearLogStream, this)\r\n }, props || {});\r\n }\r\n\r\n private renderPage(container?: Element, props?: BotCodeEditorProps) {\r\n container = container || this.pageContent;\r\n let element = React.createElement(BotCodeEditor,\r\n this.getBotCodeEditorProps(props));\r\n this.component = ReactDOM.render(element, container) as BotCodeEditor;\r\n if (this.botId) {\r\n this.fetchCode();\r\n }\r\n }\r\n\r\n public setBotId(botId: string, subscriptionId: string) {\r\n this.botId = botId;\r\n if (subscriptionId) {\r\n this.subscriptionId = subscriptionId;\r\n }\r\n if (this.component && this.botId != this.botCodeFetched) {\r\n this.fetchCode();\r\n }\r\n }\r\n\r\n\r\n public get codeEditor() : BotCodeEditor {\r\n return this.component;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Controllers/BotCodeEditorController.ts","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport {ControllerBase} from \"./ControllerBase\";\r\nimport {BotCodeSetup, BotCodeSetupProps, BotCodeSetupState} from \"../Views/index\";\r\nimport {DevPortalAppBase} from \"../../DevPortalAppBase\";\r\n\r\nexport class BotCodeSetupController extends ControllerBase {\r\n private state: BotCodeSetupState;\r\n component: BotCodeSetup;\r\n\r\n constructor(app: DevPortalAppBase, containerController?: ControllerBase) {\r\n super(app);\r\n this.containerController = containerController;\r\n }\r\n\r\n public load(params: SimpleMvc.QueryParams): void {\r\n super.load(params);\r\n }\r\n\r\n private renderPage() {\r\n let element = React.createElement(BotCodeSetup, {\r\n scmType: null,\r\n ciProps: null,\r\n setCodeSetup: null,\r\n setLoading: null,\r\n onScmTypeChange: null\r\n });\r\n this.component = ReactDOM.render(element, this.pageContent);\r\n }\r\n\r\n protected render(params: SimpleMvc.QueryParams) {\r\n super.render(params);\r\n this.renderPage();\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Controllers/BotCodeSetupController.ts","/// \r\n\r\nexport { signOut } from \"./Controllers/SignOut\";\r\nimport {DevPortalAppBase} from '../DevPortalAppBase';\r\nimport { AccountSettingsController } from \"./Controllers/AccountSettingsController\";\r\nimport {BotsController} from \"./Controllers/BotsController\";\r\nimport {BotEditController} from \"./Controllers/BotEditController\";\r\nimport {RedirectController} from \"../Controllers/RedirectController\";\r\nimport {BotController} from \"./Controllers/BotController\";\r\nimport {ControllerBase} from \"./Controllers/ControllerBase\";\r\nimport {FlightController} from \"../Controllers/FlightController\";\r\nimport {BotCreateSwitchController} from \"./Controllers/BotCreateSwitchController\";\r\nimport {AzurePortalPageController} from \"./Controllers/AzurePortalPageController\";\r\nimport { WebChatController } from \"./Controllers/WebChatController\";\r\nimport {BotOpenComposerController} from \"./Controllers/BotOpenComposerController\";\r\nimport { HeaderKind } from \"./Utility/HeaderKind\";\r\nimport { SupportedFeatureUtility } from \"./Utility/SupportedFeatureUtility\";\r\nimport Rest = require(\"../Generated/RestClient\");\r\nimport { Environment } from \"../../../Intercom.ReactUI/Utils/Environment\";\r\n\r\nclass BotCreateNewController extends BotEditController {\r\n constructor(app: DevPortalApp) {\r\n super(app);\r\n this.headerKind = HeaderKind.Jumbo;\r\n }\r\n}\r\n\r\nexport class DevPortalApp extends DevPortalAppBase {\r\n public checkAnnouncementsInterval: number;\r\n\r\n constructor() {\r\n super();\r\n\r\n const router = this.getRouter();\r\n router.addRoute(\"/bots/provision\", BotCreateSwitchController);\r\n if (SupportedFeatureUtility.isSupported(Rest.DevPortalFeatureFlags.SupportNonAbsCreate)) {\r\n router.addRoute(\"/bots/new\", BotCreateNewController);\r\n router.addRoute(\"/bots/newbot\", BotCreateNewController);\r\n }\r\n router.addRoute(\"/redirect\", RedirectController);\r\n router.addRoute(\"/flight\", FlightController);\r\n router.addRoute(\"/bots/code\", BotController);\r\n router.addRoute(\"/bots/codesetup\", BotController);\r\n router.addRoute(\"/bots/openComposer\", BotOpenComposerController);\r\n router.addRoute(\"/code\", AzurePortalPageController);\r\n router.addRoute(\"/codev2\", AzurePortalPageController);\r\n\r\n // BotPage.BotTabs\r\n router.addRoute(\"/bots/build\", BotController);\r\n router.addRoute(\"/bots/channels\", BotController);\r\n router.addRoute(\"/bots/analytics\", BotController);\r\n router.addRoute(\"/bots/settings\", BotController);\r\n\r\n // The User account settings controller\r\n if (SupportedFeatureUtility.isSupported(Rest.DevPortalFeatureFlags.SupportNonAzureUsers)) {\r\n router.addRoute(\"/account\", AccountSettingsController);\r\n }\r\n\r\n // WebChat without headers/etc. Used in Azure blade.\r\n router.addRoute(\"/bots/webchat\", BotController);\r\n\r\n // WebChat used in Ibiza Azure blade - delete the one above once the blade is updated.\r\n router.addRoute(\"/az/webchat\", WebChatController);\r\n\r\n router.setCustomResolver((path, params) => {\r\n const lowerPath = path ? path.toLowerCase().trim() : null;\r\n if (lowerPath === '/bots') {\r\n if (params['id']) {\r\n return { controllerClass: BotController };\r\n } else {\r\n return { controllerClass: BotsController };\r\n }\r\n }\r\n return null;\r\n });\r\n\r\n router.setPageNotFoundController(PageNotFoundController);\r\n\r\n this.announcements = {\r\n isFeatureFlighted: this.isFeatureFlighted('Announcements'),\r\n all: [],\r\n shownIdCount: {},\r\n addShown: () => {\r\n this.announcements.all.forEach(a => this.announcements.shownIdCount[a.Id]++);\r\n this.updateAnnouncements();\r\n }\r\n };\r\n\r\n this.load();\r\n\r\n if (this.announcements.isFeatureFlighted && !Environment.isInBotFrameworkAzureExtension) {\r\n this.fetchAnnouncements();\r\n this.checkAnnouncementsInterval = setInterval(() => this.fetchAnnouncements(), 120000);\r\n }\r\n }\r\n\r\n private fetchAnnouncements() {\r\n Rest.AnnouncementsClient.announcements().done(all => {\r\n this.announcements.all = all;\r\n all.forEach(a => this.announcements.shownIdCount[a.Id] = this.announcements.shownIdCount[a.Id] || 0);\r\n this.updateAnnouncements();\r\n });\r\n }\r\n\r\n public updateAnnouncements() {\r\n const router = this.getRouter();\r\n const currentController = router.getCurrentController() as ControllerBase;\r\n if (currentController && currentController.setAnnouncementState) {\r\n currentController.setAnnouncementState(this.announcements);\r\n }\r\n }\r\n\r\n}\r\n\r\nclass PageNotFoundController extends SimpleMvc.Controller {\r\n public load(params: SimpleMvc.QueryParams): void {\r\n $.get(\"/404.html\", (data) => {\r\n SimpleMvc.App.getInstance().getAppBody().innerHTML = data;\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/DevPortalApp.ts","import { StateStore } from \"../Store/StateStore\";\r\nimport { PageStatusFlags } from \"../ComponentDataModels/IPageStatus\";\r\nimport { FlagUtility } from \"../Utility/FlagUtility\";\r\n\r\nexport class Reducers {\r\n public static loginComplete(state: StateStore): StateStore {\r\n return { ...state, pageStatus: FlagUtility.clearFlag(state.pageStatus, PageStatusFlags.LoggingIn) };\r\n }\r\n\r\n public static loginFailed(state: StateStore, message: string): StateStore {\r\n return { ...state, pageMessage: message, pageStatus: FlagUtility.clearFlag(state.pageStatus, PageStatusFlags.LoggingIn) };\r\n }\r\n\r\n public static getWebChatTokenCompleted(state: StateStore, webChatToken: string): StateStore {\r\n return { ...state, webChatToken: webChatToken, pageStatus: FlagUtility.clearFlag(state.pageStatus, PageStatusFlags.WaitingForWebChatToken) };\r\n }\r\n\r\n public static getWebChatTokenFailed(state: StateStore, message: string): StateStore {\r\n return { ...state, pageMessage: message, pageStatus: FlagUtility.clearFlag(state.pageStatus, PageStatusFlags.WaitingForWebChatToken) };\r\n }\r\n\r\n public static clearWebChatTokenAndUpdateState(state: StateStore): StateStore {\r\n return { ...state, webChatToken: undefined, pageStatus: FlagUtility.setFlag(state.pageStatus, PageStatusFlags.WaitingForWebChatToken) };\r\n }\r\n\r\n public static onBotEndpointReady(state: StateStore) {\r\n return { ...state, pageStatus: FlagUtility.clearFlag(state.pageStatus, PageStatusFlags.WaitingForBotReady) };\r\n }\r\n\r\n public static onBotEndpointNotReady(state: StateStore) {\r\n return { ...state, pageStatus: FlagUtility.setFlag(state.pageStatus, PageStatusFlags.WaitingForBotReady) };\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Reducers/Reducers.tsx","import {KuduClient} from '../../Services/KuduApi';\r\nimport {BotAppCIState} from '../Views/BotAppContinuousIntegration';\r\nimport {ArmClient, SourceControl} from \"../../Services/ArmApi\";\r\nimport {parseUrl} from \"../../../../Intercom.ReactUI/Utils/Url\";\r\n\r\nfunction setupRemoteRepo(client: KuduClient, armClient: ArmClient, \r\n rsrcId: string,\r\n scmInfo: BotAppCIState) : JQueryPromise {\r\n let args : string[] = [];\r\n const scmHost = parseUrl(scmInfo.hostUrl);\r\n const hostUrl = `https://${scmHost ? scmHost.hostname : ''}`;\r\n\r\n if (scmInfo.repoProvider == 'vso') {\r\n args.push(`PostDeployScripts\\\\setupVsoRemoteRepo.cmd`);\r\n args.push(hostUrl);\r\n args.push(scmInfo.repoUserName);\r\n args.push(scmInfo.repoToken);\r\n } else {\r\n args.push(`PostDeployScripts\\\\setupGithubRemoteRepo.cmd`);\r\n args.push(scmInfo.repoUserName);\r\n args.push(scmInfo.repoToken);\r\n }\r\n let projName : string = null;\r\n let repoUrl : string = null;\r\n let result: BotAppCIState = null;\r\n return client.settings.then(settings => {\r\n projName = settings['WEBSITE_SITE_NAME'];\r\n switch (scmInfo.repoProvider) {\r\n case 'vso':\r\n repoUrl = `${hostUrl}/_git/${projName}`;\r\n break;\r\n case 'github':\r\n repoUrl = `https://github.com/${scmInfo.repoUserName}/${projName}.git`\r\n break;\r\n }\r\n args.push(projName);\r\n return $.Deferred().resolve(projName);\r\n })\r\n .then( proj => {\r\n return client.command(args.join(' '), 'site\\\\wwwroot');\r\n })\r\n .then(f => {\r\n if (!f) {\r\n return $.Deferred().reject(`${args[0]} failed`);\r\n }\r\n return $.Deferred().resolve(_.extend({}, scmInfo, {\r\n repoUrl: repoUrl\r\n }));\r\n })\r\n .then(state => {\r\n result = state;\r\n return armClient.setupContinuousIntegration(rsrcId, {\r\n repoUrl: repoUrl,\r\n branch: 'master',\r\n token: scmInfo.repoToken,\r\n isManualIntegration: false,\r\n deploymentRollbackEnabled: false,\r\n isMercurial: false\r\n });\r\n })\r\n .then(() => {\r\n return $.Deferred().resolve(result);\r\n });\r\n}\r\n\r\nexport default setupRemoteRepo;\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Services/setupRemoteRepo.ts","import { StateStore } from \"./StateStore\";\r\nimport { Actions } from \"../Actions/Actions\";\r\nimport { IbizaWebChatPageProps } from \"./../Views/IbizaWebChatPage\";\r\n\r\nimport { PageStatus } from \"../Controllers/WebChatController\";\r\n\r\n/**\r\n * Utility methods to map store + actions to component props.\r\n */\r\nexport class StateStoreUtility {\r\n public static mapStateAndDispatchToProps(state: StateStore, actions: Actions): IbizaWebChatPageProps {\r\n return {\r\n pageStatus: new PageStatus(state.pageStatus),\r\n pageMessage: state.pageMessage,\r\n botId: state.botId,\r\n location: state.location,\r\n webChatToken: state.webChatToken,\r\n onStartNewConversation: actions.onWebChatNewConversation\r\n };\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Store/StateStoreUtility.ts","import * as React from \"react\";\r\nimport {InputDialogBase} from \"../../Dialogs/InputDialogBase\";\r\n\r\n\r\nexport interface AbsCodeCIEnbaleProps extends React.Props{\r\n}\r\n\r\nexport interface AbsCodeCIEnbaleState {\r\n}\r\n\r\nexport class AbsCodeCIEnablePanel extends React.Component {\r\n constructor(props: AbsCodeCIEnbaleProps) {\r\n super(props);\r\n this.state = { };\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
    \r\n

    Enable continuous deployment

    \r\n

    \r\n After enabling, be sure to modify your code through continuous deployment and not through other mechanisms to avoid conflicts.\r\n

    \r\n
    \r\n \r\n \r\n
    \r\n
    );\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/AbsCodeCIEnablePanel.tsx","import * as React from \"react\";\r\nimport {InputDialogBase} from \"../../Dialogs/InputDialogBase\";\r\n\r\nexport type AbsCodeChoice = 'register' | 'host-in-azure';\r\n\r\nexport interface AbsCodeChoiceProps extends React.Props{\r\n}\r\n\r\nexport interface AbsCodeChoiceState {\r\n choice: AbsCodeChoice;\r\n}\r\nexport class AbsCodeChoicePanel extends React.Component {\r\n constructor(props: AbsCodeChoiceProps) {\r\n super(props);\r\n this.state = { choice: 'host-in-azure'};\r\n }\r\n\r\n private chooseOption(x: React.FormEvent) {\r\n this.setState({choice: x.target['value']});\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
    \r\n

    Create an SDK bot

    \r\n
    \r\n this.chooseOption(x)}\r\n />\r\n \r\n
    \r\n
    \r\n this.chooseOption(x)}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    );\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/AbsCodeChoicePanel.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport { SupportedFeatureUtility } from \"../Utility/SupportedFeatureUtility\";\r\n\r\nexport interface AccountSettingsProps {\r\n user: Rest.AuthData;\r\n deleteAccount: (user: Rest.AuthData) => void;\r\n}\r\n\r\nexport interface AccountSettingState {\r\n allowDelete: boolean;\r\n}\r\n\r\nexport class AccountSettingsPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n allowDelete: false\r\n };\r\n }\r\n\r\n public render() {\r\n if (!this.props.user) {\r\n return
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    ;\r\n }\r\n\r\n const deleteAccountAllowed = SupportedFeatureUtility.isSupported(Rest.DevPortalFeatureFlags.SupportNonAzureUsers);\r\n if (!deleteAccountAllowed) {\r\n return
    \r\n
    \r\n

    Account settings

    \r\n
    \r\n
    \r\n

    You cannot manage your account in this environment.

    \r\n
    \r\n
    ;\r\n }\r\n\r\n return
    \r\n
    \r\n

    Account settings

    \r\n
    \r\n\r\n
    \r\n

    Danger Zone

    \r\n

    \r\n Warning: Following operation may result in data loss and is not recoverable. Please be certain.\r\n

    \r\n \r\n this.onEmailChange(e)}\r\n type=\"text\"\r\n placeholder=\"Confirm email\"\r\n style={{ marginBottom: 30 }}\r\n className=\"m-input\">\r\n \r\n this.props.deleteAccount(this.props.user)}\r\n className=\"m-button-destructive-md\"\r\n disabled={!this.state.allowDelete}>\r\n Delete your account\r\n \r\n
    \r\n
    ;\r\n }\r\n\r\n private onEmailChange(e: React.ChangeEvent) {\r\n const allowDelete = this.props.user && e.currentTarget.value === this.props.user.EmailAddress;\r\n const newState = _.extend({}, this.state, { allowDelete });\r\n this.setState(newState);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/AccountSettingsPage.tsx","import * as React from \"react\";\r\nimport {BotPage, BotPageProps} from \"./BotPage\";\r\nimport {BotAppSettingsState, BotAppSettings } from \"./BotAppSettings\";\r\n\r\nexport interface AzurePortalPageProps extends React.Props {\r\n botPageProps: BotPageProps;\r\n onSetBotAppSettings(settings: BotAppSettings);\r\n onSetComponent(x: AzurePortalPage): void;\r\n}\r\n\r\nexport interface AzurePortalPageState extends BotAppSettingsState {\r\n botId: string;\r\n scmType: string;\r\n}\r\n\r\n\r\nexport class AzurePortalPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n botId: null,\r\n scmType: 'None',\r\n bot: null\r\n };\r\n }\r\n\r\n public componentWillUnmount() {\r\n this.props.onSetComponent(null);\r\n }\r\n\r\n public componentDidMount() {\r\n this.props.onSetComponent(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n if (this.props.botPageProps && this.state.botId) {\r\n return ( { return this.state.scmType; }}\r\n />);\r\n }\r\n return null;\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/AzurePortalPage.tsx","/// \r\nimport * as React from \"react\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport {BotImageControl} from \"../../../../Intercom.ReactUI/Views/BotImageControl\";\r\nimport {clientAppSettings} from \"../../Models/ClientAppSettings\";\r\nimport {IconFile} from \"./BotPage\";\r\nimport Dropzone = require(\"react-dropzone\")\r\n\r\nexport interface BotIconControlProps extends React.Props {\r\n bot: Rest.BotService;\r\n onDropIcon(files: IconFile[]): void;\r\n}\r\n\r\nexport interface BotIconControlState {\r\n}\r\n\r\nexport class BotIconControl extends React.Component {\r\n private iconTile: HTMLDivElement;\r\n\r\n private onUploadLinkClick() {\r\n if (this.iconTile) {\r\n $(this.iconTile).find('input[type=\"file\"]').trigger('click');\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
    this.iconTile = x}>\r\n
    \r\n this.props.onDropIcon(files) }>\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    Icon
    \r\n this.onUploadLinkClick()}>Upload custom icon\r\n 30K max, png only\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/BotIconControl.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport { TenantId } from \"../../Services/ArmApi\";\r\nimport { clientAppSettings } from \"../../Models/ClientAppSettings\";\r\nimport { BlockRowInputLabel } from '../../Views/Shared/BlockRowInputLabel';\r\nimport { BlockRowInputField } from '../../Views/Shared/BlockRowInputField';\r\nimport { Region, Subscription, WebAppSettings } from '../../Services/ArmApi';\r\n\r\nexport class BotMigrationDialogState {\r\n // logic\r\n bot?: Rest.BotService;\r\n tenants?: TenantId[];\r\n selectedTenantId?: string;\r\n selectedSubscription?: string;\r\n selectedResourceGroup?: string;\r\n selectedAppName?: string;\r\n selectedPricingTier?: string;\r\n selectedLocation?: string;\r\n botSettings?: WebAppSettings;\r\n azureAccessToken?: string;\r\n subscriptions?: Subscription[];\r\n locations?: Region[];\r\n\r\n // ui\r\n isRegistrationBot?: boolean;\r\n isDesignerBot?: boolean;\r\n appNameIsValid?: boolean;\r\n appNameErrMsg?: string;\r\n isCheckingSubscriptionState?: boolean;\r\n subscriptionErrMsg?: string;\r\n migrationIsComplete?: boolean;\r\n firstCheckboxChecked?: boolean;\r\n secondCheckboxChecked?: boolean;\r\n error?: {\r\n title: string,\r\n message: string,\r\n link?: {\r\n url: string,\r\n text: string,\r\n }\r\n };\r\n}\r\n\r\nexport class BotMigrationDialogProps {\r\n botId: string; \r\n onCancelClick: () => void;\r\n onMigrateClick: () => void;\r\n onChangeAppName: (appName: string) => void;\r\n onChangeTenant: (tenantId: string) => void;\r\n onChangeSubscription: (subId: string) => void;\r\n onChangeLocation: (location: string) => void;\r\n onChangePricingTier: (tier: string) => void;\r\n onOpenNewBotClick: () => void;\r\n onCheckFirstCheckbox: () => void;\r\n onCheckSecondCheckbox: () => void;\r\n onSignInClick: () => void;\r\n onCloseBtnClick: () => void;\r\n}\r\n\r\nexport class BotMigrationDialog extends React.Component {\r\n private _subscriptionDropdown: HTMLSelectElement;\r\n private _subscriptionInput: HTMLInputElement;\r\n private _resourceGroupInput: HTMLInputElement;\r\n private _locationDropdown: HTMLSelectElement;\r\n private _pricingTierInput: HTMLInputElement;\r\n private _appNameInput: HTMLInputElement;\r\n private _focusControl: React.ReactInstance;\r\n private _closeBtn: React.ReactInstance;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.handleFirstFocusTrapFocusx = this.handleFirstFocusTrapFocusx.bind(this);\r\n this.handleLastFocusTrapFocus = this.handleLastFocusTrapFocus.bind(this);\r\n this.handleBotMigrationDialogFocus = this.handleBotMigrationDialogFocus.bind(this);\r\n }\r\n\r\n private focusMigrationDialog() {\r\n const dialogFocusElement = ReactDOM.findDOMNode(this._focusControl) as HTMLElement;\r\n dialogFocusElement && dialogFocusElement.focus();\r\n }\r\n\r\n private handleFirstFocusTrapFocusx() {\r\n this.focusMigrationDialog();\r\n }\r\n\r\n private handleLastFocusTrapFocus() {\r\n const dialogFocusElement = ReactDOM.findDOMNode(this._closeBtn) as HTMLElement;\r\n dialogFocusElement && dialogFocusElement.focus();\r\n } \r\n\r\n private handleBotMigrationDialogFocus() {\r\n const dialogFocusElement = ReactDOM.findDOMNode(this._focusControl) as HTMLTextAreaElement;\r\n dialogFocusElement && dialogFocusElement.select();\r\n }\r\n\r\n componentDidMount() {\r\n this.focusMigrationDialog();\r\n }\r\n\r\n componentDidUpdate(){\r\n this.focusMigrationDialog();\r\n }\r\n\r\n private renderTenantPicker() : JSX.Element[] {\r\n return this.state.tenants.length > 1 ? [\r\n
    \r\n \r\n
    ,\r\n
    \r\n \r\n
    \r\n ]: null;\r\n }\r\n /** Renders the form inputs */\r\n private renderInputs(): JSX.Element {\r\n const tenantElt = this.renderTenantPicker();\r\n return this.state.isRegistrationBot ?\r\n\r\n // registration bot\r\n
    \r\n Please select the Azure Directory and the Azure Subscription where you want to migrate your bot to.\r\n {tenantElt}\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n { this.state.subscriptionErrMsg ? { this.state.subscriptionErrMsg } : null }\r\n
    \r\n
    \r\n \r\n
    \r\n this._resourceGroupInput = x} value={this.state.bot.Id} readOnly disabled>\r\n \r\n
    \r\n Learn more.`}\r\n tipAsHtml={true}\r\n required={true} />\r\n
    \r\n this._pricingTierInput = x} value={\"S1 Pricing Plan (see tooltip for info)\"} readOnly disabled />\r\n
    :\r\n\r\n // non-registration bot\r\n
    \r\n Destination:\r\n
    \r\n \r\n
    \r\n
    \r\n this._appNameInput = x} value={this.state.selectedAppName} onChange={ev => this.props.onChangeAppName(ev.target.value)} />\r\n { this.state.appNameErrMsg ? { this.state.appNameErrMsg } : null }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this._subscriptionInput = x} value={this.state.selectedSubscription} readOnly disabled />\r\n { this.state.subscriptionErrMsg ? { this.state.subscriptionErrMsg } : null }\r\n
    \r\n
    \r\n \r\n
    \r\n this._resourceGroupInput = x} value={this.state.selectedResourceGroup} readOnly disabled />\r\n
    \r\n Learn more.`}\r\n tipAsHtml={true}\r\n required={true} />\r\n
    \r\n this._pricingTierInput = x} value={\"S1 Pricing Plan (see tooltip for info)\"} readOnly disabled />\r\n
    \r\n }\r\n\r\n /** Renders CTA buttons */\r\n public renderButtons(focusOnButton: boolean): JSX.Element {\r\n\r\n const cancelButton = focusOnButton ?\r\n \r\n :;\r\n\r\n if (this.state.azureAccessToken) {\r\n const registrationBotCriteria = this.state.selectedSubscription\r\n && this.state.selectedResourceGroup\r\n && this.state.selectedLocation\r\n && this.state.selectedPricingTier\r\n && !this.state.subscriptionErrMsg\r\n && !this.state.isCheckingSubscriptionState;\r\n\r\n const nonRegistrationBotCriteria = this.state.appNameIsValid\r\n && this.state.selectedAppName\r\n && !this.state.appNameErrMsg\r\n && !this.state.subscriptionErrMsg\r\n && !this.state.isCheckingSubscriptionState\r\n && this.state.selectedSubscription\r\n && this.state.selectedResourceGroup\r\n && this.state.selectedPricingTier\r\n && this.state.botSettings;\r\n\r\n const migrateEnabled = this.state.isRegistrationBot ? registrationBotCriteria : nonRegistrationBotCriteria; \r\n return (\r\n
    \r\n {cancelButton}\r\n \r\n
    \r\n );\r\n } else {\r\n const signInEnabled = this.state.firstCheckboxChecked && this.state.secondCheckboxChecked;\r\n return (\r\n
    \r\n {cancelButton} \r\n \r\n
    \r\n );\r\n }\r\n }\r\n\r\n /** Renders the prompt for users who are not logged into an Azure account */\r\n private renderNonAzureAccountView(): JSX.Element {\r\n return (\r\n
    \r\n {this.renderFirstFocusTrap()}\r\n {this.renderCloseButton()} \r\n

    You need to be signed in with an Azure account

    \r\n
    We noticed that you are not signed in with an Azure account. Before migrating your bot, you need to take the following steps:
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {this.renderButtons(false)}\r\n {this.renderlastFocusTrap()}\r\n
    \r\n );\r\n }\r\n\r\n /** Renders the prompt for ABSv2 migration */\r\n private renderABSv2View(): JSX.Element {\r\n return (\r\n
    \r\n {this.renderFirstFocusTrap()}\r\n {this.renderCloseButton()}\r\n

    Migration unavailable

    \r\n
    Migration is currently disabled for Conversation Designer (ABSv2) bots.
    \r\n
    \r\n \r\n
    \r\n {this.renderlastFocusTrap()}\r\n
    \r\n );\r\n }\r\n\r\n /** Renders the post-migration confirmation prompt */\r\n private renderConfirmationView(): JSX.Element {\r\n return (\r\n
    \r\n {this.renderFirstFocusTrap()}\r\n {this.renderCloseButton()}\r\n

    Migration completed

    \r\n
    Go to your newly migrated bot to test it. Make sure to also reconfigure continuous deployment if you were previously using it. Learn more
    \r\n
    \r\n \r\n
    \r\n {this.renderlastFocusTrap()}\r\n
    \r\n );\r\n }\r\n\r\n /** Renders the prompt that shows error messages */\r\n private renderErrorMessageView(): JSX.Element {\r\n const link = this.state.error.link\r\n ? { this.state.error.link.text }\r\n : null;\r\n return (\r\n
    \r\n {this.renderFirstFocusTrap()}\r\n {this.renderCloseButton()}\r\n

    { this.state.error.title }

    \r\n
    { this.state.error.message } {link}
    \r\n
    \r\n \r\n
    \r\n {this.renderlastFocusTrap()}\r\n
    \r\n );\r\n }\r\n\r\n /** Renders the prompt that shows a loading spinner while necessary information is gathered for migration */\r\n private renderLoadingView(): JSX.Element {\r\n return (\r\n
    \r\n {this.renderlastFocusTrap()}\r\n {this.renderCloseButton()} \r\n
    \r\n Loading bot...\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {this.renderButtons(true)}\r\n {this.renderlastFocusTrap()}\r\n
    \r\n );\r\n }\r\n\r\n /** Renders the element */\r\n public render(): JSX.Element {\r\n\r\n // non-Azure account\r\n if (!this.state.azureAccessToken) {\r\n return this.renderNonAzureAccountView();\r\n }\r\n\r\n // error message\r\n if (this.state.error) {\r\n return this.renderErrorMessageView();\r\n }\r\n\r\n // still loading\r\n const isLoading = this.state.isRegistrationBot ? \r\n !this.state.tenants || (this.state.tenants.length <= 1 && (!this.state.subscriptions.length || !this.state.locations.length))\r\n : (!this.state.botSettings || !this.state.bot);\r\n if (isLoading) {\r\n return this.renderLoadingView();\r\n }\r\n\r\n // ABSv2 bot\r\n if (this.state.isDesignerBot) {\r\n return this.renderABSv2View();\r\n }\r\n\r\n // confirmation dialog\r\n if (this.state.migrationIsComplete) {\r\n return this.renderConfirmationView();\r\n }\r\n\r\n // default\r\n return (\r\n
    \r\n {this.renderFirstFocusTrap()} \r\n {this.renderCloseButton()} \r\n

    Migrate { this.props.botId }

    \r\n {this.renderInputs()}\r\n {this.renderButtons(false)}\r\n {this.renderlastFocusTrap()}\r\n
    \r\n );\r\n }\r\n\r\n public renderFirstFocusTrap(): JSX.Element {\r\n return (\r\n \r\n );\r\n }\r\n\r\n public renderCloseButton(): JSX.Element {\r\n return (\r\n \r\n );\r\n }\r\n\r\n public renderlastFocusTrap(): JSX.Element {\r\n return (\r\n \r\n );\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/BotMigrationDialog.tsx","import * as React from \"react\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport { Resources } from \"../../Resources/Intercom.Resources.DevPortal\";\r\n\r\nexport interface BotOpenComposerProps extends React.Props{\r\n downloadUrl: string;\r\n payload: SimpleMvc.QueryParams;\r\n}\r\n\r\nexport interface BotOpenComposerState {\r\n bot: Rest.BotService;\r\n blocked?: boolean;\r\n}\r\n\r\nexport class BotOpenComposer extends React.Component {\r\n\r\n private get bot() : Rest.BotService {\r\n return this.state && this.state.bot;\r\n }\r\n\r\n constructor(props: BotOpenComposerProps) {\r\n super(props);\r\n }\r\n\r\n private getBotId(s: BotOpenComposerState) : string {\r\n return s && s.bot ? s.bot.Id : null;\r\n }\r\n\r\n private openInComposer() {\r\n const allTags = JSON.parse(this.bot.AzureTags || \"{}\");\r\n const tags = Object.keys(allTags)\r\n .filter(x => x === 'webapp' || x === 'function')\r\n .reduce((cur, tagName) =>\r\n ({...cur, [tagName]: allTags[tagName]}),\r\n {});\r\n const tagCount = Object.keys(tags).length;\r\n const payload = {\r\n ...this.props.payload,\r\n botId: this.bot.Id,\r\n botName: this.bot.Name,\r\n appId: this.bot.MsaAppId,\r\n appPasswordHint: this.bot.AppPasswordHint,\r\n resourceId: `/subscriptions/${this.bot.SubscriptionId}/resourceGroups/${this.bot.ResourceGroupName}/providers/Microsoft.BotService/botServices/${this.bot.Id}`,\r\n tags: tagCount > 0 ? tags : undefined\r\n }\r\n const t = window.open(`bfcomposer://import?source=abs&payload=${encodeURIComponent(JSON.stringify(payload))}`);\r\n return t;\r\n }\r\n\r\n public componentDidUpdate(prevProps: BotOpenComposerProps, prevState: BotOpenComposerState) {\r\n const prevBotId = this.getBotId(prevState);\r\n const curBotId =this.getBotId(this.state);\r\n\r\n if (curBotId && curBotId !== prevBotId && this.bot.OpenWithHint === 'bfcomposer://') {\r\n const t = this.openInComposer();\r\n if (!t || t.closed || typeof t.closed === 'undefined') {\r\n this.setState({blocked: true});\r\n }\r\n }\r\n }\r\n\r\n private renderOpenButton() : JSX.Element {\r\n if (this.state && this.state.blocked) {\r\n return (\r\n this.openInComposer()}>\r\n {Resources.openInComposer}\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n public render() : JSX.Element {\r\n return (\r\n
    \r\n {this.renderOpenButton()}\r\n

    \r\n {Resources.downloadComposer}\r\n

    \r\n
    \r\n );\r\n\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/BotOpenComposer.tsx","import * as React from \"react\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport {ChannelDataHandlers} from \"./BotChannels\";\r\nimport * as BotPage from \"./BotPage\";\r\n\r\nexport enum MenuCommands { Unsubmit, ViewInBotDirectory, Unpublish, RejectionDetails, Resubmit }\r\n\r\nexport interface BotSettingsTabProps extends React.Props {\r\n bot: Rest.BotService;\r\n subscriptionKeys: BotPage.SubscriptionsKeys;\r\n channelDataHandlers: ChannelDataHandlers;\r\n isAdmin: () => boolean;\r\n isReviewer: () => boolean;\r\n isSubmitForReviewFlighted: boolean;\r\n isUserV3Flighted: boolean;\r\n configuredChannels: Rest.Channel[];\r\n iconFile?: BotPage.IconFile;\r\n reviewStatusDetail: Rest.ReviewStatusDetail;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/BotSettingsTab.tsx","import * as React from \"react\";\r\nimport * as Rest from \"../../Generated/RestClient\"\r\nimport { clientAppSettings } from \"../../Models/ClientAppSettings\";\r\nimport { BotImageControl } from \"../../../../Intercom.ReactUI/Views/index\";\r\nimport { BotUtilsV2 } from '../../Utils/BotUtils';\r\nimport { FlightUtils } from '../../Utils/FlightUtils';\r\nimport { Resources } from \"../../Resources/Intercom.Resources.DevPortal\";\r\n\r\nexport class BotsPageRowState {\r\n isAzureIbizaBot: boolean;\r\n isMigratedBot: boolean;\r\n isMigrationOptional: boolean;\r\n}\r\n\r\nexport class BotsPageRowProps {\r\n bot: Rest.BotDocument;\r\n onClickBotName: (bot: Rest.BotDocument) => void;\r\n onClickMigrate: (botId: string) => void;\r\n onClickRollback: (botId: string) => void;\r\n onClickDelete: (botId: string) => void;\r\n}\r\n\r\nexport class BotsPageRow extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const isAzureIbizaBot = BotUtilsV2.isAzureIbizaBot(this.props.bot);\r\n const isMigratedBot = BotUtilsV2.isMigratedBotDocument(this.props.bot);\r\n const isMigrationOptional = BotUtilsV2.isMigrationOptional(this.props.bot);\r\n\r\n this.state = {\r\n isAzureIbizaBot: isAzureIbizaBot,\r\n isMigratedBot: isMigratedBot,\r\n isMigrationOptional: isMigrationOptional\r\n };\r\n }\r\n\r\n /** Renders a migrate or rollback button */\r\n private getMigrationAction(): JSX.Element {\r\n if (this.state.isAzureIbizaBot) {\r\n if (this.state.isMigratedBot) {\r\n let oneWeekAgo = new Date();\r\n oneWeekAgo.setDate(oneWeekAgo.getDate() - 7);\r\n const md = new Date(String(this.props.bot.MigratedDate));\r\n const rollbackBtn = this.props.bot.MigratedDate && md >= oneWeekAgo\r\n ? \r\n : null;\r\n \r\n return (\r\n
    \r\n {' '}\r\n {Resources.myBotsMigrationStatusMigrated}\r\n { rollbackBtn }\r\n
    \r\n );\r\n }\r\n return (
    );\r\n } else {\r\n if (this.state.isMigrationOptional) {\r\n return (\r\n
    \r\n \r\n \r\n {' '}\r\n {Resources.myBotsMigrationStatusOptionalMigration}\r\n \r\n
    \r\n );\r\n }\r\n const disabledUntilMigrated = !this.state.isMigratedBot && FlightUtils.areMigrationRequiredBotsDisabled;\r\n const disabledIcon = disabledUntilMigrated ? : null;\r\n return (\r\n
    \r\n { disabledIcon }{' '}\r\n {Resources.myBotsMigrationStatusNotMigrated}\r\n \r\n
    \r\n );\r\n }\r\n }\r\n\r\n private getContextAction(): JSX.Element {\r\n if (this.state.isAzureIbizaBot || this.state.isMigratedBot) {\r\n return (\r\n
    \r\n );\r\n }\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n /** Renders the component */\r\n public render(): JSX.Element {\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {this.getMigrationAction()}\r\n {this.getContextAction()}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/BotsPageRow.tsx","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {SFC} from \"react\";\r\n\r\nexport const EmptyBotPage : SFC> = ({}) => (\r\n
    \r\n
    \r\n);\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/EmptyBotPage.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\n\r\nexport interface FullPageErrorComponentProps extends React.Props {\r\n message: string;\r\n}\r\n\r\nexport class FullPageErrorComponent extends React.Component {\r\n public render(): JSX.Element {\r\n return (\r\n
    \r\n {this.props.message}\r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/FullPageErrorComponent.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\n\r\nimport {ProgressRingControl} from \"../../../../Intercom.ReactUI/Views/index\";\r\n\r\nexport interface FullPageStatusComponentProps extends React.Props {\r\n message: string;\r\n}\r\n\r\nexport class FullPageStatusComponent extends React.Component {\r\n public render(): JSX.Element {\r\n return (\r\n
    \r\n \r\n
    \r\n {this.props.message}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/FullPageStatusComponent.tsx","import * as React from \"react\";\r\n\r\nimport { FullPageStatusComponent } from \"./FullPageStatusComponent\";\r\nimport { FullPageErrorComponent } from \"./FullPageErrorComponent\";\r\n\r\nimport { IPageStatus, PageStatusFlags } from \"../ComponentDataModels/IPageStatus\";\r\nimport { clientAppSettings } from \"../../Models/ClientAppSettings\";\r\nimport { CultureUtility } from '../../Resources/CultureUtility';\r\nimport { Resources } from \"../../Resources/Intercom.Resources.DevPortal\";\r\n\r\nexport interface IbizaWebChatPageProps extends React.Props {\r\n pageStatus: IPageStatus;\r\n pageMessage: string;\r\n botId: string;\r\n location: string;\r\n webChatToken?: string;\r\n onStartNewConversation: () => void;\r\n}\r\n\r\nexport class IbizaWebChatPage extends React.Component {\r\n render(): JSX.Element {\r\n const { location, pageMessage, webChatToken, botId } = this.props;\r\n const hasPageError = !!pageMessage;\r\n const fullPageMessage = this._getFullPageMessage();\r\n\r\n if (!fullPageMessage && !webChatToken) {\r\n throw new Error(\"No WebChat token.\");\r\n }\r\n\r\n let webChatUrl = clientAppSettings.webChatUrl;\r\n\r\n if(location && location !== 'global') {\r\n const items = clientAppSettings.webChatUrl.split('//');\r\n let hostName = clientAppSettings.webChatUrl;\r\n let protocol = '';\r\n if(items.length === 2) {\r\n protocol = `${items[0]}//`;\r\n hostName = items[1];\r\n }\r\n if(hostName.indexOf(location) === -1) {\r\n webChatUrl = `${protocol}${location}.${hostName}`\r\n }\r\n } \r\n\r\n let frameSrc = `${webChatUrl}embed/${botId}?t=${webChatToken}`;\r\n if (CultureUtility.rawLocale)\r\n frameSrc += `&l=${CultureUtility.rawLocale}`;\r\n\r\n return (\r\n
    \r\n
    \r\n {fullPageMessage || Resources.loadingBot}\r\n
    \r\n {\r\n fullPageMessage ? (\r\n hasPageError ?\r\n \r\n :\r\n \r\n ) : [\r\n // React.Fragment is not available in this version of React (15.4.2).\r\n // So we are using array for readability for now.\r\n
    \r\n
    {Resources.test}
    \r\n \r\n
    ,\r\n element && element.setAttribute('allow', 'microphone *') }\r\n src={ frameSrc }\r\n />\r\n ]\r\n }\r\n
    \r\n );\r\n }\r\n\r\n private _getFullPageMessage() {\r\n if (this.props.pageMessage) {\r\n // If we have a message to display - show that.\r\n return this.props.pageMessage;\r\n }\r\n else if (this.props.pageStatus.hasPageStatusFlag(PageStatusFlags.WaitingForWebChatToken)) {\r\n return Resources.authorizingWebChat;\r\n }\r\n else if (this.props.pageStatus.hasPageStatusFlag(PageStatusFlags.LoggingIn)) {\r\n return Resources.loggingIn;\r\n }\r\n else if (this.props.pageStatus.hasPageStatusFlag(PageStatusFlags.WaitingForBotReady)) {\r\n return Resources.botIsNotReady;\r\n }\r\n else if (!this.props.pageStatus.isReady()) {\r\n // If the page is not ready to display show a status page.\r\n return Resources.loading;\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/IbizaWebChatPage.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as Rest from \"../../Generated/RestClient\";\r\nimport { Resources } from \"../../Resources/Intercom.Resources.DevPortal\";\r\nimport { localizeAndList } from \"../../Utils/LocalizationUtils\";\r\nimport { FormattedMessage, IFormattedMessageLink } from \"../../../../Intercom.ReactUI/Views/FormattedMessage\";\r\n\r\nexport interface TermsOfServiceDialogProps {\r\n className?: string;\r\n header: string;\r\n message?: string;\r\n noticeMessage?: string;\r\n checkboxes: string[];\r\n}\r\n\r\nexport interface TermsOfServiceDialogState {\r\n agreeButtonEnabled: boolean,\r\n checkboxStates: boolean[],\r\n}\r\n\r\nexport const TermsOfServiceLinks = {\r\n \"azure\": \"https://go.microsoft.com/fwLink/?LinkID=522330\",\r\n \"privacy\": \"https://privacy.microsoft.com/en-us/privacystatement\",\r\n \"cortana\": \"https://aka.ms/bots/terms/knowledge\",\r\n \"combined\": \"https://aka.ms/bots/terms/channels\",\r\n}\r\nexport const CurrentTermsOfServiceStrings = {\r\n \"cortana\": \"cortana-december2017\",\r\n \"msteams\": \"msteams-december2017\",\r\n \"skype\": \"skype-december2017\",\r\n \"skypeforbusiness\": \"skypeforbusiness-december2017\",\r\n}\r\n\r\nexport class TermsOfServiceDialog extends React.Component {\r\n constructor(props: TermsOfServiceDialogProps) {\r\n super(props);\r\n\r\n let relevantCheckboxes = props.checkboxes;\r\n const channelsToCombine = props.checkboxes.filter((val) => [\"skype\", \"skypeforbusiness\", \"msteams\"].indexOf(val) >= 0);\r\n if (channelsToCombine.length > 0) {\r\n relevantCheckboxes = props.checkboxes.filter((val) => [\"skype\", \"skypeforbusiness\", \"msteams\"].indexOf(val) < 0);\r\n relevantCheckboxes.push(\"combined\");\r\n }\r\n const checkboxStates = relevantCheckboxes.map(() => false);\r\n\r\n this.state = {\r\n agreeButtonEnabled: false,\r\n checkboxStates: checkboxStates\r\n };\r\n }\r\n\r\n private checkboxesUpdate(value: boolean, i: number): void {\r\n const checkboxes = this.state.checkboxStates;\r\n checkboxes[i] = value;\r\n this.setState({\r\n agreeButtonEnabled: checkboxes.indexOf(false) < 0,\r\n checkboxStates: checkboxes\r\n });\r\n }\r\n\r\n private checkboxTexts = {\r\n \"azure\": Resources.tosDialog_AzureTermsCheckbox,\r\n \"cortana\": Resources.tosDialog_CortanaTermsCheckbox,\r\n \"combined\": \"\",\r\n }\r\n private termsLinkTexts = {\r\n \"azure\": Resources.tosDialog_ABSTerms,\r\n \"cortana\": Resources.tosDialog_MSKnowledgeGraphTerms,\r\n \"combined\": Resources.tosDialog_MSPublicationTerms,\r\n }\r\n private channelNames = {\r\n \"msteams\": Resources.MicrosoftTeams,\r\n \"skype\": Resources.Skype,\r\n \"skypeforbusiness\": Resources.SkypeforBusiness,\r\n }\r\n\r\n /** Renders Terms of Services checkboxes for Azure and certain channels */\r\n private renderCheckboxes(): JSX.Element[] {\r\n let checkboxes:string[] = this.props.checkboxes;\r\n \r\n // figures out how to combine the three channels that share terms\r\n let channelsToCombine:string[] = checkboxes.filter((val) => [\"skype\", \"skypeforbusiness\", \"msteams\"].indexOf(val) >= 0);\r\n if (channelsToCombine.length > 0) {\r\n checkboxes = checkboxes.filter((val) => [\"skype\", \"skypeforbusiness\", \"msteams\"].indexOf(val) < 0);\r\n const baseResource = channelsToCombine.length === 1 ? Resources.tosDialog_CombinedTermsCheckboxOneChannel : Resources.tosDialog_CombinedTermsCheckboxMultiChannels;\r\n const channelNamesList = channelsToCombine.map(channel => this.channelNames[channel]);\r\n\r\n this.checkboxTexts.combined = _.template(baseResource)({\"channelslist\": localizeAndList(channelNamesList)});\r\n checkboxes.push(\"combined\");\r\n }\r\n\r\n return checkboxes.map((checkbox, i) => {\r\n if (this.checkboxTexts[checkbox]) {\r\n const links:IFormattedMessageLink[] = [\r\n {\r\n text: this.termsLinkTexts[checkbox],\r\n href: TermsOfServiceLinks[checkbox],\r\n target: \"_blank\"\r\n }, {\r\n text: Resources.tosDialog_MSPrivacyStatement,\r\n href: TermsOfServiceLinks.privacy,\r\n target: \"_blank\"\r\n }\r\n ]\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n });\r\n }\r\n\r\n private renderMessageText(): JSX.Element {\r\n const elements = [{this.props.message}]\r\n if (this.props.noticeMessage) {\r\n elements.push({Resources.notice});\r\n elements.push({this.props.noticeMessage})\r\n }\r\n return

    {elements}

    ;\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n

    {this.props.header}

    \r\n {this.props.message ? this.renderMessageText() : null}\r\n {this.renderCheckboxes()}\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/TermsOfServiceDialog.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\n\r\nimport { BotService } from \"../../Generated/RestClient\";\r\n\r\nimport { WebChat } from \"./WebChat\";\r\n\r\nexport interface WebChatPageProps extends React.Props {\r\n bot: BotService;\r\n}\r\n\r\nexport class WebChatPage extends React.Component {\r\n render(): JSX.Element {\r\n return (\r\n
    \r\n
    );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/WebChatPage.tsx","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\n\r\nimport {resourceStrings} from \"../../../../../Intercom.ReactUI/Views/index\";\r\nimport {BotService} from \"../../../Generated/RestClient\";\r\n\r\nexport interface CookieInformProps extends React.Props {\r\n}\r\n\r\nexport class CookieInform extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
    \r\n This site uses cookies for analytics, personalized content and ads. By continuing to browse this site, you agree to this use. \r\n Learn more.\r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/status/CookieInform.tsx","import * as React from \"react\";\r\nimport { ProgressRingControl } from '../../../../../Intercom.ReactUI/Views/ProgressRingControl';\r\n\r\nexport class DialogStatusProps {\r\n statusMessage?: string;\r\n}\r\n\r\nexport class DialogStatusState {\r\n showing?: boolean;\r\n}\r\n\r\nexport class DialogStatus extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n /** Renders the component */\r\n public render(): JSX.Element {\r\n return (\r\n this.state.showing ?\r\n
    \r\n \r\n { this.props.statusMessage && { this.props.statusMessage } }\r\n
    : null\r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/status/DialogStatus.tsx","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {SFC} from \"react\";\r\nimport {resourceStrings} from \"../../../../../Intercom.ReactUI/Views/index\";\r\n\r\nexport const ExpiredSubscrition : SFC> = ({}) => (\r\n
    \r\n {resourceStrings.expiredAzureSubscription}\r\n
    \r\n);\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/status/ExpiredSubscription.tsx","/// \r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {resourceStrings} from \"../../../../../Intercom.ReactUI/Views/index\";\r\nimport {BotService} from \"../../../Generated/RestClient\";\r\n\r\nexport interface V3UpdateProps extends React.Props {\r\n bot: BotService;\r\n}\r\n\r\nexport class V3Update extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n public render(): JSX.Element {\r\n if (this.props.bot.Version === '1.0') {\r\n return (\r\n
    \r\n {resourceStrings.v3Update} Learn how\r\n
    \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./Client/v4/Views/status/V3Update.tsx","// This file was automatically generated from Intercom.BotDirectory.dll. Do not edit directly!\r\n\r\n /** Optionally, set this variable to your network activity indicator function. */\r\n export var showNetworkIcon = (show: boolean) => { };\r\n\r\n /** Optionally, set this to your own ajax function. */\r\n export var ajax: (settings: JQueryAjaxSettings) => JQueryPromise = _ajax;\r\n\r\n /** Optionally, set this to a string that all urls should be prefixed with. */\r\n export var urlPrefix = '';\r\n\r\n /** Optionally, set this to additional header key/value pairs to send along with ajax requests. */\r\n export var ajaxHeaders: { [key: string]: any } = null;\r\n\r\n /** Wraps jQuery's ajax function and adds network activity indicator. */\r\n function _ajax(settings_: JQueryAjaxSettings): JQueryPromise {\r\n var settings: JQueryAjaxSettings = $.extend({}, settings_, { url: urlPrefix + settings_.url });\r\n if (settings.data)\r\n settings.contentType = 'application/json';\r\n if (ajaxHeaders)\r\n settings.headers = ajaxHeaders;\r\n showNetworkIcon(true);\r\n return $.ajax(settings).always(() => showNetworkIcon(false));\r\n }\r\n\r\n /** Corresponds to Intercom.BotDirectory.Server.Controllers.BotsController */\r\n export class BotsClient {\r\n /** Corresponds to GetBotContactCard(string botId, string t) */\r\n public static getBotContactCard(botId: string, t: string): JQueryPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: `/api/bots/${botId}` + '?' + $.param({ t: t }),\r\n type: 'GET',\r\n });\r\n }\r\n }\r\n\r\n /** Corresponds to Intercom.BotDirectory.Server.Controllers.BotDirectoryController */\r\n export class BotDirectoryClient {\r\n /** Corresponds to GetBots(string searchString, int pageSize, int page, SortOrder sort) */\r\n public static getBots(searchString: string, pageSize: number, page: number, sort: SortOrder): JQueryPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotDirectory' + '?' + $.param({ searchString: searchString, pageSize: pageSize, page: page, sort: sort }),\r\n type: 'GET',\r\n });\r\n }\r\n\r\n /** Corresponds to FeaturedBots(int pageSize, int page, SortOrder sort) */\r\n public static featuredBots(pageSize: number, page: number, sort: SortOrder): JQueryPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotDirectory/Featured' + '?' + $.param({ pageSize: pageSize, page: page, sort: sort }),\r\n type: 'GET',\r\n });\r\n }\r\n\r\n /** Corresponds to GetBot(string id, string token) */\r\n public static getBot(id: string, token: string): JQueryPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotDirectory/GetBot' + '?' + $.param({ id: id, token: token }),\r\n type: 'GET',\r\n });\r\n }\r\n\r\n /** Corresponds to IBot() */\r\n public static iBot(): JQueryPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotDirectory',\r\n type: 'GET',\r\n });\r\n }\r\n\r\n /** Corresponds to GetChannels() */\r\n public static getChannels(): JQueryPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/BotDirectory/GetChannels',\r\n type: 'GET',\r\n });\r\n }\r\n\r\n /** Corresponds to GetBotVCard(string botId) */\r\n public static getBotVCard(botId: string): JQueryPromise {\r\n return ajax({\r\n url: `/api/BotDirectory/${botId}`,\r\n type: 'GET',\r\n });\r\n }\r\n }\r\n\r\n /** Corresponds to Intercom.BotDirectory.Server.Controllers.RssController */\r\n export class RssClient {\r\n /** Corresponds to GetAll() */\r\n public static getAll(): JQueryPromise {\r\n return ajax({\r\n dataType: 'json',\r\n url: '/api/Rss',\r\n type: 'GET',\r\n });\r\n }\r\n }\r\n\r\n /** Corresponds to Intercom.BotDirectory.Server.Controllers.Models.BotContactCard, optional properties */\r\n export interface _BotContactCard {\r\n Id?: string;\r\n Name?: string;\r\n CreatedDate?: DateTimeOffset;\r\n Languages?: string[];\r\n Hashtags?: string[];\r\n Publisher?: string;\r\n PublisherEmail?: string;\r\n Website?: string;\r\n IconUrl?: string;\r\n Description?: string;\r\n Contacts?: ContactCard[];\r\n DeveloperBotTermsOfUseUrl?: string;\r\n ChannelName?: string;\r\n ChannelIconUrl?: string;\r\n VCardUrl?: string;\r\n }\r\n\r\n /** Corresponds to Intercom.BotDirectory.Server.Controllers.Models.BotContactCard */\r\n export interface BotContactCard {\r\n Id: string;\r\n Name: string;\r\n CreatedDate: DateTimeOffset;\r\n Languages: string[];\r\n Hashtags: string[];\r\n Publisher: string;\r\n PublisherEmail: string;\r\n Website: string;\r\n IconUrl: string;\r\n Description: string;\r\n Contacts: ContactCard[];\r\n DeveloperBotTermsOfUseUrl: string;\r\n ChannelName: string;\r\n ChannelIconUrl: string;\r\n VCardUrl: string;\r\n }\r\n\r\n /** Corresponds to Intercom.BotDirectory.Server.Controllers.Models.BotsResult */\r\n export interface BotsResult {\r\n TotalCount: number;\r\n Items: BotDocument[];\r\n Sort: SortOrder;\r\n }\r\n\r\n /** Corresponds to Intercom.Models.Search.SortOrder */\r\n export enum SortOrder {\r\n ByName = 0, \r\n ByDate = 1, \r\n ByRelevance = 2, \r\n ByDisplayOrder = 3, \r\n ByActivityRank = 4, \r\n ByDateAsc = 5\r\n }\r\n\r\n /** Corresponds to Intercom.BotDirectory.Server.Controllers.Models.BotViewModel, optional properties */\r\n export interface _BotViewModel {\r\n Id?: string;\r\n Name?: string;\r\n Contacts?: ContactInfo[];\r\n Languages?: string[];\r\n OwnerIds?: string[];\r\n Hashtags?: string[];\r\n Publisher?: string;\r\n PublisherEmail?: string;\r\n Website?: string;\r\n IconUrl?: string;\r\n Options?: BotOptions;\r\n Description?: string;\r\n EnabledChannels?: string[];\r\n ListedChannels?: string[];\r\n Listed?: boolean;\r\n ApprovedForBotDirectory?: boolean;\r\n EnableWebChatInDirectory?: boolean;\r\n DefaultIconColorHash?: string;\r\n ChannelStatus?: ChannelStatus[];\r\n WebChatToken?: string;\r\n CreatedDate?: DateTimeOffset;\r\n LastSavedDate?: DateTimeOffset;\r\n DeveloperBotPrivacyUrl?: string;\r\n DeveloperBotTermsOfUseUrl?: string;\r\n FeaturedDisplayOrder?: number;\r\n }\r\n\r\n /** Corresponds to Intercom.BotDirectory.Server.Controllers.Models.BotViewModel */\r\n export interface BotViewModel {\r\n Id: string;\r\n Name: string;\r\n Contacts: ContactInfo[];\r\n Languages: string[];\r\n OwnerIds: string[];\r\n Hashtags: string[];\r\n Publisher: string;\r\n PublisherEmail: string;\r\n Website: string;\r\n IconUrl: string;\r\n Options: BotOptions;\r\n Description: string;\r\n EnabledChannels: string[];\r\n ListedChannels: string[];\r\n Listed: boolean;\r\n ApprovedForBotDirectory: boolean;\r\n EnableWebChatInDirectory: boolean;\r\n DefaultIconColorHash: string;\r\n ChannelStatus: ChannelStatus[];\r\n WebChatToken: string;\r\n CreatedDate: DateTimeOffset;\r\n LastSavedDate: DateTimeOffset;\r\n DeveloperBotPrivacyUrl: string;\r\n DeveloperBotTermsOfUseUrl: string;\r\n FeaturedDisplayOrder: number;\r\n }\r\n\r\n /** Corresponds to Intercom.Models.IBot, optional properties */\r\n export interface _IBot {\r\n Id?: string;\r\n Name?: string;\r\n Languages?: string[];\r\n OwnerIds?: string[];\r\n Hashtags?: string[];\r\n Publisher?: string;\r\n PublisherEmail?: string;\r\n IconUrl?: string;\r\n Description?: string;\r\n EnabledChannels?: string[];\r\n ListedChannels?: string[];\r\n Listed?: boolean;\r\n ApprovedForBotDirectory?: boolean;\r\n DefaultIconColorHash?: string;\r\n }\r\n\r\n /** Corresponds to Intercom.Models.IBot */\r\n export interface IBot {\r\n Id: string;\r\n Name: string;\r\n Languages: string[];\r\n OwnerIds: string[];\r\n Hashtags: string[];\r\n Publisher: string;\r\n PublisherEmail: string;\r\n IconUrl: string;\r\n Description: string;\r\n EnabledChannels: string[];\r\n ListedChannels: string[];\r\n Listed: boolean;\r\n ApprovedForBotDirectory: boolean;\r\n DefaultIconColorHash: string;\r\n }\r\n\r\n /** Corresponds to Intercom.Models.Channel, optional properties */\r\n export interface _Channel extends _ETagObject {\r\n Id?: string;\r\n Name?: string;\r\n Description?: string;\r\n Endpoint?: string;\r\n UserConfigurationUrl?: string;\r\n DeveloperConfigurationUrl?: string;\r\n DeveloperConfigLogoutUrl?: string;\r\n IconUrl?: string;\r\n Options?: ChannelOptions;\r\n UserConfigurationTemplate?: string;\r\n SystemStatus?: string;\r\n }\r\n\r\n /** Corresponds to Intercom.Models.Channel */\r\n export interface Channel extends ETagObject {\r\n Id: string;\r\n Name: string;\r\n Description: string;\r\n Endpoint: string;\r\n UserConfigurationUrl: string;\r\n DeveloperConfigurationUrl: string;\r\n DeveloperConfigLogoutUrl: string;\r\n IconUrl: string;\r\n Options: ChannelOptions;\r\n UserConfigurationTemplate: string;\r\n SystemStatus: string;\r\n }\r\n\r\n /** Corresponds to System.DateTimeOffset, optional properties */\r\n export interface _DateTimeOffset {\r\n DateTime?: Date;\r\n UtcDateTime?: Date;\r\n LocalDateTime?: Date;\r\n Date?: Date;\r\n Day?: number;\r\n DayOfWeek?: DayOfWeek;\r\n DayOfYear?: number;\r\n Hour?: number;\r\n Millisecond?: number;\r\n Minute?: number;\r\n Month?: number;\r\n Offset?: TimeSpan;\r\n Second?: number;\r\n Ticks?: number;\r\n UtcTicks?: number;\r\n TimeOfDay?: TimeSpan;\r\n Year?: number;\r\n }\r\n\r\n /** Corresponds to System.DateTimeOffset */\r\n export interface DateTimeOffset {\r\n DateTime: Date;\r\n UtcDateTime: Date;\r\n LocalDateTime: Date;\r\n Date: Date;\r\n Day: number;\r\n DayOfWeek: DayOfWeek;\r\n DayOfYear: number;\r\n Hour: number;\r\n Millisecond: number;\r\n Minute: number;\r\n Month: number;\r\n Offset: TimeSpan;\r\n Second: number;\r\n Ticks: number;\r\n UtcTicks: number;\r\n TimeOfDay: TimeSpan;\r\n Year: number;\r\n }\r\n\r\n /** Corresponds to Intercom.BotDirectory.Server.Controllers.Models.ContactCard, optional properties */\r\n export interface _ContactCard {\r\n ChannelId?: string;\r\n ContactType?: string;\r\n ChannelName?: string;\r\n ChannelIconUrl?: string;\r\n Name?: string;\r\n Address?: string;\r\n HtmlLink?: string;\r\n }\r\n\r\n /** Corresponds to Intercom.BotDirectory.Server.Controllers.Models.ContactCard */\r\n export interface ContactCard {\r\n ChannelId: string;\r\n ContactType: string;\r\n ChannelName: string;\r\n ChannelIconUrl: string;\r\n Name: string;\r\n Address: string;\r\n HtmlLink: string;\r\n }\r\n\r\n /** Corresponds to Intercom.Models.Search.BotDocument, optional properties */\r\n export interface _BotDocument {\r\n Id?: string;\r\n EntityKey?: string;\r\n Name?: string;\r\n Description?: string;\r\n OwnerIds?: string[];\r\n Hashtags?: string[];\r\n Publisher?: string;\r\n PublisherEmail?: string;\r\n Languages?: string[];\r\n IconUrl?: string;\r\n DefaultIconColorHash?: string;\r\n EnabledChannels?: string[];\r\n ListedChannels?: string[];\r\n Listed?: boolean;\r\n ApprovedForBotDirectory?: boolean;\r\n Submitted?: boolean;\r\n SystemHashtags?: string[];\r\n ChannelAddresses?: string[];\r\n SortName?: string;\r\n CreatedDate?: DateTimeOffset;\r\n LastSavedDate?: DateTimeOffset;\r\n FeaturedDisplayOrder?: number;\r\n ActivityRank?: number;\r\n }\r\n\r\n /** Corresponds to Intercom.Models.Search.BotDocument */\r\n export interface BotDocument {\r\n Id: string;\r\n EntityKey: string;\r\n Name: string;\r\n Description: string;\r\n OwnerIds: string[];\r\n Hashtags: string[];\r\n Publisher: string;\r\n PublisherEmail: string;\r\n Languages: string[];\r\n IconUrl: string;\r\n DefaultIconColorHash: string;\r\n EnabledChannels: string[];\r\n ListedChannels: string[];\r\n Listed: boolean;\r\n ApprovedForBotDirectory: boolean;\r\n Submitted: boolean;\r\n SystemHashtags: string[];\r\n ChannelAddresses: string[];\r\n SortName: string;\r\n CreatedDate: DateTimeOffset;\r\n LastSavedDate: DateTimeOffset;\r\n FeaturedDisplayOrder: number;\r\n ActivityRank: number;\r\n }\r\n\r\n /** Corresponds to Intercom.Models.ContactInfo, optional properties */\r\n export interface _ContactInfo {\r\n ChannelId?: string;\r\n Address?: string;\r\n ContactType?: ContactType;\r\n Name?: string;\r\n HtmlLink?: string;\r\n }\r\n\r\n /** Corresponds to Intercom.Models.ContactInfo */\r\n export interface ContactInfo {\r\n ChannelId: string;\r\n Address: string;\r\n ContactType: ContactType;\r\n Name: string;\r\n HtmlLink: string;\r\n }\r\n\r\n /** Corresponds to Intercom.Models.BotOptions */\r\n export enum BotOptions {\r\n None = 0, \r\n AllMessages = 2, \r\n AutoTranslate = 4, \r\n DisableLogging = 8, \r\n DisableMentionStripping = 16\r\n }\r\n\r\n /** Corresponds to Intercom.Models.ChannelStatus, optional properties */\r\n export interface _ChannelStatus {\r\n ChannelId?: string;\r\n Status?: ChannelStatusType;\r\n Message?: string;\r\n }\r\n\r\n /** Corresponds to Intercom.Models.ChannelStatus */\r\n export interface ChannelStatus {\r\n ChannelId: string;\r\n Status: ChannelStatusType;\r\n Message: string;\r\n }\r\n\r\n /** Corresponds to Intercom.Azure.Helpers.ETagObject, optional properties */\r\n export interface _ETagObject {\r\n ETag?: string;\r\n }\r\n\r\n /** Corresponds to Intercom.Azure.Helpers.ETagObject */\r\n export interface ETagObject {\r\n ETag: string;\r\n }\r\n\r\n /** Corresponds to Intercom.Models.ChannelOptions */\r\n export enum ChannelOptions {\r\n None = 0, \r\n DisableLogging = 1, \r\n Hidden = 2, \r\n NotListable = 4\r\n }\r\n\r\n /** Corresponds to System.DayOfWeek */\r\n export enum DayOfWeek {\r\n Sunday = 0, \r\n Monday = 1, \r\n Tuesday = 2, \r\n Wednesday = 3, \r\n Thursday = 4, \r\n Friday = 5, \r\n Saturday = 6\r\n }\r\n\r\n /** Corresponds to System.TimeSpan, optional properties */\r\n export interface _TimeSpan {\r\n Ticks?: number;\r\n Days?: number;\r\n Hours?: number;\r\n Milliseconds?: number;\r\n Minutes?: number;\r\n Seconds?: number;\r\n TotalDays?: number;\r\n TotalHours?: number;\r\n TotalMilliseconds?: number;\r\n TotalMinutes?: number;\r\n TotalSeconds?: number;\r\n }\r\n\r\n /** Corresponds to System.TimeSpan */\r\n export interface TimeSpan {\r\n Ticks: number;\r\n Days: number;\r\n Hours: number;\r\n Milliseconds: number;\r\n Minutes: number;\r\n Seconds: number;\r\n TotalDays: number;\r\n TotalHours: number;\r\n TotalMilliseconds: number;\r\n TotalMinutes: number;\r\n TotalSeconds: number;\r\n }\r\n\r\n /** Corresponds to Intercom.Models.Search.IDocument, optional properties */\r\n export interface _IDocument {\r\n Id?: string;\r\n }\r\n\r\n /** Corresponds to Intercom.Models.Search.IDocument */\r\n export interface IDocument {\r\n Id: string;\r\n }\r\n\r\n /** Corresponds to Microsoft.Bot.Schema.ContactType */\r\n export enum ContactType {\r\n Unknown = 0, \r\n Email = 1, \r\n GroupMe = 2, \r\n Kik = 3, \r\n PhoneNumber = 4, \r\n Skype = 5, \r\n Slack = 6, \r\n Telegram = 7, \r\n Twitter = 8, \r\n Web = 9, \r\n API = 10, \r\n Facebook = 11\r\n }\r\n\r\n /** Corresponds to Intercom.Models.ChannelStatusType */\r\n export enum ChannelStatusType {\r\n OK = 0, \r\n Warning = 1, \r\n Error = 2\r\n }\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Generated/ReactUI.ts","import * as $ from \"jquery\";\r\n\r\n/**\r\n * similar to ajx call, but use XMLHttpRequest directly to get binary data\r\n * @param settings\r\n */\r\nfunction downloadBlob(settings: JQueryAjaxSettings) : JQueryPromise {\r\n let deferred = $.Deferred();\r\n let req = new XMLHttpRequest();\r\n req.open(settings.type, settings.url, true);\r\n\r\n if (settings.dataType) {\r\n req.overrideMimeType(settings.dataType);\r\n }\r\n if (settings.headers) {\r\n _.each(settings.headers, (val, key) => {\r\n req.setRequestHeader(key, val);\r\n });\r\n }\r\n req.responseType = \"blob\";\r\n if (settings.beforeSend) {\r\n settings.beforeSend(null, settings);\r\n }\r\n req.onreadystatechange = () => {\r\n if (req.readyState == XMLHttpRequest.DONE) {\r\n if (req.status >= 200 && req.status < 300 && req.response) {\r\n deferred.resolve(req.response);\r\n } else {\r\n deferred.reject(req);\r\n }\r\n }\r\n };\r\n req.send();\r\n return deferred;\r\n}\r\n\r\nexport default downloadBlob;\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Utils/downloadBlob.ts","export default function (time: Date): any[] {\r\n const timestamp = time.getTime(); \r\n const milliseconds = Date.now() - timestamp;\r\n const minutes = Math.floor(milliseconds / (1000 * 60));\r\n const hours = Math.floor(minutes / 60);\r\n if (minutes < 1)\r\n return [\"Just now\", 60 * 1000];\r\n if (minutes === 1)\r\n return [`1 minute ago`, 60 * 1000];\r\n if (hours < 1)\r\n return [`${minutes} minutes ago`, 60 * 1000];\r\n if (hours === 1)\r\n return [`1 hour ago`, 60 * 60 * 1000];\r\n if (hours < 5)\r\n return [`${hours} hours ago`, 60 * 60 * 1000 * (5 - hours)];\r\n if (hours <= 24)\r\n return [\"today\", 60 * 60 * 1000 * (24 - hours)];\r\n if (hours <= 48)\r\n return [\"yesterday\", 60 * 60 * 1000 * (48 - hours)];\r\n return [new Date (milliseconds).toLocaleDateString(), null]; \r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Utils/timestamp.ts","/**\r\n * check for browser support, if safari then we can't\r\n * support until we fix the per domain cookie size issue\r\n */\r\nexport enum KnownBrowsers {\r\n Safari,\r\n Edge,\r\n Chrome,\r\n Firefox,\r\n Opera,\r\n CriOS // chrome ios\r\n}\r\n\r\nconst uaRegex = /([^\\s\\(]\\S*[^\\s\\)])(\\s*\\([^\\)]+\\)\\s*){0,1}\\s*/g;\r\n\r\nexport function parseUserAgent(): { [browser: string] : boolean } {\r\n let agentString = navigator.userAgent;\r\n uaRegex.lastIndex = 0;\r\n let matches = uaRegex.exec(agentString);\r\n let result: { [browser: string]: boolean }= {};\r\n\r\n while (matches != null) {\r\n if (matches.length > 1) {\r\n let match = matches[1];\r\n if (match && match[0] != '(') {\r\n let parts = match.split('/');\r\n result[parts[0]] = true;\r\n }\r\n }\r\n matches = uaRegex.exec(agentString);\r\n }\r\n\r\n return result;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Utils/userAgent.ts","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nexport interface AutoResizeTextAreaProps {\r\n value: string,\r\n className?: string,\r\n placeHolder?: string,\r\n maxLength?: number,\r\n id?: string,\r\n onChange(e: React.FormEvent): void\r\n}\r\nexport interface AutoResizeTextAreaState {\r\n}\r\n\r\nexport class AutoResizeTextArea extends React.Component {\r\n private ta: HTMLTextAreaElement;\r\n\r\n constructor(props: AutoResizeTextAreaProps) {\r\n super(props);\r\n this.state = { };\r\n }\r\n\r\n private autoSize() {\r\n if (this.ta) {\r\n if (this.ta.scrollHeight > this.ta.clientHeight) {\r\n $(this.ta).css('height', `${this.ta.scrollHeight + 10}px`);\r\n }\r\n }\r\n }\r\n\r\n public componentDidMount() {\r\n this.autoSize();\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/AutoResizeTextAreaControl.tsx","///\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {BotImageControl} from './BotImageControl';\r\nimport * as Rest from '../Generated/ReactUI';\r\n\r\n// start loading the next page of content when the bottom of gallery\r\n// is less than PAGING_THRESHOLD away from window bottom\r\nconst PAGING_THRESHOLD = 400;\r\n\r\nexport interface SortSpec {\r\n defaultSortField: Rest.SortOrder,\r\n supportedSortFields: Rest.SortOrder[];\r\n}\r\n\r\nexport const DEFAULT_SORT_SPEC: SortSpec = {\r\n defaultSortField: Rest.SortOrder.ByActivityRank,\r\n supportedSortFields: [Rest.SortOrder.ByActivityRank, Rest.SortOrder.ByName, Rest.SortOrder.ByDate]\r\n};\r\n\r\nexport const FEATURED_SORT_SPEC: SortSpec = {\r\n defaultSortField: Rest.SortOrder.ByDisplayOrder,\r\n supportedSortFields: [Rest.SortOrder.ByDisplayOrder, Rest.SortOrder.ByName, Rest.SortOrder.ByDate]\r\n};\r\n\r\nconst SORT_LABELS = ['Name', 'Date', 'Relevance', 'Feature', 'Activity'];\r\n\r\n\r\nexport interface BotGalleryControlProps extends React.Props {\r\n pageSize: number;\r\n sortSpec: SortSpec;\r\n onNextPage: () => void;\r\n onSort: (order: Rest.SortOrder) => void;\r\n defaultBotIconUrl: string;\r\n title?: string;\r\n id?: string;\r\n onSearch?: (s: string) => void;\r\n infiniteScroll?: boolean;\r\n baseUrl?: string;\r\n}\r\n\r\nexport interface BotGalleryControlState {\r\n bots: Rest.BotDocument[];\r\n searchString?: string;\r\n loadingMore: boolean;\r\n sortOrder: Rest.SortOrder;\r\n hasMoreBots?: boolean;\r\n totalCount?: number;\r\n}\r\n\r\nexport class BotGalleryControl extends React.Component {\r\n private scrollHandler: (e: JQueryEventObject) => void;\r\n constructor(props: BotGalleryControlProps) {\r\n super(props);\r\n this.state = {\r\n bots: [],\r\n loadingMore: true,\r\n hasMoreBots: true,\r\n sortOrder: (props.sortSpec || DEFAULT_SORT_SPEC).defaultSortField\r\n };\r\n if (this.props.onNextPage) {\r\n this.scrollHandler = _.debounce(_.bind(this.handleScroll, this), 100, false);\r\n }\r\n }\r\n\r\n public componentDidMount() {\r\n if (this.props.onNextPage && this.props.infiniteScroll) {\r\n $(window).bind('scroll', this.scrollHandler);\r\n }\r\n }\r\n\r\n public componentWillUnmount() {\r\n if (this.scrollHandler && this.props.infiniteScroll) {\r\n $(window).unbind('scroll', this.scrollHandler);\r\n }\r\n }\r\n\r\n private renderLoadingMessage(): JSX.Element {\r\n var pagingMessage = \"Loading...\";\r\n if (this.state.bots && this.state.bots.length) {\r\n const from = this.state.bots.length;\r\n var to = from + this.props.pageSize;\r\n if (_.isNumber(this.state.totalCount)) {\r\n to = Math.min(this.state.totalCount, to);\r\n pagingMessage = `Loading ${from} to ${to} of ${this.state.totalCount}...`;\r\n } else {\r\n pagingMessage = `Loading ${from} to ${to}`;\r\n }\r\n }\r\n return (
    {pagingMessage}
    );\r\n }\r\n\r\n private renderLoadMoreLink(): JSX.Element {\r\n if (_.isNumber(this.state.totalCount)) {\r\n var curCount = this.state.bots ? this.state.bots.length : 0;\r\n var nextPageSize = this.props.pageSize;\r\n\r\n nextPageSize = Math.min(nextPageSize, this.state.totalCount - curCount);\r\n var linkText = 'Load More';\r\n if (nextPageSize) {\r\n return (\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n return this.renderLoadingMessage();\r\n }\r\n\r\n public render(): JSX.Element {\r\n var paging: JSX.Element = null;\r\n\r\n if (this.props.onNextPage) {\r\n if (this.state.loadingMore) {\r\n paging = this.renderLoadingMessage();\r\n } else {\r\n paging = this.renderLoadMoreLink();\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n

    {this.props.title}

    \r\n {this.renderSortField() }\r\n
    \r\n
    \r\n {this.renderSortField() }\r\n {this.renderBots(this.state.bots) }\r\n {paging}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n private renderSortOption(field: Rest.SortOrder) {\r\n if (field == this.state.sortOrder) {\r\n return ;\r\n }\r\n return ;\r\n }\r\n\r\n private renderSortField(): JSX.Element {\r\n const spec = this.props.sortSpec;\r\n if (!spec) {\r\n return null;\r\n }\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n private handleSortChange(evt: React.FormEvent) {\r\n var target = evt.target as any;\r\n this.props.onSort(target['value']);\r\n }\r\n\r\n private handleScroll() {\r\n var $gallery = $(ReactDOM.findDOMNode(this.refs['gallery']));\r\n var $win = $(window);\r\n var galleryBottom = $gallery.scrollTop() + $gallery.height();\r\n var windowBottom = $win.scrollTop() + $win.height();\r\n if (galleryBottom - windowBottom < PAGING_THRESHOLD && !this.state.loadingMore) {\r\n this.props.onNextPage();\r\n }\r\n }\r\n\r\n private renderBots(bots: Rest.BotDocument[]): JSX.Element {\r\n var items = bots.map(bot => this.renderBot(bot));\r\n return (\r\n
    {items}
    \r\n );\r\n }\r\n\r\n private renderBot(bot: Rest.BotDocument): JSX.Element {\r\n var botDetailsUrl = (this.props.baseUrl || '/') + \"bot?id=\" + bot.Id;\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/BotGalleryControl.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as Rest from '../Generated/ReactUI';\r\nimport {BotImageControl} from \"./BotImageControl\";\r\n\r\nexport interface BotHeaderCardProps extends React.Props {\r\n initialBot: Rest.IBot;\r\n className?: string;\r\n initialCardLinks?: JSX.Element;\r\n transparentBackground?: boolean;\r\n defaultIconUrl: string;\r\n}\r\n\r\nexport interface BotHeaderCardState {\r\n bot: Rest.IBot;\r\n cardLinks?: JSX.Element;\r\n}\r\n\r\nconst leadingHash = new RegExp(\"^#*\");\r\n\r\nexport class BotHeaderCard extends React.Component {\r\n constructor(props : BotHeaderCardProps) {\r\n super(props);\r\n\r\n this.state = {\r\n bot: this.props.initialBot,\r\n cardLinks: props.initialCardLinks\r\n };\r\n }\r\n\r\n private renderHashtags() {\r\n // replace all (including 0) leading '#' with a single '#'\r\n const hashText = this.state.bot.Hashtags.map(tag => tag.replace(leadingHash, \"#\")).join(', ');\r\n return hashText ?
  • {hashText}
  • : null;\r\n }\r\n\r\n public render(): JSX.Element {\r\n\r\n var className = \"grid-card-base bot-card-hero \" + (this.props.className || '');\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n

    {this.state.bot.Name}

    \r\n
    • {this.state.bot.Publisher}
    • {this.renderHashtags() }
    \r\n
    \r\n
    {this.state.cardLinks}
    \r\n {this.props.children}\r\n
    \r\n );\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/BotHeaderCard.tsx","/**\r\n clickable link that prompt user to download a file\r\n crosss platform for browser that doesn't support \r\n */\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport {ProgressBarControl} from \"./ProgressBarControl\";\r\nimport logger from \"../Utils/logger\";\r\nimport {parseUserAgent, KnownBrowsers} from \"../Utils/userAgent\";\r\nimport browserCaps from \"../Utils/browserCaps\";\r\nimport {ProgressRingControl} from \"./ProgressRingControl\";\r\nexport interface DownloadLinkProps extends React.Props {\r\n fileName: string;\r\n pendingDownload?: string;\r\n blobUrl?: string;\r\n downloadBlob?: () => JQueryPromise;\r\n setBlobUrl?: (blobUrl: string) => void;\r\n asButton?: boolean;\r\n}\r\n\r\nexport class DownloadLinkControl extends React.Component {\r\n private pendingDownload = false; \r\n constructor(props: DownloadLinkProps) {\r\n super(props);\r\n }\r\n\r\n private onDownload() {\r\n const fileName = this.props.fileName;\r\n if (this.props.downloadBlob) {\r\n this.pendingDownload = true;\r\n this.props.downloadBlob().then(blob => {\r\n // special work around for Edge browser according to\r\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/7260192/\r\n if (navigator.msSaveBlob) {\r\n navigator.msSaveBlob(blob, this.props.fileName);\r\n } else {\r\n if (browserCaps('a', 'download')) {\r\n let $link = $('').text(fileName)\r\n $link.appendTo($('body'));\r\n let blobUrl = URL.createObjectURL(blob);\r\n $link.attr('download', fileName).attr('href', blobUrl);\r\n $link[0].click();\r\n window.URL.revokeObjectURL(blobUrl);\r\n $link.remove();\r\n } else {\r\n logger.debug('no download support, expect blobUrl property to be set');\r\n }\r\n }\r\n }).always(() => {\r\n this.pendingDownload = false;\r\n this.forceUpdate();\r\n });\r\n this.forceUpdate(); \r\n } else {\r\n logger.debug('now downloadBlob found');\r\n }\r\n }\r\n\r\n private renderDownloadButton() : JSX.Element {\r\n const pending = this.pendingDownload || !!this.props.pendingDownload;\r\n const label = pending ? 'Downloading' : 'Download zip file';\r\n if (this.props.blobUrl) {\r\n return (\r\n \r\n {label}\r\n \r\n );\r\n }\r\n return (\r\n \r\n );\r\n }\r\n\r\n public render(): JSX.Element {\r\n const fileName = this.props.fileName;\r\n if (this.props.asButton) {\r\n return this.renderDownloadButton();\r\n }\r\n\r\n if (this.pendingDownload || this.props.pendingDownload) {\r\n return (\r\n
    \r\n \r\n \r\n
    );\r\n }\r\n\r\n let link = this.props.blobUrl ?\r\n {fileName}\r\n : \r\n {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.onDownload();\r\n } }>{ fileName }\r\n ;\r\n return link;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/DownloadLinkControl.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as $ from \"jquery\";\r\n\r\nexport interface ExpandableTextControlProps {\r\n maxCollapsedLines: number;\r\n expandTitle: string;\r\n collapseTitle: string;\r\n content: string;\r\n className?: string;\r\n}\r\nexport interface ExpandableTextControlState {\r\n expanded: boolean;\r\n expandable: boolean;\r\n singleLine: boolean;\r\n}\r\n\r\nexport class ExpandableTextControl extends React.Component {\r\n constructor(props: ExpandableTextControlProps) {\r\n super(props);\r\n this.state = { expanded: false, expandable: false, singleLine: false };\r\n }\r\n\r\n public componentDidMount() {\r\n var text = $(ReactDOM.findDOMNode(this.refs['root'])).find('>span')[0];\r\n if (text) {\r\n var textHeight = text.scrollHeight;\r\n if (textHeight > $(text).innerHeight()) {\r\n this.setState({expandable: true, expanded: false});\r\n } else {\r\n if (textHeight < parseFloat($(text).css('line-height')) * parseInt($(text).css('font-size')) * 2) {\r\n this.setState({singleLine: true});\r\n }\r\n }\r\n }\r\n }\r\n\r\n public componentWillUnmount() { \r\n }\r\n\r\n private toggle() {\r\n this.setState({expanded: !this.state.expanded});\r\n }\r\n\r\n public render(): JSX.Element {\r\n var more =
    this.toggle()}\r\n >{this.state.expanded ? this.props.collapseTitle : this.props.expandTitle}
    ;\r\n var classes = `${this.props.className || ''} expandable-text ${this.state.expanded ? 'expanded' : 'collapsed'} ${this.state.singleLine ? 'single-line' : ''}`;\r\n return (\r\n
    \r\n {this.props.content}\r\n {more}\r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/ExpandableTextControl.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nexport interface FooterProps extends React.Props {\r\n}\r\n\r\nexport class FooterControl extends React.Component {\r\n constructor(props: FooterProps) {\r\n super(props);\r\n }\r\n \r\n public render() : JSX.Element {\r\n return (\r\n
    \r\n \r\n
    ); \r\n }\r\n} \r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/FooterControl.tsx","/** \r\n * \"Borrowed\" from VSO codebase, https://mseng.visualstudio.com/VSOnline/_git/VSO?path=%2FTfs%2FService%2FWebAccess%2FPresentation%2FScripts%2FTFS%2FComponents%2FFormattedMessage.tsx&version=GBmaster&_a=contents\r\n * A React component conisting of a string \r\n */\r\n\r\nimport * as React from \"react\";\r\n\r\nexport interface IFormattedMessageLink {\r\n /**\r\n * The link message to be displayed.\r\n */\r\n text: string;\r\n /**\r\n * The href for the link.\r\n */\r\n href?: string;\r\n /**\r\n * The target attribute for the link.\r\n */\r\n target?: string;\r\n /**\r\n * The onClick handler for the link action.\r\n */\r\n action?: (event?: React.MouseEvent) => void;\r\n /**\r\n * The role attribute to be applied to the anchor element.\r\n * If none is provided, role is \"button\"\" if action is present, \"link\" otherwise.\r\n */\r\n role?: string;\r\n}\r\n\r\nexport interface IFormattedMessageProps {\r\n /**\r\n * The message to be formatted with {#} substitutions.\r\n */\r\n message: string;\r\n /**\r\n * The links to be substituted in their respective {index} position into the message.\r\n */\r\n links?: IFormattedMessageLink[];\r\n /**\r\n * A class that is applied to the base span.\r\n */\r\n className?: string;\r\n}\r\n\r\nconst splitRegex = /({\\d+})/g;\r\nconst matchRegex = /{(\\d+)}/;\r\n\r\nexport var FormattedMessage: React.StatelessComponent = (props: IFormattedMessageProps): JSX.Element => {\r\n if (!props.message) {\r\n return null;\r\n }\r\n\r\n if (!props.links || props.links.length === 0) {\r\n return {props.message};\r\n }\r\n\r\n const segments = props.message.split(splitRegex);\r\n let children: JSX.Element[] = segments.map((segment, idx) => {\r\n let matches = segment.match(matchRegex);\r\n if (matches) {\r\n let index = parseInt(matches[1], 10);\r\n if (index >= 0 && index < props.links.length) {\r\n const link = props.links[index];\r\n const role = link.role || (link.action ? \"button\" : \"link\");\r\n return \r\n {link.text}\r\n ;\r\n }\r\n }\r\n\r\n return {segment};\r\n });\r\n\r\n return \r\n {children}\r\n ;\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/FormattedMessage.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport isInFrame from \"../Utils/InFrame\";\r\n\r\nexport interface HeaderProps extends React.Props {\r\n environment: string;\r\n showInFrame?: boolean\r\n}\r\n\r\nexport class HeaderControl extends React.Component {\r\n constructor(props: HeaderProps) {\r\n super(props);\r\n }\r\n\r\n public render(): JSX.Element {\r\n if (!this.props.showInFrame && isInFrame()) {\r\n return null;\r\n }\r\n var environmentDisplay: JSX.Element = null;\r\n\r\n if (this.props.environment != 'prod') {\r\n environmentDisplay = {'[ ' + this.props.environment + ' environment ]'}\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n {environmentDisplay}\r\n {this.props.children}\r\n
    \r\n
    \r\n
    );\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/HeaderControl.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nexport interface SiteStatusProps extends React.Props {\r\n cdnEndpoint: string;\r\n className?: string;\r\n}\r\n\r\nexport class SiteStatusControl extends React.Component {\r\n constructor(props: SiteStatusProps) {\r\n super(props);\r\n }\r\n \r\n public render(): JSX.Element {\r\n return (\r\n
    \r\n \r\n {this.props.children}\r\n
    ); \r\n }\r\n} \r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/SiteStatusControl.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nexport interface SortableListProps extends React.Props> {\r\n itemTemplate(data: T): JSX.Element;\r\n getItemId(item: T): string;\r\n prepend(src: T, target: T) : void;\r\n data: T[]\r\n}\r\n\r\n\r\nexport class SortableListControl extends React.Component, any> {\r\n constructor(props: SortableListProps) {\r\n super(props);\r\n }\r\n\r\n private dragOver(x: React.DragEvent, item: T) {\r\n x.dataTransfer.dropEffect = 'move';\r\n x.preventDefault();\r\n }\r\n\r\n private dropAt(x: React.DragEvent, target: T) {\r\n x.preventDefault();\r\n x.dataTransfer.dropEffect = \"move\"\r\n const srcId = x.dataTransfer.getData('source');\r\n const src = _.find(this.props.data, item => srcId === this.props.getItemId(item));\r\n const targetId = this.props.getItemId(target);\r\n //console.log(`move item ${src['Name'] || srcId} in front of ${target['Name'] || targetId}`);\r\n this.props.prepend(src, target);\r\n }\r\n\r\n private startDrag(x: React.DragEvent, item: T) {\r\n x.dataTransfer.setData('source', this.props.getItemId(item));\r\n x.dataTransfer.effectAllowed = \"move\";\r\n }\r\n\r\n public render() : JSX.Element {\r\n return (\r\n
      \r\n {\r\n _.map(this.props.data, (item: T) =>\r\n (
    • this.startDrag(x, item) }\r\n onDrop={x => this.dropAt(x, item) }\r\n onDragOver={ x => this.dragOver(x, item) }\r\n >\r\n { this.props.itemTemplate(item) }\r\n
    • ))\r\n }\r\n
    );\r\n }\r\n} \r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/SortableListControl.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport timestamp from \"../Utils/timestamp\";\r\n\r\nexport interface TimestampProps\r\n extends React.Props {\r\n time: Date;\r\n}\r\n\r\nlet timestamps: TimestampControl[] = [];\r\nlet interval: number = undefined;\r\n\r\nfunction watchTimestamp(control: TimestampControl): void {\r\n timestamps.push(control);\r\n if (_.isUndefined(interval)) {\r\n interval = setInterval(() => {\r\n timestamps.forEach(x => x.forceUpdate());\r\n }, 30000); \r\n }\r\n}\r\n\r\nfunction unwatchTimestamp(control: TimestampControl): void {\r\n timestamps = timestamps.filter(x => x != control);\r\n if (!timestamps.length) {\r\n if (!_.isUndefined(interval)) {\r\n clearInterval(interval);\r\n interval = undefined;\r\n }\r\n }\r\n}\r\n\r\nexport class TimestampControl extends React.Component {\r\n private span: HTMLSpanElement;\r\n\r\n constructor(props: TimestampProps) {\r\n super(props);\r\n }\r\n\r\n public componentDidMount() {\r\n watchTimestamp(this);\r\n }\r\n\r\n public componentWillUnmount() {\r\n unwatchTimestamp(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n this.span = x}>{timestamp(this.props.time)[0]}\r\n ); \r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/TimestampControl.tsx","///\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { Environment } from \"../../Utils/Environment\";\r\n\r\nexport class FooterControlProps {\r\n scrollingClass?: string;\r\n fixed?: boolean;\r\n tosUrl?: string;\r\n}\r\n\r\nexport interface FooterControlState {\r\n fixed?: boolean;\r\n wantUpdates?: boolean;\r\n}\r\n\r\nexport class FooterControl extends React.Component {\r\n fixed: HTMLElement;\r\n floating: HTMLElement;\r\n base: HTMLElement;\r\n scrollHandler: any;\r\n scrollingElement: JQuery;\r\n\r\n constructor(props: FooterControlProps) {\r\n super(props);\r\n this.state = {\r\n fixed: this.props.fixed,\r\n wantUpdates: !this.props.hasOwnProperty(\"fixed\")\r\n }\r\n }\r\n\r\n public static defaultProps: Partial = {\r\n tosUrl: '//aka.ms/bf-terms'\r\n };\r\n\r\n private initFixed(element: HTMLElement) {\r\n this.fixed = element;\r\n this.initCommon();\r\n }\r\n\r\n private initFloating(element: HTMLElement) {\r\n this.floating = element;\r\n this.initCommon();\r\n }\r\n\r\n private initBase(element: HTMLElement) {\r\n this.base = element;\r\n this.initCommon();\r\n }\r\n\r\n private initCommon() {\r\n if (this.state.wantUpdates && this.base && this.fixed && this.floating) {\r\n if (this.props.scrollingClass) {\r\n this.scrollingElement = $(this.props.scrollingClass);\r\n }\r\n else {\r\n this.scrollingElement = $(this.base).parent();\r\n }\r\n if (this.scrollingElement) {\r\n this.scrollHandler = _.debounce(() => this.update(), 50, false);\r\n this.scrollingElement.on(\"scroll\", this.scrollHandler);\r\n window.addEventListener(\"resize\", this.scrollHandler);\r\n this.update();\r\n }\r\n }\r\n }\r\n\r\n public update() {\r\n if (!this.state.wantUpdates || !this.floating || !this.fixed || !this.base)\r\n return;\r\n let prev = $(this.base).prev();\r\n let footer = $(this.floating);\r\n if (footer && prev && prev.offset()) {\r\n // Get the vertical offset to the bottom of the non-fixed footer.\r\n let prevTop = prev.offset().top;\r\n let prevHeight = prev.outerHeight();\r\n let footerHeight = footer.outerHeight();\r\n let padding = 20; // There is a mystery gap in the measurement calculation. This compensates for it.\r\n if (window.innerHeight - (prevTop + prevHeight + footerHeight + padding) > 0) {\r\n // If the footer is completely visible, show as fixed.\r\n this.showFixed();\r\n } else {\r\n // If the footer is at all below the window edge, show non-fixed.\r\n this.showFloating();\r\n }\r\n } else {\r\n // Default to fixed until we have everything we need in order to do the calculation above.\r\n this.showFixed();\r\n }\r\n }\r\n\r\n private showFloating() {\r\n if (this.state.fixed)\r\n this.setState({fixed: false});\r\n }\r\n\r\n private showFixed() {\r\n if (!this.state.fixed)\r\n this.setState({fixed: true});\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener(\"resize\", this.scrollHandler);\r\n if (this.scrollingElement) {\r\n this.scrollingElement.off(\"scroll\", this.scrollHandler);\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n // Hide the entire footer in Ibiza\r\n if (Environment.isInBotFrameworkAzureExtension) {\r\n return null;\r\n }\r\n\r\n const additional = [\r\n Environment.isInAzurePortal ? null :
  • Terms of use
  • \r\n ];\r\n const content = [\r\n \r\n ]\r\n\r\n const fixedDisplay = (this.state.fixed ? \"block\" : \"none\");\r\n const floatingDisplay = (this.state.fixed ? \"none\" : \"block\");\r\n return (\r\n
    this.initBase(x)}>\r\n
    this.initFixed(x)}>{content}
    \r\n
    this.initFloating(x)}>{content}
    \r\n
    \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/v4/FooterControl.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport isInFrame from \"../../Utils/InFrame\";\r\nimport { Environment } from \"../../Utils/Environment\";\r\nimport { RuntimeConnectedShade } from \"./RuntimeConnectedShade\";\r\n\r\nexport interface HeaderProps extends React.Props {\r\n environment: string;\r\n smallHeader: boolean;\r\n showMainNavLink: boolean;\r\n showInFrame?: boolean;\r\n features: string[];\r\n smallHeaderNavHandler?: (index: SmallHeaderNavLinks) => void;\r\n}\r\n\r\nexport enum SmallHeaderNavLinks {\r\n root,\r\n mybots,\r\n documentation,\r\n blog,\r\n register,\r\n create\r\n}\r\n\r\nexport class HeaderControl extends React.Component {\r\n constructor(props: HeaderProps) {\r\n super(props);\r\n }\r\n\r\n public render(): JSX.Element {\r\n // Hide the header in Ibiza\r\n if (Environment.isInBotFrameworkAzureExtension) {\r\n return null;\r\n }\r\n\r\n if (!this.props.showInFrame && isInFrame()) {\r\n return null;\r\n }\r\n var environmentDisplay: JSX.Element = null;\r\n\r\n if (this.props.environment && this.props.environment != 'prod') {\r\n environmentDisplay = {'[ ' + this.props.environment + ' environment ]'}\r\n }\r\n\r\n let mainNavLink = (this.props.showMainNavLink)\r\n ? { e.preventDefault();}}>Bot Framework\r\n : null;\r\n\r\n if (this.props.smallHeader) {\r\n const botsClick = (ev: React.MouseEvent) => {\r\n ev.preventDefault();\r\n this.props.smallHeaderNavHandler(SmallHeaderNavLinks.mybots);\r\n }\r\n const documentationClick = (ev: React.MouseEvent) => {\r\n ev.preventDefault();\r\n this.props.smallHeaderNavHandler(SmallHeaderNavLinks.documentation);\r\n }\r\n const blogClick = (ev: React.MouseEvent) => {\r\n ev.preventDefault();\r\n this.props.smallHeaderNavHandler(SmallHeaderNavLinks.blog);\r\n }\r\n return (\r\n
    \r\n {mainNavLink}\r\n My bots\r\n Documentation\r\n Blog\r\n {environmentDisplay}\r\n {this.props.children}\r\n \r\n
    \r\n );\r\n } else {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n {environmentDisplay}\r\n {this.props.children}\r\n
    \r\n
    \r\n \r\n
    );\r\n }\r\n }\r\n\r\n private onShadeVisibilityChanged = (b: boolean) => {\r\n console.log(\"Shader changed!!\", b);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/v4/HeaderControl.tsx","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { resourceStrings } from \"../Strings\";\r\nimport isInFrame from \"../../Utils/InFrame\";\r\nimport { RuntimeConnectedShade } from \"./RuntimeConnectedShade\";\r\n\r\nexport enum NavLinks {\r\n root,\r\n mybots,\r\n docs,\r\n directory,\r\n blog,\r\n admin,\r\n reviewbots\r\n}\r\n\r\nexport interface JumboHeadProps extends React.Props {\r\n navLinks: string[];\r\n rootUrl: string;\r\n defaultLink: NavLinks;\r\n isRoutable: (url: string) => boolean;\r\n hideDirectory: boolean;\r\n showFrame?: boolean;\r\n className?: string;\r\n}\r\n\r\n//these should be kept in sync with the NavLinks enumeration\r\nconst navLinkNames = ['', 'My bots', 'Documentation', 'Bot Directory', 'Blog'];\r\nconst navLinkAriaLabel = ['', 'My bots', 'Bot Service documentation', 'Bot Directory', 'Blog'];\r\n\r\nexport function getLinkDisplayText(navLink: NavLinks): string {\r\n return navLinkNames[navLink];\r\n}\r\n\r\nexport function normalizeExternalRouteUrl(root: string, route: string): string {\r\n if (root && root.length) {\r\n if (root.charAt(root.length - 1) !== '/') {\r\n return `${root}/${route}`;\r\n } else {\r\n return `${root}${route}`;\r\n }\r\n }\r\n return route;\r\n}\r\n\r\nexport class JumboHeadControl extends React.Component {\r\n private toggleNavList() {\r\n $(ReactDOM.findDOMNode(this.refs['navList'])).toggleClass('expand');\r\n }\r\n\r\n public render(): JSX.Element { \r\n if (!this.props.showFrame && isInFrame()) {\r\n return null;\r\n }\r\n let rootUrlClassName = this.props.isRoutable(this.props.rootUrl) ? \"appnav\" : null;\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/v4/JumboHeadControl.tsx","import * as React from \"react\";\r\n\r\nexport type TooltipParagraphProps = React.HTMLAttributes & {\r\n toggleTip(tip: JSX.Element, anchor: HTMLElement): void,\r\n tip: JSX.Element\r\n};\r\n\r\nexport const TooltipParagrah : React.SFC = props => {\r\n let {tip, className, children, ...pProps} = props;\r\n let tipParagraph = (\r\n

    \r\n {children}\r\n {\r\n props.toggleTip \r\n ? \r\n : null\r\n }\r\n

    );\r\n return tipParagraph;\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/v4/TooltipParagraph.tsx","export * from './FooterControl';\r\nexport * from './HeaderControl';\r\nexport * from './JumboHeadControl';\r\nexport * from './RuntimeConnectedShade';\r\nexport * from \"./TooltipParagraph\";\n\n\n// WEBPACK FOOTER //\n// ./../Intercom.ReactUI/Views/v4/index.ts","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@babel/runtime/helpers/interopRequireDefault.js\n// module id = 505\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/create.js\n// module id = 506\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/define-property.js\n// module id = 507\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/get-own-property-descriptor.js\n// module id = 508\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/keys.js\n// module id = 509\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/set-prototype-of.js\n// module id = 510\n// module chunks = 0","\"use strict\";\n\nvar _Object$assign = require(\"babel-runtime/core-js/object/assign\")[\"default\"];\n\nexports[\"default\"] = _Object$assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nexports.__esModule = true;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/extends.js\n// module id = 511\n// module chunks = 0","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/$.core').Object.assign;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/assign.js\n// module id = 512\n// module chunks = 0","var $ = require('../../modules/$');\nmodule.exports = function create(P, D){\n return $.create(P, D);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/create.js\n// module id = 513\n// module chunks = 0","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-runtime/~/core-js/library/fn/object/define-property.js\n// module id = 514\n// module chunks = 0","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-runtime/~/core-js/library/fn/object/get-own-property-descriptor.js\n// module id = 515\n// module chunks = 0","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/$.core').Object.keys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/keys.js\n// module id = 516\n// module chunks = 0","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.setPrototypeOf;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/set-prototype-of.js\n// module id = 517\n// module chunks = 0","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-runtime/~/core-js/library/modules/$.a-function.js\n// module id = 518\n// module chunks = 0","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-runtime/~/core-js/library/modules/$.an-object.js\n// module id = 519\n// module chunks = 0","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-runtime/~/core-js/library/modules/$.cof.js\n// module id = 520\n// module chunks = 0","// 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-runtime/~/core-js/library/modules/$.global.js\n// module id = 521\n// module chunks = 0","// 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-runtime/~/core-js/library/modules/$.object-assign.js\n// module id = 522\n// module chunks = 0","// 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-runtime/~/core-js/library/modules/$.set-proto.js\n// module id = 523\n// module chunks = 0","// 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-runtime/~/core-js/library/modules/$.to-iobject.js\n// module id = 524\n// module chunks = 0","// 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-runtime/~/core-js/library/modules/es6.object.assign.js\n// module id = 525\n// module chunks = 0","// 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-runtime/~/core-js/library/modules/es6.object.get-own-property-descriptor.js\n// module id = 526\n// module chunks = 0","// 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-runtime/~/core-js/library/modules/es6.object.keys.js\n// module id = 527\n// module chunks = 0","// 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-runtime/~/core-js/library/modules/es6.object.set-prototype-of.js\n// module id = 528\n// module chunks = 0","/*!\n * Bowser - a browser detector\n * https://github.com/ded/bowser\n * MIT License | (c) Dustin Diaz 2015\n */\n\n!function (root, name, definition) {\n if (typeof module != 'undefined' && module.exports) module.exports = definition()\n else if (typeof define == 'function' && define.amd) define(name, definition)\n else root[name] = definition()\n}(this, 'bowser', function () {\n /**\n * See useragents.js for examples of navigator.userAgent\n */\n\n var t = true\n\n function detect(ua) {\n\n function getFirstMatch(regex) {\n var match = ua.match(regex);\n return (match && match.length > 1 && match[1]) || '';\n }\n\n function getSecondMatch(regex) {\n var match = ua.match(regex);\n return (match && match.length > 1 && match[2]) || '';\n }\n\n var iosdevice = getFirstMatch(/(ipod|iphone|ipad)/i).toLowerCase()\n , likeAndroid = /like android/i.test(ua)\n , android = !likeAndroid && /android/i.test(ua)\n , nexusMobile = /nexus\\s*[0-6]\\s*/i.test(ua)\n , nexusTablet = !nexusMobile && /nexus\\s*[0-9]+/i.test(ua)\n , chromeos = /CrOS/.test(ua)\n , silk = /silk/i.test(ua)\n , sailfish = /sailfish/i.test(ua)\n , tizen = /tizen/i.test(ua)\n , webos = /(web|hpw)os/i.test(ua)\n , windowsphone = /windows phone/i.test(ua)\n , samsungBrowser = /SamsungBrowser/i.test(ua)\n , windows = !windowsphone && /windows/i.test(ua)\n , mac = !iosdevice && !silk && /macintosh/i.test(ua)\n , linux = !android && !sailfish && !tizen && !webos && /linux/i.test(ua)\n , edgeVersion = getFirstMatch(/edge\\/(\\d+(\\.\\d+)?)/i)\n , versionIdentifier = getFirstMatch(/version\\/(\\d+(\\.\\d+)?)/i)\n , tablet = /tablet/i.test(ua) && !/tablet pc/i.test(ua)\n , mobile = !tablet && /[^-]mobi/i.test(ua)\n , xbox = /xbox/i.test(ua)\n , result\n\n if (/opera/i.test(ua)) {\n // an old Opera\n result = {\n name: 'Opera'\n , opera: t\n , version: versionIdentifier || getFirstMatch(/(?:opera|opr|opios)[\\s\\/](\\d+(\\.\\d+)?)/i)\n }\n } else if (/opr|opios/i.test(ua)) {\n // a new Opera\n result = {\n name: 'Opera'\n , opera: t\n , version: getFirstMatch(/(?:opr|opios)[\\s\\/](\\d+(\\.\\d+)?)/i) || versionIdentifier\n }\n }\n else if (/SamsungBrowser/i.test(ua)) {\n result = {\n name: 'Samsung Internet for Android'\n , samsungBrowser: t\n , version: versionIdentifier || getFirstMatch(/(?:SamsungBrowser)[\\s\\/](\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/coast/i.test(ua)) {\n result = {\n name: 'Opera Coast'\n , coast: t\n , version: versionIdentifier || getFirstMatch(/(?:coast)[\\s\\/](\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/yabrowser/i.test(ua)) {\n result = {\n name: 'Yandex Browser'\n , yandexbrowser: t\n , version: versionIdentifier || getFirstMatch(/(?:yabrowser)[\\s\\/](\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/ucbrowser/i.test(ua)) {\n result = {\n name: 'UC Browser'\n , ucbrowser: t\n , version: getFirstMatch(/(?:ucbrowser)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/mxios/i.test(ua)) {\n result = {\n name: 'Maxthon'\n , maxthon: t\n , version: getFirstMatch(/(?:mxios)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/epiphany/i.test(ua)) {\n result = {\n name: 'Epiphany'\n , epiphany: t\n , version: getFirstMatch(/(?:epiphany)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/puffin/i.test(ua)) {\n result = {\n name: 'Puffin'\n , puffin: t\n , version: getFirstMatch(/(?:puffin)[\\s\\/](\\d+(?:\\.\\d+)?)/i)\n }\n }\n else if (/sleipnir/i.test(ua)) {\n result = {\n name: 'Sleipnir'\n , sleipnir: t\n , version: getFirstMatch(/(?:sleipnir)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/k-meleon/i.test(ua)) {\n result = {\n name: 'K-Meleon'\n , kMeleon: t\n , version: getFirstMatch(/(?:k-meleon)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (windowsphone) {\n result = {\n name: 'Windows Phone'\n , windowsphone: t\n }\n if (edgeVersion) {\n result.msedge = t\n result.version = edgeVersion\n }\n else {\n result.msie = t\n result.version = getFirstMatch(/iemobile\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/msie|trident/i.test(ua)) {\n result = {\n name: 'Internet Explorer'\n , msie: t\n , version: getFirstMatch(/(?:msie |rv:)(\\d+(\\.\\d+)?)/i)\n }\n } else if (chromeos) {\n result = {\n name: 'Chrome'\n , chromeos: t\n , chromeBook: t\n , chrome: t\n , version: getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.\\d+)?)/i)\n }\n } else if (/chrome.+? edge/i.test(ua)) {\n result = {\n name: 'Microsoft Edge'\n , msedge: t\n , version: edgeVersion\n }\n }\n else if (/vivaldi/i.test(ua)) {\n result = {\n name: 'Vivaldi'\n , vivaldi: t\n , version: getFirstMatch(/vivaldi\\/(\\d+(\\.\\d+)?)/i) || versionIdentifier\n }\n }\n else if (sailfish) {\n result = {\n name: 'Sailfish'\n , sailfish: t\n , version: getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/seamonkey\\//i.test(ua)) {\n result = {\n name: 'SeaMonkey'\n , seamonkey: t\n , version: getFirstMatch(/seamonkey\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/firefox|iceweasel|fxios/i.test(ua)) {\n result = {\n name: 'Firefox'\n , firefox: t\n , version: getFirstMatch(/(?:firefox|iceweasel|fxios)[ \\/](\\d+(\\.\\d+)?)/i)\n }\n if (/\\((mobile|tablet);[^\\)]*rv:[\\d\\.]+\\)/i.test(ua)) {\n result.firefoxos = t\n }\n }\n else if (silk) {\n result = {\n name: 'Amazon Silk'\n , silk: t\n , version : getFirstMatch(/silk\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/phantom/i.test(ua)) {\n result = {\n name: 'PhantomJS'\n , phantom: t\n , version: getFirstMatch(/phantomjs\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/slimerjs/i.test(ua)) {\n result = {\n name: 'SlimerJS'\n , slimer: t\n , version: getFirstMatch(/slimerjs\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/blackberry|\\bbb\\d+/i.test(ua) || /rim\\stablet/i.test(ua)) {\n result = {\n name: 'BlackBerry'\n , blackberry: t\n , version: versionIdentifier || getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (webos) {\n result = {\n name: 'WebOS'\n , webos: t\n , version: versionIdentifier || getFirstMatch(/w(?:eb)?osbrowser\\/(\\d+(\\.\\d+)?)/i)\n };\n /touchpad\\//i.test(ua) && (result.touchpad = t)\n }\n else if (/bada/i.test(ua)) {\n result = {\n name: 'Bada'\n , bada: t\n , version: getFirstMatch(/dolfin\\/(\\d+(\\.\\d+)?)/i)\n };\n }\n else if (tizen) {\n result = {\n name: 'Tizen'\n , tizen: t\n , version: getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.\\d+)?)/i) || versionIdentifier\n };\n }\n else if (/qupzilla/i.test(ua)) {\n result = {\n name: 'QupZilla'\n , qupzilla: t\n , version: getFirstMatch(/(?:qupzilla)[\\s\\/](\\d+(?:\\.\\d+)+)/i) || versionIdentifier\n }\n }\n else if (/chromium/i.test(ua)) {\n result = {\n name: 'Chromium'\n , chromium: t\n , version: getFirstMatch(/(?:chromium)[\\s\\/](\\d+(?:\\.\\d+)?)/i) || versionIdentifier\n }\n }\n else if (/chrome|crios|crmo/i.test(ua)) {\n result = {\n name: 'Chrome'\n , chrome: t\n , version: getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (android) {\n result = {\n name: 'Android'\n , version: versionIdentifier\n }\n }\n else if (/safari|applewebkit/i.test(ua)) {\n result = {\n name: 'Safari'\n , safari: t\n }\n if (versionIdentifier) {\n result.version = versionIdentifier\n }\n }\n else if (iosdevice) {\n result = {\n name : iosdevice == 'iphone' ? 'iPhone' : iosdevice == 'ipad' ? 'iPad' : 'iPod'\n }\n // WTF: version is not part of user agent in web apps\n if (versionIdentifier) {\n result.version = versionIdentifier\n }\n }\n else if(/googlebot/i.test(ua)) {\n result = {\n name: 'Googlebot'\n , googlebot: t\n , version: getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i) || versionIdentifier\n }\n }\n else {\n result = {\n name: getFirstMatch(/^(.*)\\/(.*) /),\n version: getSecondMatch(/^(.*)\\/(.*) /)\n };\n }\n\n // set webkit or gecko flag for browsers based on these engines\n if (!result.msedge && /(apple)?webkit/i.test(ua)) {\n if (/(apple)?webkit\\/537\\.36/i.test(ua)) {\n result.name = result.name || \"Blink\"\n result.blink = t\n } else {\n result.name = result.name || \"Webkit\"\n result.webkit = t\n }\n if (!result.version && versionIdentifier) {\n result.version = versionIdentifier\n }\n } else if (!result.opera && /gecko\\//i.test(ua)) {\n result.name = result.name || \"Gecko\"\n result.gecko = t\n result.version = result.version || getFirstMatch(/gecko\\/(\\d+(\\.\\d+)?)/i)\n }\n\n // set OS flags for platforms that have multiple browsers\n if (!result.windowsphone && !result.msedge && (android || result.silk)) {\n result.android = t\n } else if (!result.windowsphone && !result.msedge && iosdevice) {\n result[iosdevice] = t\n result.ios = t\n } else if (mac) {\n result.mac = t\n } else if (xbox) {\n result.xbox = t\n } else if (windows) {\n result.windows = t\n } else if (linux) {\n result.linux = t\n }\n\n function getWindowsVersion (s) {\n switch (s) {\n case 'NT': return 'NT'\n case 'XP': return 'XP'\n case 'NT 5.0': return '2000'\n case 'NT 5.1': return 'XP'\n case 'NT 5.2': return '2003'\n case 'NT 6.0': return 'Vista'\n case 'NT 6.1': return '7'\n case 'NT 6.2': return '8'\n case 'NT 6.3': return '8.1'\n case 'NT 10.0': return '10'\n default: return undefined\n }\n }\n \n // OS version extraction\n var osVersion = '';\n if (result.windows) {\n osVersion = getWindowsVersion(getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i))\n } else if (result.windowsphone) {\n osVersion = getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i);\n } else if (result.mac) {\n osVersion = getFirstMatch(/Mac OS X (\\d+([_\\.\\s]\\d+)*)/i);\n osVersion = osVersion.replace(/[_\\s]/g, '.');\n } else if (iosdevice) {\n osVersion = getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i);\n osVersion = osVersion.replace(/[_\\s]/g, '.');\n } else if (android) {\n osVersion = getFirstMatch(/android[ \\/-](\\d+(\\.\\d+)*)/i);\n } else if (result.webos) {\n osVersion = getFirstMatch(/(?:web|hpw)os\\/(\\d+(\\.\\d+)*)/i);\n } else if (result.blackberry) {\n osVersion = getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i);\n } else if (result.bada) {\n osVersion = getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i);\n } else if (result.tizen) {\n osVersion = getFirstMatch(/tizen[\\/\\s](\\d+(\\.\\d+)*)/i);\n }\n if (osVersion) {\n result.osversion = osVersion;\n }\n\n // device type extraction\n var osMajorVersion = !result.windows && osVersion.split('.')[0];\n if (\n tablet\n || nexusTablet\n || iosdevice == 'ipad'\n || (android && (osMajorVersion == 3 || (osMajorVersion >= 4 && !mobile)))\n || result.silk\n ) {\n result.tablet = t\n } else if (\n mobile\n || iosdevice == 'iphone'\n || iosdevice == 'ipod'\n || android\n || nexusMobile\n || result.blackberry\n || result.webos\n || result.bada\n ) {\n result.mobile = t\n }\n\n // Graded Browser Support\n // http://developer.yahoo.com/yui/articles/gbs\n if (result.msedge ||\n (result.msie && result.version >= 10) ||\n (result.yandexbrowser && result.version >= 15) ||\n\t\t (result.vivaldi && result.version >= 1.0) ||\n (result.chrome && result.version >= 20) ||\n (result.samsungBrowser && result.version >= 4) ||\n (result.firefox && result.version >= 20.0) ||\n (result.safari && result.version >= 6) ||\n (result.opera && result.version >= 10.0) ||\n (result.ios && result.osversion && result.osversion.split(\".\")[0] >= 6) ||\n (result.blackberry && result.version >= 10.1)\n || (result.chromium && result.version >= 20)\n ) {\n result.a = t;\n }\n else if ((result.msie && result.version < 10) ||\n (result.chrome && result.version < 20) ||\n (result.firefox && result.version < 20.0) ||\n (result.safari && result.version < 6) ||\n (result.opera && result.version < 10.0) ||\n (result.ios && result.osversion && result.osversion.split(\".\")[0] < 6)\n || (result.chromium && result.version < 20)\n ) {\n result.c = t\n } else result.x = t\n\n return result\n }\n\n var bowser = detect(typeof navigator !== 'undefined' ? navigator.userAgent || '' : '')\n\n bowser.test = function (browserList) {\n for (var i = 0; i < browserList.length; ++i) {\n var browserItem = browserList[i];\n if (typeof browserItem=== 'string') {\n if (browserItem in bowser) {\n return true;\n }\n }\n }\n return false;\n }\n\n /**\n * Get version precisions count\n *\n * @example\n * getVersionPrecision(\"1.10.3\") // 3\n *\n * @param {string} version\n * @return {number}\n */\n function getVersionPrecision(version) {\n return version.split(\".\").length;\n }\n\n /**\n * Array::map polyfill\n *\n * @param {Array} arr\n * @param {Function} iterator\n * @return {Array}\n */\n function map(arr, iterator) {\n var result = [], i;\n if (Array.prototype.map) {\n return Array.prototype.map.call(arr, iterator);\n }\n for (i = 0; i < arr.length; i++) {\n result.push(iterator(arr[i]));\n }\n return result;\n }\n\n /**\n * Calculate browser version weight\n *\n * @example\n * compareVersions(['1.10.2.1', '1.8.2.1.90']) // 1\n * compareVersions(['1.010.2.1', '1.09.2.1.90']); // 1\n * compareVersions(['1.10.2.1', '1.10.2.1']); // 0\n * compareVersions(['1.10.2.1', '1.0800.2']); // -1\n *\n * @param {Array} versions versions to compare\n * @return {Number} comparison result\n */\n function compareVersions(versions) {\n // 1) get common precision for both versions, for example for \"10.0\" and \"9\" it should be 2\n var precision = Math.max(getVersionPrecision(versions[0]), getVersionPrecision(versions[1]));\n var chunks = map(versions, function (version) {\n var delta = precision - getVersionPrecision(version);\n\n // 2) \"9\" -> \"9.0\" (for precision = 2)\n version = version + new Array(delta + 1).join(\".0\");\n\n // 3) \"9.0\" -> [\"000000000\"\", \"000000009\"]\n return map(version.split(\".\"), function (chunk) {\n return new Array(20 - chunk.length).join(\"0\") + chunk;\n }).reverse();\n });\n\n // iterate in reverse order by reversed chunks array\n while (--precision >= 0) {\n // 4) compare: \"000000009\" > \"000000010\" = false (but \"9\" > \"10\" = true)\n if (chunks[0][precision] > chunks[1][precision]) {\n return 1;\n }\n else if (chunks[0][precision] === chunks[1][precision]) {\n if (precision === 0) {\n // all version chunks are same\n return 0;\n }\n }\n else {\n return -1;\n }\n }\n }\n\n /**\n * Check if browser is unsupported\n *\n * @example\n * bowser.isUnsupportedBrowser({\n * msie: \"10\",\n * firefox: \"23\",\n * chrome: \"29\",\n * safari: \"5.1\",\n * opera: \"16\",\n * phantom: \"534\"\n * });\n *\n * @param {Object} minVersions map of minimal version to browser\n * @param {Boolean} [strictMode = false] flag to return false if browser wasn't found in map\n * @param {String} [ua] user agent string\n * @return {Boolean}\n */\n function isUnsupportedBrowser(minVersions, strictMode, ua) {\n var _bowser = bowser;\n\n // make strictMode param optional with ua param usage\n if (typeof strictMode === 'string') {\n ua = strictMode;\n strictMode = void(0);\n }\n\n if (strictMode === void(0)) {\n strictMode = false;\n }\n if (ua) {\n _bowser = detect(ua);\n }\n\n var version = \"\" + _bowser.version;\n for (var browser in minVersions) {\n if (minVersions.hasOwnProperty(browser)) {\n if (_bowser[browser]) {\n if (typeof minVersions[browser] !== 'string') {\n throw new Error('Browser version in the minVersion map should be a string: ' + browser + ': ' + String(minVersions));\n }\n\n // browser version and min supported version.\n return compareVersions([version, minVersions[browser]]) < 0;\n }\n }\n }\n\n return strictMode; // not found\n }\n\n /**\n * Check if browser is supported\n *\n * @param {Object} minVersions map of minimal version to browser\n * @param {Boolean} [strictMode = false] flag to return false if browser wasn't found in map\n * @param {String} [ua] user agent string\n * @return {Boolean}\n */\n function check(minVersions, strictMode, ua) {\n return !isUnsupportedBrowser(minVersions, strictMode, ua);\n }\n\n bowser.isUnsupportedBrowser = isUnsupportedBrowser;\n bowser.compareVersions = compareVersions;\n bowser.check = check;\n\n /*\n * Set our detect method to the main bowser object so we can\n * reuse it to test other user agents.\n * This is needed to implement future tests.\n */\n bowser._detect = detect;\n\n return bowser\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bowser/src/bowser.js\n// module id = 529\n// module chunks = 0","/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\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 * * 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 * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. 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 THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (acequire, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof acequirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _acequire = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && acequire.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar acequire = function(module, callback) {\n var packagedModule = _acequire(\"\", module, callback);\n if (packagedModule == undefined && acequire.original)\n return acequire.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin acequires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative acequires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _acequire(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.acequire || !root.acequire.packaged) {\n acequire.original = root.acequire;\n root.acequire = acequire;\n root.acequire.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\n var real = {\n exec: RegExp.prototype.exec,\n test: RegExp.prototype.test,\n match: String.prototype.match,\n replace: String.prototype.replace,\n split: String.prototype.split\n },\n compliantExecNpcg = real.exec.call(/()??/, \"\")[1] === undefined, // check `exec` handling of nonparticipating capturing groups\n compliantLastIndexIncrement = function () {\n var x = /^/g;\n real.test.call(x, \"\");\n return !x.lastIndex;\n }();\n\n if (compliantLastIndexIncrement && compliantExecNpcg)\n return;\n RegExp.prototype.exec = function (str) {\n var match = real.exec.apply(this, arguments),\n name, r2;\n if ( typeof(str) == 'string' && match) {\n if (!compliantExecNpcg && match.length > 1 && indexOf(match, \"\") > -1) {\n r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), \"g\", \"\"));\n real.replace.call(str.slice(match.index), r2, function () {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined)\n match[i] = undefined;\n }\n });\n }\n if (this._xregexp && this._xregexp.captureNames) {\n for (var i = 1; i < match.length; i++) {\n name = this._xregexp.captureNames[i - 1];\n if (name)\n match[name] = match[i];\n }\n }\n if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n }\n return match;\n };\n if (!compliantLastIndexIncrement) {\n RegExp.prototype.test = function (str) {\n var match = real.exec.call(this, str);\n if (match && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n return !!match;\n };\n }\n\n function getNativeFlags (regex) {\n return (regex.global ? \"g\" : \"\") +\n (regex.ignoreCase ? \"i\" : \"\") +\n (regex.multiline ? \"m\" : \"\") +\n (regex.extended ? \"x\" : \"\") + // Proposed for ES4; included in AS3\n (regex.sticky ? \"y\" : \"\");\n }\n\n function indexOf (array, item, from) {\n if (Array.prototype.indexOf) // Use the native array method if available\n return array.indexOf(item, from);\n for (var i = from || 0; i < array.length; i++) {\n if (array[i] === item)\n return i;\n }\n return -1;\n }\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n Function.prototype.bind = function bind(that) { // .length is 1\n var target = this;\n if (typeof target != \"function\") {\n throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n }\n var args = slice.call(arguments, 1); // for normal call\n var bound = function () {\n\n if (this instanceof bound) {\n\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n\n }\n\n };\n if(target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n return bound;\n };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n if(function() { // test IE < 9 to splice bug - see issue #138\n function makeArray(l) {\n var a = new Array(l+2);\n a[0] = a[1] = 0;\n return a;\n }\n var array = [], lengthBefore;\n \n array.splice.apply(array, makeArray(20));\n array.splice.apply(array, makeArray(26));\n\n lengthBefore = array.length; //46\n array.splice(5, 0, \"XXX\"); // add one element\n\n lengthBefore + 1 == array.length\n\n if (lengthBefore + 1 == array.length) {\n return true;// has right splice implementation without bugs\n }\n }()) {//IE 6/7\n var array_splice = Array.prototype.splice;\n Array.prototype.splice = function(start, deleteCount) {\n if (!arguments.length) {\n return [];\n } else {\n return array_splice.apply(this, [\n start === void 0 ? 0 : start,\n deleteCount === void 0 ? (this.length - start) : deleteCount\n ].concat(slice.call(arguments, 2)))\n }\n };\n } else {//IE8\n Array.prototype.splice = function(pos, removeCount){\n var length = this.length;\n if (pos > 0) {\n if (pos > length)\n pos = length;\n } else if (pos == void 0) {\n pos = 0;\n } else if (pos < 0) {\n pos = Math.max(length + pos, 0);\n }\n\n if (!(pos+removeCount < length))\n removeCount = length - pos;\n\n var removed = this.slice(pos, pos+removeCount);\n var insert = slice.call(arguments, 2);\n var add = insert.length; \n if (pos === length) {\n if (add) {\n this.push.apply(this, insert);\n }\n } else {\n var remove = Math.min(removeCount, length - pos);\n var tailOldPos = pos + remove;\n var tailNewPos = tailOldPos + add - remove;\n var tailCount = length - tailOldPos;\n var lengthAfterRemove = length - remove;\n\n if (tailNewPos < tailOldPos) { // case A\n for (var i = 0; i < tailCount; ++i) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } else if (tailNewPos > tailOldPos) { // case B\n for (i = tailCount; i--; ) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } // else, add == remove (nothing to do)\n\n if (add && pos === lengthAfterRemove) {\n this.length = lengthAfterRemove; // truncate array\n this.push.apply(this, insert);\n } else {\n this.length = lengthAfterRemove + add; // reserves space\n for (i = 0; i < add; ++i) {\n this[pos+i] = insert[i];\n }\n }\n }\n return removed;\n };\n }\n}\nif (!Array.isArray) {\n Array.isArray = function isArray(obj) {\n return _toString(obj) == \"[object Array]\";\n };\n}\nvar boxedString = Object(\"a\"),\n splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n thisp = arguments[1],\n i = -1,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(); // TODO message\n }\n\n while (++i < length) {\n if (i in self) {\n fun.call(thisp, self[i], i, object);\n }\n }\n };\n}\nif (!Array.prototype.map) {\n Array.prototype.map = function map(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = Array(length),\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self)\n result[i] = fun.call(thisp, self[i], i, object);\n }\n return result;\n };\n}\nif (!Array.prototype.filter) {\n Array.prototype.filter = function filter(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = [],\n value,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self) {\n value = self[i];\n if (fun.call(thisp, value, i, object)) {\n result.push(value);\n }\n }\n }\n return result;\n };\n}\nif (!Array.prototype.every) {\n Array.prototype.every = function every(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && !fun.call(thisp, self[i], i, object)) {\n return false;\n }\n }\n return true;\n };\n}\nif (!Array.prototype.some) {\n Array.prototype.some = function some(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && fun.call(thisp, self[i], i, object)) {\n return true;\n }\n }\n return false;\n };\n}\nif (!Array.prototype.reduce) {\n Array.prototype.reduce = function reduce(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n\n var i = 0;\n var result;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i++];\n break;\n }\n if (++i >= length) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n } while (true);\n }\n\n for (; i < length; i++) {\n if (i in self) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n }\n\n return result;\n };\n}\nif (!Array.prototype.reduceRight) {\n Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n\n var result, i = length - 1;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i--];\n break;\n }\n if (--i < 0) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n } while (true);\n }\n\n do {\n if (i in this) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n } while (i--);\n\n return result;\n };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n\n var i = 0;\n if (arguments.length > 1) {\n i = toInteger(arguments[1]);\n }\n i = i >= 0 ? i : Math.max(0, length + i);\n for (; i < length; i++) {\n if (i in self && self[i] === sought) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n var i = length - 1;\n if (arguments.length > 1) {\n i = Math.min(i, toInteger(arguments[1]));\n }\n i = i >= 0 ? i : length - Math.abs(i);\n for (; i >= 0; i--) {\n if (i in self && sought === self[i]) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Object.getPrototypeOf) {\n Object.getPrototypeOf = function getPrototypeOf(object) {\n return object.__proto__ || (\n object.constructor ?\n object.constructor.prototype :\n prototypeOfObject\n );\n };\n}\nif (!Object.getOwnPropertyDescriptor) {\n var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n \"non-object: \";\n Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT + object);\n if (!owns(object, property))\n return;\n\n var descriptor, getter, setter;\n descriptor = { enumerable: true, configurable: true };\n if (supportsAccessors) {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n\n var getter = lookupGetter(object, property);\n var setter = lookupSetter(object, property);\n object.__proto__ = prototype;\n\n if (getter || setter) {\n if (getter) descriptor.get = getter;\n if (setter) descriptor.set = setter;\n return descriptor;\n }\n }\n descriptor.value = object[property];\n return descriptor;\n };\n}\nif (!Object.getOwnPropertyNames) {\n Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n return Object.keys(object);\n };\n}\nif (!Object.create) {\n var createEmpty;\n if (Object.prototype.__proto__ === null) {\n createEmpty = function () {\n return { \"__proto__\": null };\n };\n } else {\n createEmpty = function () {\n var empty = {};\n for (var i in empty)\n empty[i] = null;\n empty.constructor =\n empty.hasOwnProperty =\n empty.propertyIsEnumerable =\n empty.isPrototypeOf =\n empty.toLocaleString =\n empty.toString =\n empty.valueOf =\n empty.__proto__ = null;\n return empty;\n }\n }\n\n Object.create = function create(prototype, properties) {\n var object;\n if (prototype === null) {\n object = createEmpty();\n } else {\n if (typeof prototype != \"object\")\n throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n var Type = function () {};\n Type.prototype = prototype;\n object = new Type();\n object.__proto__ = prototype;\n }\n if (properties !== void 0)\n Object.defineProperties(object, properties);\n return object;\n };\n}\n\nfunction doesDefinePropertyWork(object) {\n try {\n Object.defineProperty(object, \"sentinel\", {});\n return \"sentinel\" in object;\n } catch (exception) {\n }\n}\nif (Object.defineProperty) {\n var definePropertyWorksOnObject = doesDefinePropertyWork({});\n var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n doesDefinePropertyWork(document.createElement(\"div\"));\n if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n var definePropertyFallback = Object.defineProperty;\n }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n \"on this javascript engine\";\n\n Object.defineProperty = function defineProperty(object, property, descriptor) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n if (definePropertyFallback) {\n try {\n return definePropertyFallback.call(Object, object, property, descriptor);\n } catch (exception) {\n }\n }\n if (owns(descriptor, \"value\")) {\n\n if (supportsAccessors && (lookupGetter(object, property) ||\n lookupSetter(object, property)))\n {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n delete object[property];\n object[property] = descriptor.value;\n object.__proto__ = prototype;\n } else {\n object[property] = descriptor.value;\n }\n } else {\n if (!supportsAccessors)\n throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n if (owns(descriptor, \"get\"))\n defineGetter(object, property, descriptor.get);\n if (owns(descriptor, \"set\"))\n defineSetter(object, property, descriptor.set);\n }\n\n return object;\n };\n}\nif (!Object.defineProperties) {\n Object.defineProperties = function defineProperties(object, properties) {\n for (var property in properties) {\n if (owns(properties, property))\n Object.defineProperty(object, property, properties[property]);\n }\n return object;\n };\n}\nif (!Object.seal) {\n Object.seal = function seal(object) {\n return object;\n };\n}\nif (!Object.freeze) {\n Object.freeze = function freeze(object) {\n return object;\n };\n}\ntry {\n Object.freeze(function () {});\n} catch (exception) {\n Object.freeze = (function freeze(freezeObject) {\n return function freeze(object) {\n if (typeof object == \"function\") {\n return object;\n } else {\n return freezeObject(object);\n }\n };\n })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n Object.preventExtensions = function preventExtensions(object) {\n return object;\n };\n}\nif (!Object.isSealed) {\n Object.isSealed = function isSealed(object) {\n return false;\n };\n}\nif (!Object.isFrozen) {\n Object.isFrozen = function isFrozen(object) {\n return false;\n };\n}\nif (!Object.isExtensible) {\n Object.isExtensible = function isExtensible(object) {\n if (Object(object) === object) {\n throw new TypeError(); // TODO message\n }\n var name = '';\n while (owns(object, name)) {\n name += '?';\n }\n object[name] = true;\n var returnValue = owns(object, name);\n delete object[name];\n return returnValue;\n };\n}\nif (!Object.keys) {\n var hasDontEnumBug = true,\n dontEnums = [\n \"toString\",\n \"toLocaleString\",\n \"valueOf\",\n \"hasOwnProperty\",\n \"isPrototypeOf\",\n \"propertyIsEnumerable\",\n \"constructor\"\n ],\n dontEnumsLength = dontEnums.length;\n\n for (var key in {\"toString\": null}) {\n hasDontEnumBug = false;\n }\n\n Object.keys = function keys(object) {\n\n if (\n (typeof object != \"object\" && typeof object != \"function\") ||\n object === null\n ) {\n throw new TypeError(\"Object.keys called on a non-object\");\n }\n\n var keys = [];\n for (var name in object) {\n if (owns(object, name)) {\n keys.push(name);\n }\n }\n\n if (hasDontEnumBug) {\n for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n var dontEnum = dontEnums[i];\n if (owns(object, dontEnum)) {\n keys.push(dontEnum);\n }\n }\n }\n return keys;\n };\n\n}\nif (!Date.now) {\n Date.now = function now() {\n return new Date().getTime();\n };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n ws = \"[\" + ws + \"]\";\n var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n trimEndRegexp = new RegExp(ws + ws + \"*$\");\n String.prototype.trim = function trim() {\n return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n };\n}\n\nfunction toInteger(n) {\n n = +n;\n if (n !== n) { // isNaN\n n = 0;\n } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n n = (n > 0 || -1) * Math.floor(Math.abs(n));\n }\n return n;\n}\n\nfunction isPrimitive(input) {\n var type = typeof input;\n return (\n input === null ||\n type === \"undefined\" ||\n type === \"boolean\" ||\n type === \"number\" ||\n type === \"string\"\n );\n}\n\nfunction toPrimitive(input) {\n var val, valueOf, toString;\n if (isPrimitive(input)) {\n return input;\n }\n valueOf = input.valueOf;\n if (typeof valueOf === \"function\") {\n val = valueOf.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n toString = input.toString;\n if (typeof toString === \"function\") {\n val = toString.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n throw new TypeError();\n}\nvar toObject = function (o) {\n if (o == null) { // this matches both null and undefined\n throw new TypeError(\"can't convert \"+o+\" to object\");\n }\n return Object(o);\n};\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./regexp\");\nacequire(\"./es5-shim\");\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\n\nexports.getDocumentHead = function(doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\n\nexports.createElement = function(tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\n\nexports.hasCssClass = function(el, name) {\n var classes = (el.className || \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function(el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\n\nexports.toggleCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function(node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n } else {\n exports.removeCssClass(node, className);\n }\n};\n\nexports.hasCssString = function(id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n\n if (doc.createStyleSheet && (sheets = doc.styleSheets)) {\n while (index < sheets.length)\n if (sheets[index++].owningElement.id === id) return true;\n } else if ((sheets = doc.getElementsByTagName(\"style\"))) {\n while (index < sheets.length)\n if (sheets[index++].id === id) return true;\n }\n\n return false;\n};\n\nexports.importCssString = function importCssString(cssText, id, doc) {\n doc = doc || document;\n if (id && exports.hasCssString(id, doc))\n return null;\n \n var style;\n \n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n \n if (doc.createStyleSheet) {\n style = doc.createStyleSheet();\n style.cssText = cssText;\n if (id)\n style.owningElement.id = id;\n } else {\n style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n\n exports.getDocumentHead(doc).appendChild(style);\n }\n};\n\nexports.importCssStylsheet = function(uri, doc) {\n if (doc.createStyleSheet) {\n doc.createStyleSheet(uri);\n } else {\n var link = exports.createElement('link');\n link.rel = 'stylesheet';\n link.href = uri;\n\n exports.getDocumentHead(doc).appendChild(link);\n }\n};\n\nexports.getInnerWidth = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingLeft\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingRight\"), 10) + \n element.clientWidth\n );\n};\n\nexports.getInnerHeight = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingTop\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingBottom\"), 10) +\n element.clientHeight\n );\n};\n\nexports.scrollbarWidth = function(document) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n\n outer.appendChild(inner);\n\n var body = document.documentElement;\n body.appendChild(outer);\n\n var noScrollbar = inner.offsetWidth;\n\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n\n if (noScrollbar == withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n\n body.removeChild(outer);\n\n return noScrollbar-withScrollbar;\n};\n\nif (typeof document == \"undefined\") {\n exports.importCssString = function() {};\n return;\n}\n\nif (window.pageYOffset !== undefined) {\n exports.getPageScrollTop = function() {\n return window.pageYOffset;\n };\n\n exports.getPageScrollLeft = function() {\n return window.pageXOffset;\n };\n}\nelse {\n exports.getPageScrollTop = function() {\n return document.body.scrollTop;\n };\n\n exports.getPageScrollLeft = function() {\n return document.body.scrollLeft;\n };\n}\n\nif (window.getComputedStyle)\n exports.computedStyle = function(element, style) {\n if (style)\n return (window.getComputedStyle(element, \"\") || {})[style] || \"\";\n return window.getComputedStyle(element, \"\") || {};\n };\nelse\n exports.computedStyle = function(element, style) {\n if (style)\n return element.currentStyle[style];\n return element.currentStyle;\n };\nexports.setInnerHtml = function(el, innerHtml) {\n var element = el.cloneNode(false);//document.createElement(\"div\");\n element.innerHTML = innerHtml;\n el.parentNode.replaceChild(element, el);\n return element;\n};\n\nif (\"textContent\" in document.documentElement) {\n exports.setInnerText = function(el, innerText) {\n el.textContent = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.textContent;\n };\n}\nelse {\n exports.setInnerText = function(el, innerText) {\n el.innerText = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.innerText;\n };\n}\n\nexports.getParentWindow = function(document) {\n return document.defaultView || document.parentWindow;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.inherits = function(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\nexports.mixin = function(obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\n\nexports.implement = function(proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./fixoldbrowsers\");\n\nvar oop = acequire(\"./oop\");\nvar Keys = (function() {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta'\n },\n\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\" : 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8\n },\n\n FUNCTION_KEYS : {\n 8 : \"Backspace\",\n 9 : \"Tab\",\n 13 : \"Return\",\n 19 : \"Pause\",\n 27 : \"Esc\",\n 32 : \"Space\",\n 33 : \"PageUp\",\n 34 : \"PageDown\",\n 35 : \"End\",\n 36 : \"Home\",\n 37 : \"Left\",\n 38 : \"Up\",\n 39 : \"Right\",\n 40 : \"Down\",\n 44 : \"Print\",\n 45 : \"Insert\",\n 46 : \"Delete\",\n 96 : \"Numpad0\",\n 97 : \"Numpad1\",\n 98 : \"Numpad2\",\n 99 : \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\',221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n ret[173] = '-';\n \n (function() {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) { \n ret.KEY_MODS[i] = mods.filter(function(x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n\n return ret;\n})();\noop.mixin(exports, Keys);\n\nexports.keyCodeToString = function(keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function() {\n if (exports.isMac) {\n return exports.OS.MAC;\n } else if (exports.isLinux) {\n return exports.OS.LINUX;\n } else {\n return exports.OS.WINDOWS;\n }\n};\nif (typeof navigator != \"object\")\n return;\n\nvar os = (navigator.platform.match(/mac|win|linux/i) || [\"other\"])[0].toLowerCase();\nvar ua = navigator.userAgent;\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE = \n (navigator.appName == \"Microsoft Internet Explorer\" || navigator.appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1]); // for ie\n \nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = (window.Controllers || window.controllers) && window.navigator.product === \"Gecko\";\nexports.isOldGecko = exports.isGecko && parseInt((ua.match(/rv\\:(\\d+)/)||[])[1], 10) < 4;\nexports.isOpera = window.opera && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\n\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\n\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\n\nexports.isIPad = ua.indexOf(\"iPad\") >= 0;\n\nexports.isTouchPad = ua.indexOf(\"TouchPad\") >= 0;\n\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keys = acequire(\"./keys\");\nvar useragent = acequire(\"./useragent\");\n\nvar pressedKeys = null;\nvar ts = 0;\n\nexports.addListener = function(elem, type, callback) {\n if (elem.addEventListener) {\n return elem.addEventListener(type, callback, false);\n }\n if (elem.attachEvent) {\n var wrapper = function() {\n callback.call(elem, window.event);\n };\n callback._wrapper = wrapper;\n elem.attachEvent(\"on\" + type, wrapper);\n }\n};\n\nexports.removeListener = function(elem, type, callback) {\n if (elem.removeEventListener) {\n return elem.removeEventListener(type, callback, false);\n }\n if (elem.detachEvent) {\n elem.detachEvent(\"on\" + type, callback._wrapper || callback);\n }\n};\nexports.stopEvent = function(e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\n\nexports.stopPropagation = function(e) {\n if (e.stopPropagation)\n e.stopPropagation();\n else\n e.cancelBubble = true;\n};\n\nexports.preventDefault = function(e) {\n if (e.preventDefault)\n e.preventDefault();\n else\n e.returnValue = false;\n};\nexports.getButton = function(e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n if (e.preventDefault) {\n return e.button;\n }\n else {\n return {1:0, 2:2, 4:1}[e.button];\n }\n};\n\nexports.capture = function(el, eventHandler, releaseCaptureHandler) {\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n\n exports.removeListener(document, \"mousemove\", eventHandler, true);\n exports.removeListener(document, \"mouseup\", onMouseUp, true);\n exports.removeListener(document, \"dragstart\", onMouseUp, true);\n }\n\n exports.addListener(document, \"mousemove\", eventHandler, true);\n exports.addListener(document, \"mouseup\", onMouseUp, true);\n exports.addListener(document, \"dragstart\", onMouseUp, true);\n \n return onMouseUp;\n};\n\nexports.addTouchMoveListener = function (el, callback) {\n if (\"ontouchmove\" in el) {\n var startx, starty;\n exports.addListener(el, \"touchstart\", function (e) {\n var touchObj = e.changedTouches[0];\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n });\n exports.addListener(el, \"touchmove\", function (e) {\n var factor = 1,\n touchObj = e.changedTouches[0];\n\n e.wheelX = -(touchObj.clientX - startx) / factor;\n e.wheelY = -(touchObj.clientY - starty) / factor;\n\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n\n callback(e);\n });\n } \n};\n\nexports.addMouseWheelListener = function(el, callback) {\n if (\"onmousewheel\" in el) {\n exports.addListener(el, \"mousewheel\", function(e) {\n var factor = 8;\n if (e.wheelDeltaX !== undefined) {\n e.wheelX = -e.wheelDeltaX / factor;\n e.wheelY = -e.wheelDeltaY / factor;\n } else {\n e.wheelX = 0;\n e.wheelY = -e.wheelDelta / factor;\n }\n callback(e);\n });\n } else if (\"onwheel\" in el) {\n exports.addListener(el, \"wheel\", function(e) {\n var factor = 0.35;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = e.deltaX * factor || 0;\n e.wheelY = e.deltaY * factor || 0;\n break;\n case e.DOM_DELTA_LINE:\n case e.DOM_DELTA_PAGE:\n e.wheelX = (e.deltaX || 0) * 5;\n e.wheelY = (e.deltaY || 0) * 5;\n break;\n }\n \n callback(e);\n });\n } else {\n exports.addListener(el, \"DOMMouseScroll\", function(e) {\n if (e.axis && e.axis == e.HORIZONTAL_AXIS) {\n e.wheelX = (e.detail || 0) * 5;\n e.wheelY = 0;\n } else {\n e.wheelX = 0;\n e.wheelY = (e.detail || 0) * 5;\n }\n callback(e);\n });\n }\n};\n\nexports.addMultiMouseDownListener = function(elements, timeouts, eventHandler, callbackName) {\n var clicks = 0;\n var startX, startY, timer; \n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n } else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n } else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null}, timeouts[clicks - 1] || 600);\n\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n \n e._clicks = clicks;\n\n eventHandler[callbackName](\"mousedown\", e);\n\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n function onDblclick(e) {\n clicks = 2;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null}, timeouts[clicks - 1] || 600);\n eventHandler[callbackName](\"mousedown\", e);\n eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function(el) {\n exports.addListener(el, \"mousedown\", onMousedown);\n if (useragent.isOldIE)\n exports.addListener(el, \"dblclick\", onDblclick);\n });\n};\n\nvar getModifierHash = useragent.isMac && useragent.isOpera && !(\"KeyboardEvent\" in window)\n ? function(e) {\n return 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0);\n }\n : function(e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n };\n\nexports.getModifierString = function(e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\n\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n\n if (!useragent.isMac && pressedKeys) {\n if (pressedKeys.OSKey)\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n } else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n \n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (hashId & 8 && (keyCode >= 91 && keyCode <= 93)) {\n keyCode = -1;\n }\n \n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n \n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n \n return callback(e, hashId, keyCode);\n}\n\n\nexports.addCommandKeyListener = function(el, callback) {\n var addListener = exports.addListener;\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function(e) {\n lastKeyDownKeyCode = e.keyCode;\n });\n addListener(el, \"keypress\", function(e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n });\n } else {\n var lastDefaultPrevented = null;\n\n addListener(el, \"keydown\", function(e) {\n var keyCode = e.keyCode;\n pressedKeys[keyCode] = (pressedKeys[keyCode] || 0) + 1;\n if (keyCode == 91 || keyCode == 92) {\n pressedKeys.OSKey = true;\n } else if (pressedKeys.OSKey) {\n if (e.timeStamp - pressedKeys.lastT > 200 && pressedKeys.count == 1)\n resetPressedKeys();\n }\n if (pressedKeys[keyCode] == 1)\n pressedKeys.count++;\n pressedKeys.lastT = e.timeStamp;\n var result = normalizeCommandKeys(callback, e, keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n });\n\n addListener(el, \"keypress\", function(e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n });\n\n addListener(el, \"keyup\", function(e) {\n var keyCode = e.keyCode;\n if (!pressedKeys[keyCode]) {\n resetPressedKeys();\n } else {\n pressedKeys.count = Math.max(pressedKeys.count - 1, 0);\n }\n if (keyCode == 91 || keyCode == 92) {\n pressedKeys.OSKey = false;\n }\n pressedKeys[keyCode] = null;\n });\n\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n pressedKeys.count = 0;\n pressedKeys.lastT = 0;\n}\n\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function(callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + postMessageId;\n exports.addListener(win, \"message\", function listener(e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n exports.removeListener(win, \"message\", listener);\n callback();\n }\n });\n win.postMessage(messageName, \"*\");\n };\n}\n\n\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\n\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function(callback) {\n setTimeout(callback, 17);\n };\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n\n if (count >>= 1)\n string += string;\n }\n return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\n\nexports.copyArray = function(array){\n var copy = [];\n for (var i=0, l=array.length; i 1);\n return ev.preventDefault();\n };\n\n this.startSelect = function(pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n editor.$blockScrolling++;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n if (editor.renderer.scroller.setCapture) {\n editor.renderer.scroller.setCapture();\n }\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n editor.$blockScrolling--;\n };\n\n this.select = function() {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n } else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.extendSelectionBy = function(unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n } else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n } else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.selectEnd =\n this.selectAllEnd =\n this.selectByWordsEnd =\n this.selectByLinesEnd = function() {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n if (this.editor.renderer.scroller.releaseCapture) {\n this.editor.renderer.scroller.releaseCapture();\n }\n };\n\n this.focusWait = function() {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n\n this.onDoubleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n } else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n\n this.onTripleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n } else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n\n this.onQuadClick = function(ev) {\n var editor = this.editor;\n\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n\n this.onMouseWheel = function(ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n\n var t = ev.domEvent.timeStamp;\n var dt = t - (this.$lastScrollTime||0);\n \n var editor = this.editor;\n var isScrolable = editor.renderer.isScrollableBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n if (isScrolable || dt < 200) {\n this.$lastScrollTime = t;\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n \n this.onTouchMove = function (ev) {\n var t = ev.domEvent.timeStamp;\n var dt = t - (this.$lastScrollTime || 0);\n\n var editor = this.editor;\n var isScrolable = editor.renderer.isScrollableBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n if (isScrolable || dt < 200) {\n this.$lastScrollTime = t;\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n\n}).call(DefaultHandlers.prototype);\n\nexports.DefaultHandlers = DefaultHandlers;\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n\n if (cmp < 0)\n return {cursor: range.start, anchor: range.end};\n else\n return {cursor: range.end, anchor: range.start};\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nfunction Tooltip (parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n}\n\n(function() {\n this.$init = function() {\n this.$element = dom.createElement(\"div\");\n this.$element.className = \"ace_tooltip\";\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n this.getElement = function() {\n return this.$element || this.$init();\n };\n this.setText = function(text) {\n dom.setInnerText(this.getElement(), text);\n };\n this.setHtml = function(html) {\n this.getElement().innerHTML = html;\n };\n this.setPosition = function(x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n this.setClassName = function(className) {\n dom.addCssClass(this.getElement(), className);\n };\n this.show = function(text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n\n this.hide = function() {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n }\n };\n this.getHeight = function() {\n return this.getElement().offsetHeight;\n };\n this.getWidth = function() {\n return this.getElement().offsetWidth;\n };\n\n}).call(Tooltip.prototype);\n\nexports.Tooltip = Tooltip;\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event\",\"ace/tooltip\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar event = acequire(\"../lib/event\");\nvar Tooltip = acequire(\"../tooltip\").Tooltip;\n\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor.container);\n\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function(e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n\n if (gutterRegion == \"foldWidgets\")\n return;\n\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n\n\n var tooltipTimeout, mouseEvent, tooltipAnnotation;\n\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var annotation = gutter.$annotations[row];\n if (!annotation)\n return hideTooltip();\n\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n\n if (tooltipAnnotation == annotation)\n return;\n tooltipAnnotation = annotation.text.join(\"
    \");\n\n tooltip.setHtml(tooltipAnnotation);\n tooltip.show();\n editor.on(\"mousewheel\", hideTooltip);\n\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n } else {\n var gutterElement = mouseEvent.domEvent.target;\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n }\n\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltipAnnotation) {\n tooltip.hide();\n tooltipAnnotation = null;\n editor.removeEventListener(\"mousewheel\", hideTooltip);\n }\n }\n\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function(e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n\n if (tooltipAnnotation && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n\n event.addListener(editor.renderer.$gutter, \"mouseout\", function(e) {\n mouseEvent = null;\n if (!tooltipAnnotation || tooltipTimeout)\n return;\n\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n });\n \n editor.on(\"changeSession\", hideTooltip);\n}\n\nfunction GutterTooltip(parentNode) {\n Tooltip.call(this, parentNode);\n}\n\noop.inherits(GutterTooltip, Tooltip);\n\n(function(){\n this.setPosition = function(x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n\n}).call(GutterTooltip.prototype);\n\n\n\nexports.GutterHandler = GutterHandler;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar MouseEvent = exports.MouseEvent = function(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n \n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n\n this.$pos = null;\n this.$inSelection = null;\n \n this.propagationStopped = false;\n this.defaultPrevented = false;\n};\n\n(function() { \n \n this.stopPropagation = function() {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n \n this.preventDefault = function() {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n \n this.stop = function() {\n this.stopPropagation();\n this.preventDefault();\n };\n this.getDocumentPosition = function() {\n if (this.$pos)\n return this.$pos;\n \n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n this.inSelection = function() {\n if (this.$inSelection !== null)\n return this.$inSelection;\n \n var editor = this.editor;\n \n\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n\n return this.$inSelection;\n };\n this.getButton = function() {\n return event.getButton(this.domEvent);\n };\n this.getShiftKey = function() {\n return this.domEvent.shiftKey;\n };\n \n this.getAccelKey = useragent.isMac\n ? function() { return this.domEvent.metaKey; }\n : function() { return this.domEvent.ctrlKey; };\n \n}).call(MouseEvent.prototype);\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\n\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\n\nfunction DragdropHandler(mouseHandler) {\n\n var editor = mouseHandler.editor;\n\n var blankImage = dom.createElement(\"img\");\n blankImage.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (useragent.isOpera)\n blankImage.style.cssText = \"width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;\";\n\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n\n exports.forEach(function(x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.addEventListener(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n\n\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n\n this.onDragStart = function(e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function(){\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n if (useragent.isOpera) {\n editor.container.appendChild(blankImage);\n blankImage.scrollTop = 0;\n }\n dataTransfer.setDragImage && dataTransfer.setDragImage(blankImage, 0, 0);\n if (useragent.isOpera) {\n editor.container.removeChild(blankImage);\n }\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n\n isInternal = true;\n this.setState(\"drag\");\n };\n\n this.onDragEnd = function(e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.renderer.$cursorLayer.setBlinking(true);\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n\n this.onDragEnter = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragOver = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragLeave = function(e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n\n this.onDrop = function(e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n } else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n } else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler));\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler));\n\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.$blockScrolling += 1;\n editor.moveCursorToPosition(cursor);\n editor.$blockScrolling -= 1;\n cursorMovedTime = now;\n cursorPointOnCaretMoved = {x: x, y: y};\n } else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n } else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = {row: cursor.row, column: cursor.column};\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n } else {\n autoScrollStartTime = null;\n }\n }\n\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.$blockScrolling += 1;\n editor.selection.fromOrientedRange(range);\n editor.$blockScrolling -= 1;\n if (editor.isFocused() && !isInternal)\n editor.renderer.$cursorLayer.setBlinking(!editor.getReadOnly());\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function() {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function(type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n } catch (e) {}\n var dropEffect = \"none\";\n\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n\n return dropEffect;\n }\n}\n\n(function() {\n\n this.dragWait = function() {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n\n this.dragWaitEnd = function() {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n\n this.dragReadyEnd = function(e) {\n this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly());\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n\n this.startDrag = function(){\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n\n this.onMouseDrag = function(e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n\n this.onMouseDown = function(e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n } else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n\n}).call(DragdropHandler.prototype);\n\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"./dom\");\n\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\n\nexports.loadScript = function(path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n\n s.src = path;\n head.appendChild(s);\n\n s.onload = s.onreadystatechange = function(_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function(url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n}\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n\n if (typeof e != \"object\" || !e)\n e = {};\n\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n\n listeners = listeners.slice();\n for (var i=0; i 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n } else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\n\nexports.setModuleUrl = function(name, subst) {\n return options.$moduleUrls[name] = subst;\n};\n\nexports.$loading = {};\nexports.loadModule = function(moduleName, onLoad) {\n var module, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n\n try {\n module = acequire(moduleName);\n } catch (e) {}\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n\n exports.$loading[moduleName].push(onLoad);\n\n if (exports.$loading[moduleName].length > 1)\n return;\n\n var afterLoad = function() {\n acequire([moduleName], function(module) {\n exports._emit(\"load.module\", {name: moduleName, module: module});\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function(onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n options.packaged = packaged || acequire.packaged || module.packaged || (global.define && define.packaged);\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n\n this.contains = function(row, column) {\n return this.compare(row, column) == 0;\n };\n this.compareRange = function(range) {\n var cmp,\n end = range.end,\n start = range.start;\n\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n } else if (cmp == 0) {\n return 1;\n } else {\n return 0;\n }\n } else if (cmp == -1) {\n return -2;\n } else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n } else if (cmp == 1) {\n return 42;\n } else {\n return 0;\n }\n }\n };\n this.comparePoint = function(p) {\n return this.compare(p.row, p.column);\n };\n this.containsRange = function(range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n this.intersects = function(range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n this.isEnd = function(row, column) {\n return this.end.row == row && this.end.column == column;\n };\n this.isStart = function(row, column) {\n return this.start.row == row && this.start.column == column;\n };\n this.setStart = function(row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n } else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n this.setEnd = function(row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n } else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n this.inside = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideStart = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideEnd = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.compare = function(row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n\n if (row < this.start.row)\n return -1;\n\n if (row > this.end.row)\n return 1;\n\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n\n return 0;\n };\n this.compareStart = function(row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareEnd = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareInside = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.clipRows = function(firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = {row: lastRow + 1, column: 0};\n else if (this.end.row < firstRow)\n var end = {row: firstRow, column: 0};\n\n if (this.start.row > lastRow)\n var start = {row: lastRow + 1, column: 0};\n else if (this.start.row < firstRow)\n var start = {row: firstRow, column: 0};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n this.extend = function(row, column) {\n var cmp = this.compare(row, column);\n\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = {row: row, column: column};\n else\n var end = {row: row, column: column};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n\n this.isEmpty = function() {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n this.isMultiLine = function() {\n return (this.start.row !== this.end.row);\n };\n this.clone = function() {\n return Range.fromPoints(this.start, this.end);\n };\n this.collapseRows = function() {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)\n else\n return new Range(this.start.row, 0, this.end.row, 0)\n };\n this.toScreenRange = function(session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n\n return new Range(\n screenPosStart.row, screenPosStart.column,\n screenPosEnd.row, screenPosEnd.column\n );\n };\n this.moveBy = function(row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Selection = function(session) {\n this.session = session;\n this.doc = session.getDocument();\n\n this.clearSelection();\n this.lead = this.selectionLead = this.doc.createAnchor(0, 0);\n this.anchor = this.selectionAnchor = this.doc.createAnchor(0, 0);\n\n var self = this;\n this.lead.on(\"change\", function(e) {\n self._emit(\"changeCursor\");\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n\n this.selectionAnchor.on(\"change\", function() {\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n });\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.isEmpty = function() {\n return (this.$isEmpty || (\n this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column\n ));\n };\n this.isMultiLine = function() {\n if (this.isEmpty()) {\n return false;\n }\n\n return this.getRange().isMultiLine();\n };\n this.getCursor = function() {\n return this.lead.getPosition();\n };\n this.setSelectionAnchor = function(row, column) {\n this.anchor.setPosition(row, column);\n\n if (this.$isEmpty) {\n this.$isEmpty = false;\n this._emit(\"changeSelection\");\n }\n };\n this.getSelectionAnchor = function() {\n if (this.$isEmpty)\n return this.getSelectionLead();\n else\n return this.anchor.getPosition();\n };\n this.getSelectionLead = function() {\n return this.lead.getPosition();\n };\n this.shiftSelection = function(columns) {\n if (this.$isEmpty) {\n this.moveCursorTo(this.lead.row, this.lead.column + columns);\n return;\n }\n\n var anchor = this.getSelectionAnchor();\n var lead = this.getSelectionLead();\n\n var isBackwards = this.isBackwards();\n\n if (!isBackwards || anchor.column !== 0)\n this.setSelectionAnchor(anchor.row, anchor.column + columns);\n\n if (isBackwards || lead.column !== 0) {\n this.$moveSelection(function() {\n this.moveCursorTo(lead.row, lead.column + columns);\n });\n }\n };\n this.isBackwards = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n this.getRange = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n\n if (this.isEmpty())\n return Range.fromPoints(lead, lead);\n\n if (this.isBackwards()) {\n return Range.fromPoints(lead, anchor);\n }\n else {\n return Range.fromPoints(anchor, lead);\n }\n };\n this.clearSelection = function() {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n this.selectAll = function() {\n var lastRow = this.doc.getLength() - 1;\n this.setSelectionAnchor(0, 0);\n this.moveCursorTo(lastRow, this.doc.getLine(lastRow).length);\n };\n this.setRange =\n this.setSelectionRange = function(range, reverse) {\n if (reverse) {\n this.setSelectionAnchor(range.end.row, range.end.column);\n this.selectTo(range.start.row, range.start.column);\n } else {\n this.setSelectionAnchor(range.start.row, range.start.column);\n this.selectTo(range.end.row, range.end.column);\n }\n if (this.getRange().isEmpty())\n this.$isEmpty = true;\n this.$desiredColumn = null;\n };\n\n this.$moveSelection = function(mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n\n mover.call(this);\n };\n this.selectTo = function(row, column) {\n this.$moveSelection(function() {\n this.moveCursorTo(row, column);\n });\n };\n this.selectToPosition = function(pos) {\n this.$moveSelection(function() {\n this.moveCursorToPosition(pos);\n });\n };\n this.moveTo = function(row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n this.moveToPosition = function(pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n this.selectUp = function() {\n this.$moveSelection(this.moveCursorUp);\n };\n this.selectDown = function() {\n this.$moveSelection(this.moveCursorDown);\n };\n this.selectRight = function() {\n this.$moveSelection(this.moveCursorRight);\n };\n this.selectLeft = function() {\n this.$moveSelection(this.moveCursorLeft);\n };\n this.selectLineStart = function() {\n this.$moveSelection(this.moveCursorLineStart);\n };\n this.selectLineEnd = function() {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n this.selectFileEnd = function() {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n this.selectFileStart = function() {\n this.$moveSelection(this.moveCursorFileStart);\n };\n this.selectWordRight = function() {\n this.$moveSelection(this.moveCursorWordRight);\n };\n this.selectWordLeft = function() {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n this.getWordRange = function(row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n this.selectWord = function() {\n this.setSelectionRange(this.getWordRange());\n };\n this.selectAWord = function() {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n\n this.getLineRange = function(row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n } else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n this.selectLine = function() {\n this.setSelectionRange(this.getLineRange());\n };\n this.moveCursorUp = function() {\n this.moveCursorBy(-1, 0);\n };\n this.moveCursorDown = function() {\n this.moveCursorBy(1, 0);\n };\n this.moveCursorLeft = function() {\n var cursor = this.lead.getPosition(),\n fold;\n\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n } else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(cursor.column-tabSize, cursor.column).split(\" \").length-1 == tabSize)\n this.moveCursorBy(0, -tabSize);\n else\n this.moveCursorBy(0, -1);\n }\n };\n this.moveCursorRight = function() {\n var cursor = this.lead.getPosition(),\n fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(cursor.column, cursor.column+tabSize).split(\" \").length-1 == tabSize)\n this.moveCursorBy(0, tabSize);\n else\n this.moveCursorBy(0, 1);\n }\n };\n this.moveCursorLineStart = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(\n row, null, firstColumnPosition.row,\n firstColumnPosition.column\n );\n\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n this.moveCursorLineEnd = function() {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n this.moveCursorFileEnd = function() {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n this.moveCursorFileStart = function() {\n this.moveCursorTo(0, 0);\n };\n this.moveCursorLongWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (match = this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n this.moveCursorLongWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n\n var leftOfCursor = lang.stringReverse(str);\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (match = this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (match = this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n\n this.$shortWordEndIndex = function(rightOfCursor) {\n var match, index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n\n tokenRe.lastIndex = 0;\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index ++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n\n return index;\n };\n\n this.moveCursorShortWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n\n var index = this.$shortWordEndIndex(rightOfCursor);\n\n this.moveCursorTo(row, column + index);\n };\n\n this.moveCursorShortWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n\n return this.moveCursorTo(row, column - index);\n };\n\n this.moveCursorWordRight = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n\n this.moveCursorWordLeft = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n this.moveCursorBy = function(rows, chars) {\n var screenPos = this.session.documentToScreenPosition(\n this.lead.row,\n this.lead.column\n );\n\n if (chars === 0) {\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column);\n \n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n if (this.session.lineWidgets && this.session.lineWidgets[docPos.row]) {\n if (docPos.row > 0 || rows > 0)\n docPos.row++;\n }\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n this.moveCursorToPosition = function(position) {\n this.moveCursorTo(position.row, position.column);\n };\n this.moveCursorTo = function(row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n\n this.$keepDesiredColumnOnChange = true;\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n this.moveCursorToScreen = function(row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n this.detach = function() {\n this.lead.detach();\n this.anchor.detach();\n this.session = this.doc = null;\n };\n\n this.fromOrientedRange = function(range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n\n this.toOrientedRange = function(range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n } else {\n range = r;\n }\n\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n this.getRangeOfMovements = function(func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start,end);\n } catch(e) {\n return Range.fromPoints(start,start);\n } finally {\n this.moveCursorToPosition(start);\n }\n };\n\n this.toJSON = function() {\n if (this.rangeCount) {\n var data = this.ranges.map(function(r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n } else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n\n this.fromJSON = function(data) {\n if (data.start == undefined) {\n if (this.rangeList) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--; ) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n } else\n data = data[0];\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n\n this.isEqual = function(data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n\n for (var i = this.ranges.length; i--; ) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n\n}).call(Selection.prototype);\n\nexports.Selection = Selection;\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar config = acequire(\"./config\");\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = function(rules) {\n this.states = rules;\n\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = {defaultToken: \"text\"};\n var flag = \"g\";\n\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive)\n flag = \"gi\";\n if (rule.regex == null)\n continue;\n\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n } else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", { \n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n } else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n } else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function(match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n } else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n \n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n \n splitterRurles.forEach(function(rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n};\n\n(function() {\n this.$setMaxTokenCount = function(m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n \n this.$applyToken = function(str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{type: types, value: str}];\n\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n\n this.$arrayTokens = function(str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n\n this.removeCapturingGroups = function(src) {\n var r = src.replace(\n /\\[(?:\\\\.|[^\\]])*?\\]|\\\\.|\\(\\?[:=!]|(\\()/g,\n function(x, y) {return y ? \"(?:\" : x;}\n );\n return r;\n };\n\n this.createSplitterRegexp = function(src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function(\n m, esc, parenOpen, parenClose, square, index\n ) {\n if (inChClass) {\n inChClass = square != \"]\";\n } else if (square) {\n inChClass = true;\n } else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index+1;\n lastCapture.stack = -1;\n }\n stack--;\n } else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack\n lastCapture.start = index;\n }\n }\n return m;\n });\n\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\") src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\") src += \"$\";\n \n return new RegExp(src, (flag||\"\").replace(\"g\", \"\"));\n };\n this.getLineTokens = function(line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift()\n startState = stack.shift()\n }\n } else\n var stack = [];\n\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n\n var token = {type: null, value: \"\"};\n\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: skipped};\n }\n }\n\n for (var i = 0; i < match.length-2; i++) {\n if (match[i + 1] === undefined)\n continue;\n\n rule = state[mapping[i]];\n\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack);\n else\n type = rule.token;\n\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n } else {\n currentState = rule.next(currentState, stack);\n }\n \n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n break;\n }\n\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: value};\n }\n } else if (type) {\n if (token.type)\n tokens.push(token);\n token = {type: null, value: \"\"};\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n\n if (lastIndex == line.length)\n break;\n\n lastIndex = index;\n\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 2000),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n\n if (token.type)\n tokens.push(token);\n \n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens : tokens,\n state : stack.length ? stack : currentState\n };\n };\n \n this.reportError = config.reportError;\n \n}).call(Tokenizer.prototype);\n\nexports.Tokenizer = Tokenizer;\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\n\nvar TextHighlightRules = function() {\n\n this.$rules = {\n \"start\" : [{\n token : \"empty_line\",\n regex : '^$'\n }, {\n defaultToken : \"text\"\n }]\n };\n};\n\n(function() {\n\n this.addRules = function(rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n\n this.getRules = function() {\n return this.$rules;\n };\n\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n } else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n\n this.addRules(embedRules, prefix);\n\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], lang.deepCopy(escapeRules));\n }\n\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n\n this.getEmbeds = function() {\n return this.$embeds;\n };\n\n var pushState = function(currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function(currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n\n this.normalizeRules = function() {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n } else if (next == \"pop\") {\n rule.next = popState;\n }\n\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n } else {\n rules[r] = rule.rules[r];\n }\n }\n }\n if (rule.include || typeof rule == \"string\") {\n var includeName = rule.include || rule;\n var toInsert = rules[includeName];\n } else if (Array.isArray(rule))\n toInsert = rule;\n\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function(x) {return !x.next;});\n state.splice.apply(state, args);\n i--;\n toInsert = null;\n }\n \n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(\n rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive\n );\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n\n this.createKeywordMapper = function(map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n Object.keys(map).forEach(function(className) {\n var a = map[className];\n if (ignoreCase)\n a = a.toLowerCase();\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--; )\n keywords[list[i]] = className;\n });\n if (Object.getPrototypeOf(keywords)) {\n keywords.__proto__ = null;\n }\n this.$keywordList = Object.keys(keywords);\n map = null;\n return ignoreCase\n ? function(value) {return keywords[value.toLowerCase()] || defaultToken }\n : function(value) {return keywords[value] || defaultToken };\n };\n\n this.getKeywords = function() {\n return this.$keywords;\n };\n\n}).call(TextHighlightRules.prototype);\n\nexports.TextHighlightRules = TextHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Behaviour = function() {\n this.$behaviours = {};\n};\n\n(function () {\n\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n }\n \n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n }\n \n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n }\n \n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n } else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n }\n \n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n } else {\n var ret = {}\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n }\n\n}).call(Behaviour.prototype);\n\nexports.Behaviour = Behaviour;\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.packages = {};\n\naddUnicodePackage({\n L: \"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n Ll: \"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A\",\n Lu: \"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A\",\n Lt: \"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC\",\n Lm: \"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F\",\n Lo: \"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n M: \"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26\",\n Mn: \"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26\",\n Mc: \"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC\",\n Me: \"0488048906DE20DD-20E020E2-20E4A670-A672\",\n N: \"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nd: \"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nl: \"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF\",\n No: \"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835\",\n P: \"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65\",\n Pd: \"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D\",\n Ps: \"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62\",\n Pe: \"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63\",\n Pi: \"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20\",\n Pf: \"00BB2019201D203A2E032E052E0A2E0D2E1D2E21\",\n Pc: \"005F203F20402054FE33FE34FE4D-FE4FFF3F\",\n Po: \"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65\",\n S: \"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD\",\n Sm: \"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC\",\n Sc: \"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6\",\n Sk: \"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3\",\n So: \"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD\",\n Z: \"002000A01680180E2000-200A20282029202F205F3000\",\n Zs: \"002000A01680180E2000-200A202F205F3000\",\n Zl: \"2028\",\n Zp: \"2029\",\n C: \"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF\",\n Cc: \"0000-001F007F-009F\",\n Cf: \"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB\",\n Co: \"E000-F8FF\",\n Cs: \"D800-DFFF\",\n Cn: \"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF\"\n});\n\nfunction addUnicodePackage (pack) {\n var codePoint = /\\w{4}/g;\n for (var name in pack)\n exports.packages[name] = pack[name].replace(codePoint, \"\\\\u$&\");\n}\n\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar TokenIterator = function(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n};\n\n(function() { \n this.stepBackward = function() {\n this.$tokenIndex -= 1;\n \n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n \n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.stepForward = function() {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentTokenRow = function () {\n return this.$row;\n }; \n this.getCurrentTokenColumn = function() {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n \n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n \n return column; \n };\n this.getCurrentTokenPosition = function() {\n return {row: this.$row, column: this.getCurrentTokenColumn()};\n };\n \n}).call(TokenIterator.prototype);\n\nexports.TokenIterator = TokenIterator;\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Tokenizer = acequire(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar Behaviour = acequire(\"./behaviour\").Behaviour;\nvar unicode = acequire(\"../unicode\");\nvar lang = acequire(\"../lib/lang\");\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\nvar Mode = function() {\n this.HighlightRules = TextHighlightRules;\n this.$behaviour = new Behaviour();\n};\n\n(function() {\n\n this.tokenRe = new RegExp(\"^[\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]+\", \"g\"\n );\n\n this.nonTokenRe = new RegExp(\"^(?:[^\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]|\\\\s])+\", \"g\"\n );\n\n this.getTokenizer = function() {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules();\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n\n this.toggleCommentLines = function(state, session, startRow, endRow) {\n var doc = session.doc;\n\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n\n var comment = function(line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({row: i, column: line.length}, lineCommentEnd);\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n\n var uncomment = function(line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n\n var testRemove = function(line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n } else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n } else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n \n insertAtTabStop = session.getUseSoftTabs();\n\n var uncomment = function(line, i) {\n var m = line.match(regexpStart);\n if (!m) return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function(line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({row: i, column: minIndent}, commentWithSpace);\n else\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n var testRemove = function(line, i) {\n return regexpStart.test(line);\n };\n \n var shouldInsertSpace = function(line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n return true;\n };\n }\n\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n\n\n var minEmptyLength = Infinity;\n iter(function(line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n } else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n\n iter(shouldRemove ? uncomment : comment);\n };\n\n this.toggleBlockComment = function(state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n } else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n\n this.getNextLineIndent = function(state, line, tab) {\n return this.$getIndent(line);\n };\n\n this.checkOutdent = function(state, line, input) {\n return false;\n };\n\n this.autoOutdent = function(state, doc, row) {\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n this.createWorker = function(session) {\n return null;\n };\n\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n this.$embeds.push(i);\n this.$modes[i] = new mapping[i]();\n }\n }\n\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\", \n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n\n for (var i = 0; i < delegations.length; i++) {\n (function(scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function() {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n\n this.$delegator = function(method, args, defaultHandler) {\n var state = args[0];\n if (typeof state != \"string\")\n state = state[0];\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]]) continue;\n\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n\n this.transformAction = function(state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n \n this.getKeywords = function(append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) { \n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n \n this.$createKeywordList = function() {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n\n this.getCompletions = function(state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function(word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n \n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n } else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n } else {\n docLines.splice(\n row, endRow - row + 1,\n line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n );\n }\n break;\n }\n}\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n \n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.getPosition = function() {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n this.getDocument = function() {\n return this.document;\n };\n this.$insertRight = false;\n this.onChange = function(delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n\n if (delta.start.row > this.row)\n return;\n \n var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n \n function $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n }\n \n function $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n \n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n }\n this.setPosition = function(row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n } else {\n pos = this.$clipPositionToDocument(row, column);\n }\n\n if (this.row == pos.row && this.column == pos.column)\n return;\n\n var old = {\n row: this.row,\n column: this.column\n };\n\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n this.detach = function() {\n this.document.removeEventListener(\"change\", this.$onChange);\n };\n this.attach = function(doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n this.$clipPositionToDocument = function(row, column) {\n var pos = {};\n\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n\n if (column < 0)\n pos.column = 0;\n\n return pos;\n };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar applyDelta = acequire(\"./apply_delta\").applyDelta;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Anchor = acequire(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n } else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({row: 0, column: 0}, textOrLines);\n } else {\n this.insert({row: 0, column:0}, textOrLines);\n }\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setValue = function(text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({row: 0, column: 0}, text);\n };\n this.getValue = function() {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n this.createAnchor = function(row, column) {\n return new Anchor(this, row, column);\n };\n if (\"aaa\".split(/a/).length === 0) {\n this.$split = function(text) {\n return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n };\n } else {\n this.$split = function(text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n }\n\n\n this.$detectNewLine = function(text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineCharacter = function() {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n\n this.$autoNewLine = \"\";\n this.$newLineMode = \"auto\";\n this.setNewLineMode = function(newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineMode = function() {\n return this.$newLineMode;\n };\n this.isNewLine = function(text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n this.getLine = function(row) {\n return this.$lines[row] || \"\";\n };\n this.getLines = function(firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n this.getAllLines = function() {\n return this.getLines(0, this.getLength());\n };\n this.getLength = function() {\n return this.$lines.length;\n };\n this.getTextRange = function(range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n this.getLinesForRange = function(range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n } else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n this.insertLines = function(row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n this.removeLines = function(firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n this.insertNewLine = function(position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\\'\\', \\'\\']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n this.insert = function(position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n \n return this.insertMergedLines(position, this.$split(text));\n };\n this.insertInLine = function(position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n \n return this.clonePos(end);\n };\n \n this.clippedPos = function(row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n } else if (row < 0) {\n row = 0;\n } else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return {row: row, column: column};\n };\n \n this.clonePos = function(pos) {\n return {row: pos.row, column: pos.column};\n };\n \n this.pos = function(row, column) {\n return {row: row, column: column};\n };\n \n this.$clipPosition = function(position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n } else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n this.insertFullLines = function(row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n } else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({row: row, column: column}, lines);\n }; \n this.insertMergedLines = function(position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n \n return this.clonePos(end);\n };\n this.remove = function(range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n });\n return this.clonePos(start);\n };\n this.removeInLine = function(row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n }, true);\n \n return this.clonePos(start);\n };\n this.removeFullLines = function(firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow );\n var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 );\n var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow );\n var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length ); \n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n \n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n this.removeNewLine = function(row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n this.replace = function(range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n \n return end;\n };\n this.applyDeltas = function(deltas) {\n for (var i=0; i=0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n this.applyDelta = function(delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n \n if (isInsert && delta.lines.length > 20000)\n this.$splitAndapplyLargeDelta(delta, 20000);\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n };\n \n this.$splitAndapplyLargeDelta = function(delta, MAX) {\n var lines = delta.lines;\n var l = lines.length;\n var row = delta.start.row; \n var column = delta.start.column;\n var from = 0, to = 0;\n do {\n from = to;\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n if (to > l) {\n delta.lines = chunk;\n delta.start.row = row + from;\n delta.start.column = column;\n break;\n }\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n } while(true);\n };\n this.revertDelta = function(delta) {\n this.applyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n this.indexToPosition = function(index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return {row: i, column: index + lines[i].length + newlineLength};\n }\n return {row: l-1, column: lines[l-1].length};\n };\n this.positionToIndex = function(pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n\n return index + pos.column;\n };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar BackgroundTokenizer = function(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n\n var self = this;\n\n this.$worker = function() {\n if (!self.running) { return; }\n\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n \n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines ++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) { \n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n \n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n this.setTokenizer = function(tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n\n this.start(0);\n };\n this.setDocument = function(doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n\n this.stop();\n };\n this.fireUpdateEvent = function(firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", {data: data});\n };\n this.start = function(startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n \n this.scheduleStart = function() {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n }\n\n this.$updateOnChange = function(delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n this.lines[startRow] = null;\n } else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n\n this.stop();\n };\n this.stop = function() {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n this.getTokens = function(row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n this.getState = function(row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n\n this.$tokenizeRow = function(row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n\n var data = this.tokenizer.getLineTokens(line, state, row);\n\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n } else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n\n return this.lines[row] = data.tokens;\n };\n\n}).call(BackgroundTokenizer.prototype);\n\nexports.BackgroundTokenizer = BackgroundTokenizer;\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar SearchHighlight = function(regExp, clazz, type) {\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type || \"text\";\n};\n\n(function() {\n this.MAX_RANGES = 500;\n \n this.setRegexp = function(regExp) {\n if (this.regExp+\"\" == regExp+\"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n\n this.update = function(html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function(match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n\n for (var j = ranges.length; j --; ) {\n markerLayer.drawSingleLineMarker(\n html, ranges[j].toScreenRange(session), this.clazz, config);\n }\n }\n };\n\n}).call(SearchHighlight.prototype);\n\nexports.SearchHighlight = SearchHighlight;\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nfunction FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n } else {\n folds = this.folds = [ folds ];\n }\n\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column,\n last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n\n this.folds.forEach(function(fold) {\n fold.setFoldLine(this);\n }, this);\n}\n\n(function() {\n this.shiftRow = function(shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function(fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n\n this.addFold = function(fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function(a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n } else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n } else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n\n this.containsRow = function(row) {\n return row >= this.start.row && row <= this.end.row;\n };\n\n this.walk = function(callback, endRow, endColumn) {\n var lastEnd = 0,\n folds = this.folds,\n fold,\n cmp, stop, isNewRow = true;\n\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n\n this.getNextFoldTo = function(row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n } else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n\n this.addRemoveChars = function(row, column, len) {\n var ret = this.getNextFoldTo(row, column),\n fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row)\n {\n window.console && window.console.log(row, column, fold);\n } else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n\n this.split = function(row, column) {\n var pos = this.getNextFoldTo(row, column);\n \n if (!pos || pos.kind == \"inside\")\n return null;\n \n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n \n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n\n this.merge = function(foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n\n this.toString = function() {\n var ret = [this.range.toString() + \": [\" ];\n\n this.folds.forEach(function(fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n\n this.idxToPosition = function(idx) {\n var lastFoldEndColumn = 0;\n\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n\n lastFoldEndColumn = fold.end.column;\n }\n\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n}).call(FoldLine.prototype);\n\nexports.FoldLine = FoldLine;\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar Range = acequire(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\n\nvar RangeList = function() {\n this.ranges = [];\n};\n\n(function() {\n this.comparePoints = comparePoints;\n\n this.pointIndex = function(pos, excludeEdges, startIndex) {\n var list = this.ranges;\n\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i-2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n\n return -i-1;\n }\n return -i - 1;\n };\n\n this.add = function(range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n\n this.addList = function(list) {\n var removed = [];\n for (var i = list.length; i--; ) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n\n this.substractPoint = function(pos) {\n var i = this.pointIndex(pos);\n\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n this.merge = function() {\n var removed = [];\n var list = this.ranges;\n \n list = list.sort(function(a, b) {\n return comparePoints(a.start, b.start);\n });\n \n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n \n this.ranges = list;\n\n return removed;\n };\n\n this.contains = function(row, column) {\n return this.pointIndex({row: row, column: column}) >= 0;\n };\n\n this.containsPoint = function(pos) {\n return this.pointIndex(pos) >= 0;\n };\n\n this.rangeAtPoint = function(pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n\n\n this.clipRows = function(startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n\n var startIndex = this.pointIndex({row: startRow, column: 0});\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({row: endRow, column: 0}, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n\n this.removeAll = function() {\n return this.ranges.splice(0, this.ranges.length);\n };\n\n this.attach = function(session) {\n if (this.session)\n this.detach();\n\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n\n this.session.on('change', this.onChange);\n };\n\n this.detach = function() {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n\n this.$onChange = function(delta) {\n if (delta.action == \"insert\"){\n var start = delta.start;\n var end = delta.end;\n } else {\n var end = delta.start;\n var start = delta.end;\n }\n var startRow = start.row;\n var endRow = end.row;\n var lineDif = endRow - startRow;\n\n var colDiff = -start.column + end.column;\n var ranges = this.ranges;\n\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row < startRow)\n continue;\n if (r.start.row > startRow)\n break;\n\n if (r.start.row == startRow && r.start.column >= start.column ) {\n if (r.start.column == start.column && this.$insertRight) {\n } else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$insertRight) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) { \n if (r.end.column > r.start.column && r.end.column == ranges[i+1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n\n}).call(RangeList.prototype);\n\nexports.RangeList = RangeList;\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/range_list\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar RangeList = acequire(\"../range_list\").RangeList;\nvar oop = acequire(\"../lib/oop\")\nvar Fold = exports.Fold = function(range, placeholder) {\n this.foldLine = null;\n this.placeholder = placeholder;\n this.range = range;\n this.start = range.start;\n this.end = range.end;\n\n this.sameRow = range.start.row == range.end.row;\n this.subFolds = this.ranges = [];\n};\n\noop.inherits(Fold, RangeList);\n\n(function() {\n\n this.toString = function() {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n\n this.setFoldLine = function(foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function(fold) {\n fold.setFoldLine(foldLine);\n });\n };\n\n this.clone = function() {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function(subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n\n this.addSubFold = function(fold) {\n if (this.range.isEqual(fold))\n return;\n\n if (!this.range.containsRange(fold))\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n consumeRange(fold, this.start);\n\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n\n if (cmp == 0)\n return afterStart.addSubFold(fold);\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterEnd = this.subFolds[j];\n\n if (cmp == 0)\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n fold.setFoldLine(this.foldLine);\n\n return fold;\n };\n \n this.restoreRange = function(range) {\n return restoreRange(range, this.start);\n };\n\n}).call(Fold.prototype);\n\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar FoldLine = acequire(\"./fold_line\").FoldLine;\nvar Fold = acequire(\"./fold\").Fold;\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\n\nfunction Folding() {\n this.getFoldAt = function(row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var fold = folds[i];\n if (fold.range.contains(row, column)) {\n if (side == 1 && fold.range.isEnd(row, column)) {\n continue;\n } else if (side == -1 && fold.range.isStart(row, column)) {\n continue;\n }\n return fold;\n }\n }\n };\n this.getFoldsInRange = function(range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n\n start.column += 1;\n end.column -= 1;\n\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n } else if (cmp == 2) {\n continue;\n } else\n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n\n return foundFolds;\n };\n\n this.getFoldsInRangeList = function(ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function(range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n } else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function() {\n var folds = [];\n var foldLines = this.$foldData;\n \n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n\n return folds;\n };\n this.getFoldStringAt = function(row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n\n this.getFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n } else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n\n this.getFoldedRowCount = function(first, last) {\n var foldData = this.$foldData, rowCount = last-first+1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i],\n end = foldLine.end.row,\n start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last-start;\n else\n rowCount = 0; // in one fold\n }\n break;\n } else if (end >= first){\n if (start >= first) // fold inside range\n rowCount -= end-start;\n else\n rowCount -= end-first+1;\n }\n }\n return rowCount;\n };\n\n this.$addFoldLine = function(foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function(a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function(placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n \n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n if (!(startRow < endRow || \n startRow == endRow && startColumn <= endColumn - 2))\n throw new Error(\"The range has to be at least 2 characters width\");\n\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n \n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n folds.forEach(function(subFold) {\n fold.addSubFold(subFold);\n });\n }\n\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n } else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n } else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n\n return fold;\n };\n\n this.addFolds = function(folds) {\n folds.forEach(function(fold) {\n this.addFold(fold);\n }, this);\n };\n\n this.removeFold = function(fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n } else\n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n } else\n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n } else\n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n } else\n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n\n this.removeFolds = function(folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n\n cloneFolds.forEach(function(fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n\n this.expandFold = function(fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function(subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row+1, fold.end.row, fold.collapseChildren-1);\n }\n fold.subFolds = [];\n };\n\n this.expandFolds = function(folds) {\n folds.forEach(function(fold) {\n this.expandFold(fold);\n }, this);\n };\n\n this.unfold = function(location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n expandInner = true;\n } else if (typeof location == \"number\")\n range = new Range(location, 0, location, this.getLine(location).length);\n else if (\"row\" in location)\n range = Range.fromPoints(location, location);\n else\n range = location;\n \n folds = this.getFoldsInRangeList(range);\n if (expandInner) {\n this.removeFolds(folds);\n } else {\n var subFolds = folds;\n while (subFolds.length) {\n this.expandFolds(subFolds);\n subFolds = this.getFoldsInRangeList(range);\n }\n }\n if (folds.length)\n return folds;\n };\n this.isRowFolded = function(docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n\n this.getRowFoldEnd = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n\n this.getRowFoldStart = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n\n this.getFoldDisplayLine = function(foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n\n if (placeholder != null) {\n textLine += placeholder;\n } else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n\n this.getDisplayLine = function(row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n } else {\n return this.getFoldDisplayLine(\n foldLine, row, endColumn, startRow, startColumn);\n }\n };\n\n this.$cloneFoldData = function() {\n var fd = [];\n fd = this.$foldData.map(function(foldLine) {\n var folds = foldLine.folds.map(function(fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n\n return fd;\n };\n\n this.toggleFold = function(tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n\n if (fold) {\n this.expandFold(fold);\n return;\n } else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n } else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n } else if (bracketPos = this.findMatchingBracket({row: cursor.row, column: cursor.column + 1})) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n\n range.start.column++;\n } else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n } else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n } else if (folds.length == 1 ) {\n fold = folds[0];\n }\n }\n\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n\n this.addFold(placeholder, range);\n };\n\n this.getCommentFoldRange = function(row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n if (token && /^comment|string/.test(token.type)) {\n var range = new Range();\n var re = new RegExp(token.type.replace(/\\..*/, \"\\\\.\"));\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type));\n iterator.stepForward();\n }\n \n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + 2;\n\n iterator = new TokenIterator(this, row, column);\n \n if (dir != -1) {\n do {\n token = iterator.stepForward();\n } while (token && re.test(token.type));\n token = iterator.stepBackward();\n } else\n token = iterator.getCurrentToken();\n\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn() + token.value.length - 2;\n return range;\n }\n };\n\n this.foldAll = function(startRow, endRow, depth) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow\n ) {\n row = range.end.row;\n try {\n var fold = this.addFold(\"...\", range);\n if (fold)\n fold.collapseChildren = depth;\n } catch(e) {}\n }\n }\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function(style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n \n if (this.$foldStyle == style)\n return;\n\n this.$foldStyle = style;\n \n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n\n this.$setFolding = function(foldMode) {\n if (this.$foldMode == foldMode)\n return;\n \n this.$foldMode = foldMode;\n \n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n \n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n \n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n \n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n\n this.onFoldWidgetClick = function(row, e) {\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n \n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n \n this.$toggleFoldWidget = function(row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return;\n }\n\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return;\n }\n }\n \n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n } else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n } else if (range) {\n if (options.all) \n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n \n return range;\n };\n \n \n \n this.toggleFoldWidget = function(toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n \n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n \n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n\n if (fold) {\n this.removeFold(fold);\n } else {\n this.addFold(\"...\", range);\n }\n }\n };\n\n this.updateFoldWidgets = function(delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n } else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function(e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\n\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\n\nfunction BracketMatch() {\n\n this.findMatchingBracket = function(position, chr) {\n if (position.column == 0) return null;\n\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column-1);\n if (charBeforeCursor == \"\") return null;\n\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n \n this.getBracketRange = function(pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n\n var chr = line.charAt(pos.column-1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = {row: pos.row, column: pos.column + 1};\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n } else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n \n return range;\n };\n\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\"\n };\n\n this.$findOpeningBracket = function(bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n \n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n \n while (true) {\n \n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n \n value = token.value;\n valueIndex = value.length - 1;\n }\n \n return null;\n };\n\n this.$findClosingBracket = function(bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n\n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n\n while (true) {\n\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n\n valueIndex = 0;\n }\n \n return null;\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar config = acequire(\"./config\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Selection = acequire(\"./selection\").Selection;\nvar TextMode = acequire(\"./mode/text\").Mode;\nvar Range = acequire(\"./range\").Range;\nvar Document = acequire(\"./document\").Document;\nvar BackgroundTokenizer = acequire(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = acequire(\"./search_highlight\").SearchHighlight;\n\nvar EditSession = function(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n\n this.$foldData = [];\n this.$foldData.toString = function() {\n return this.join(\"\\n\");\n };\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n\n this.setDocument(text);\n this.selection = new Selection(this);\n\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n};\n\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setDocument = function(doc) {\n if (this.doc)\n this.doc.removeListener(\"change\", this.$onChange);\n\n this.doc = doc;\n doc.on(\"change\", this.$onChange);\n\n if (this.bgTokenizer)\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.resetCaches();\n };\n this.getDocument = function() {\n return this.doc;\n };\n this.$resetRowCache = function(docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n\n this.$getRowCacheIndex = function(cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n\n return low -1;\n };\n\n this.resetCaches = function() {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (this.bgTokenizer)\n this.bgTokenizer.start(0);\n };\n\n this.onChangeFold = function(e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n\n this.onChange = function(delta) {\n this.$modified = true;\n\n this.$resetRowCache(delta.start.row);\n\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager && !delta.ignore) {\n this.$deltasDoc.push(delta);\n if (removedFolds && removedFolds.length != 0) {\n this.$deltasFold.push({\n action: \"removeFolds\",\n folds: removedFolds\n });\n }\n\n this.$informUndoManager.schedule();\n }\n\n this.bgTokenizer && this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n this.setValue = function(text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n\n this.$resetRowCache(0);\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n this.getValue =\n this.toString = function() {\n return this.doc.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.getState = function(row) {\n return this.bgTokenizer.getState(row);\n };\n this.getTokens = function(row) {\n return this.bgTokenizer.getTokens(row);\n };\n this.getTokenAt = function(row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n i = tokens.length - 1;\n c = this.getLine(row).length;\n } else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n this.setUndoManager = function(undoManager) {\n this.$undoManager = undoManager;\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n\n if (undoManager) {\n var self = this;\n\n this.$syncInformUndoManager = function() {\n self.$informUndoManager.cancel();\n\n if (self.$deltasFold.length) {\n self.$deltas.push({\n group: \"fold\",\n deltas: self.$deltasFold\n });\n self.$deltasFold = [];\n }\n\n if (self.$deltasDoc.length) {\n self.$deltas.push({\n group: \"doc\",\n deltas: self.$deltasDoc\n });\n self.$deltasDoc = [];\n }\n\n if (self.$deltas.length > 0) {\n undoManager.execute({\n action: \"aceupdate\",\n args: [self.$deltas, self],\n merge: self.mergeUndoDeltas\n });\n }\n self.mergeUndoDeltas = false;\n self.$deltas = [];\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n };\n this.markUndoGroup = function() {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n \n this.$defaultUndoManager = {\n undo: function() {},\n redo: function() {},\n reset: function() {}\n };\n this.getUndoManager = function() {\n return this.$undoManager || this.$defaultUndoManager;\n };\n this.getTabString = function() {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n } else {\n return \"\\t\";\n }\n };\n this.setUseSoftTabs = function(val) {\n this.setOption(\"useSoftTabs\", val);\n };\n this.getUseSoftTabs = function() {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n this.setTabSize = function(tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n this.getTabSize = function() {\n return this.$tabSize;\n };\n this.isTabStop = function(position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n\n this.$overwrite = false;\n this.setOverwrite = function(overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n this.getOverwrite = function() {\n return this.$overwrite;\n };\n this.toggleOverwrite = function() {\n this.setOverwrite(!this.$overwrite);\n };\n this.addGutterDecoration = function(row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n this.removeGutterDecoration = function(row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n this.getBreakpoints = function() {\n return this.$breakpoints;\n };\n this.setBreakpoints = function(rows) {\n this.$breakpoints = [];\n for (var i=0; i 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column-1, column+1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n\n var start = column;\n if (start > 0) {\n do {\n start--;\n }\n while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n\n return new Range(row, start, row, end);\n };\n this.getAWordRange = function(row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n this.setNewLineMode = function(newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n this.getNewLineMode = function() {\n return this.doc.getNewLineMode();\n };\n this.setUseWorker = function(useWorker) { this.setOption(\"useWorker\", useWorker); };\n this.getUseWorker = function() { return this.$useWorker; };\n this.onReloadTokenizer = function(e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n\n this.$modes = {};\n this.$mode = null;\n this.$modeId = null;\n this.setMode = function(mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n } else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function(m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n } else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n\n this.$onChangeMode = function(mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode) \n return;\n\n this.$mode = mode;\n\n this.$stopWorker();\n\n if (this.$useWorker)\n this.$startWorker();\n\n var tokenizer = mode.getTokenizer();\n\n if(tokenizer.addEventListener !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.addEventListener(\"update\", onReloadTokenizer);\n }\n\n if (!this.bgTokenizer) {\n this.bgTokenizer = new BackgroundTokenizer(tokenizer);\n var _self = this;\n this.bgTokenizer.addEventListener(\"update\", function(e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n } else {\n this.bgTokenizer.setTokenizer(tokenizer);\n }\n\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n\n \n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\");\n }\n };\n\n this.$stopWorker = function() {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n\n this.$startWorker = function() {\n try {\n this.$worker = this.$mode.createWorker(this);\n } catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n this.getMode = function() {\n return this.$mode;\n };\n\n this.$scrollTop = 0;\n this.setScrollTop = function(scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n this.getScrollTop = function() {\n return this.$scrollTop;\n };\n\n this.$scrollLeft = 0;\n this.setScrollLeft = function(scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n this.getScrollLeft = function() {\n return this.$scrollLeft;\n };\n this.getScreenWidth = function() {\n this.$computeWidth();\n if (this.lineWidgets) \n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n \n this.getLineWidgetMaxWidth = function() {\n if (this.lineWidgetsWidth != null) return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function(w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n\n this.$computeWidth = function(force) {\n if (this.$modified || force) {\n this.$modified = false;\n\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n this.getLine = function(row) {\n return this.doc.getLine(row);\n };\n this.getLines = function(firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n this.getLength = function() {\n return this.doc.getLength();\n };\n this.getTextRange = function(range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n this.insert = function(position, text) {\n return this.doc.insert(position, text);\n };\n this.remove = function(range) {\n return this.doc.remove(range);\n };\n this.removeFullLines = function(firstRow, lastRow){\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n this.undoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.revertDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, true, lastUndoRange);\n } else {\n delta.deltas.forEach(function(foldDelta) {\n this.addFolds(foldDelta.folds);\n }, this);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.redoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.applyDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, false, lastUndoRange);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.setUndoSelect = function(enable) {\n this.$undoSelect = enable;\n };\n\n this.$getUndoSelection = function(deltas, isUndo, lastUndoRange) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n\n var delta = deltas[0];\n var range, point;\n var lastDeltaIsInsert = false;\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n lastDeltaIsInsert = true;\n } else {\n range = Range.fromPoints(delta.start, delta.start);\n lastDeltaIsInsert = false;\n }\n\n for (var i = 1; i < deltas.length; i++) {\n delta = deltas[i];\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n lastDeltaIsInsert = true;\n } else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n lastDeltaIsInsert = false;\n }\n }\n if (lastUndoRange != null) {\n if (Range.comparePoints(lastUndoRange.start, range.start) === 0) {\n lastUndoRange.start.column += range.end.column - range.start.column;\n lastUndoRange.end.column += range.end.column - range.start.column;\n }\n\n var cmp = lastUndoRange.compareRange(range);\n if (cmp == 1) {\n range.setStart(lastUndoRange.start);\n } else if (cmp == -1) {\n range.setEnd(lastUndoRange.end);\n }\n }\n\n return range;\n };\n this.replace = function(range, text) {\n return this.doc.replace(range, text);\n };\n this.moveText = function(fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function(x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n\n return toRange;\n };\n this.indentRows = function(startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row=startRow; row<=endRow; row++)\n this.doc.insertInLine({row: row, column: 0}, indentString);\n };\n this.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n } else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n\n this.$moveLines = function(firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0) return 0;\n var diff = row-firstRow;\n } else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength()-1) return 0;\n var diff = row-lastRow;\n } else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function(x){\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n \n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow+diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n this.moveLinesUp = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n this.moveLinesDown = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n this.duplicateLines = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n\n\n this.$clipRowToDocument = function(row) {\n return Math.max(0, Math.min(row, this.doc.getLength()-1));\n };\n\n this.$clipColumnToRow = function(row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n\n\n this.$clipPositionToDocument = function(row, column) {\n column = Math.max(0, column);\n\n if (row < 0) {\n row = 0;\n column = 0;\n } else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len-1).length;\n } else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n\n return {\n row: row,\n column: column\n };\n };\n\n this.$clipRangeToDocument = function(range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n } else {\n range.start.column = this.$clipColumnToRow(\n range.start.row,\n range.start.column\n );\n }\n\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n } else {\n range.end.column = this.$clipColumnToRow(\n range.end.row,\n range.end.column\n );\n }\n return range;\n };\n this.$wrapLimit = 80;\n this.$useWrapMode = false;\n this.$wrapLimitRange = {\n min : null,\n max : null\n };\n this.setUseWrapMode = function(useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n\n this._signal(\"changeWrapMode\");\n }\n };\n this.getUseWrapMode = function() {\n return this.$useWrapMode;\n };\n this.setWrapLimitRange = function(min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n this.adjustWrapLimit = function(desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = {min: $printMargin, max: $printMargin};\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n\n this.$constrainWrapLimit = function(wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n\n return wrapLimit;\n };\n this.getWrapLimit = function() {\n return this.$wrapLimit;\n };\n this.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n this.getWrapLimitRange = function() {\n return {\n min : this.$wrapLimitRange.min,\n max : this.$wrapLimitRange.max\n };\n };\n\n this.$updateInternalDataOnChange = function(delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n \n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n\n lastRow = firstRow;\n } else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n } else\n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n } else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n\n return removedFolds;\n };\n\n this.$updateRowLengthCache = function(firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n\n this.$updateWrapData = function(firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row ++;\n } else {\n tokens = [];\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(\n placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n } else {\n walkTokens = this.$getDisplayTokens(\n lines[row].substring(lastColumn, column),\n tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this),\n foldLine.end.row,\n lines[foldLine.end.row].length + 1\n );\n\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n var CHAR = 1,\n CHAR_EXT = 2,\n PLACEHOLDER_START = 3,\n PLACEHOLDER_BODY = 4,\n PUNCTUATION = 9,\n SPACE = 10,\n TAB = 11,\n TAB_SPACE = 12;\n\n\n this.$computeWrapSplits = function(tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n\n var isCode = this.$wrapAsCode;\n\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var displayed = tokens.slice(lastSplit, screenPos);\n var len = displayed.length;\n displayed.join(\"\")\n .replace(/12/g, function() {\n len -= 1;\n })\n .replace(/2/g, function() {\n len -= 1;\n });\n\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit -(wrapLimit>>2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split --;\n }\n } else {\n while (split > minSplit && tokens[split] < SPACE) {\n split --;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n this.$getDisplayTokens = function(str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n } else if((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n } else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n } else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n\n return [screenColumn, column];\n };\n\n this.lineWidgets = null;\n this.getRowLength = function(row) {\n if (this.lineWidgets)\n var h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n this.getRowLineCount = function(row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n } else {\n return this.$wrapData[row].length + 1;\n }\n };\n\n this.getRowWrapIndent = function(screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n } else {\n return 0;\n }\n }\n this.getScreenLastRowColumn = function(screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n this.getDocumentLastRowColumn = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n this.getDocumentLastRowColumnPosition = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n this.getRowSplitData = function(row) {\n if (!this.$useWrapMode) {\n return undefined;\n } else {\n return this.$wrapData[row];\n }\n };\n this.getScreenTabSize = function(screenColumn) {\n return this.$tabSize - screenColumn % this.$tabSize;\n };\n\n\n this.screenToDocumentRow = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n\n\n this.screenToDocumentColumn = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n this.screenToDocumentPosition = function(screenRow, screenColumn) {\n if (screenRow < 0)\n return {row: 0, column: 0};\n\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n } else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row+1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n } else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n } else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n var splitIndex = Math.floor(screenRow - row);\n column = splits[splitIndex];\n if(splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n\n return {row: docRow, column: docColumn};\n };\n this.documentToScreenPosition = function(docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n\n docRow = pos.row;\n docColumn = pos.column;\n\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n\n var rowEnd, row = 0;\n\n\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ?foldLine.start.row :Infinity;\n\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ?foldLine.start.row :Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n\n screenRow += this.getRowLength(row);\n row = rowEnd;\n\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n } else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow ++;\n screenRowOffset++;\n }\n textLine = textLine.substring(\n wrapRow[screenRowOffset - 1] || 0, textLine.length\n );\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n this.documentToScreenColumn = function(row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n this.documentToScreenRow = function(docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n this.getScreenLength = function() {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n } else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row :Infinity;\n\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row ++;\n if (row > foldStart) {\n row = fold.end.row+1;\n fold = this.$foldData[i++];\n foldStart = fold ?fold.start.row :Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n\n return screenRows;\n };\n this.$setFontMetrics = function(fm) {\n if (!this.$enableVarChar) return;\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n \n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n } else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n \n return [screenColumn, column];\n };\n };\n \n this.destroy = function() {\n if (this.bgTokenizer) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer = null;\n }\n this.$stopWorker();\n };\n function isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n }\n\n}).call(EditSession.prototype);\n\nacequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nacequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\n\n\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function(value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n } else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function() {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n }, \n wrapMethod: {\n set: function(val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$modified = true;\n this.$resetRowCache(0);\n this.$updateWrapData(0, this.getLength() - 1);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: { initialValue: true },\n firstLineNumber: {\n set: function() {this._signal(\"changeBreakpoint\");},\n initialValue: 1\n },\n useWorker: {\n set: function(useWorker) {\n this.$useWorker = useWorker;\n\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: {initialValue: true},\n tabSize: {\n set: function(tabSize) {\n if (isNaN(tabSize) || this.$tabSize === tabSize) return;\n\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n },\n initialValue: 4,\n handlesSet: true\n },\n overwrite: {\n set: function(val) {this._signal(\"changeOverwrite\");},\n initialValue: false\n },\n newLineMode: {\n set: function(val) {this.doc.setNewLineMode(val)},\n get: function() {return this.doc.getNewLineMode()},\n handlesSet: true\n },\n mode: {\n set: function(val) { this.setMode(val) },\n get: function() { return this.$modeId }\n }\n});\n\nexports.EditSession = EditSession;\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar Search = function() {\n this.$options = {};\n};\n\n(function() {\n this.set = function(options) {\n oop.mixin(this.$options, options);\n return this;\n };\n this.getOptions = function() {\n return lang.copyObject(this.$options);\n };\n this.setOptions = function(options) {\n this.$options = options;\n };\n this.find = function(session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n\n var firstRange = null;\n iterator.forEach(function(range, row, offset) {\n if (!range.start) {\n var column = range.offset + (offset || 0);\n firstRange = new Range(row, column, row, column + range.length);\n if (!range.length && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)\n ) {\n firstRange = null;\n return false;\n }\n } else\n firstRange = range;\n return true;\n });\n\n return firstRange;\n };\n this.findAll = function(session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n \n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n \n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex\n ) {\n continue;\n }\n ranges.push(prevRange = new Range(\n row, startIndex, row + len - 1, endIndex\n ));\n if (len > 2)\n row = row + len - 2;\n }\n } else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.start.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == range.start.row)\n i++;\n\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == range.end.row)\n j--;\n \n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n\n return ranges;\n };\n this.replace = function(input, replacement) {\n var options = this.$options;\n\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n\n if (!re)\n return;\n\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n \n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--; ) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n \n return replacement;\n };\n\n this.$matchIterator = function(session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n\n var callback;\n if (options.$isMultiLine) {\n var len = re.length;\n var matchIterator = function(line, row, offset) {\n var startIndex = line.search(re[0]);\n if (startIndex == -1)\n return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(row + i);\n if (line.search(re[i]) == -1)\n return;\n }\n\n var endIndex = line.match(re[len - 1])[0].length;\n\n var range = new Range(row, startIndex, row + len - 1, endIndex);\n if (re.offset == 1) {\n range.start.row--;\n range.start.column = Number.MAX_VALUE;\n } else if (offset)\n range.start.column += offset;\n\n if (callback(range))\n return true;\n };\n } else if (options.backwards) {\n var matchIterator = function(line, row, startIndex) {\n var matches = lang.getMatchOffsets(line, re);\n for (var i = matches.length-1; i >= 0; i--)\n if (callback(matches[i], row, startIndex))\n return true;\n };\n } else {\n var matchIterator = function(line, row, startIndex) {\n var matches = lang.getMatchOffsets(line, re);\n for (var i = 0; i < matches.length; i++)\n if (callback(matches[i], row, startIndex))\n return true;\n };\n }\n \n var lineIterator = this.$lineIterator(session, options);\n\n return {\n forEach: function(_callback) {\n callback = _callback;\n lineIterator.forEach(matchIterator);\n }\n };\n };\n\n this.$assembleRegExp = function(options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n\n var needle = options.needle;\n\n if (!options.needle)\n return options.re = false;\n\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n\n if (options.wholeWord)\n needle = \"\\\\b\" + needle + \"\\\\b\";\n\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n\n try {\n var re = new RegExp(needle, modifier);\n } catch(e) {\n re = false;\n }\n return options.re = re;\n };\n\n this.$assembleMultilineRegExp = function(needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++) try {\n re.push(new RegExp(parts[i], modifier));\n } catch(e) {\n return false;\n }\n if (parts[0] == \"\") {\n re.shift();\n re.offset = 1;\n } else {\n re.offset = 0;\n }\n return re;\n };\n\n this.$lineIterator = function(session, options) {\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n \n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n\n var forEach = backwards ? function(callback) {\n var row = start.row;\n\n var line = session.getLine(row).substring(0, start.column);\n if (callback(line, row))\n return;\n\n for (row--; row >= firstRow; row--)\n if (callback(session.getLine(row), row))\n return;\n\n if (options.wrap == false)\n return;\n\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (callback(session.getLine(row), row))\n return;\n } : function(callback) {\n var row = start.row;\n\n var line = session.getLine(row).substr(start.column);\n if (callback(line, row, start.column))\n return;\n\n for (row = row+1; row <= lastRow; row++)\n if (callback(session.getLine(row), row))\n return;\n\n if (options.wrap == false)\n return;\n\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (callback(session.getLine(row), row))\n return;\n };\n \n return {forEach: forEach};\n };\n\n}).call(Search.prototype);\n\nexports.Search = Search;\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keyUtil = acequire(\"../lib/keys\");\nvar useragent = acequire(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\n\nfunction HashHandler(config, platform) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = true;\n}\n\nfunction MultiHashHandler(config, platform) {\n HashHandler.call(this, config, platform);\n this.$singleCommand = false;\n}\n\nMultiHashHandler.prototype = HashHandler.prototype;\n\n(function() {\n \n\n this.addCommand = function(command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n\n this.commands[command.name] = command;\n\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n\n this.removeCommand = function(command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n } else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n\n this.bindKey = function(key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({exec: command, bindKey: key, name: command.name || key});\n \n key.split(\"|\").forEach(function(keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function(keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n \n function getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position || 0;\n }\n this._addCommandToBinding = function(keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n } else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n } else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n } else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n\n if (typeof position != \"number\") {\n if (position || command.isDefault)\n position = -100;\n else\n position = getPosition(command);\n }\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n\n this.addCommands = function(commands) {\n commands && Object.keys(commands).forEach(function(name) {\n var command = commands[name];\n if (!command)\n return;\n \n if (typeof command === \"string\")\n return this.bindKey(command, name);\n\n if (typeof command === \"function\")\n command = { exec: command };\n\n if (typeof command !== \"object\")\n return;\n\n if (!command.name)\n command.name = name;\n\n this.addCommand(command);\n }, this);\n };\n\n this.removeCommands = function(commands) {\n Object.keys(commands).forEach(function(name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n\n this.bindKeys = function(keyList) {\n Object.keys(keyList).forEach(function(key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n\n this._buildKeyHash = function(command) {\n this.bindKey(command.bindKey, command);\n };\n this.parseKeys = function(keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function(x){return x});\n var key = parts.pop();\n\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return {key: key, hashId: -1};\n else if (parts.length == 1 && parts[0] == \"shift\")\n return {key: key.toUpperCase(), hashId: -1};\n\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return {key: key, hashId: hashId};\n };\n\n this.findKeyCommand = function findKeyCommand(hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n\n this.handleKeyboard = function(data, hashId, keyString, keyCode) {\n if (keyCode < 0) return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n \n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return {command: \"null\"};\n }\n }\n \n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return {command: command};\n };\n \n this.getStatusText = function(editor, data) {\n return data.$keyChain || \"\";\n };\n\n}).call(HashHandler.prototype);\n\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar MultiHashHandler = acequire(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CommandManager = function(platform, commands) {\n MultiHashHandler.call(this, commands, platform);\n this.byName = this.commands;\n this.setDefaultHandler(\"exec\", function(e) {\n return e.command.exec(e.editor, e.args || {});\n });\n};\n\noop.inherits(CommandManager, MultiHashHandler);\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.exec = function(command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--; ) {\n if (this.exec(command[i], editor, args)) return true;\n }\n return false;\n }\n \n if (typeof command === \"string\")\n command = this.commands[command];\n\n if (!command)\n return false;\n\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n\n var e = {editor: editor, command: command, args: args};\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n\n return e.returnValue === false ? false : true;\n };\n\n this.toggleRecording = function(editor) {\n if (this.$inReplay)\n return;\n\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.removeEventListener(\"exec\", this.$addCommandToMacro);\n\n if (!this.macro.length)\n this.macro = this.oldMacro;\n\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function(e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n\n this.replay = function(editor) {\n if (this.$inReplay || !this.macro)\n return;\n\n if (this.recording)\n return this.toggleRecording(editor);\n\n try {\n this.$inReplay = true;\n this.macro.forEach(function(x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n } finally {\n this.$inReplay = false;\n }\n };\n\n this.trimMacro = function(m) {\n return m.map(function(x){\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n\n}).call(CommandManager.prototype);\n\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\nvar config = acequire(\"../config\");\nvar Range = acequire(\"../range\").Range;\n\nfunction bindKey(win, mac) {\n return {win: win, mac: mac};\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/settings_menu\", function(module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n}, {\n name: \"goToNextError\",\n bindKey: bindKey(\"Alt-E\", \"Ctrl-E\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"goToPreviousError\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Ctrl-Shift-E\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selectall\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function(editor) { editor.selectAll(); },\n readOnly: true\n}, {\n name: \"centerselection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function(editor) { editor.centerSelection(); },\n readOnly: true\n}, {\n name: \"gotoline\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function(editor) {\n var line = parseInt(prompt(\"Enter line number:\"), 10);\n if (!isNaN(line)) {\n editor.gotoLine(line);\n }\n },\n readOnly: true\n}, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function(editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function(editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleFoldWidget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleParentFoldWidget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldall\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function(editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldOther\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function(editor) { \n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfoldall\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function(editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findnext\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function(editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findprevious\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function(editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"selectOrFindNext\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function(editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext(); \n },\n readOnly: true\n}, {\n name: \"selectOrFindPrevious\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function(editor) { \n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n}, {\n name: \"find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor)});\n },\n readOnly: true\n}, {\n name: \"overwrite\",\n bindKey: \"Insert\",\n exec: function(editor) { editor.toggleOverwrite(); },\n readOnly: true\n}, {\n name: \"selecttostart\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Up\"),\n exec: function(editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotostart\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function(editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectup\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up\"),\n exec: function(editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golineup\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function(editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttoend\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-Down\"),\n exec: function(editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotoend\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function(editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectdown\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down\"),\n exec: function(editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golinedown\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function(editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordleft\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function(editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordleft\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function(editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolinestart\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left\"),\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolinestart\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function(editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectleft\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left\"),\n exec: function(editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoleft\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function(editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordright\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordright\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function(editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolineend\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolineend\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function(editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectright\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoright\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function(editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectpagedown\",\n bindKey: \"Shift-PageDown\",\n exec: function(editor) { editor.selectPageDown(); },\n readOnly: true\n}, {\n name: \"pagedown\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function(editor) { editor.scrollPageDown(); },\n readOnly: true\n}, {\n name: \"gotopagedown\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function(editor) { editor.gotoPageDown(); },\n readOnly: true\n}, {\n name: \"selectpageup\",\n bindKey: \"Shift-PageUp\",\n exec: function(editor) { editor.selectPageUp(); },\n readOnly: true\n}, {\n name: \"pageup\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function(editor) { editor.scrollPageUp(); },\n readOnly: true\n}, {\n name: \"gotopageup\",\n bindKey: \"PageUp\",\n exec: function(editor) { editor.gotoPageUp(); },\n readOnly: true\n}, {\n name: \"scrollup\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function(e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"scrolldown\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function(e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"selectlinestart\",\n bindKey: \"Shift-Home\",\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectlineend\",\n bindKey: \"Shift-End\",\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"togglerecording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function(editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n}, {\n name: \"replaymacro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function(editor) { editor.commands.replay(editor); },\n readOnly: true\n}, {\n name: \"jumptomatching\",\n bindKey: bindKey(\"Ctrl-P\", \"Ctrl-P\"),\n exec: function(editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selecttomatching\",\n bindKey: bindKey(\"Ctrl-Shift-P\", \"Ctrl-Shift-P\"),\n exec: function(editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"expandToMatching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function(editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"passKeysToBrowser\",\n bindKey: bindKey(null, null),\n exec: function() {},\n passEvent: true,\n readOnly: true\n}, {\n name: \"copy\",\n exec: function(editor) {\n },\n readOnly: true\n},\n{\n name: \"cut\",\n exec: function(editor) {\n var range = editor.getSelectionRange();\n editor._emit(\"cut\", range);\n\n if (!editor.selection.isEmpty()) {\n editor.session.remove(range);\n editor.clearSelection();\n }\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"paste\",\n exec: function(editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n}, {\n name: \"removeline\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function(editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"duplicateSelection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function(editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"sortlines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function(editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"togglecomment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function(editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"toggleBlockComment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function(editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"modifyNumberUp\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function(editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"modifyNumberDown\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function(editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor, true)});\n }\n}, {\n name: \"undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function(editor) { editor.undo(); }\n}, {\n name: \"redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function(editor) { editor.redo(); }\n}, {\n name: \"copylinesup\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function(editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesup\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function(editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"copylinesdown\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function(editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesdown\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function(editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"del\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function(editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"backspace\",\n bindKey: bindKey(\n \"Shift-Backspace|Backspace\",\n \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"\n ),\n exec: function(editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"cut_or_delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function(editor) { \n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n } else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolinestart\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function(editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolineend\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K\"),\n exec: function(editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordleft\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function(editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordright\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function(editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function(editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockoutdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockindent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function(editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"insertstring\",\n exec: function(editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"inserttext\",\n exec: function(editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"splitline\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function(editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"transposeletters\",\n bindKey: bindKey(\"Ctrl-T\", \"Ctrl-T\"),\n exec: function(editor) { editor.transposeLetters(); },\n multiSelectAction: function(editor) {editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"touppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function(editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"tolowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function(editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"expandtoline\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function(editor) {\n var range = editor.selection.getRange();\n\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"joinlines\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n } else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n}, {\n name: \"invertSelection\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n } else {\n newRanges.push(new Range(ranges[i-1].end.row, ranges[i-1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n\n editor.exitMultiSelectMode();\n editor.clearSelection();\n\n for(var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n}];\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar lang = acequire(\"./lib/lang\");\nvar useragent = acequire(\"./lib/useragent\");\nvar TextInput = acequire(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = acequire(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = acequire(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = acequire(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar Search = acequire(\"./search\").Search;\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = acequire(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = acequire(\"./commands/default_commands\").commands;\nvar config = acequire(\"./config\");\nvar TokenIterator = acequire(\"./token_iterator\").TokenIterator;\nvar Editor = function(renderer, session) {\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.keyBinding = new KeyBinding(this);\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n\n this.$blockScrolling = 0;\n this.$search = new Search().set({\n wrap: true\n });\n\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n\n this.$initOperationListeners();\n \n this._$emitInputEvent = lang.delayedCall(function() {\n this._signal(\"input\", {});\n if (this.session && this.session.bgTokenizer)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n \n this.on(\"change\", function(_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n\n this.setSession(session || new EditSession(\"\"));\n config.resetOptions(this);\n config._signal(\"editor\", this);\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$initOperationListeners = function() {\n function last(a) {return a[a.length - 1]}\n\n this.selections = [];\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this));\n\n this.on(\"change\", function() {\n this.curOp || this.startOperation();\n this.curOp.docChanged = true;\n }.bind(this), true);\n\n this.on(\"changeSelection\", function() {\n this.curOp || this.startOperation();\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n\n this.curOp = null;\n this.prevOp = {};\n this.startOperation = function(commadEvent) {\n if (this.curOp) {\n if (!commadEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commadEvent) {\n this.previousCommand = null;\n commadEvent = {};\n }\n\n this.$opResetTimer.schedule();\n this.curOp = {\n command: commadEvent.command || {},\n args: commadEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n if (this.curOp.command.name && this.curOp.command.scrollIntoView !== undefined)\n this.$blockScrolling++;\n };\n\n this.endOperation = function(e) {\n if (this.curOp) {\n if (e && e.returnValue === false)\n return this.curOp = null;\n this._signal(\"beforeEndOperation\");\n var command = this.curOp.command;\n if (command.name && this.$blockScrolling > 0)\n this.$blockScrolling--;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n \n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n this.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\n this.$historyTracker = function(e) {\n if (!this.$mergeUndoDeltas)\n return;\n\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n\n this.mergeNextCommand = true;\n } else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n\n if (\n this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000\n ) {\n shouldMerge = false; // the sequence is too long\n }\n\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n this.setKeyboardHandler = function(keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function(module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n } else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n this.getKeyboardHandler = function() {\n return this.keyBinding.getKeyboardHandler();\n };\n this.setSession = function(session) {\n if (this.session == session)\n return;\n if (this.curOp) this.endOperation();\n this.curOp = {};\n\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n \n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n \n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n \n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n \n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n \n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n \n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n \n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n \n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n \n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n \n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n \n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n \n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n \n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n \n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n \n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n \n this.onChangeMode();\n \n this.$blockScrolling += 1;\n this.onCursorChange();\n this.$blockScrolling -= 1;\n \n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n } else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n \n this.curOp = null;\n \n oldSession && oldSession._signal(\"changeEditor\", {oldEditor: this});\n session && session._signal(\"changeEditor\", {editor: this});\n };\n this.getSession = function() {\n return this.session;\n };\n this.setValue = function(val, cursorPos) {\n this.session.doc.setValue(val);\n\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n\n return val;\n };\n this.getValue = function() {\n return this.session.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.resize = function(force) {\n this.renderer.onResize(force);\n };\n this.setTheme = function(theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n this.getTheme = function() {\n return this.renderer.getTheme();\n };\n this.setStyle = function(style) {\n this.renderer.setStyle(style);\n };\n this.unsetStyle = function(style) {\n this.renderer.unsetStyle(style);\n };\n this.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container, \"fontSize\");\n };\n this.setFontSize = function(size) {\n this.setOption(\"fontSize\", size);\n };\n\n this.$highlightBrackets = function() {\n if (this.session.$bracketHighlight) {\n this.session.removeMarker(this.session.$bracketHighlight);\n this.session.$bracketHighlight = null;\n }\n\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function() {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n var pos = session.findMatchingBracket(self.getCursorPosition());\n if (pos) {\n var range = new Range(pos.row, pos.column, pos.row, pos.column + 1);\n } else if (session.$mode.getMatching) {\n var range = session.$mode.getMatching(self.session);\n }\n if (range)\n session.$bracketHighlight = session.addMarker(range, \"ace_bracket\", \"text\");\n }, 50);\n };\n this.$highlightTags = function() {\n if (this.$highlightTagPending)\n return;\n var self = this;\n this.$highlightTagPending = true;\n setTimeout(function() {\n self.$highlightTagPending = false;\n \n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n \n var pos = self.getCursorPosition();\n var iterator = new TokenIterator(self.session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n \n if (!token || !/\\b(?:tag-open|tag-name)/.test(token.type)) {\n session.removeMarker(session.$tagHighlight);\n session.$tagHighlight = null;\n return;\n }\n \n if (token.type.indexOf(\"tag-open\") != -1) {\n token = iterator.stepForward();\n if (!token)\n return;\n }\n \n var tag = token.value;\n var depth = 0;\n var prevToken = iterator.stepBackward();\n \n if (prevToken.value == '<'){\n do {\n prevToken = token;\n token = iterator.stepForward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<'){\n depth++;\n } else if (prevToken.value === '= 0);\n } else {\n do {\n token = prevToken;\n prevToken = iterator.stepBackward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<') {\n depth++;\n } else if (prevToken.value === ' 1))\n highlight = false;\n }\n\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n } else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n } else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n\n this.onSelectionChange = function(e) {\n var session = this.session;\n\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n } else {\n this.$updateHighlightActiveLine();\n }\n\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n\n this._signal(\"changeSelection\");\n };\n\n this.$getSelectionHighLightRegexp = function() {\n var session = this.session;\n\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n\n var startOuter = selection.start.column - 1;\n var endOuter = selection.end.column + 1;\n var line = session.getLine(selection.start.row);\n var lineCols = line.length;\n var needle = line.substring(Math.max(startOuter, 0),\n Math.min(endOuter, lineCols));\n if ((startOuter >= 0 && /^[\\w\\d]/.test(needle)) ||\n (endOuter <= lineCols && /[\\w\\d]$/.test(needle)))\n return;\n\n needle = line.substring(selection.start.column, selection.end.column);\n if (!/^[\\w\\d]+$/.test(needle))\n return;\n\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n\n return re;\n };\n\n\n this.onChangeFrontMarker = function() {\n this.renderer.updateFrontMarkers();\n };\n\n this.onChangeBackMarker = function() {\n this.renderer.updateBackMarkers();\n };\n\n\n this.onChangeBreakpoint = function() {\n this.renderer.updateBreakpoints();\n };\n\n this.onChangeAnnotation = function() {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n\n\n this.onChangeMode = function(e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n\n\n this.onChangeWrapLimit = function() {\n this.renderer.updateFull();\n };\n\n this.onChangeWrapMode = function() {\n this.renderer.onResize(true);\n };\n\n\n this.onChangeFold = function() {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n this.getSelectedText = function() {\n return this.session.getTextRange(this.getSelectionRange());\n };\n this.getCopyText = function() {\n var text = this.getSelectedText();\n this._signal(\"copy\", text);\n return text;\n };\n this.onCopy = function() {\n this.commands.exec(\"copy\", this);\n };\n this.onCut = function() {\n this.commands.exec(\"cut\", this);\n };\n this.onPaste = function(text, event) {\n var e = {text: text, event: event};\n this.commands.exec(\"paste\", this, e);\n };\n \n this.$handlePaste = function(e) {\n if (typeof e == \"string\") \n e = {text: e};\n this._signal(\"paste\", e);\n var text = e.text;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n this.insert(text);\n } else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n \n if (lines.length > ranges.length || lines.length < 2 || !lines[1])\n return this.commands.exec(\"insertstring\", this, text);\n \n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n this.session.remove(range);\n \n this.session.insert(range.start, lines[i]);\n }\n }\n };\n\n this.execCommand = function(command, args) {\n return this.commands.exec(command, this, args);\n };\n this.insert = function(text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n this.session.mergeUndoDeltas = false;\n this.$mergeNextCommand = false;\n }\n text = transform.text;\n\n }\n }\n \n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite()) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n var end = session.insert(cursor, text);\n\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(\n new Range(cursor.row, start + transform.selection[0],\n cursor.row, start + transform.selection[1]));\n } else { // Transform relative to the current row.\n this.selection.setSelectionRange(\n new Range(cursor.row + transform.selection[0],\n transform.selection[1],\n cursor.row + transform.selection[2],\n transform.selection[3]));\n }\n }\n\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n\n session.insert({row: cursor.row+1, column: 0}, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n };\n\n this.onTextInput = function(text) {\n this.keyBinding.onTextInput(text);\n };\n\n this.onCommandKey = function(e, hashId, keyCode) {\n this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n this.setOverwrite = function(overwrite) {\n this.session.setOverwrite(overwrite);\n };\n this.getOverwrite = function() {\n return this.session.getOverwrite();\n };\n this.toggleOverwrite = function() {\n this.session.toggleOverwrite();\n };\n this.setScrollSpeed = function(speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n this.getScrollSpeed = function() {\n return this.getOption(\"scrollSpeed\");\n };\n this.setDragDelay = function(dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n this.getDragDelay = function() {\n return this.getOption(\"dragDelay\");\n };\n this.setSelectionStyle = function(val) {\n this.setOption(\"selectionStyle\", val);\n };\n this.getSelectionStyle = function() {\n return this.getOption(\"selectionStyle\");\n };\n this.setHighlightActiveLine = function(shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n this.getHighlightActiveLine = function() {\n return this.getOption(\"highlightActiveLine\");\n };\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n this.setHighlightSelectedWord = function(shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n this.getHighlightSelectedWord = function() {\n return this.$highlightSelectedWord;\n };\n\n this.setAnimatedScroll = function(shouldAnimate){\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n\n this.getAnimatedScroll = function(){\n return this.renderer.getAnimatedScroll();\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.renderer.getShowInvisibles();\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n\n this.getDisplayIndentGuides = function() {\n return this.renderer.getDisplayIndentGuides();\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.renderer.getShowPrintMargin();\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.renderer.getPrintMarginColumn();\n };\n this.setReadOnly = function(readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n this.getReadOnly = function() {\n return this.getOption(\"readOnly\");\n };\n this.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n this.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n this.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n this.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n this.setShowFoldWidgets = function(show) {\n this.setOption(\"showFoldWidgets\", show);\n\n };\n this.getShowFoldWidgets = function() {\n return this.getOption(\"showFoldWidgets\");\n };\n\n this.setFadeFoldWidgets = function(fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n\n this.getFadeFoldWidgets = function() {\n return this.getOption(\"fadeFoldWidgets\");\n };\n this.remove = function(dir) {\n if (this.selection.isEmpty()){\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.removeWordRight = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeWordLeft = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineStart = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineEnd = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.splitLine = function() {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n this.transposeLetters = function() {\n if (!this.selection.isEmpty()) {\n return;\n }\n\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column-1);\n range = new Range(cursor.row, column-1, cursor.row, column+1);\n }\n else {\n swap = line.charAt(column-1) + line.charAt(column-2);\n range = new Range(cursor.row, column-2, cursor.row, column);\n }\n this.session.replace(range, swap);\n };\n this.toLowerCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.toUpperCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.indent = function() {\n var session = this.session;\n var range = this.getSelectionRange();\n\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n } else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n \n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n } else {\n var count = column % size;\n while (line[range.start.column] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n this.blockIndent = function() {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n this.blockOutdent = function() {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n this.sortLines = function() {\n var rows = this.$getSelectedRows();\n var session = this.session;\n\n var lines = [];\n for (i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n\n lines.sort(function(a, b) {\n if (a.toLowerCase() < b.toLowerCase()) return -1;\n if (a.toLowerCase() > b.toLowerCase()) return 1;\n return 0;\n });\n\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i-rows.first]);\n }\n };\n this.toggleCommentLines = function() {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n\n this.toggleBlockComment = function() {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n this.getNumberAt = function(row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if(m.index <= column && m.index+m[0].length >= column){\n var number = {\n value: m[0],\n start: m.index,\n end: m.index+m[0].length\n };\n return number;\n }\n }\n return null;\n };\n this.modifyNumber = function(amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column-1, row, column);\n\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n\n\n if(fp !== nr.end && column < fp){\n amount *= Math.pow(10, nr.end - column - 1);\n } else {\n amount *= Math.pow(10, nr.end - column);\n }\n\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start +1, column + nnr.length - nr.value.length));\n\n }\n }\n };\n this.removeLines = function() {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n\n this.duplicateSelection = function() {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n } else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n\n sel.setSelectionRange(range, reverse);\n }\n };\n this.moveLinesDown = function() {\n this.$moveLines(1, false);\n };\n this.moveLinesUp = function() {\n this.$moveLines(-1, false);\n };\n this.moveText = function(range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n this.copyLinesUp = function() {\n this.$moveLines(-1, true);\n };\n this.copyLinesDown = function() {\n this.$moveLines(1, true);\n };\n this.$moveLines = function(dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1) moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n } else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n \n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff) ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1) rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy) diff = 0;\n totalDiff += diff;\n }\n \n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n this.$getSelectedRows = function(range) {\n range = (range || this.getSelectionRange()).collapseRows();\n\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n\n this.onCompositionStart = function(text) {\n this.renderer.showComposition(this.getCursorPosition());\n };\n\n this.onCompositionUpdate = function(text) {\n this.renderer.setCompositionText(text);\n };\n\n this.onCompositionEnd = function() {\n this.renderer.hideComposition();\n };\n this.getFirstVisibleRow = function() {\n return this.renderer.getFirstVisibleRow();\n };\n this.getLastVisibleRow = function() {\n return this.renderer.getLastVisibleRow();\n };\n this.isRowVisible = function(row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n this.isRowFullyVisible = function(row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n this.$getVisibleRowCount = function() {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n\n this.$moveByPage = function(dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n\n this.$blockScrolling++;\n if (select === true) {\n this.selection.$moveSelection(function(){\n this.moveCursorBy(rows, 0);\n });\n } else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n this.$blockScrolling--;\n\n var scrollTop = renderer.scrollTop;\n\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n\n renderer.animateScrolling(scrollTop);\n };\n this.selectPageDown = function() {\n this.$moveByPage(1, true);\n };\n this.selectPageUp = function() {\n this.$moveByPage(-1, true);\n };\n this.gotoPageDown = function() {\n this.$moveByPage(1, false);\n };\n this.gotoPageUp = function() {\n this.$moveByPage(-1, false);\n };\n this.scrollPageDown = function() {\n this.$moveByPage(1);\n };\n this.scrollPageUp = function() {\n this.$moveByPage(-1);\n };\n this.scrollToRow = function(row) {\n this.renderer.scrollToRow(row);\n };\n this.scrollToLine = function(line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n this.centerSelection = function() {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n this.getCursorPosition = function() {\n return this.selection.getCursor();\n };\n this.getCursorPositionScreen = function() {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n this.getSelectionRange = function() {\n return this.selection.getRange();\n };\n this.selectAll = function() {\n this.$blockScrolling += 1;\n this.selection.selectAll();\n this.$blockScrolling -= 1;\n };\n this.clearSelection = function() {\n this.selection.clearSelection();\n };\n this.moveCursorTo = function(row, column) {\n this.selection.moveCursorTo(row, column);\n };\n this.moveCursorToPosition = function(pos) {\n this.selection.moveCursorToPosition(pos);\n };\n this.jumpToMatching = function(select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var token = prevToken || iterator.stepForward();\n\n if (!token) return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n \n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token && token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n \n if (prevToken.value === '<') {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if(this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n\n this.selection.setSelectionRange(selection);\n this.$blockScrolling -= 1;\n\n return replaced;\n };\n\n this.$tryReplace = function(range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n } else {\n return null;\n }\n };\n this.getLastSearchOptions = function() {\n return this.$search.getOptions();\n };\n this.find = function(needle, options, animate) {\n if (!options)\n options = {};\n\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({needle: needle});\n }\n\n this.$search.set(options);\n if (!options.start)\n this.$search.set({start: range});\n\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n this.findNext = function(options, animate) {\n this.find({skipCurrent: true, backwards: false}, options, animate);\n };\n this.findPrevious = function(options, animate) {\n this.find(options, {skipCurrent: true, backwards: true}, animate);\n };\n\n this.revealRange = function(range, animate) {\n this.$blockScrolling += 1;\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n this.$blockScrolling -= 1;\n\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n this.undo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().undo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.redo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().redo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.destroy = function() {\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session) {\n this.session.destroy();\n }\n };\n this.setAutoScrollEditorIntoView = function(enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function() {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function() {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function() {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())\n ) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n } else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n } else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function(enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n\n\n this.$resetCursorStyle = function() {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n\n}).call(Editor.prototype);\n\n\n\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function(style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", {data: style});\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function() {this.$updateHighlightActiveLine();},\n initialValue: true\n },\n highlightSelectedWord: {\n set: function(shouldHighlight) {this.$onSelectionChange();},\n initialValue: true\n },\n readOnly: {\n set: function(readOnly) {\n this.$resetCursorStyle(); \n },\n initialValue: false\n },\n cursorStyle: {\n set: function(val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: {initialValue: true},\n wrapBehavioursEnabled: {initialValue: true},\n autoScrollEditorIntoView: {\n set: function(val) {this.setAutoScrollEditorIntoView(val)}\n },\n keyboardHandler: {\n set: function(val) { this.setKeyboardHandler(val); },\n get: function() { return this.keybindingId; },\n handlesSet: true\n },\n\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n showLineNumbers: \"renderer\",\n showGutter: \"renderer\",\n displayIndentGuides: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\n\nexports.Editor = Editor;\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar UndoManager = function() {\n this.reset();\n};\n\n(function() {\n this.execute = function(options) {\n var deltaSets = options.args[0];\n this.$doc = options.args[1];\n if (options.merge && this.hasUndo()){\n this.dirtyCounter--;\n deltaSets = this.$undoStack.pop().concat(deltaSets);\n }\n this.$undoStack.push(deltaSets);\n this.$redoStack = [];\n if (this.dirtyCounter < 0) {\n this.dirtyCounter = NaN;\n }\n this.dirtyCounter++;\n };\n this.undo = function(dontSelect) {\n var deltaSets = this.$undoStack.pop();\n var undoSelectionRange = null;\n if (deltaSets) {\n undoSelectionRange = this.$doc.undoChanges(deltaSets, dontSelect);\n this.$redoStack.push(deltaSets);\n this.dirtyCounter--;\n }\n\n return undoSelectionRange;\n };\n this.redo = function(dontSelect) {\n var deltaSets = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSets) {\n redoSelectionRange =\n this.$doc.redoChanges(this.$deserializeDeltas(deltaSets), dontSelect);\n this.$undoStack.push(deltaSets);\n this.dirtyCounter++;\n }\n return redoSelectionRange;\n };\n this.reset = function() {\n this.$undoStack = [];\n this.$redoStack = [];\n this.dirtyCounter = 0;\n };\n this.hasUndo = function() {\n return this.$undoStack.length > 0;\n };\n this.hasRedo = function() {\n return this.$redoStack.length > 0;\n };\n this.markClean = function() {\n this.dirtyCounter = 0;\n };\n this.isClean = function() {\n return this.dirtyCounter === 0;\n };\n this.$serializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $serializeDelta);\n };\n this.$deserializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $deserializeDelta);\n };\n \n function $serializeDelta(delta){\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines.length == 1 ? null : delta.lines,\n text: delta.lines.length == 1 ? delta.lines[0] : null\n };\n }\n \n function $deserializeDelta(delta) {\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines || [delta.text]\n };\n }\n \n function cloneDeltaSetsObj(deltaSets_old, fnGetModifiedDelta) {\n var deltaSets_new = new Array(deltaSets_old.length);\n for (var i = 0; i < deltaSets_old.length; i++) {\n var deltaSet_old = deltaSets_old[i];\n var deltaSet_new = { group: deltaSet_old.group, deltas: new Array(deltaSet_old.length)};\n \n for (var j = 0; j < deltaSet_old.deltas.length; j++) {\n var delta_old = deltaSet_old.deltas[j];\n deltaSet_new.deltas[j] = fnGetModifiedDelta(delta_old);\n }\n \n deltaSets_new[i] = deltaSet_new;\n }\n return deltaSets_new;\n }\n \n}).call(UndoManager.prototype);\n\nexports.UndoManager = UndoManager;\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar lang = acequire(\"../lib/lang\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Gutter = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n \n this.gutterWidth = 0;\n\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n\n this.$cells = [];\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.setSession = function(session) {\n if (this.session)\n this.session.removeEventListener(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n\n this.addGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n\n this.removeGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n\n this.setAnnotations = function(annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = {text: []};\n \n var annoText = annotation.text;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n\n if (rowInfo.text.indexOf(annoText) === -1)\n rowInfo.text.push(annoText);\n\n var type = annotation.type;\n if (type == \"error\")\n rowInfo.className = \" ace_error\";\n else if (type == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (type == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n\n this.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n } else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n } else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n\n this.update = function(config) {\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineNumber = 0;\n \n var gutterRenderer = session.gutterRenderer || this.$renderer;\n\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$cells.length > index + 1) {\n cell = this.$cells.pop();\n this.element.removeChild(cell.element);\n }\n break;\n }\n\n cell = this.$cells[++index];\n if (!cell) {\n cell = {element: null, textNode: null, foldWidget: null};\n cell.element = dom.createElement(\"div\");\n cell.textNode = document.createTextNode('');\n cell.element.appendChild(cell.textNode);\n this.element.appendChild(cell.element);\n this.$cells[index] = cell;\n }\n\n var className = \"ace_gutter-cell \";\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row])\n className += this.$annotations[row].className;\n if (cell.element.className != className)\n cell.element.className = className;\n\n var height = session.getRowLength(row) * config.lineHeight + \"px\";\n if (height != cell.element.style.height)\n cell.element.style.height = height;\n\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n\n if (c) {\n if (!cell.foldWidget) {\n cell.foldWidget = dom.createElement(\"span\");\n cell.element.appendChild(cell.foldWidget);\n }\n var className = \"ace_fold-widget ace_\" + c;\n if (c == \"start\" && row == foldStart && row < fold.end.row)\n className += \" ace_closed\";\n else\n className += \" ace_open\";\n if (cell.foldWidget.className != className)\n cell.foldWidget.className = className;\n\n var height = config.lineHeight + \"px\";\n if (cell.foldWidget.style.height != height)\n cell.foldWidget.style.height = height;\n } else {\n if (cell.foldWidget) {\n cell.element.removeChild(cell.foldWidget);\n cell.foldWidget = null;\n }\n }\n \n var text = lastLineNumber = gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber;\n if (text != cell.textNode.data)\n cell.textNode.data = text;\n\n row++;\n }\n\n this.element.style.height = config.minHeight + \"px\";\n\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineNumber = session.getLength() + firstLineNumber;\n\n var gutterWidth = gutterRenderer \n ? gutterRenderer.getWidth(session, lastLineNumber, config)\n : lastLineNumber.toString().length * config.characterWidth;\n \n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._emit(\"changeGutterWidth\", gutterWidth);\n }\n };\n\n this.$fixedWidth = false;\n \n this.$showLineNumbers = true;\n this.$renderer = \"\";\n this.setShowLineNumbers = function(show) {\n this.$renderer = !show && {\n getWidth: function() {return \"\"},\n getText: function() {return \"\"}\n };\n };\n \n this.getShowLineNumbers = function() {\n return this.$showLineNumbers;\n };\n \n this.$showFoldWidgets = true;\n this.setShowFoldWidgets = function(show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n \n this.getShowFoldWidgets = function() {\n return this.$showFoldWidgets;\n };\n\n this.$computePadding = function() {\n if (!this.element.firstChild)\n return {left: 0, right: 0};\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = parseInt(style.paddingLeft) + 1 || 0;\n this.$padding.right = parseInt(style.paddingRight) || 0;\n return this.$padding;\n };\n\n this.getRegion = function(point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n\n}).call(Gutter.prototype);\n\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar dom = acequire(\"../lib/dom\");\n\nvar Marker = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n};\n\n(function() {\n\n this.$padding = 0;\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n this.setSession = function(session) {\n this.session = session;\n };\n \n this.setMarkers = function(markers) {\n this.markers = markers;\n };\n\n this.update = function(config) {\n var config = config || this.config;\n if (!config)\n return;\n\n this.config = config;\n\n\n var html = [];\n for (var key in this.markers) {\n var marker = this.markers[key];\n\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty()) continue;\n\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n marker.renderer(html, range, left, top, config);\n } else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n } else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n } else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n } else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$getTop = function(row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n\n function getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n }\n this.drawTextMarker = function(stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0; \n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n this.drawSingleLineMarker(stringBuilder, lineRange, \n clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end),\n layerConfig, row == end ? 0 : 1, extraStyle);\n }\n };\n this.drawMultiLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height = config.lineHeight;\n var top = this.$getTop(range.start.row, config);\n var left = padding + range.start.column * config.characterWidth;\n extraStyle = extraStyle || \"\";\n\n stringBuilder.push(\n \"
    \"\n );\n top = this.$getTop(range.end.row, config);\n var width = range.end.column * config.characterWidth;\n\n stringBuilder.push(\n \"
    \"\n );\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n \n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n\n stringBuilder.push(\n \"
    \"\n );\n };\n this.drawSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n\n stringBuilder.push(\n \"
    \"\n );\n };\n\n this.drawFullLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n\n stringBuilder.push(\n \"
    \"\n );\n };\n \n this.drawScreenLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n\n stringBuilder.push(\n \"
    \"\n );\n };\n\n}).call(Marker.prototype);\n\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Text = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.EOF_CHAR = \"\\xB6\";\n this.EOL_CHAR_LF = \"\\xAC\";\n this.EOL_CHAR_CRLF = \"\\xa4\";\n this.EOL_CHAR = this.EOL_CHAR_LF;\n this.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\n this.SPACE_CHAR = \"\\xB7\";\n this.$padding = 0;\n\n this.$updateEolChar = function() {\n var EOL_CHAR = this.session.doc.getNewLineCharacter() == \"\\n\"\n ? this.EOL_CHAR_LF\n : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n }\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.element.style.padding = \"0 \" + padding + \"px\";\n };\n\n this.getLineHeight = function() {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n\n this.getCharacterWidth = function() {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n \n this.$setFontMetrics = function(measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function(e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n }\n\n this.checkForSizeChanges = function() {\n this.$fontMetrics.checkForSizeChanges();\n };\n this.$pollSizeChanges = function() {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n this.setSession = function(session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n\n this.showInvisibles = false;\n this.setShowInvisibles = function(showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n\n this.showInvisibles = showInvisibles;\n this.$computeTabString();\n return true;\n };\n\n this.displayIndentGuides = true;\n this.setDisplayIndentGuides = function(display) {\n if (this.displayIndentGuides == display)\n return false;\n\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n\n this.$tabStrings = [];\n this.onChangeTabSize =\n this.$computeTabString = function() {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showInvisibles) {\n tabStr.push(\"\"\n + lang.stringRepeat(this.TAB_CHAR, i)\n + \"\");\n } else {\n tabStr.push(lang.stringRepeat(\" \", i));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = \"\";\n var tabClass = \"\";\n if (this.showInvisibles) {\n className += \" ace_invisible\";\n spaceClass = \" ace_invisible_space\";\n tabClass = \" ace_invisible_tab\";\n var spaceContent = lang.stringRepeat(this.SPACE_CHAR, this.tabSize);\n var tabContent = lang.stringRepeat(this.TAB_CHAR, this.tabSize);\n } else{\n var spaceContent = lang.stringRepeat(\" \", this.tabSize);\n var tabContent = spaceContent;\n }\n\n this.$tabStrings[\" \"] = \"\" + spaceContent + \"\";\n this.$tabStrings[\"\\t\"] = \"\" + tabContent + \"\";\n }\n };\n\n this.updateLines = function(config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n this.scrollLines(config);\n }\n this.config = config;\n\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n } else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx ++;\n }\n\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > last)\n break;\n\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n var html = [];\n this.$renderLine(\n html, row, !this.$useLineGroups(), row == foldStart ? foldLine : false\n );\n lineElement.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n lineElement.innerHTML = html.join(\"\");\n }\n row++;\n }\n };\n\n this.scrollLines = function(config) {\n var oldConfig = this.config;\n this.config = config;\n\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n\n var el = this.element;\n if (oldConfig.firstRow < config.firstRow)\n for (var row=this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row>0; row--)\n el.removeChild(el.firstChild);\n\n if (oldConfig.lastRow > config.lastRow)\n for (var row=this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row>0; row--)\n el.removeChild(el.lastChild);\n\n if (config.firstRow < oldConfig.firstRow) {\n var fragment = this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1);\n if (el.firstChild)\n el.insertBefore(fragment, el.firstChild);\n else\n el.appendChild(fragment);\n }\n\n if (config.lastRow > oldConfig.lastRow) {\n var fragment = this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow);\n el.appendChild(fragment);\n }\n };\n\n this.$renderLinesFragment = function(config, firstRow, lastRow) {\n var fragment = this.element.ownerDocument.createDocumentFragment();\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n\n var container = dom.createElement(\"div\");\n\n var html = [];\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n container.innerHTML = html.join(\"\");\n if (this.$useLineGroups()) {\n container.className = 'ace_line_group';\n fragment.appendChild(container);\n container.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n\n } else {\n while(container.firstChild)\n fragment.appendChild(container.firstChild);\n }\n\n row++;\n }\n return fragment;\n };\n\n this.update = function(config) {\n this.config = config;\n\n var html = [];\n var firstRow = config.firstRow, lastRow = config.lastRow;\n\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > lastRow)\n break;\n\n if (this.$useLineGroups())\n html.push(\"
    \")\n\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n\n if (this.$useLineGroups())\n html.push(\"
    \"); // end the line group\n\n row++;\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$textToken = {\n \"text\": true,\n \"rparen\": true,\n \"lparen\": true\n };\n\n this.$renderToken = function(stringBuilder, screenColumn, token, value) {\n var self = this;\n var replaceReg = /\\t|&|<|>|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF\\uFFF9-\\uFFFC])|[\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3000-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]/g;\n var replaceFunc = function(c, a, b, tabIdx, idx4) {\n if (a) {\n return self.showInvisibles\n ? \"\" + lang.stringRepeat(self.SPACE_CHAR, c.length) + \"\"\n : c;\n } else if (c == \"&\") {\n return \"&\";\n } else if (c == \"<\") {\n return \"<\";\n } else if (c == \">\") {\n return \">\";\n } else if (c == \"\\t\") {\n var tabSize = self.session.getScreenTabSize(screenColumn + tabIdx);\n screenColumn += tabSize - 1;\n return self.$tabStrings[tabSize];\n } else if (c == \"\\u3000\") {\n var classToUse = self.showInvisibles ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n var space = self.showInvisibles ? self.SPACE_CHAR : \"\";\n screenColumn += 1;\n return \"\" + space + \"\";\n } else if (b) {\n return \"\" + self.SPACE_CHAR + \"\";\n } else {\n screenColumn += 1;\n return \"\" + c + \"\";\n }\n };\n\n var output = value.replace(replaceReg, replaceFunc);\n\n if (!this.$textToken[token.type]) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var style = \"\";\n if (token.type == \"fold\")\n style = \" style='width:\" + (token.value.length * this.config.characterWidth) + \"px;' \";\n stringBuilder.push(\"\", output, \"\");\n }\n else {\n stringBuilder.push(output);\n }\n return screenColumn + value.length;\n };\n\n this.renderIndentGuide = function(stringBuilder, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\" \"], cols/this.tabSize));\n return value.substr(cols);\n } else if (value[0] == \"\\t\") {\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\"\\t\"], cols));\n return value.substr(cols);\n }\n return value;\n };\n\n this.$renderWrappedLine = function(stringBuilder, tokens, splits, onlyContents) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(stringBuilder, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n chars += value.length;\n } else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn,\n token, value.substring(0, splitChars - chars)\n );\n value = value.substring(splitChars - chars);\n chars = splitChars;\n\n if (!onlyContents) {\n stringBuilder.push(\"
    \",\n \"
    \"\n );\n }\n\n stringBuilder.push(lang.stringRepeat(\"\\xa0\", splits.indent));\n\n split ++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn, token, value\n );\n }\n }\n }\n };\n\n this.$renderSimpleLine = function(stringBuilder, tokens) {\n var screenColumn = 0;\n var token = tokens[0];\n var value = token.value;\n if (this.displayIndentGuides)\n value = this.renderIndentGuide(stringBuilder, value);\n if (value)\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n for (var i = 1; i < tokens.length; i++) {\n token = tokens[i];\n value = token.value;\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n }\n };\n this.$renderLine = function(stringBuilder, row, onlyContents, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n\n\n if (!onlyContents) {\n stringBuilder.push(\n \"
    \"\n );\n }\n\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length)\n this.$renderWrappedLine(stringBuilder, tokens, splits, onlyContents);\n else\n this.$renderSimpleLine(stringBuilder, tokens);\n }\n\n if (this.showInvisibles) {\n if (foldLine)\n row = foldLine.end.row\n\n stringBuilder.push(\n \"\",\n row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR,\n \"\"\n );\n }\n if (!onlyContents)\n stringBuilder.push(\"
    \");\n };\n\n this.$getFoldLineTokens = function(row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n\n col = from + value.length;\n idx += 1;\n }\n\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n } else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n\n var tokens = session.getTokens(row);\n foldLine.walk(function(placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n } else {\n if (isNewRow)\n tokens = session.getTokens(row);\n\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n\n return renderTokens;\n };\n\n this.$useLineGroups = function() {\n return this.session.getUseWrapMode();\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$measureNode)\n this.$measureNode.parentNode.removeChild(this.$measureNode);\n delete this.$measureNode;\n };\n\n}).call(Text.prototype);\n\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar isIE8;\n\nvar Cursor = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n \n if (isIE8 === undefined)\n isIE8 = !(\"opacity\" in this.element.style);\n\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = (isIE8\n ? this.$updateVisibility\n : this.$updateOpacity).bind(this);\n};\n\n(function() {\n \n this.$updateVisibility = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.visibility = val ? \"\" : \"hidden\";\n };\n this.$updateOpacity = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.opacity = val ? \"\" : \"0\";\n };\n \n\n this.$padding = 0;\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n\n this.setSession = function(session) {\n this.session = session;\n };\n\n this.setBlinking = function(blinking) {\n if (blinking != this.isBlinking){\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n\n this.setBlinkInterval = function(blinkInterval) {\n if (blinkInterval != this.blinkInterval){\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n\n this.setSmoothBlinking = function(smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking && !isIE8) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.$updateCursors = (this.$updateOpacity).bind(this);\n this.restartTimer();\n }\n };\n\n this.addCursor = function() {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n\n this.removeCursor = function() {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n\n this.hideCursor = function() {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.showCursor = function() {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.restartTimer = function() {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n if (this.smoothBlinking) {\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n \n update(true);\n\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible)\n return;\n\n if (this.smoothBlinking) {\n setTimeout(function(){\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }.bind(this));\n }\n \n var blink = function(){\n this.timeoutId = setTimeout(function() {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n\n this.intervalId = setInterval(function() {\n update(true);\n blink();\n }, this.blinkInterval);\n\n blink();\n };\n\n this.getPixelPosition = function(position, onScreen) {\n if (!this.config || !this.session)\n return {left : 0, top : 0};\n\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + pos.column * this.config.characterWidth;\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n\n return {left : cursorLeft, top : cursorTop};\n };\n\n this.update = function(config) {\n this.config = config;\n\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n\n if (selections === undefined || selections.length === 0){\n selections = [{cursor: null}];\n }\n\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n\n var style = (this.cursors[cursorIndex++] || this.addCursor()).style;\n \n if (!this.drawCursor) {\n style.left = pixelPos.left + \"px\";\n style.top = pixelPos.top + \"px\";\n style.width = config.characterWidth + \"px\";\n style.height = config.lineHeight + \"px\";\n } else {\n this.drawCursor(style, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n \n this.drawCursor = null;\n\n this.$setOverwrite = function(overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n\n this.destroy = function() {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n\n}).call(Cursor.prototype);\n\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar ScrollBar = function(parent) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + this.classSuffix;\n\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.element.appendChild(this.inner);\n\n parent.appendChild(this.element);\n\n this.setVisible(false);\n this.skipEvent = false;\n\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n};\n\n(function() {\n oop.implement(this, EventEmitter);\n\n this.setVisible = function(isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n };\n}).call(ScrollBar.prototype);\nvar VScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollTop = 0;\n renderer.$scrollbarWidth = \n this.width = dom.scrollbarWidth(parent.ownerDocument);\n this.inner.style.width =\n this.element.style.width = (this.width || 15) + 5 + \"px\";\n};\n\noop.inherits(VScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-v';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n this._emit(\"scroll\", {data: this.scrollTop});\n }\n this.skipEvent = false;\n };\n this.getWidth = function() {\n return this.isVisible ? this.width : 0;\n };\n this.setHeight = function(height) {\n this.element.style.height = height + \"px\";\n };\n this.setInnerHeight = function(height) {\n this.inner.style.height = height + \"px\";\n };\n this.setScrollHeight = function(height) {\n this.inner.style.height = height + \"px\";\n };\n this.setScrollTop = function(scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = this.element.scrollTop = scrollTop;\n }\n };\n\n}).call(VScrollBar.prototype);\nvar HScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollLeft = 0;\n this.height = renderer.$scrollbarWidth;\n this.inner.style.height =\n this.element.style.height = (this.height || 15) + 5 + \"px\";\n};\n\noop.inherits(HScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-h';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", {data: this.scrollLeft});\n }\n this.skipEvent = false;\n };\n this.getHeight = function() {\n return this.isVisible ? this.height : 0;\n };\n this.setWidth = function(width) {\n this.element.style.width = width + \"px\";\n };\n this.setInnerWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollLeft = function(scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n\n}).call(HScrollBar.prototype);\n\n\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\n\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"./lib/event\");\n\n\nvar RenderLoop = function(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.window = win || window;\n};\n\n(function() {\n\n\n this.schedule = function(change) {\n this.changes = this.changes | change;\n if (!this.pending && this.changes) {\n this.pending = true;\n var _self = this;\n event.nextFrame(function() {\n _self.pending = false;\n var changes;\n while (changes = _self.changes) {\n _self.changes = 0;\n _self.onRender(changes);\n }\n }, this.window);\n }\n };\n\n}).call(RenderLoop.prototype);\n\nexports.RenderLoop = RenderLoop;\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CHAR_COUNT = 0;\n\nvar FontMetrics = exports.FontMetrics = function(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n \n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n \n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n \n \n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n \n if (!CHAR_COUNT)\n this.$testFractionalRect();\n this.$measureNode.innerHTML = lang.stringRepeat(\"X\", CHAR_COUNT);\n \n this.$characterSize = {width: 0, height: 0};\n this.checkForSizeChanges();\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n \n this.$characterSize = {width: 0, height: 0};\n \n this.$testFractionalRect = function() {\n var el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(el.style);\n el.style.width = \"0.2px\";\n document.documentElement.appendChild(el);\n var w = el.getBoundingClientRect().width;\n if (w > 0 && w < 1)\n CHAR_COUNT = 50;\n else\n CHAR_COUNT = 100;\n el.parentNode.removeChild(el);\n };\n \n this.$setMeasureNodeStyles = function(style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n } else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n\n this.checkForSizeChanges = function() {\n var size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", {data: size});\n }\n };\n\n this.$pollSizeChanges = function() {\n if (this.$pollSizeChangesTimer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = setInterval(function() {\n self.checkForSizeChanges();\n }, 500);\n };\n \n this.setPolling = function(val) {\n if (val) {\n this.$pollSizeChanges();\n } else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n\n this.$measureSizes = function() {\n if (CHAR_COUNT === 50) {\n var rect = null;\n try { \n rect = this.$measureNode.getBoundingClientRect();\n } catch(e) {\n rect = {width: 0, height:0 };\n }\n var size = {\n height: rect.height,\n width: rect.width / CHAR_COUNT\n };\n } else {\n var size = {\n height: this.$measureNode.clientHeight,\n width: this.$measureNode.clientWidth / CHAR_COUNT\n };\n }\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n\n this.$measureCharWidth = function(ch) {\n this.$main.innerHTML = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n \n this.getCharacterWidth = function(ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n\n}).call(FontMetrics.prototype);\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/config\",\"ace/lib/useragent\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar config = acequire(\"./config\");\nvar useragent = acequire(\"./lib/useragent\");\nvar GutterLayer = acequire(\"./layer/gutter\").Gutter;\nvar MarkerLayer = acequire(\"./layer/marker\").Marker;\nvar TextLayer = acequire(\"./layer/text\").Text;\nvar CursorLayer = acequire(\"./layer/cursor\").Cursor;\nvar HScrollBar = acequire(\"./scrollbar\").HScrollBar;\nvar VScrollBar = acequire(\"./scrollbar\").VScrollBar;\nvar RenderLoop = acequire(\"./renderloop\").RenderLoop;\nvar FontMetrics = acequire(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = \".ace_editor {\\\nposition: relative;\\\noverflow: hidden;\\\nfont: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\\\ndirection: ltr;\\\n}\\\n.ace_scroller {\\\nposition: absolute;\\\noverflow: hidden;\\\ntop: 0;\\\nbottom: 0;\\\nbackground-color: inherit;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\ncursor: text;\\\n}\\\n.ace_content {\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmin-width: 100%;\\\n}\\\n.ace_dragging .ace_scroller:before{\\\nposition: absolute;\\\ntop: 0;\\\nleft: 0;\\\nright: 0;\\\nbottom: 0;\\\ncontent: '';\\\nbackground: rgba(250, 250, 250, 0.01);\\\nz-index: 1000;\\\n}\\\n.ace_dragging.ace_dark .ace_scroller:before{\\\nbackground: rgba(0, 0, 0, 0.01);\\\n}\\\n.ace_selecting, .ace_selecting * {\\\ncursor: text !important;\\\n}\\\n.ace_gutter {\\\nposition: absolute;\\\noverflow : hidden;\\\nwidth: auto;\\\ntop: 0;\\\nbottom: 0;\\\nleft: 0;\\\ncursor: default;\\\nz-index: 4;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\n}\\\n.ace_gutter-active-line {\\\nposition: absolute;\\\nleft: 0;\\\nright: 0;\\\n}\\\n.ace_scroller.ace_scroll-left {\\\nbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\\\n}\\\n.ace_gutter-cell {\\\npadding-left: 19px;\\\npadding-right: 6px;\\\nbackground-repeat: no-repeat;\\\n}\\\n.ace_gutter-cell.ace_error {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_warning {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_dark .ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_scrollbar {\\\nposition: absolute;\\\nright: 0;\\\nbottom: 0;\\\nz-index: 6;\\\n}\\\n.ace_scrollbar-inner {\\\nposition: absolute;\\\ncursor: text;\\\nleft: 0;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-v{\\\noverflow-x: hidden;\\\noverflow-y: scroll;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-h {\\\noverflow-x: scroll;\\\noverflow-y: hidden;\\\nleft: 0;\\\n}\\\n.ace_print-margin {\\\nposition: absolute;\\\nheight: 100%;\\\n}\\\n.ace_text-input {\\\nposition: absolute;\\\nz-index: 0;\\\nwidth: 0.5em;\\\nheight: 1em;\\\nopacity: 0;\\\nbackground: transparent;\\\n-moz-appearance: none;\\\nappearance: none;\\\nborder: none;\\\nresize: none;\\\noutline: none;\\\noverflow: hidden;\\\nfont: inherit;\\\npadding: 0 1px;\\\nmargin: 0 -1px;\\\ntext-indent: -1em;\\\n-ms-user-select: text;\\\n-moz-user-select: text;\\\n-webkit-user-select: text;\\\nuser-select: text;\\\nwhite-space: pre!important;\\\n}\\\n.ace_text-input.ace_composition {\\\nbackground: inherit;\\\ncolor: inherit;\\\nz-index: 1000;\\\nopacity: 1;\\\ntext-indent: 0;\\\n}\\\n.ace_layer {\\\nz-index: 1;\\\nposition: absolute;\\\noverflow: hidden;\\\nword-wrap: normal;\\\nwhite-space: pre;\\\nheight: 100%;\\\nwidth: 100%;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\npointer-events: none;\\\n}\\\n.ace_gutter-layer {\\\nposition: relative;\\\nwidth: auto;\\\ntext-align: right;\\\npointer-events: auto;\\\n}\\\n.ace_text-layer {\\\nfont: inherit !important;\\\n}\\\n.ace_cjk {\\\ndisplay: inline-block;\\\ntext-align: center;\\\n}\\\n.ace_cursor-layer {\\\nz-index: 4;\\\n}\\\n.ace_cursor {\\\nz-index: 4;\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nborder-left: 2px solid;\\\ntransform: translatez(0);\\\n}\\\n.ace_slim-cursors .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_overwrite-cursors .ace_cursor {\\\nborder-left-width: 0;\\\nborder-bottom: 1px solid;\\\n}\\\n.ace_hidden-cursors .ace_cursor {\\\nopacity: 0.2;\\\n}\\\n.ace_smooth-blinking .ace_cursor {\\\n-webkit-transition: opacity 0.18s;\\\ntransition: opacity 0.18s;\\\n}\\\n.ace_editor.ace_multiselect .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\\nposition: absolute;\\\nz-index: 3;\\\n}\\\n.ace_marker-layer .ace_selection {\\\nposition: absolute;\\\nz-index: 5;\\\n}\\\n.ace_marker-layer .ace_bracket {\\\nposition: absolute;\\\nz-index: 6;\\\n}\\\n.ace_marker-layer .ace_active-line {\\\nposition: absolute;\\\nz-index: 2;\\\n}\\\n.ace_marker-layer .ace_selected-word {\\\nposition: absolute;\\\nz-index: 4;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\n}\\\n.ace_line .ace_fold {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ndisplay: inline-block;\\\nheight: 11px;\\\nmargin-top: -2px;\\\nvertical-align: middle;\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\\nbackground-repeat: no-repeat, repeat-x;\\\nbackground-position: center center, top left;\\\ncolor: transparent;\\\nborder: 1px solid black;\\\nborder-radius: 2px;\\\ncursor: pointer;\\\npointer-events: auto;\\\n}\\\n.ace_dark .ace_fold {\\\n}\\\n.ace_fold:hover{\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_tooltip {\\\nbackground-color: #FFF;\\\nbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\\\nbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\\\nborder: 1px solid gray;\\\nborder-radius: 1px;\\\nbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\\ncolor: black;\\\nmax-width: 100%;\\\npadding: 3px 4px;\\\nposition: fixed;\\\nz-index: 999999;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ncursor: default;\\\nwhite-space: pre;\\\nword-wrap: break-word;\\\nline-height: normal;\\\nfont-style: normal;\\\nfont-weight: normal;\\\nletter-spacing: normal;\\\npointer-events: none;\\\n}\\\n.ace_folding-enabled > .ace_gutter-cell {\\\npadding-right: 13px;\\\n}\\\n.ace_fold-widget {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmargin: 0 -12px 0 1px;\\\ndisplay: none;\\\nwidth: 11px;\\\nvertical-align: top;\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: center;\\\nborder-radius: 3px;\\\nborder: 1px solid transparent;\\\ncursor: pointer;\\\n}\\\n.ace_folding-enabled .ace_fold-widget {\\\ndisplay: inline-block; \\\n}\\\n.ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\\n}\\\n.ace_fold-widget:hover {\\\nborder: 1px solid rgba(0, 0, 0, 0.3);\\\nbackground-color: rgba(255, 255, 255, 0.2);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\\n}\\\n.ace_fold-widget:active {\\\nborder: 1px solid rgba(0, 0, 0, 0.4);\\\nbackground-color: rgba(0, 0, 0, 0.05);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\\n}\\\n.ace_dark .ace_fold-widget {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget:hover {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\nbackground-color: rgba(255, 255, 255, 0.1);\\\n}\\\n.ace_dark .ace_fold-widget:active {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\n}\\\n.ace_fold-widget.ace_invalid {\\\nbackground-color: #FFB4B4;\\\nborder-color: #DE5555;\\\n}\\\n.ace_fade-fold-widgets .ace_fold-widget {\\\n-webkit-transition: opacity 0.4s ease 0.05s;\\\ntransition: opacity 0.4s ease 0.05s;\\\nopacity: 0;\\\n}\\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\\n-webkit-transition: opacity 0.05s ease 0.05s;\\\ntransition: opacity 0.05s ease 0.05s;\\\nopacity:1;\\\n}\\\n.ace_underline {\\\ntext-decoration: underline;\\\n}\\\n.ace_bold {\\\nfont-weight: bold;\\\n}\\\n.ace_nobold .ace_bold {\\\nfont-weight: normal;\\\n}\\\n.ace_italic {\\\nfont-style: italic;\\\n}\\\n.ace_error-marker {\\\nbackground-color: rgba(255, 0, 0,0.2);\\\nposition: absolute;\\\nz-index: 9;\\\n}\\\n.ace_highlight-marker {\\\nbackground-color: rgba(255, 255, 0,0.2);\\\nposition: absolute;\\\nz-index: 8;\\\n}\\\n.ace_br1 {border-top-left-radius : 3px;}\\\n.ace_br2 {border-top-right-radius : 3px;}\\\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\\\n.ace_br4 {border-bottom-right-radius: 3px;}\\\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\\\n.ace_br8 {border-bottom-left-radius : 3px;}\\\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n\";\n\ndom.importCssString(editorCss, \"ace_editor.css\");\n\nvar VirtualRenderer = function(container, theme) {\n var _self = this;\n\n this.container = container || dom.createElement(\"div\");\n this.$keepTextAreaAtCursor = !useragent.isOldIE;\n\n dom.addCssClass(this.container, \"ace_editor\");\n\n this.setTheme(theme);\n\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n\n this.$markerBack = new MarkerLayer(this.content);\n\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n\n this.$markerFront = new MarkerLayer(this.content);\n\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n\n this.scrollBar = \n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n\n this.scrollTop = 0;\n this.scrollLeft = 0;\n\n this.cursorPos = {\n row : 0,\n column : 0\n };\n\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.addEventListener(\"changeCharacterSize\", function(e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n\n this.layerConfig = {\n width : 1,\n padding : 0,\n firstRow : 0,\n firstRowScreen: 0,\n lastRow : 0,\n lineHeight : 0,\n characterWidth : 0,\n minHeight : 1,\n maxHeight : 1,\n offset : 0,\n height : 1,\n gutterOffset: 1\n };\n \n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n\n this.$loop = new RenderLoop(\n this.$renderChanges.bind(this),\n this.container.ownerDocument.defaultView\n );\n this.$loop.schedule(this.CHANGE_FULL);\n\n this.updateCharacterSize();\n this.setPadding(4);\n config.resetOptions(this);\n config._emit(\"renderer\", this);\n};\n\n(function() {\n\n this.CHANGE_CURSOR = 1;\n this.CHANGE_MARKER = 2;\n this.CHANGE_GUTTER = 4;\n this.CHANGE_SCROLL = 8;\n this.CHANGE_LINES = 16;\n this.CHANGE_TEXT = 32;\n this.CHANGE_SIZE = 64;\n this.CHANGE_MARKER_BACK = 128;\n this.CHANGE_MARKER_FRONT = 256;\n this.CHANGE_FULL = 512;\n this.CHANGE_H_SCROLL = 1024;\n\n oop.implement(this, EventEmitter);\n\n this.updateCharacterSize = function() {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n };\n this.setSession = function(session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n \n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n \n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n \n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode()\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n this.updateLines = function(firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n\n this.onChangeNewLineMode = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n };\n \n this.onChangeTabSize = function() {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n this.updateText = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n this.updateFull = function(force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n this.updateFontSize = function() {\n this.$textLayer.checkForSizeChanges();\n };\n\n this.$changes = 0;\n this.$updateSizeAsync = function() {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n this.onResize = function(force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n\n \n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n\n if (force)\n this.$gutterLayer.$padding = null;\n\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop = null;\n };\n \n this.$updateCachedSize = function(force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n changes = changes | this.CHANGE_SCROLL;\n }\n\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n \n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n \n this.gutterWidth = gutterWidth;\n \n this.scrollBarH.element.style.left = \n this.scroller.style.left = gutterWidth + \"px\";\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth()); \n \n this.scrollBarH.element.style.right = \n this.scroller.style.right = this.scrollBarV.getWidth() + \"px\";\n this.scroller.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force)\n changes |= this.CHANGE_FULL;\n }\n \n size.$dirty = !width || !height;\n\n if (changes)\n this._signal(\"resize\", oldSize);\n\n return changes;\n };\n\n this.onGutterResize = function() {\n var gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else {\n this.$computeLayerConfig();\n this.$loop.schedule(this.CHANGE_MARKER);\n }\n };\n this.adjustWrapLimit = function() {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n this.setAnimatedScroll = function(shouldAnimate){\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n this.getAnimatedScroll = function() {\n return this.$animatedScroll;\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.getOption(\"showInvisibles\");\n };\n this.getDisplayIndentGuides = function() {\n return this.getOption(\"displayIndentGuides\");\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.getOption(\"showPrintMargin\");\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.getOption(\"printMarginColumn\");\n };\n this.getShowGutter = function(){\n return this.getOption(\"showGutter\");\n };\n this.setShowGutter = function(show){\n return this.setOption(\"showGutter\", show);\n };\n\n this.getFadeFoldWidgets = function(){\n return this.getOption(\"fadeFoldWidgets\")\n };\n\n this.setFadeFoldWidgets = function(show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n\n this.$updateGutterLineHighlight = function() {\n var pos = this.$cursorLayer.$pixelPos;\n var height = this.layerConfig.lineHeight;\n if (this.session.getUseWrapMode()) {\n var cursor = this.session.selection.getCursor();\n cursor.column = 0;\n pos = this.$cursorLayer.getPixelPosition(cursor, true);\n height *= this.session.getRowLength(cursor.row);\n }\n this.$gutterLineHighlight.style.top = pos.top - this.layerConfig.offset + \"px\";\n this.$gutterLineHighlight.style.height = height + \"px\";\n };\n\n this.$updatePrintMargin = function() {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n\n var style = this.$printMarginEl.style;\n style.left = ((this.characterWidth * this.$printMarginColumn) + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n \n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n this.getContainerElement = function() {\n return this.container;\n };\n this.getMouseEventTarget = function() {\n return this.scroller;\n };\n this.getTextAreaContainer = function() {\n return this.container;\n };\n this.$moveTextAreaToCursor = function() {\n if (!this.$keepTextAreaAtCursor)\n return;\n var config = this.layerConfig;\n var posTop = this.$cursorLayer.$pixelPos.top;\n var posLeft = this.$cursorLayer.$pixelPos.left;\n posTop -= config.offset;\n\n var style = this.textarea.style;\n var h = this.lineHeight;\n if (posTop < 0 || posTop > config.height - h) {\n style.top = style.left = \"0\";\n return;\n }\n\n var w = this.characterWidth;\n if (this.$composition) {\n var val = this.textarea.value.replace(/^\\x01+/, \"\");\n w *= (this.session.$getStringScreenWidth(val)[0]+2);\n h += 2;\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n\n posLeft += this.gutterWidth;\n style.height = h + \"px\";\n style.width = w + \"px\";\n style.left = Math.min(posLeft, this.$size.scrollerWidth - w) + \"px\";\n style.top = Math.min(posTop, this.$size.height - h) + \"px\";\n };\n this.getFirstVisibleRow = function() {\n return this.layerConfig.firstRow;\n };\n this.getFirstFullyVisibleRow = function() {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n this.getLastFullyVisibleRow = function() {\n var config = this.layerConfig;\n var lastRow = config.lastRow\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n this.getLastVisibleRow = function() {\n return this.layerConfig.lastRow;\n };\n\n this.$padding = null;\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n \n this.setScrollMargin = function(top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top|0;\n sm.bottom = bottom|0;\n sm.right = right|0;\n sm.left = left|0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n this.getHScrollBarAlwaysVisible = function() {\n return this.$hScrollBarAlwaysVisible;\n };\n this.setHScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n this.getVScrollBarAlwaysVisible = function() {\n return this.$vScrollBarAlwaysVisible;\n };\n this.setVScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n\n this.$updateScrollBarV = function() {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n this.$updateScrollBarH = function() {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n \n this.$frozen = false;\n this.freeze = function() {\n this.$frozen = true;\n };\n \n this.unfreeze = function() {\n this.$frozen = false;\n };\n\n this.$renderChanges = function(changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return; \n } \n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n \n this._signal(\"beforeRender\");\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL\n ) {\n changes |= this.$computeLayerConfig();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - this.layerConfig.firstRow) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n this.$gutterLayer.element.style.marginTop = (-config.offset) + \"px\";\n this.content.style.marginTop = (-config.offset) + \"px\";\n this.content.style.width = config.width + 2 * this.$padding + \"px\";\n this.content.style.height = config.minHeight + \"px\";\n }\n if (changes & this.CHANGE_H_SCROLL) {\n this.content.style.marginLeft = -this.scrollLeft + \"px\";\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller\" : \"ace_scroller ace_scroll-left\";\n }\n if (changes & this.CHANGE_FULL) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this._signal(\"afterRender\");\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\");\n return;\n }\n\n if (changes & this.CHANGE_TEXT) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n\n this._signal(\"afterRender\");\n };\n\n \n this.$autosize = function() {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.max(\n (this.$minLines||1) * this.lineHeight,\n Math.min(maxHeight, height)\n ) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n var vScroll = height > maxHeight;\n \n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n \n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n \n this._signal(\"autosize\");\n }\n };\n \n this.$computeLayerConfig = function() {\n var session = this.session;\n var size = this.$size;\n \n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n\n var longestLine = this.$getLongestLine();\n \n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n\n var offset = this.scrollTop % this.lineHeight;\n var minHeight = size.scrollerHeight + this.lineHeight;\n \n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n \n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top,\n Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, \n longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n \n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n\n offset = this.scrollTop - firstRowScreen * lineHeight;\n\n var changes = 0;\n if (this.layerConfig.width != longestLine) \n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes = this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n \n this.layerConfig = {\n width : longestLine,\n padding : this.$padding,\n firstRow : firstRow,\n firstRowScreen: firstRowScreen,\n lastRow : lastRow,\n lineHeight : lineHeight,\n characterWidth : this.characterWidth,\n minHeight : minHeight,\n maxHeight : maxHeight,\n offset : offset,\n gutterOffset : Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)),\n height : this.$size.scrollerHeight\n };\n\n return changes;\n };\n\n this.$updateLines = function() {\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n\n var layerConfig = this.layerConfig;\n\n if (firstRow > layerConfig.lastRow + 1) { return; }\n if (lastRow < layerConfig.firstRow) { return; }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n\n this.$getLongestLine = function() {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n this.updateFrontMarkers = function() {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n this.updateBackMarkers = function() {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n this.addGutterDecoration = function(row, className){\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n this.removeGutterDecoration = function(row, className){\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n this.updateBreakpoints = function(rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.setAnnotations = function(annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.updateCursor = function() {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n this.hideCursor = function() {\n this.$cursorLayer.hideCursor();\n };\n this.showCursor = function() {\n this.$cursorLayer.showCursor();\n };\n\n this.scrollSelectionIntoView = function(anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n this.scrollCursorIntoView = function(cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n\n var left = pos.left;\n var top = pos.top;\n \n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n \n var scrollTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n \n if (scrollTop + topMargin > top) {\n if (offset && scrollTop + topMargin > top + this.lineHeight)\n top -= offset * this.$size.scrollerHeight;\n if (top === 0)\n top = -this.scrollMargin.top;\n this.session.setScrollTop(top);\n } else if (scrollTop + this.$size.scrollerHeight - bottomMargin < top + this.lineHeight) {\n if (offset && scrollTop + this.$size.scrollerHeight - bottomMargin < top - this.lineHeight)\n top += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(top + this.lineHeight - this.$size.scrollerHeight);\n }\n\n var scrollLeft = this.scrollLeft;\n\n if (scrollLeft > left) {\n if (left < this.$padding + 2 * this.layerConfig.characterWidth)\n left = -this.scrollMargin.left;\n this.session.setScrollLeft(left);\n } else if (scrollLeft + this.$size.scrollerWidth < left + this.characterWidth) {\n this.session.setScrollLeft(Math.round(left + this.characterWidth - this.$size.scrollerWidth));\n } else if (scrollLeft <= this.$padding && left - scrollLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n };\n this.getScrollTop = function() {\n return this.session.getScrollTop();\n };\n this.getScrollLeft = function() {\n return this.session.getScrollLeft();\n };\n this.getScrollTopRow = function() {\n return this.scrollTop / this.lineHeight;\n };\n this.getScrollBottomRow = function() {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n this.scrollToRow = function(row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n\n this.alignCursor = function(cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = {row: cursor, column: 0};\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n\n this.session.setScrollTop(offset);\n return offset;\n };\n\n this.STEPS = 8;\n this.$calcSteps = function(fromValue, toValue){\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n\n var func = function(t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n\n return steps;\n };\n this.scrollToLine = function(line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({row: line, column: 0});\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n\n this.animateScrolling = function(fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n \n if (fromValue == toValue)\n return;\n \n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n \n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = {from: fromValue, to: toValue, steps: steps};\n\n clearInterval(this.$timer);\n\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n this.$timer = setInterval(function() {\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n } else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n } else {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n callback && callback();\n }\n }, 10);\n };\n this.scrollToY = function(scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n this.scrollToX = function(scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n this.scrollTo = function(x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(y);\n };\n this.scrollBy = function(deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n this.isScrollableBy = function(deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n\n this.pixelToScreenCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n\n var offset = (x + this.scrollLeft - canvasPos.left - this.$padding) / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = Math.round(offset);\n\n return {row: row, column: col, side: offset - col > 0 ? 1 : -1};\n };\n\n this.screenToTextCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n\n var col = Math.round(\n (x + this.scrollLeft - canvasPos.left - this.$padding) / this.characterWidth\n );\n\n var row = (y + this.scrollTop - canvasPos.top) / this.lineHeight;\n\n return this.session.screenToDocumentPosition(row, Math.max(col, 0));\n };\n this.textToScreenCoordinates = function(row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n\n var x = this.$padding + Math.round(pos.column * this.characterWidth);\n var y = pos.row * this.lineHeight;\n\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n this.visualizeFocus = function() {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n this.visualizeBlur = function() {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n this.showComposition = function(position) {\n if (!this.$composition)\n this.$composition = {\n keepTextAreaAtCursor: this.$keepTextAreaAtCursor,\n cssText: this.textarea.style.cssText\n };\n\n this.$keepTextAreaAtCursor = true;\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n };\n this.setCompositionText = function(text) {\n this.$moveTextAreaToCursor();\n };\n this.hideComposition = function() {\n if (!this.$composition)\n return;\n\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.$keepTextAreaAtCursor = this.$composition.keepTextAreaAtCursor;\n this.textarea.style.cssText = this.$composition.cssText;\n this.$composition = null;\n };\n this.setTheme = function(theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange',{theme:theme});\n\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n } else {\n afterLoad(theme);\n }\n\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module.cssClass)\n return;\n dom.importCssString(\n module.cssText,\n module.cssClass,\n _self.container.ownerDocument\n );\n\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n\n var padding = \"padding\" in module ? module.padding \n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n\n _self._dispatchEvent('themeLoaded', {theme:module});\n cb && cb();\n }\n };\n this.getTheme = function() {\n return this.$themeId;\n };\n this.setStyle = function(style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n this.unsetStyle = function(style) {\n dom.removeCssClass(this.container, style);\n };\n \n this.setCursorStyle = function(style) {\n if (this.scroller.style.cursor != style)\n this.scroller.style.cursor = style;\n };\n this.setMouseCursor = function(cursorStyle) {\n this.scroller.style.cursor = cursorStyle;\n };\n this.destroy = function() {\n this.$textLayer.destroy();\n this.$cursorLayer.destroy();\n };\n\n}).call(VirtualRenderer.prototype);\n\n\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n animatedScroll: {initialValue: false},\n showInvisibles: {\n set: function(value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function(val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function() {\n return this.$showPrintMargin && this.$printMarginColumn; \n }\n },\n showGutter: {\n set: function(show){\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n fadeFoldWidgets: {\n set: function(show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function(show) {this.$gutterLayer.setShowFoldWidgets(show)},\n initialValue: true\n },\n showLineNumbers: {\n set: function(show) {\n this.$gutterLayer.setShowLineNumbers(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function(show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function(shouldHighlight) {\n if (!this.$gutterLineHighlight) {\n this.$gutterLineHighlight = dom.createElement(\"div\");\n this.$gutterLineHighlight.className = \"ace_gutter-active-line\";\n this.$gutter.appendChild(this.$gutterLineHighlight);\n return;\n }\n\n this.$gutterLineHighlight.style.display = shouldHighlight ? \"\" : \"none\";\n if (this.$cursorLayer.$pixelPos)\n this.$updateGutterLineHighlight();\n },\n initialValue: false,\n value: true\n },\n hScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function(size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function(name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n scrollPastEnd: {\n set: function(val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function(val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n theme: {\n set: function(val) { this.setTheme(val) },\n get: function() { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n }\n});\n\nexports.VirtualRenderer = VirtualRenderer;\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar net = acequire(\"../lib/net\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\nvar config = acequire(\"../config\");\n\nvar WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n if (acequire.nameToUrl && !acequire.toUrl)\n acequire.toUrl = acequire.nameToUrl;\n \n if (config.get(\"packaged\") || !acequire.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod.id, \"worker\")\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(acequire.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(acequire.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n try {\n var workerSrc = mod.src;\n var Blob = require('w3c-blob');\n var blob = new Blob([ workerSrc ], { type: 'application/javascript' });\n var blobUrl = (window.URL || window.webkitURL).createObjectURL(blob);\n\n this.$worker = new Worker(blobUrl);\n\n } catch(e) {\n if (e instanceof window.DOMException) {\n var blob = this.$workerBlob(workerUrl);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n\n this.$worker = new Worker(blobURL);\n URL.revokeObjectURL(blobURL);\n } else {\n throw e;\n }\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod.id,\n classname : classname\n });\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch(msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if(this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n this.$workerBlob = function(workerUrl) {\n var script = \"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.callbackId = 1;\n this.callbacks = {};\n this.messageBuffer = [];\n\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n var _self = this;\n\n this.$worker = {};\n this.$worker.terminate = function() {};\n this.$worker.postMessage = function(e) {\n _self.messageBuffer.push(e);\n if (main) {\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n };\n this.setEmitSync = function(val) { emitSync = val };\n\n var processNext = function() {\n var msg = _self.messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n _self.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (_self.messageBuffer.length)\n processNext();\n });\n};\n\nUIWorkerClient.prototype = WorkerClient.prototype;\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar oop = acequire(\"./lib/oop\");\n\nvar PlaceHolder = function(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate);\n this.$others = others;\n \n this.$onCursorChange = function() {\n setTimeout(function() {\n _self.onCursorChange();\n });\n };\n \n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || {length: -1};\n this.$undoStackDepth = undoStack.length;\n this.setup();\n\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setup = function() {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n \n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function(other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n this.showOtherMarkers = function() {\n if (this.othersActive) return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function(anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column+_self.length), _self.othersClass, null, false);\n });\n };\n this.hideOtherMarkers = function() {\n if (!this.othersActive) return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n this.onUpdate = function(delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n \n var range = delta;\n if (range.start.row !== range.end.row) return;\n if (range.start.row !== this.pos.row) return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n \n this.updateAnchors(delta);\n \n if (inMainRange)\n this.length += lengthDiff;\n\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n } else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n \n this.$updating = false;\n this.updateMarkers();\n };\n \n this.updateAnchors = function(delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n \n this.updateMarkers = function() {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function(pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column+_self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n\n this.onCursorChange = function(event) {\n if (this.$updating || !this.session) return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n } else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n }; \n this.detach = function() {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.removeEventListener(\"change\", this.$onUpdate);\n this.session.selection.removeEventListener(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n this.cancel = function() {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n}).call(PlaceHolder.prototype);\n\n\nexports.PlaceHolder = PlaceHolder;\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\n\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n \n if (ctrl && useragent.isMac)\n button = ev.button;\n\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n \n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n \n if (button !== 0)\n return;\n\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function(e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n \n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n \n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n } else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n } else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n \n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n \n \n editor.$blockScrolling++;\n editor.inVirtualSelectionMode = true;\n \n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function() {\n var tmpSel = selection.toOrientedRange();\n\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n } else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.$blockScrolling--;\n editor.inVirtualSelectionMode = false;\n });\n\n } else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true; \n var initialRange;\n var rectSel = [];\n var blockSelect = function() {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column);\n\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n \n editor.$blockScrolling++;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n editor.$blockScrolling--;\n };\n editor.$blockScrolling++;\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n } else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n \n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead); \n else\n selection.moveToPosition(pos);\n editor.$blockScrolling--;\n \n screenCursor = {row: -1, column: -1};\n\n var onMouseSelectionEnd = function(e) {\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n editor.$blockScrolling++;\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n editor.$blockScrolling--;\n };\n\n var onSelectionInterval = blockSelect;\n\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function() {onSelectionInterval();}, 20);\n\n return e.preventDefault();\n }\n}\n\n\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(acequire, exports, module) {\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n exec: function(editor) { editor.selectMoreLines(-1); },\n bindKey: {win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelow\",\n exec: function(editor) { editor.selectMoreLines(1); },\n bindKey: {win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorAboveSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelowSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreBefore\",\n exec: function(editor) { editor.selectMore(-1); },\n bindKey: {win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreAfter\",\n exec: function(editor) { editor.selectMore(1); },\n bindKey: {win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextBefore\",\n exec: function(editor) { editor.selectMore(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextAfter\",\n exec: function(editor) { editor.selectMore(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"splitIntoLines\",\n exec: function(editor) { editor.multiSelect.splitIntoLines(); },\n bindKey: {win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\"},\n readOnly: true\n}, {\n name: \"alignCursors\",\n exec: function(editor) { editor.alignCursors(); },\n bindKey: {win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\"},\n scrollIntoView: \"cursor\"\n}, {\n name: \"findAll\",\n exec: function(editor) { editor.findAll(); },\n bindKey: {win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n bindKey: \"esc\",\n exec: function(editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function(editor) {return editor && editor.inMultiSelectMode}\n}];\n\nvar HashHandler = acequire(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(acequire, exports, module) {\n\nvar RangeList = acequire(\"./range_list\").RangeList;\nvar Range = acequire(\"./range\").Range;\nvar Selection = acequire(\"./selection\").Selection;\nvar onMouseDown = acequire(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = acequire(\"./lib/event\");\nvar lang = acequire(\"./lib/lang\");\nvar commands = acequire(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = acequire(\"./search\").Search;\nvar search = new Search();\n\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = acequire(\"./edit_session\").EditSession;\n(function() {\n this.getSelectionMarkers = function() {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function() {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function(range, $blockChangeEvents) {\n if (!range)\n return;\n\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n\n if (!range.cursor)\n range.cursor = range.end;\n\n var removed = this.rangeList.add(range);\n\n this.$onAddRange(range);\n\n if (removed.length)\n this.$onRemoveRange(removed);\n\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n\n this.toSingleRange = function(range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function(pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function() {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n else if(this.ranges[0])\n this.fromOrientedRange(this.ranges[0]);\n };\n\n this.$onAddRange = function(range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", {range: range});\n };\n\n this.$onRemoveRange = function(removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n\n for (var i = removed.length; i--; ) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n\n this._signal(\"removeRange\", {ranges: removed});\n\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function() {\n if (this.rangeList)\n return;\n\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function() {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n\n this.splitIntoLines = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var range = this.getRange();\n var isBackwards = this.isBackwards();\n var startRow = range.start.row;\n var endRow = range.end.row;\n if (startRow == endRow) {\n if (isBackwards)\n var start = range.end, end = range.start;\n else\n var start = range.start, end = range.end;\n \n this.addRange(Range.fromPoints(end, end));\n this.addRange(Range.fromPoints(start, start));\n return;\n }\n\n var rectSel = [];\n var r = this.getLineRange(startRow, true);\n r.start.column = range.start.column;\n rectSel.push(r);\n\n for (var i = startRow + 1; i < endRow; i++)\n rectSel.push(this.getLineRange(i, true));\n\n r = this.getLineRange(endRow, true);\n r.end.column = range.end.column;\n rectSel.push(r);\n\n rectSel.forEach(this.addRange, this);\n }\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var cursor = this.session.documentToScreenPosition(this.selectionLead);\n var anchor = this.session.documentToScreenPosition(this.selectionAnchor);\n\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function(screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n } else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n }\n\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n } else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n\n if (startRow == endRow)\n includeEmptyLines = true;\n\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(\n this.session.screenToDocumentPosition(row, startColumn),\n this.session.screenToDocumentPosition(row, endColumn)\n );\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n var docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n\n if (yBackwards)\n rectSel.reverse();\n\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = acequire(\"./editor\").Editor;\n(function() {\n this.updateSelectionMarkers = function() {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function(orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function(range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n\n this.removeSelectionMarkers = function(ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--; ) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n\n this.$onAddRange = function(e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onRemoveRange = function(e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onMultiSelect = function(e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onSingleSelect = function(e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n\n this.$onMultiSelectExec = function(e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n } else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n } else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n } else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n } else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n }; \n this.forEachSelection = function(cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n \n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n \n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n \n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n \n return result;\n };\n this.exitMultiSelectMode = function() {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n\n this.getSelectedText = function() {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n } else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n \n this.$checkMultiselectChange = function(e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row \n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n }\n };\n this.findAll = function(needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n } \n this.$search.set(options);\n \n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n\n this.$blockScrolling += 1;\n var selection = this.multiSelect;\n\n if (!additive)\n selection.toSingleRange(ranges[0]);\n\n for (var i = ranges.length; i--; )\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n \n this.$blockScrolling -= 1;\n\n return ranges.length;\n };\n this.selectMoreLines = function(dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n } else {\n var anchor = lead;\n }\n\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n } else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n } else {\n if (skip)\n var toRemove = range.cursor;\n }\n\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function(dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n\n var words = [];\n for (var i = all.length; i--; ) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n };\n this.selectMore = function(dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.$blockScrolling += 1;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.$blockScrolling -= 1;\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function() {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function(r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n \n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n \n if (fr < 0) fr = 0;\n if (lr >= max) lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({row: fr, column: 0}, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n } else {\n sameRowRanges.forEach(function(r) {\n sel.substractPoint(r.cursor);\n });\n\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function(r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function(r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n\n this.$reAlignText = function(lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n\n return lines.map(function(line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW, \" \")\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\n\n\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function(e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n\n addAltCursorListeners(editor);\n}\n\nfunction addAltCursorListeners(editor){\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function(e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n } else if (altCursor) {\n reset();\n }\n });\n\n event.addListener(el, \"keyup\", reset);\n event.addListener(el, \"blur\", reset);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\n\nexports.MultiSelect = MultiSelect;\n\n\nacequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function(val) {\n MultiSelect(this);\n if (val) {\n this.on(\"changeSession\", this.$multiselectOnSessionChange);\n this.on(\"mousedown\", onMouseDown);\n } else {\n this.off(\"changeSession\", this.$multiselectOnSessionChange);\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function(val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\n\n(function() {\n\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row) {\n return null;\n };\n\n this.indentationBlock = function(session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n\n if (level == -1)\n continue;\n\n if (level <= startLevel)\n break;\n\n endRow = row;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n\n this.openingBracketBlock = function(session, bracket, row, column, typeRe) {\n var start = {row: row, column: column + 1};\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n\n if (fw == \"start\" && end.row > start.row) {\n end.row --;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n\n this.closingBracketBlock = function(session, bracket, row, column, typeRe) {\n var end = {row: row, column: column};\n var start = session.$findOpeningBracket(bracket, end);\n\n if (!start)\n return;\n\n start.column++;\n end.column--;\n\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = \".ace-tm .ace_gutter {\\\nbackground: #f0f0f0;\\\ncolor: #333;\\\n}\\\n.ace-tm .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-tm .ace_fold {\\\nbackground-color: #6B72E6;\\\n}\\\n.ace-tm {\\\nbackground-color: #FFFFFF;\\\ncolor: black;\\\n}\\\n.ace-tm .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-tm .ace_invisible {\\\ncolor: rgb(191, 191, 191);\\\n}\\\n.ace-tm .ace_storage,\\\n.ace-tm .ace_keyword {\\\ncolor: blue;\\\n}\\\n.ace-tm .ace_constant {\\\ncolor: rgb(197, 6, 11);\\\n}\\\n.ace-tm .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-tm .ace_constant.ace_language {\\\ncolor: rgb(88, 92, 246);\\\n}\\\n.ace-tm .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_invalid {\\\nbackground-color: rgba(255, 0, 0, 0.1);\\\ncolor: red;\\\n}\\\n.ace-tm .ace_support.ace_function {\\\ncolor: rgb(60, 76, 114);\\\n}\\\n.ace-tm .ace_support.ace_constant {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_support.ace_type,\\\n.ace-tm .ace_support.ace_class {\\\ncolor: rgb(109, 121, 222);\\\n}\\\n.ace-tm .ace_keyword.ace_operator {\\\ncolor: rgb(104, 118, 135);\\\n}\\\n.ace-tm .ace_string {\\\ncolor: rgb(3, 106, 7);\\\n}\\\n.ace-tm .ace_comment {\\\ncolor: rgb(76, 136, 107);\\\n}\\\n.ace-tm .ace_comment.ace_doc {\\\ncolor: rgb(0, 102, 255);\\\n}\\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\\ncolor: rgb(128, 159, 191);\\\n}\\\n.ace-tm .ace_constant.ace_numeric {\\\ncolor: rgb(0, 0, 205);\\\n}\\\n.ace-tm .ace_variable {\\\ncolor: rgb(49, 132, 149);\\\n}\\\n.ace-tm .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-tm .ace_entity.ace_name.ace_function {\\\ncolor: #0000A2;\\\n}\\\n.ace-tm .ace_heading {\\\ncolor: rgb(12, 7, 255);\\\n}\\\n.ace-tm .ace_list {\\\ncolor:rgb(185, 6, 144);\\\n}\\\n.ace-tm .ace_meta.ace_tag {\\\ncolor:rgb(0, 22, 142);\\\n}\\\n.ace-tm .ace_string.ace_regex {\\\ncolor: rgb(255, 0, 0)\\\n}\\\n.ace-tm .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px white;\\\n}\\\n.ace-tm .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-tm .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-tm .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-tm .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-tm .ace_gutter-active-line {\\\nbackground-color : #dcdcdc;\\\n}\\\n.ace-tm .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-tm .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\\\n\";\n\nvar dom = acequire(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar Range = acequire(\"./range\").Range;\n\n\nfunction LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n \n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n}\n\n(function() {\n this.getRowLength = function(row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n\n this.$getWidgetScreenLength = function() {\n var screenRows = 0;\n this.lineWidgets.forEach(function(w){\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n }; \n \n this.$onChangeEditor = function(e) {\n this.attach(e.editor);\n };\n \n this.attach = function(editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n\n if (this.editor == editor)\n return;\n\n this.detach();\n this.editor = editor;\n \n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n this.detach = function(e) {\n var editor = this.editor;\n if (!editor)\n return;\n \n this.editor = null;\n editor.widgetManager = null;\n \n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function(w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n\n this.updateOnFold = function(e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n } else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n \n this.updateOnChange = function(delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n \n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n } else if (delta.action == 'remove') {\n var removed = lineWidgets.splice(startRow + 1, len);\n removed.forEach(function(w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n } else {\n var args = new Array(len);\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n \n this.$updateRows = function() {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n var noWidgets = true;\n lineWidgets.forEach(function(w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n\n this.addLineWidget = function(w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n \n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n \n this.session.lineWidgets[w.row] = w;\n \n w.session = this.session;\n \n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n }\n \n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (!w.pixelHeight) {\n w.pixelHeight = w.el.offsetHeight;\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n \n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n \n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n \n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n \n this.removeLineWidget = function(w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy) try {\n w.editor.destroy();\n } catch(e){}\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row]\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n } else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n this.$updateRows();\n };\n \n this.getWidgetsAtRow = function(row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n \n this.onWidgetChanged = function(w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n \n this.measureWidgets = function(e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n \n if (!changedWidgets || !changedWidgets.length) return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el) continue;\n if (w.session != this.session) continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n \n w.h = w.el.offsetHeight;\n \n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n \n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", {data:{start:{row: min}}});\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n \n this.renderWidgets = function(e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n \n while (first > 0 && !lineWidgets[first])\n first--;\n \n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el) continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({row: i, column:0}, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n \n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n \n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n \n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n } else {\n w.el.style.right = \"\";\n }\n }\n };\n \n}).call(LineWidgets.prototype);\n\n\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar LineWidgets = acequire(\"../line_widgets\").LineWidgets;\nvar dom = acequire(\"../lib/dom\");\nvar Range = acequire(\"../range\").Range;\n\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\n\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n \n var i = binarySearch(annotations, {row: row, column: -1}, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n \n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n \n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n \n \n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\n\nexports.showErrorMarker = function(editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n \n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function(w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n } else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n } else if (oldWidget) {\n return;\n } else {\n gutterAnno = {\n text: [\"Looks good!\"],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n \n var w = {\n row: pos.row, \n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n \n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n \n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
    \");\n \n el.appendChild(dom.createElement(\"div\"));\n \n var kb = function(_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return {command: \"null\"};\n }\n };\n \n w.destroy = function() {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n \n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n \n editor.session.widgetManager.addLineWidget(w);\n \n w.el.onmousedown = editor.focus.bind(editor);\n \n editor.renderer.scrollCursorIntoView(null, 0.5, {bottom: w.el.offsetHeight});\n};\n\n\ndom.importCssString(\"\\\n .error_widget_wrapper {\\\n background: inherit;\\\n color: inherit;\\\n border:none\\\n }\\\n .error_widget {\\\n border-top: solid 2px;\\\n border-bottom: solid 2px;\\\n margin: 5px 0;\\\n padding: 10px 40px;\\\n white-space: pre-wrap;\\\n }\\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\\n border-color: #ff5a5a\\\n }\\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\\n border-color: #F1D817\\\n }\\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\\n border-color: #5a5a5a\\\n }\\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\\n border-color: #5aaa5a\\\n }\\\n .error_widget_arrow {\\\n position: absolute;\\\n border: solid 5px;\\\n border-top-color: transparent!important;\\\n border-right-color: transparent!important;\\\n border-left-color: transparent!important;\\\n top: -5px;\\\n }\\\n\", \"\");\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\n\nvar Editor = acequire(\"./editor\").Editor;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar UndoManager = acequire(\"./undomanager\").UndoManager;\nvar Renderer = acequire(\"./virtual_renderer\").VirtualRenderer;\nacequire(\"./worker/worker_client\");\nacequire(\"./keyboard/hash_handler\");\nacequire(\"./placeholder\");\nacequire(\"./multi_select\");\nacequire(\"./mode/folding/fold_mode\");\nacequire(\"./theme/textmate\");\nacequire(\"./ext/error_marker\");\n\nexports.config = acequire(\"./config\");\nexports.acequire = acequire;\nexports.edit = function(el) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n } else if (el) {\n value = dom.getInnerText(el);\n el.innerHTML = \"\";\n }\n\n var doc = exports.createEditSession(value);\n\n var editor = new Editor(new Renderer(el));\n editor.setSession(doc);\n\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode) env.textarea = oldNode;\n event.addListener(window, \"resize\", env.onResize);\n editor.on(\"destroy\", function() {\n event.removeListener(window, \"resize\", env.onResize);\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function(text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n}\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.version = \"1.2.3\";\n});\n (function() {\n ace.acequire([\"ace/ace\"], function(a) {\n a && a.config.init(true);\n if (!window.ace)\n window.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n window.ace[key] = a[key];\n });\n })();\n \nmodule.exports = window.ace.acequire(\"ace/ace\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/brace/index.js\n// module id = 530\n// module chunks = 0","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n this.$rules = {\n \"start\" : [ {\n token : \"comment.doc.tag\",\n regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n }, \n DocCommentHighlightRules.getTagRule(),\n {\n defaultToken : \"comment.doc\",\n caseInsensitive: true\n }]\n };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n return {\n token : \"comment.doc.tag.storage.type\",\n regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n return {\n token : \"comment.doc\", // doc comment\n regex : \"\\\\/\\\\*(?=\\\\*)\",\n next : start\n };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token : \"comment.doc\", // closing comment\n regex : \"\\\\*\\\\/\",\n next : start\n };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/csharp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar DocCommentHighlightRules = acequire(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar CSharpHighlightRules = function() {\n var keywordMapper = this.createKeywordMapper({\n \"variable.language\": \"this\",\n \"keyword\": \"abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string|var|dynamic\",\n \"constant.language\": \"null|true|false\"\n }, \"identifier\");\n\n this.$rules = {\n \"start\" : [\n {\n token : \"comment\",\n regex : \"\\\\/\\\\/.*$\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token : \"comment\", // multi line comment\n regex : \"\\\\/\\\\*\",\n next : \"comment\"\n }, {\n token : \"string\", // character\n regex : /'(?:.|\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n]))'/\n }, {\n token : \"string\", start : '\"', end : '\"|$', next: [\n {token: \"constant.language.escape\", regex: /\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},\n {token: \"invalid\", regex: /\\\\./}\n ]\n }, {\n token : \"string\", start : '@\"', end : '\"', next:[\n {token: \"constant.language.escape\", regex: '\"\"'}\n ]\n }, {\n token : \"string\", start : /\\$\"/, end : '\"|$', next: [\n {token: \"constant.language.escape\", regex: /\\\\(:?$)|{{/},\n {token: \"constant.language.escape\", regex: /\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},\n {token: \"invalid\", regex: /\\\\./}\n ]\n }, {\n token : \"constant.numeric\", // hex\n regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token : \"constant.numeric\", // float\n regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token : \"constant.language.boolean\",\n regex : \"(?:true|false)\\\\b\"\n }, {\n token : keywordMapper,\n regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n }, {\n token : \"keyword.operator\",\n regex : \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n }, {\n token : \"keyword\",\n regex : \"^\\\\s*#(if|else|elif|endif|define|undef|warning|error|line|region|endregion|pragma)\"\n }, {\n token : \"punctuation.operator\",\n regex : \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : \"\\\\s+\"\n }\n ],\n \"comment\" : [\n {\n token : \"comment\", // closing comment\n regex : \".*?\\\\*\\\\/\",\n next : \"start\"\n }, {\n token : \"comment\", // comment spanning whole line\n regex : \".+\"\n }\n ]\n };\n\n this.embedRules(DocCommentHighlightRules, \"doc-\",\n [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n this.normalizeRules();\n};\n\noop.inherits(CSharpHighlightRules, TextHighlightRules);\n\nexports.CSharpHighlightRules = CSharpHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nvar SAFE_INSERT_IN_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\", \"comment\"];\n\nvar context;\nvar contextCache = {};\nvar initContext = function(editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = {rangeCount: editor.multiSelect.rangeCount};\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\n\nvar getWrapped = function(selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\n\nvar CstyleBehaviour = function() {\n this.add(\"braces\", \"insertion\", function(state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n } else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n } else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n } else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n } else if (closing) {\n var next_indent = this.$getIndent(line);\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n\n this.add(\"braces\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n } else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n\n this.add(\"parens\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n } else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"parens\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"brackets\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n } else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"brackets\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"string_dquotes\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n } else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column-1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n \n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n \n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n \n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n } else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(leftChar);\n if (isWordBefore || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1,1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n};\n\n \nCstyleBehaviour.isSaneInsertion = function(editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\n\nCstyleBehaviour.$matchTokenType = function(token, types) {\n return types.indexOf(token.type || token) > -1;\n};\n\nCstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\n\nCstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\n\nCstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\n\nCstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\n\nCstyleBehaviour.popAutoInsertedClosing = function() {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\n\nCstyleBehaviour.clearMaybeInsertedClosing = function() {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\n\n\n\noop.inherits(CstyleBehaviour, Behaviour);\n\nexports.CstyleBehaviour = CstyleBehaviour;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/csharp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/cstyle\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar CFoldMode = acequire(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, CFoldMode);\n\n(function() {\n this.usingRe = /^\\s*using \\S/;\n\n this.getFoldWidgetRangeBase = this.getFoldWidgetRange;\n this.getFoldWidgetBase = this.getFoldWidget;\n \n this.getFoldWidget = function(session, foldStyle, row) {\n var fw = this.getFoldWidgetBase(session, foldStyle, row);\n if (!fw) {\n var line = session.getLine(row);\n if (/^\\s*#region\\b/.test(line)) \n return \"start\";\n var usingRe = this.usingRe;\n if (usingRe.test(line)) {\n var prev = session.getLine(row - 1);\n var next = session.getLine(row + 1);\n if (!usingRe.test(prev) && usingRe.test(next))\n return \"start\"\n }\n }\n return fw;\n };\n \n this.getFoldWidgetRange = function(session, foldStyle, row) {\n var range = this.getFoldWidgetRangeBase(session, foldStyle, row);\n if (range)\n return range;\n\n var line = session.getLine(row);\n if (this.usingRe.test(line))\n return this.getUsingStatementBlock(session, line, row);\n \n if (/^\\s*#region\\b/.test(line))\n return this.getRegionBlock(session, line, row);\n };\n \n this.getUsingStatementBlock = function(session, line, row) {\n var startColumn = line.match(this.usingRe)[0].length - 1;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n\n while (++row < maxRow) {\n line = session.getLine(row);\n if (/^\\s*$/.test(line))\n continue;\n if (!this.usingRe.test(line))\n break;\n\n endRow = row;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n \n this.getRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*#(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n\n if (!depth)\n break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/csharp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/csharp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/csharp\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar CSharpHighlightRules = acequire(\"./csharp_highlight_rules\").CSharpHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/csharp\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = CSharpHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n \n this.lineCommentStart = \"//\";\n this.blockComment = {start: \"/*\", end: \"*/\"};\n \n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n \n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n \n if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n return indent;\n }\n \n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n \n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n \n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n\n this.createWorker = function(session) {\n return null;\n };\n\n this.$id = \"ace/mode/csharp\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/brace/mode/csharp.js\n// module id = 531\n// module chunks = 0","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n this.$rules = {\n \"start\" : [ {\n token : \"comment.doc.tag\",\n regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n }, \n DocCommentHighlightRules.getTagRule(),\n {\n defaultToken : \"comment.doc\",\n caseInsensitive: true\n }]\n };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n return {\n token : \"comment.doc.tag.storage.type\",\n regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n return {\n token : \"comment.doc\", // doc comment\n regex : \"\\\\/\\\\*(?=\\\\*)\",\n next : start\n };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token : \"comment.doc\", // closing comment\n regex : \"\\\\*\\\\/\",\n next : start\n };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar DocCommentHighlightRules = acequire(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\";\n\nvar JavaScriptHighlightRules = function(options) {\n var keywordMapper = this.createKeywordMapper({\n \"variable.language\":\n \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\" + // Constructors\n \"Namespace|QName|XML|XMLList|\" + // E4X\n \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\" +\n \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\" +\n \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\" + // Errors\n \"SyntaxError|TypeError|URIError|\" +\n \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n \"isNaN|parseFloat|parseInt|\" +\n \"JSON|Math|\" + // Other\n \"this|arguments|prototype|window|document\" , // Pseudo\n \"keyword\":\n \"const|yield|import|get|set|\" +\n \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n \"if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n \"storage.type\":\n \"const|let|var|function\",\n \"constant.language\":\n \"null|Infinity|NaN|undefined\",\n \"support.function\":\n \"alert\",\n \"constant.language.boolean\": \"true|false\"\n }, \"identifier\");\n var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n \"u[0-9a-fA-F]{4}|\" + // unicode\n \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n \"[0-2][0-7]{0,2}|\" + // oct\n \"3[0-7][0-7]?|\" + // oct\n \"[4-7][0-7]?|\" + //oct\n \".)\";\n\n this.$rules = {\n \"no_regex\" : [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"no_regex\"),\n {\n token : \"string\",\n regex : \"'(?=.)\",\n next : \"qstring\"\n }, {\n token : \"string\",\n regex : '\"(?=.)',\n next : \"qqstring\"\n }, {\n token : \"constant.numeric\", // hex\n regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n }, {\n token : \"constant.numeric\", // float\n regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"support.function\",\n \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n next: \"function_arguments\"\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"entity.name.function\", \"text\", \"punctuation.operator\",\n \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : \"keyword\",\n regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n next : \"start\"\n }, {\n token : [\"support.constant\"],\n regex : /that\\b/\n }, {\n token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n }, {\n token : keywordMapper,\n regex : identifierRe\n }, {\n token : \"punctuation.operator\",\n regex : /[.](?![.])/,\n next : \"property\"\n }, {\n token : \"keyword.operator\",\n regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,\n next : \"start\"\n }, {\n token : \"punctuation.operator\",\n regex : /[?:,;.]/,\n next : \"start\"\n }, {\n token : \"paren.lparen\",\n regex : /[\\[({]/,\n next : \"start\"\n }, {\n token : \"paren.rparen\",\n regex : /[\\])}]/\n }, {\n token: \"comment\",\n regex: /^#!.*$/\n }\n ],\n property: [{\n token : \"text\",\n regex : \"\\\\s+\"\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : \"punctuation.operator\",\n regex : /[.](?![.])/\n }, {\n token : \"support.function\",\n regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n }, {\n token : \"support.function.dom\",\n regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n }, {\n token : \"support.constant\",\n regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n }, {\n token : \"identifier\",\n regex : identifierRe\n }, {\n regex: \"\",\n token: \"empty\",\n next: \"no_regex\"\n }\n ],\n \"start\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"start\"),\n {\n token: \"string.regexp\",\n regex: \"\\\\/\",\n next: \"regex\"\n }, {\n token : \"text\",\n regex : \"\\\\s+|^$\",\n next : \"start\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"regex\": [\n {\n token: \"regexp.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"string.regexp\",\n regex: \"/[sxngimy]*\",\n next: \"no_regex\"\n }, {\n token : \"invalid\",\n regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n }, {\n token : \"constant.language.escape\",\n regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n }, {\n token : \"constant.language.delimiter\",\n regex: /\\|/\n }, {\n token: \"constant.language.escape\",\n regex: /\\[\\^?/,\n next: \"regex_character_class\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp\"\n }\n ],\n \"regex_character_class\": [\n {\n token: \"regexp.charclass.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"constant.language.escape\",\n regex: \"]\",\n next: \"regex\"\n }, {\n token: \"constant.language.escape\",\n regex: \"-\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp.charachterclass\"\n }\n ],\n \"function_arguments\": [\n {\n token: \"variable.parameter\",\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: \"[, ]+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"qqstring\" : [\n {\n token : \"constant.language.escape\",\n regex : escapedRe\n }, {\n token : \"string\",\n regex : \"\\\\\\\\$\",\n next : \"qqstring\"\n }, {\n token : \"string\",\n regex : '\"|$',\n next : \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"qstring\" : [\n {\n token : \"constant.language.escape\",\n regex : escapedRe\n }, {\n token : \"string\",\n regex : \"\\\\\\\\$\",\n next : \"qstring\"\n }, {\n token : \"string\",\n regex : \"'|$\",\n next : \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n \n \n if (!options || !options.noES6) {\n this.$rules.no_regex.unshift({\n regex: \"[{}]\", onMatch: function(val, state, stack) {\n this.next = val == \"{\" ? this.nextState : \"\";\n if (val == \"{\" && stack.length) {\n stack.unshift(\"start\", state);\n }\n else if (val == \"}\" && stack.length) {\n stack.shift();\n this.next = stack.shift();\n if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n return \"paren.quasi.end\";\n }\n return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n },\n nextState: \"start\"\n }, {\n token : \"string.quasi.start\",\n regex : /`/,\n push : [{\n token : \"constant.language.escape\",\n regex : escapedRe\n }, {\n token : \"paren.quasi.start\",\n regex : /\\${/,\n push : \"start\"\n }, {\n token : \"string.quasi.end\",\n regex : /`/,\n next : \"pop\"\n }, {\n defaultToken: \"string.quasi\"\n }]\n });\n \n if (!options || !options.noJSX)\n JSX.call(this);\n }\n \n this.embedRules(DocCommentHighlightRules, \"doc-\",\n [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n \n this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n var jsxTag = {\n onMatch : function(val, state, stack) {\n var offset = val.charAt(1) == \"/\" ? 2 : 1;\n if (offset == 1) {\n if (state != this.nextState)\n stack.unshift(this.next, this.nextState, 0);\n else\n stack.unshift(this.next);\n stack[2]++;\n } else if (offset == 2) {\n if (state == this.nextState) {\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.shift();\n stack.shift();\n }\n }\n }\n return [{\n type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n value: val.slice(0, offset)\n }, {\n type: \"meta.tag.tag-name.xml\",\n value: val.substr(offset)\n }];\n },\n regex : \"\", \n onMatch : function(value, currentState, stack) {\n if (currentState == stack[0])\n stack.shift();\n if (value.length == 2) {\n if (stack[0] == this.nextState)\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.splice(0, 2);\n }\n }\n this.next = stack[0] || \"start\";\n return [{type: this.token, value: value}];\n },\n nextState: \"jsx\"\n }, \n jsxJsRule,\n comments(\"jsxAttributes\"),\n {\n token : \"entity.other.attribute-name.xml\",\n regex : tagRegex\n }, {\n token : \"keyword.operator.attribute-equals.xml\",\n regex : \"=\"\n }, {\n token : \"text.tag-whitespace.xml\",\n regex : \"\\\\s+\"\n }, {\n token : \"string.attribute-value.xml\",\n regex : \"'\",\n stateName : \"jsx_attr_q\",\n push : [\n {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n {include : \"reference\"},\n {defaultToken : \"string.attribute-value.xml\"}\n ]\n }, {\n token : \"string.attribute-value.xml\",\n regex : '\"',\n stateName : \"jsx_attr_qq\",\n push : [\n {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n {include : \"reference\"},\n {defaultToken : \"string.attribute-value.xml\"}\n ]\n },\n jsxTag\n ];\n this.$rules.reference = [{\n token : \"constant.language.escape.reference.xml\",\n regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }];\n}\n\nfunction comments(next) {\n return [\n {\n token : \"comment\", // multi line comment\n regex : /\\/\\*/,\n next: [\n DocCommentHighlightRules.getTagRule(),\n {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n {defaultToken : \"comment\", caseInsensitive: true}\n ]\n }, {\n token : \"comment\",\n regex : \"\\\\/\\\\/\",\n next: [\n DocCommentHighlightRules.getTagRule(),\n {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n {defaultToken : \"comment\", caseInsensitive: true}\n ]\n }\n ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nvar SAFE_INSERT_IN_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\", \"comment\"];\n\nvar context;\nvar contextCache = {};\nvar initContext = function(editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = {rangeCount: editor.multiSelect.rangeCount};\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\n\nvar getWrapped = function(selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\n\nvar CstyleBehaviour = function() {\n this.add(\"braces\", \"insertion\", function(state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n } else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n } else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n } else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n } else if (closing) {\n var next_indent = this.$getIndent(line);\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n\n this.add(\"braces\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n } else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n\n this.add(\"parens\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n } else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"parens\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"brackets\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n } else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"brackets\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"string_dquotes\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n } else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column-1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n \n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n \n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n \n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n } else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(leftChar);\n if (isWordBefore || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1,1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n};\n\n \nCstyleBehaviour.isSaneInsertion = function(editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\n\nCstyleBehaviour.$matchTokenType = function(token, types) {\n return types.indexOf(token.type || token) > -1;\n};\n\nCstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\n\nCstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\n\nCstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\n\nCstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\n\nCstyleBehaviour.popAutoInsertedClosing = function() {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\n\nCstyleBehaviour.clearMaybeInsertedClosing = function() {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\n\n\n\noop.inherits(CstyleBehaviour, Behaviour);\n\nexports.CstyleBehaviour = CstyleBehaviour;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar JavaScriptHighlightRules = acequire(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = acequire(\"../range\").Range;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = JavaScriptHighlightRules;\n \n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.lineCommentStart = \"//\";\n this.blockComment = {start: \"/*\", end: \"*/\"};\n\n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n\n if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n return indent;\n }\n\n if (state == \"start\" || state == \"no_regex\") {\n var match = line.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);\n if (match) {\n indent += tab;\n }\n } else if (state == \"doc-start\") {\n if (endState == \"start\" || endState == \"no_regex\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], require(\"../worker/javascript\"), \"JavaScriptWorker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"annotate\", function(results) {\n session.setAnnotations(results.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n\n this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/brace/mode/javascript.js\n// module id = 532\n// module chunks = 0","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar JsonHighlightRules = function() {\n this.$rules = {\n \"start\" : [\n {\n token : \"variable\", // single line\n regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token : \"string\", // single line\n regex : '\"',\n next : \"string\"\n }, {\n token : \"constant.numeric\", // hex\n regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token : \"constant.numeric\", // float\n regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token : \"constant.language.boolean\",\n regex : \"(?:true|false)\\\\b\"\n }, {\n token : \"invalid.illegal\", // single quoted strings are not allowed\n regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token : \"invalid.illegal\", // comments are not allowed\n regex : \"\\\\/\\\\/.*$\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : \"\\\\s+\"\n }\n ],\n \"string\" : [\n {\n token : \"constant.language.escape\",\n regex : /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token : \"string\",\n regex : '[^\"\\\\\\\\]+'\n }, {\n token : \"string\",\n regex : '\"',\n next : \"start\"\n }, {\n token : \"string\",\n regex : \"\",\n next : \"start\"\n }\n ]\n };\n \n};\n\noop.inherits(JsonHighlightRules, TextHighlightRules);\n\nexports.JsonHighlightRules = JsonHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nvar SAFE_INSERT_IN_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\", \"comment\"];\n\nvar context;\nvar contextCache = {};\nvar initContext = function(editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = {rangeCount: editor.multiSelect.rangeCount};\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\n\nvar getWrapped = function(selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\n\nvar CstyleBehaviour = function() {\n this.add(\"braces\", \"insertion\", function(state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n } else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n } else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n } else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n } else if (closing) {\n var next_indent = this.$getIndent(line);\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n\n this.add(\"braces\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n } else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n\n this.add(\"parens\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n } else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"parens\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"brackets\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n } else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"brackets\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"string_dquotes\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n } else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column-1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n \n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n \n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n \n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n } else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(leftChar);\n if (isWordBefore || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1,1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n};\n\n \nCstyleBehaviour.isSaneInsertion = function(editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\n\nCstyleBehaviour.$matchTokenType = function(token, types) {\n return types.indexOf(token.type || token) > -1;\n};\n\nCstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\n\nCstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\n\nCstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\n\nCstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\n\nCstyleBehaviour.popAutoInsertedClosing = function() {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\n\nCstyleBehaviour.clearMaybeInsertedClosing = function() {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\n\n\n\noop.inherits(CstyleBehaviour, Behaviour);\n\nexports.CstyleBehaviour = CstyleBehaviour;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar HighlightRules = acequire(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], require(\"../worker/json\"), \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"annotate\", function(e) {\n session.setAnnotations(e.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n\n\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/brace/mode/json.js\n// module id = 533\n// module chunks = 0","ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n this.$rules = {\n \"start\" : [ {\n token : \"comment.doc.tag\",\n regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n }, \n DocCommentHighlightRules.getTagRule(),\n {\n defaultToken : \"comment.doc\",\n caseInsensitive: true\n }]\n };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n return {\n token : \"comment.doc.tag.storage.type\",\n regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n return {\n token : \"comment.doc\", // doc comment\n regex : \"\\\\/\\\\*(?=\\\\*)\",\n next : start\n };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token : \"comment.doc\", // closing comment\n regex : \"\\\\*\\\\/\",\n next : start\n };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar DocCommentHighlightRules = acequire(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\";\n\nvar JavaScriptHighlightRules = function(options) {\n var keywordMapper = this.createKeywordMapper({\n \"variable.language\":\n \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\" + // Constructors\n \"Namespace|QName|XML|XMLList|\" + // E4X\n \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\" +\n \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\" +\n \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\" + // Errors\n \"SyntaxError|TypeError|URIError|\" +\n \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n \"isNaN|parseFloat|parseInt|\" +\n \"JSON|Math|\" + // Other\n \"this|arguments|prototype|window|document\" , // Pseudo\n \"keyword\":\n \"const|yield|import|get|set|\" +\n \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n \"if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n \"storage.type\":\n \"const|let|var|function\",\n \"constant.language\":\n \"null|Infinity|NaN|undefined\",\n \"support.function\":\n \"alert\",\n \"constant.language.boolean\": \"true|false\"\n }, \"identifier\");\n var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n \"u[0-9a-fA-F]{4}|\" + // unicode\n \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n \"[0-2][0-7]{0,2}|\" + // oct\n \"3[0-7][0-7]?|\" + // oct\n \"[4-7][0-7]?|\" + //oct\n \".)\";\n\n this.$rules = {\n \"no_regex\" : [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"no_regex\"),\n {\n token : \"string\",\n regex : \"'(?=.)\",\n next : \"qstring\"\n }, {\n token : \"string\",\n regex : '\"(?=.)',\n next : \"qqstring\"\n }, {\n token : \"constant.numeric\", // hex\n regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n }, {\n token : \"constant.numeric\", // float\n regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"support.function\",\n \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n next: \"function_arguments\"\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"entity.name.function\", \"text\", \"punctuation.operator\",\n \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : \"keyword\",\n regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n next : \"start\"\n }, {\n token : [\"support.constant\"],\n regex : /that\\b/\n }, {\n token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n }, {\n token : keywordMapper,\n regex : identifierRe\n }, {\n token : \"punctuation.operator\",\n regex : /[.](?![.])/,\n next : \"property\"\n }, {\n token : \"keyword.operator\",\n regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,\n next : \"start\"\n }, {\n token : \"punctuation.operator\",\n regex : /[?:,;.]/,\n next : \"start\"\n }, {\n token : \"paren.lparen\",\n regex : /[\\[({]/,\n next : \"start\"\n }, {\n token : \"paren.rparen\",\n regex : /[\\])}]/\n }, {\n token: \"comment\",\n regex: /^#!.*$/\n }\n ],\n property: [{\n token : \"text\",\n regex : \"\\\\s+\"\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : \"punctuation.operator\",\n regex : /[.](?![.])/\n }, {\n token : \"support.function\",\n regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n }, {\n token : \"support.function.dom\",\n regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n }, {\n token : \"support.constant\",\n regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n }, {\n token : \"identifier\",\n regex : identifierRe\n }, {\n regex: \"\",\n token: \"empty\",\n next: \"no_regex\"\n }\n ],\n \"start\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"start\"),\n {\n token: \"string.regexp\",\n regex: \"\\\\/\",\n next: \"regex\"\n }, {\n token : \"text\",\n regex : \"\\\\s+|^$\",\n next : \"start\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"regex\": [\n {\n token: \"regexp.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"string.regexp\",\n regex: \"/[sxngimy]*\",\n next: \"no_regex\"\n }, {\n token : \"invalid\",\n regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n }, {\n token : \"constant.language.escape\",\n regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n }, {\n token : \"constant.language.delimiter\",\n regex: /\\|/\n }, {\n token: \"constant.language.escape\",\n regex: /\\[\\^?/,\n next: \"regex_character_class\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp\"\n }\n ],\n \"regex_character_class\": [\n {\n token: \"regexp.charclass.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"constant.language.escape\",\n regex: \"]\",\n next: \"regex\"\n }, {\n token: \"constant.language.escape\",\n regex: \"-\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp.charachterclass\"\n }\n ],\n \"function_arguments\": [\n {\n token: \"variable.parameter\",\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: \"[, ]+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"qqstring\" : [\n {\n token : \"constant.language.escape\",\n regex : escapedRe\n }, {\n token : \"string\",\n regex : \"\\\\\\\\$\",\n next : \"qqstring\"\n }, {\n token : \"string\",\n regex : '\"|$',\n next : \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"qstring\" : [\n {\n token : \"constant.language.escape\",\n regex : escapedRe\n }, {\n token : \"string\",\n regex : \"\\\\\\\\$\",\n next : \"qstring\"\n }, {\n token : \"string\",\n regex : \"'|$\",\n next : \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n \n \n if (!options || !options.noES6) {\n this.$rules.no_regex.unshift({\n regex: \"[{}]\", onMatch: function(val, state, stack) {\n this.next = val == \"{\" ? this.nextState : \"\";\n if (val == \"{\" && stack.length) {\n stack.unshift(\"start\", state);\n }\n else if (val == \"}\" && stack.length) {\n stack.shift();\n this.next = stack.shift();\n if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n return \"paren.quasi.end\";\n }\n return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n },\n nextState: \"start\"\n }, {\n token : \"string.quasi.start\",\n regex : /`/,\n push : [{\n token : \"constant.language.escape\",\n regex : escapedRe\n }, {\n token : \"paren.quasi.start\",\n regex : /\\${/,\n push : \"start\"\n }, {\n token : \"string.quasi.end\",\n regex : /`/,\n next : \"pop\"\n }, {\n defaultToken: \"string.quasi\"\n }]\n });\n \n if (!options || !options.noJSX)\n JSX.call(this);\n }\n \n this.embedRules(DocCommentHighlightRules, \"doc-\",\n [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n \n this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n var jsxTag = {\n onMatch : function(val, state, stack) {\n var offset = val.charAt(1) == \"/\" ? 2 : 1;\n if (offset == 1) {\n if (state != this.nextState)\n stack.unshift(this.next, this.nextState, 0);\n else\n stack.unshift(this.next);\n stack[2]++;\n } else if (offset == 2) {\n if (state == this.nextState) {\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.shift();\n stack.shift();\n }\n }\n }\n return [{\n type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n value: val.slice(0, offset)\n }, {\n type: \"meta.tag.tag-name.xml\",\n value: val.substr(offset)\n }];\n },\n regex : \"\", \n onMatch : function(value, currentState, stack) {\n if (currentState == stack[0])\n stack.shift();\n if (value.length == 2) {\n if (stack[0] == this.nextState)\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.splice(0, 2);\n }\n }\n this.next = stack[0] || \"start\";\n return [{type: this.token, value: value}];\n },\n nextState: \"jsx\"\n }, \n jsxJsRule,\n comments(\"jsxAttributes\"),\n {\n token : \"entity.other.attribute-name.xml\",\n regex : tagRegex\n }, {\n token : \"keyword.operator.attribute-equals.xml\",\n regex : \"=\"\n }, {\n token : \"text.tag-whitespace.xml\",\n regex : \"\\\\s+\"\n }, {\n token : \"string.attribute-value.xml\",\n regex : \"'\",\n stateName : \"jsx_attr_q\",\n push : [\n {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n {include : \"reference\"},\n {defaultToken : \"string.attribute-value.xml\"}\n ]\n }, {\n token : \"string.attribute-value.xml\",\n regex : '\"',\n stateName : \"jsx_attr_qq\",\n push : [\n {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n {include : \"reference\"},\n {defaultToken : \"string.attribute-value.xml\"}\n ]\n },\n jsxTag\n ];\n this.$rules.reference = [{\n token : \"constant.language.escape.reference.xml\",\n regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }];\n}\n\nfunction comments(next) {\n return [\n {\n token : \"comment\", // multi line comment\n regex : /\\/\\*/,\n next: [\n DocCommentHighlightRules.getTagRule(),\n {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n {defaultToken : \"comment\", caseInsensitive: true}\n ]\n }, {\n token : \"comment\",\n regex : \"\\\\/\\\\/\",\n next: [\n DocCommentHighlightRules.getTagRule(),\n {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n {defaultToken : \"comment\", caseInsensitive: true}\n ]\n }\n ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nvar SAFE_INSERT_IN_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\", \"comment\"];\n\nvar context;\nvar contextCache = {};\nvar initContext = function(editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = {rangeCount: editor.multiSelect.rangeCount};\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\n\nvar getWrapped = function(selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\n\nvar CstyleBehaviour = function() {\n this.add(\"braces\", \"insertion\", function(state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n } else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n } else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n } else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n } else if (closing) {\n var next_indent = this.$getIndent(line);\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n\n this.add(\"braces\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n } else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n\n this.add(\"parens\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n } else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"parens\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"brackets\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n } else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"brackets\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"string_dquotes\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n } else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column-1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n \n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n \n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n \n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n } else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(leftChar);\n if (isWordBefore || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1,1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n};\n\n \nCstyleBehaviour.isSaneInsertion = function(editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\n\nCstyleBehaviour.$matchTokenType = function(token, types) {\n return types.indexOf(token.type || token) > -1;\n};\n\nCstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\n\nCstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\n\nCstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\n\nCstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\n\nCstyleBehaviour.popAutoInsertedClosing = function() {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\n\nCstyleBehaviour.clearMaybeInsertedClosing = function() {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\n\n\n\noop.inherits(CstyleBehaviour, Behaviour);\n\nexports.CstyleBehaviour = CstyleBehaviour;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar JavaScriptHighlightRules = acequire(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = acequire(\"../range\").Range;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = JavaScriptHighlightRules;\n \n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.lineCommentStart = \"//\";\n this.blockComment = {start: \"/*\", end: \"*/\"};\n\n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n\n if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n return indent;\n }\n\n if (state == \"start\" || state == \"no_regex\") {\n var match = line.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);\n if (match) {\n indent += tab;\n }\n } else if (state == \"doc-start\") {\n if (endState == \"start\" || endState == \"no_regex\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], require(\"../worker/javascript\"), \"JavaScriptWorker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"annotate\", function(results) {\n session.setAnnotations(results.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n\n this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/typescript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar JavaScriptHighlightRules = acequire(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\n\nvar TypeScriptHighlightRules = function(options) {\n\n var tsRules = [\n {\n token: [\"keyword.operator.ts\", \"text\", \"variable.parameter.function.ts\", \"text\"],\n regex: \"\\\\b(module)(\\\\s*)([a-zA-Z0-9_?.$][\\\\w?.$]*)(\\\\s*\\\\{)\"\n }, \n {\n token: [\"storage.type.variable.ts\", \"text\", \"keyword.other.ts\", \"text\"],\n regex: \"(super)(\\\\s*\\\\()([a-zA-Z0-9,_?.$\\\\s]+\\\\s*)(\\\\))\"\n },\n {\n token: [\"entity.name.function.ts\",\"paren.lparen\", \"paren.rparen\"],\n regex: \"([a-zA-Z_?.$][\\\\w?.$]*)(\\\\()(\\\\))\"\n },\n {\n token: [\"variable.parameter.function.ts\", \"text\", \"variable.parameter.function.ts\"],\n regex: \"([a-zA-Z0-9_?.$][\\\\w?.$]*)(\\\\s*:\\\\s*)([a-zA-Z0-9_?.$][\\\\w?.$]*)\"\n }, \n {\n token: [\"keyword.operator.ts\"],\n regex: \"(?:\\\\b(constructor|declare|interface|as|AS|public|private|class|extends|export|super)\\\\b)\"\n }, \n {\n token: [\"storage.type.variable.ts\"],\n regex: \"(?:\\\\b(this\\\\.|string\\\\b|bool\\\\b|number)\\\\b)\"\n }, \n {\n token: [\"keyword.operator.ts\", \"storage.type.variable.ts\", \"keyword.operator.ts\", \"storage.type.variable.ts\"],\n regex: \"(class)(\\\\s+[a-zA-Z0-9_?.$][\\\\w?.$]*\\\\s+)(extends)(\\\\s+[a-zA-Z0-9_?.$][\\\\w?.$]*\\\\s+)?\"\n },\n {\n token: \"keyword\",\n regex: \"(?:super|export|class|extends|import)\\\\b\"\n }\n ];\n\n var JSRules = new JavaScriptHighlightRules({jsx: options && options.jsx}).getRules();\n \n JSRules.start = tsRules.concat(JSRules.start);\n this.$rules = JSRules;\n};\n\noop.inherits(TypeScriptHighlightRules, JavaScriptHighlightRules);\n\nexports.TypeScriptHighlightRules = TypeScriptHighlightRules;\n});\n\nace.define(\"ace/mode/typescript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/typescript_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/mode/matching_brace_outdent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar jsMode = acequire(\"./javascript\").Mode;\nvar TypeScriptHighlightRules = acequire(\"./typescript_highlight_rules\").TypeScriptHighlightRules;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\n\nvar Mode = function() {\n this.HighlightRules = TypeScriptHighlightRules;\n \n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, jsMode);\n\n(function() {\n this.createWorker = function(session) {\n return null;\n };\n this.$id = \"ace/mode/typescript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/brace/mode/typescript.js\n// module id = 534\n// module chunks = 0","ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n this.$rules = {\n start : [\n {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n {\n token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n },\n {\n token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n },\n {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n {\n token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n },\n {include : \"tag\"},\n {token : \"text.end-tag-open.xml\", regex: \"\",\n next : \"start\"\n }],\n\n processing_instruction : [\n {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n {defaultToken : \"instruction.xml\"}\n ],\n\n doctype : [\n {include : \"whitespace\"},\n {include : \"string\"},\n {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n ],\n\n int_subset : [{\n token : \"text.xml\",\n regex : \"\\\\s+\"\n }, {\n token: \"punctuation.int-subset.xml\",\n regex: \"]\",\n next: \"pop\"\n }, {\n token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n regex : \"(<\\\\!)(\" + tagRegex + \")\",\n push : [{\n token : \"text\",\n regex : \"\\\\s+\"\n },\n {\n token : \"punctuation.markup-decl.xml\",\n regex : \">\",\n next : \"pop\"\n },\n {include : \"string\"}]\n }],\n\n cdata : [\n {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n {token : \"text.xml\", regex : \"\\\\s+\"},\n {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n ],\n\n comment : [\n {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n {defaultToken : \"comment.xml\"}\n ],\n\n reference : [{\n token : \"constant.language.escape.reference.xml\",\n regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n\n attr_reference : [{\n token : \"constant.language.escape.reference.attribute-value.xml\",\n regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n\n tag : [{\n token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n regex : \"(?:(<)|(\", next : \"start\"}\n ]\n }],\n\n tag_whitespace : [\n {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n ],\n whitespace : [\n {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n ],\n string: [{\n token : \"string.xml\",\n regex : \"'\",\n push : [\n {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n {defaultToken : \"string.xml\"}\n ]\n }, {\n token : \"string.xml\",\n regex : '\"',\n push : [\n {token : \"string.xml\", regex: '\"', next: \"pop\"},\n {defaultToken : \"string.xml\"}\n ]\n }],\n\n attributes: [{\n token : \"entity.other.attribute-name.xml\",\n regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n }, {\n token : \"keyword.operator.attribute-equals.xml\",\n regex : \"=\"\n }, {\n include: \"tag_whitespace\"\n }, {\n include: \"attribute_value\"\n }],\n\n attribute_value: [{\n token : \"string.attribute-value.xml\",\n regex : \"'\",\n push : [\n {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n {include : \"attr_reference\"},\n {defaultToken : \"string.attribute-value.xml\"}\n ]\n }, {\n token : \"string.attribute-value.xml\",\n regex : '\"',\n push : [\n {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n {include : \"attr_reference\"},\n {defaultToken : \"string.attribute-value.xml\"}\n ]\n }]\n };\n\n if (this.constructor === XmlHighlightRules)\n this.normalizeRules();\n};\n\n\n(function() {\n\n this.embedTagRules = function(HighlightRules, prefix, tag){\n this.$rules.tag.unshift({\n token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n next: [\n {include : \"attributes\"},\n {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n ]\n });\n\n this.$rules[tag + \"-end\"] = [\n {include : \"attributes\"},\n {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next: \"start\",\n onMatch : function(value, currentState, stack) {\n stack.splice(0);\n return this.token;\n }}\n ]\n\n this.embedRules(HighlightRules, prefix, [{\n token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex : \"(|$))\",\n next: tag + \"-end\"\n }, {\n token: \"string.cdata.xml\",\n regex : \"<\\\\!\\\\[CDATA\\\\[\"\n }, {\n token: \"string.cdata.xml\",\n regex : \"\\\\]\\\\]>\"\n }]);\n };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nfunction is(token, type) {\n return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n var quote = text;\n var selected = session.doc.getTextRange(editor.getSelectionRange());\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return {\n text: quote + selected + quote,\n selection: false\n };\n }\n\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n\n if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n return {\n text: \"\",\n selection: [1, 1]\n };\n }\n\n if (!token)\n token = iterator.stepBackward();\n\n if (!token)\n return;\n\n while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n token = iterator.stepBackward();\n }\n var rightSpace = !rightChar || rightChar.match(/\\s/);\n if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n return {\n text: quote + quote,\n selection: [1, 1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '>') {\n var position = editor.getCursorPosition();\n var iterator = new TokenIterator(session, position.row, position.column);\n var token = iterator.getCurrentToken() || iterator.stepBackward();\n if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n return;\n if (is(token, \"reference.attribute-value\"))\n return;\n if (is(token, \"attribute-value\")) {\n var firstChar = token.value.charAt(0);\n if (firstChar == '\"' || firstChar == \"'\") {\n var lastChar = token.value.charAt(token.value.length - 1);\n var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n return;\n }\n }\n while (!is(token, \"tag-name\")) {\n token = iterator.stepBackward();\n }\n\n var tokenRow = iterator.getCurrentTokenRow();\n var tokenColumn = iterator.getCurrentTokenColumn();\n if (is(iterator.stepBackward(), \"end-tag-open\"))\n return;\n\n var element = token.value;\n if (tokenRow == position.row)\n element = element.substring(0, position.column - tokenColumn);\n\n if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n return;\n\n return {\n text: \">\" + \"\",\n selection: [1, 1]\n };\n }\n });\n\n this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n if (text == \"\\n\") {\n var cursor = editor.getCursorPosition();\n var line = session.getLine(cursor.row);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n\n if (token && token.type.indexOf(\"tag-close\") !== -1) {\n if (token.value == \"/>\")\n return;\n while (token && token.type.indexOf(\"tag-name\") === -1) {\n token = iterator.stepBackward();\n }\n\n if (!token) {\n return;\n }\n\n var tag = token.value;\n var row = iterator.getCurrentTokenRow();\n token = iterator.stepBackward();\n if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n return;\n }\n\n if (this.voidElements && !this.voidElements[tag]) {\n var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n var line = session.getLine(row);\n var nextIndent = this.$getIndent(line);\n var indent = nextIndent + session.getTabString();\n\n if (nextToken && nextToken.value === \" -1;\n}\n\n(function() {\n\n this.getFoldWidget = function(session, foldStyle, row) {\n var tag = this._getFirstTagInLine(session, row);\n\n if (!tag)\n return \"\";\n\n if (tag.closing || (!tag.tagName && tag.selfClosing))\n return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n return \"\";\n\n if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n return \"\";\n\n return \"start\";\n };\n this._getFirstTagInLine = function(session, row) {\n var tokens = session.getTokens(row);\n var tag = new Tag();\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (is(token, \"tag-open\")) {\n tag.end.column = tag.start.column + token.value.length;\n tag.closing = is(token, \"end-tag-open\");\n token = tokens[++i];\n if (!token)\n return null;\n tag.tagName = token.value;\n tag.end.column += token.value.length;\n for (i++; i < tokens.length; i++) {\n token = tokens[i];\n tag.end.column += token.value.length;\n if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == '/>';\n break;\n }\n }\n return tag;\n } else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == '/>';\n return tag;\n }\n tag.start.column += token.value.length;\n }\n\n return null;\n };\n\n this._findEndTagInLine = function(session, row, tagName, startColumn) {\n var tokens = session.getTokens(row);\n var column = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n column += token.value.length;\n if (column < startColumn)\n continue;\n if (is(token, \"end-tag-open\")) {\n token = tokens[i + 1];\n if (token && token.value == tagName)\n return true;\n }\n }\n return false;\n };\n this._readTagForward = function(iterator) {\n var token = iterator.getCurrentToken();\n if (!token)\n return null;\n\n var tag = new Tag();\n do {\n if (is(token, \"tag-open\")) {\n tag.closing = is(token, \"end-tag-open\");\n tag.start.row = iterator.getCurrentTokenRow();\n tag.start.column = iterator.getCurrentTokenColumn();\n } else if (is(token, \"tag-name\")) {\n tag.tagName = token.value;\n } else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == \"/>\";\n tag.end.row = iterator.getCurrentTokenRow();\n tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n iterator.stepForward();\n return tag;\n }\n } while(token = iterator.stepForward());\n\n return null;\n };\n \n this._readTagBackward = function(iterator) {\n var token = iterator.getCurrentToken();\n if (!token)\n return null;\n\n var tag = new Tag();\n do {\n if (is(token, \"tag-open\")) {\n tag.closing = is(token, \"end-tag-open\");\n tag.start.row = iterator.getCurrentTokenRow();\n tag.start.column = iterator.getCurrentTokenColumn();\n iterator.stepBackward();\n return tag;\n } else if (is(token, \"tag-name\")) {\n tag.tagName = token.value;\n } else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == \"/>\";\n tag.end.row = iterator.getCurrentTokenRow();\n tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n }\n } while(token = iterator.stepBackward());\n\n return null;\n };\n \n this._pop = function(stack, tag) {\n while (stack.length) {\n \n var top = stack[stack.length-1];\n if (!tag || top.tagName == tag.tagName) {\n return stack.pop();\n }\n else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n stack.pop();\n continue;\n } else {\n return null;\n }\n }\n };\n \n this.getFoldWidgetRange = function(session, foldStyle, row) {\n var firstTag = this._getFirstTagInLine(session, row);\n \n if (!firstTag)\n return null;\n \n var isBackward = firstTag.closing || firstTag.selfClosing;\n var stack = [];\n var tag;\n \n if (!isBackward) {\n var iterator = new TokenIterator(session, row, firstTag.start.column);\n var start = {\n row: row,\n column: firstTag.start.column + firstTag.tagName.length + 2\n };\n if (firstTag.start.row == firstTag.end.row)\n start.column = firstTag.end.column;\n while (tag = this._readTagForward(iterator)) {\n if (tag.selfClosing) {\n if (!stack.length) {\n tag.start.column += tag.tagName.length + 2;\n tag.end.column -= 2;\n return Range.fromPoints(tag.start, tag.end);\n } else\n continue;\n }\n \n if (tag.closing) {\n this._pop(stack, tag);\n if (stack.length == 0)\n return Range.fromPoints(start, tag.start);\n }\n else {\n stack.push(tag);\n }\n }\n }\n else {\n var iterator = new TokenIterator(session, row, firstTag.end.column);\n var end = {\n row: row,\n column: firstTag.start.column\n };\n \n while (tag = this._readTagBackward(iterator)) {\n if (tag.selfClosing) {\n if (!stack.length) {\n tag.start.column += tag.tagName.length + 2;\n tag.end.column -= 2;\n return Range.fromPoints(tag.start, tag.end);\n } else\n continue;\n }\n \n if (!tag.closing) {\n this._pop(stack, tag);\n if (stack.length == 0) {\n tag.start.column += tag.tagName.length + 2;\n if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n tag.start.column = tag.end.column;\n return Range.fromPoints(tag.start, end);\n }\n }\n else {\n stack.push(tag);\n }\n }\n }\n \n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar lang = acequire(\"../lib/lang\");\nvar TextMode = acequire(\"./text\").Mode;\nvar XmlHighlightRules = acequire(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = acequire(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = acequire(\"./folding/xml\").FoldMode;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n this.HighlightRules = XmlHighlightRules;\n this.$behaviour = new XmlBehaviour();\n this.foldingRules = new XmlFoldMode();\n};\n\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.voidElements = lang.arrayToMap([]);\n\n this.blockComment = {start: \"\"};\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], require(\"../worker/xml\"), \"Worker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"error\", function(e) {\n session.setAnnotations(e.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n \n this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/brace/mode/xml.js\n// module id = 535\n// module chunks = 0","ace.define(\"ace/theme/github\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\nexports.isDark = false;\nexports.cssClass = \"ace-github\";\nexports.cssText = \"\\\n.ace-github .ace_gutter {\\\nbackground: #e8e8e8;\\\ncolor: #AAA;\\\n}\\\n.ace-github {\\\nbackground: #fff;\\\ncolor: #000;\\\n}\\\n.ace-github .ace_keyword {\\\nfont-weight: bold;\\\n}\\\n.ace-github .ace_string {\\\ncolor: #D14;\\\n}\\\n.ace-github .ace_variable.ace_class {\\\ncolor: teal;\\\n}\\\n.ace-github .ace_constant.ace_numeric {\\\ncolor: #099;\\\n}\\\n.ace-github .ace_constant.ace_buildin {\\\ncolor: #0086B3;\\\n}\\\n.ace-github .ace_support.ace_function {\\\ncolor: #0086B3;\\\n}\\\n.ace-github .ace_comment {\\\ncolor: #998;\\\nfont-style: italic;\\\n}\\\n.ace-github .ace_variable.ace_language {\\\ncolor: #0086B3;\\\n}\\\n.ace-github .ace_paren {\\\nfont-weight: bold;\\\n}\\\n.ace-github .ace_boolean {\\\nfont-weight: bold;\\\n}\\\n.ace-github .ace_string.ace_regexp {\\\ncolor: #009926;\\\nfont-weight: normal;\\\n}\\\n.ace-github .ace_variable.ace_instance {\\\ncolor: teal;\\\n}\\\n.ace-github .ace_constant.ace_language {\\\nfont-weight: bold;\\\n}\\\n.ace-github .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\\\nbackground: rgb(255, 255, 204);\\\n}\\\n.ace-github .ace_marker-layer .ace_active-line {\\\nbackground: rgb(245, 245, 245);\\\n}\\\n.ace-github .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-github.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px white;\\\n}\\\n.ace-github.ace_nobold .ace_line > span {\\\nfont-weight: normal !important;\\\n}\\\n.ace-github .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-github .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-github .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-github .ace_gutter-active-line {\\\nbackground-color : rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-github .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-github .ace_invisible {\\\ncolor: #BFBFBF\\\n}\\\n.ace-github .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-github .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\";\n\n var dom = acequire(\"../lib/dom\");\n dom.importCssString(exports.cssText, exports.cssClass);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/brace/theme/github.js\n// module id = 536\n// module chunks = 0","module.exports.id = 'ace/mode/json_worker';\nmodule.exports.src = \"\\\"no use strict\\\";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\\\"\\\";testPath;){var alias=paths[testPath];if(\\\"string\\\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\\\/*$/,\\\"/\\\")+(tail||alias.main||alias.name);if(alias===!1)return\\\"\\\";var i=testPath.lastIndexOf(\\\"/\\\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\\\"log\\\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\\\"error\\\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\\\"!\\\")){var chunks=moduleName.split(\\\"!\\\");return window.normalizeModule(parentId,chunks[0])+\\\"!\\\"+window.normalizeModule(parentId,chunks[1])}if(\\\".\\\"==moduleName.charAt(0)){var base=parentId.split(\\\"/\\\").slice(0,-1).join(\\\"/\\\");for(moduleName=(base?base+\\\"/\\\":\\\"\\\")+moduleName;-1!==moduleName.indexOf(\\\".\\\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\\\.\\\\//,\\\"\\\").replace(/\\\\/\\\\.\\\\//,\\\"/\\\").replace(/[^\\\\/]+\\\\/\\\\.\\\\.\\\\//,\\\"\\\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\\\"worker.js acequire() accepts only (parentId, id) as arguments\\\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\\\"unable to load \\\"+id);var path=resolveModuleId(id,window.acequire.tlns);return\\\".js\\\"!=path.slice(-3)&&(path+=\\\".js\\\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\\\"string\\\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\\\"function\\\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\\\"require\\\",\\\"exports\\\",\\\"module\\\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\\\"require\\\":return req;case\\\"exports\\\":return module.exports;case\\\"module\\\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\\\"ace/lib/event_emitter\\\").EventEmitter,oop=window.acequire(\\\"ace/lib/oop\\\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\\\"call\\\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\\\"event\\\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\\\"Unknown command:\\\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\\\"ace/lib/es5-shim\\\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define(\\\"ace/lib/oop\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\\\"ace/range\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\\\"Range: [\\\"+this.start.row+\\\"/\\\"+this.start.column+\\\"] -> [\\\"+this.end.row+\\\"/\\\"+this.end.column+\\\"]\\\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\\\"object\\\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\\\"object\\\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\\\"ace/apply_delta\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\\\"\\\";switch(delta.action){case\\\"insert\\\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\\\"remove\\\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\\\"ace/lib/event_emitter\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\\\"object\\\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\\\"unshift\\\":\\\"push\\\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\\\"ace/anchor\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/lib/event_emitter\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\\\"change\\\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\\\"change\\\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\\\"change\\\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\\\"ace/document\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/apply_delta\\\",\\\"ace/lib/event_emitter\\\",\\\"ace/range\\\",\\\"ace/anchor\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),applyDelta=acequire(\\\"./apply_delta\\\").applyDelta,EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Range=acequire(\\\"./range\\\").Range,Anchor=acequire(\\\"./anchor\\\").Anchor,Document=function(textOrLines){this.$lines=[\\\"\\\"],0===textOrLines.length?this.$lines=[\\\"\\\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\\\"aaa\\\".split(/a/).length?function(text){return text.replace(/\\\\r\\\\n|\\\\r/g,\\\"\\\\n\\\").split(\\\"\\\\n\\\")}:function(text){return text.split(/\\\\r\\\\n|\\\\r|\\\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\\\r\\\\n|\\\\r|\\\\n)/m);this.$autoNewLine=match?match[1]:\\\"\\\\n\\\",this._signal(\\\"changeNewLineMode\\\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\\\"windows\\\":return\\\"\\\\r\\\\n\\\";case\\\"unix\\\":return\\\"\\\\n\\\";default:return this.$autoNewLine||\\\"\\\\n\\\"}},this.$autoNewLine=\\\"\\\",this.$newLineMode=\\\"auto\\\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\\\"changeNewLineMode\\\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\\\"\\\\r\\\\n\\\"==text||\\\"\\\\r\\\"==text||\\\"\\\\n\\\"==text},this.getLine=function(row){return this.$lines[row]||\\\"\\\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\\\"\\\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\\\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\\\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\\\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\\\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\\\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\\\"),this.insertMergedLines(position,[\\\"\\\",\\\"\\\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\\\"\\\"]),column=0):(lines=[\\\"\\\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\\\"remove\\\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\\\"remove\\\",lines:[\\\"\\\",\\\"\\\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\\\"insert\\\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\\\"change\\\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\\\"\\\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\\\"insert\\\"==delta.action?\\\"remove\\\":\\\"insert\\\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\\\"ace/lib/lang\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\\\"\\\").reverse().join(\\\"\\\")},exports.stringRepeat=function(string,count){for(var result=\\\"\\\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\\\s\\\\s*/,trimEndRegexp=/\\\\s\\\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\\\"\\\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\\\"\\\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\\\"object\\\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\\\"object\\\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}var cons=obj.constructor;if(cons===RegExp)return obj;copy=cons();for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\\\]\\\\/\\\\\\\\])/g,\\\"\\\\\\\\$1\\\")},exports.escapeHTML=function(str){return str.replace(/&/g,\\\"&\\\").replace(/\\\"/g,\\\""\\\").replace(/'/g,\\\"'\\\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\\\"insert\\\",start:data[i],lines:data[i+1]};else var d={action:\\\"remove\\\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\\\"ace/mode/json/json_parse\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){\\\"use strict\\\";var at,ch,text,value,escapee={'\\\"':'\\\"',\\\"\\\\\\\\\\\":\\\"\\\\\\\\\\\",\\\"/\\\":\\\"/\\\",b:\\\"\\\\b\\\",f:\\\"\\\\f\\\",n:\\\"\\\\n\\\",r:\\\"\\\\r\\\",t:\\\"\\t\\\"},error=function(m){throw{name:\\\"SyntaxError\\\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\\\"Expected '\\\"+c+\\\"' instead of '\\\"+ch+\\\"'\\\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\\\"\\\";for(\\\"-\\\"===ch&&(string=\\\"-\\\",next(\\\"-\\\"));ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();if(\\\".\\\"===ch)for(string+=\\\".\\\";next()&&ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch;if(\\\"e\\\"===ch||\\\"E\\\"===ch)for(string+=ch,next(),(\\\"-\\\"===ch||\\\"+\\\"===ch)&&(string+=ch,next());ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\\\"Bad number\\\"),void 0):number},string=function(){var hex,i,uffff,string=\\\"\\\";if('\\\"'===ch)for(;next();){if('\\\"'===ch)return next(),string;if(\\\"\\\\\\\\\\\"===ch)if(next(),\\\"u\\\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\\\"string\\\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\\\"Bad string\\\")},white=function(){for(;ch&&\\\" \\\">=ch;)next()},word=function(){switch(ch){case\\\"t\\\":return next(\\\"t\\\"),next(\\\"r\\\"),next(\\\"u\\\"),next(\\\"e\\\"),!0;case\\\"f\\\":return next(\\\"f\\\"),next(\\\"a\\\"),next(\\\"l\\\"),next(\\\"s\\\"),next(\\\"e\\\"),!1;case\\\"n\\\":return next(\\\"n\\\"),next(\\\"u\\\"),next(\\\"l\\\"),next(\\\"l\\\"),null}error(\\\"Unexpected '\\\"+ch+\\\"'\\\")},array=function(){var array=[];if(\\\"[\\\"===ch){if(next(\\\"[\\\"),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;for(;ch;){if(array.push(value()),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;next(\\\",\\\"),white()}}error(\\\"Bad array\\\")},object=function(){var key,object={};if(\\\"{\\\"===ch){if(next(\\\"{\\\"),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;for(;ch;){if(key=string(),white(),next(\\\":\\\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \\\"'+key+'\\\"'),object[key]=value(),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;next(\\\",\\\"),white()}}error(\\\"Bad object\\\")};return value=function(){switch(white(),ch){case\\\"{\\\":return object();case\\\"[\\\":return array();case'\\\"':return string();case\\\"-\\\":return number();default:return ch>=\\\"0\\\"&&\\\"9\\\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\\\" \\\",result=value(),white(),ch&&error(\\\"Syntax error\\\"),\\\"function\\\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\\\"object\\\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\\\"\\\":result},\\\"\\\"):result}}),ace.define(\\\"ace/mode/json_worker\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/worker/mirror\\\",\\\"ace/mode/json/json_parse\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"../lib/oop\\\"),Mirror=acequire(\\\"../worker/mirror\\\").Mirror,parse=acequire(\\\"./json/json_parse\\\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\\\"error\\\"})}this.sender.emit(\\\"annotate\\\",errors)}}.call(JsonWorker.prototype)}),ace.define(\\\"ace/lib/es5-shim\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\\\"sentinel\\\",{}),\\\"sentinel\\\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\\\"function\\\"!=typeof target)throw new TypeError(\\\"Function.prototype.bind called on incompatible \\\"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\\\"__defineGetter__\\\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\\\"XXX\\\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\\\"[object Array]\\\"==_toString(obj)});var boxedString=Object(\\\"a\\\"),splitString=\\\"a\\\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduce of empty array with no initial value\\\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\\\"reduce of empty array with no initial value\\\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\\\"Object.getOwnPropertyDescriptor called on a non-object: \\\";Object.getOwnPropertyDescriptor=function(object,property){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\\\"object\\\"!=typeof prototype)throw new TypeError(\\\"typeof prototype[\\\"+typeof prototype+\\\"] != 'object'\\\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\\\"undefined\\\"==typeof document||doesDefinePropertyWork(document.createElement(\\\"div\\\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\\\"Property description must be an object: \\\",ERR_NON_OBJECT_TARGET=\\\"Object.defineProperty called on non-object: \\\",ERR_ACCESSORS_NOT_SUPPORTED=\\\"getters & setters can not be defined on this javascript engine\\\";Object.defineProperty=function(object,property,descriptor){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\\\"object\\\"!=typeof descriptor&&\\\"function\\\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\\\"value\\\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\\\"get\\\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\\\"set\\\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\\\"function\\\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\\\"\\\";owns(object,name);)name+=\\\"?\\\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\\\"toString\\\",\\\"toLocaleString\\\",\\\"valueOf\\\",\\\"hasOwnProperty\\\",\\\"isPrototypeOf\\\",\\\"propertyIsEnumerable\\\",\\\"constructor\\\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(\\\"Object.keys called on a non-object\\\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\\\"\\t\\\\n\\u000b\\\\f\\\\r   ᠎              \\\\u2028\\\\u2029\\\";if(!String.prototype.trim||ws.trim()){ws=\\\"[\\\"+ws+\\\"]\\\";var trimBeginRegexp=RegExp(\\\"^\\\"+ws+ws+\\\"*\\\"),trimEndRegexp=RegExp(ws+ws+\\\"*$\\\");String.prototype.trim=function(){return(this+\\\"\\\").replace(trimBeginRegexp,\\\"\\\").replace(trimEndRegexp,\\\"\\\")}}var toObject=function(o){if(null==o)throw new TypeError(\\\"can't convert \\\"+o+\\\" to object\\\");return Object(o)}});\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/brace/worker/json.js\n// module id = 537\n// module chunks = 0","module.exports.id = 'ace/mode/xml_worker';\nmodule.exports.src = \"\\\"no use strict\\\";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\\\"\\\";testPath;){var alias=paths[testPath];if(\\\"string\\\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\\\/*$/,\\\"/\\\")+(tail||alias.main||alias.name);if(alias===!1)return\\\"\\\";var i=testPath.lastIndexOf(\\\"/\\\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\\\"log\\\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\\\"error\\\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\\\"!\\\")){var chunks=moduleName.split(\\\"!\\\");return window.normalizeModule(parentId,chunks[0])+\\\"!\\\"+window.normalizeModule(parentId,chunks[1])}if(\\\".\\\"==moduleName.charAt(0)){var base=parentId.split(\\\"/\\\").slice(0,-1).join(\\\"/\\\");for(moduleName=(base?base+\\\"/\\\":\\\"\\\")+moduleName;-1!==moduleName.indexOf(\\\".\\\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\\\.\\\\//,\\\"\\\").replace(/\\\\/\\\\.\\\\//,\\\"/\\\").replace(/[^\\\\/]+\\\\/\\\\.\\\\.\\\\//,\\\"\\\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\\\"worker.js acequire() accepts only (parentId, id) as arguments\\\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\\\"unable to load \\\"+id);var path=resolveModuleId(id,window.acequire.tlns);return\\\".js\\\"!=path.slice(-3)&&(path+=\\\".js\\\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\\\"string\\\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\\\"function\\\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\\\"require\\\",\\\"exports\\\",\\\"module\\\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\\\"require\\\":return req;case\\\"exports\\\":return module.exports;case\\\"module\\\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\\\"ace/lib/event_emitter\\\").EventEmitter,oop=window.acequire(\\\"ace/lib/oop\\\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\\\"call\\\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\\\"event\\\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\\\"Unknown command:\\\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\\\"ace/lib/es5-shim\\\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define(\\\"ace/lib/oop\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\\\"ace/lib/lang\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\\\"\\\").reverse().join(\\\"\\\")},exports.stringRepeat=function(string,count){for(var result=\\\"\\\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\\\s\\\\s*/,trimEndRegexp=/\\\\s\\\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\\\"\\\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\\\"\\\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\\\"object\\\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\\\"object\\\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}var cons=obj.constructor;if(cons===RegExp)return obj;copy=cons();for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\\\]\\\\/\\\\\\\\])/g,\\\"\\\\\\\\$1\\\")},exports.escapeHTML=function(str){return str.replace(/&/g,\\\"&\\\").replace(/\\\"/g,\\\""\\\").replace(/'/g,\\\"'\\\").replace(/ [\\\"+this.end.row+\\\"/\\\"+this.end.column+\\\"]\\\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\\\"object\\\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\\\"object\\\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\\\"ace/apply_delta\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\\\"\\\";switch(delta.action){case\\\"insert\\\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\\\"remove\\\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\\\"ace/lib/event_emitter\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\\\"object\\\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\\\"unshift\\\":\\\"push\\\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\\\"ace/anchor\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/lib/event_emitter\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\\\"change\\\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\\\"change\\\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\\\"change\\\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\\\"ace/document\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/apply_delta\\\",\\\"ace/lib/event_emitter\\\",\\\"ace/range\\\",\\\"ace/anchor\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),applyDelta=acequire(\\\"./apply_delta\\\").applyDelta,EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Range=acequire(\\\"./range\\\").Range,Anchor=acequire(\\\"./anchor\\\").Anchor,Document=function(textOrLines){this.$lines=[\\\"\\\"],0===textOrLines.length?this.$lines=[\\\"\\\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\\\"aaa\\\".split(/a/).length?function(text){return text.replace(/\\\\r\\\\n|\\\\r/g,\\\"\\\\n\\\").split(\\\"\\\\n\\\")}:function(text){return text.split(/\\\\r\\\\n|\\\\r|\\\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\\\r\\\\n|\\\\r|\\\\n)/m);this.$autoNewLine=match?match[1]:\\\"\\\\n\\\",this._signal(\\\"changeNewLineMode\\\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\\\"windows\\\":return\\\"\\\\r\\\\n\\\";case\\\"unix\\\":return\\\"\\\\n\\\";default:return this.$autoNewLine||\\\"\\\\n\\\"}},this.$autoNewLine=\\\"\\\",this.$newLineMode=\\\"auto\\\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\\\"changeNewLineMode\\\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\\\"\\\\r\\\\n\\\"==text||\\\"\\\\r\\\"==text||\\\"\\\\n\\\"==text},this.getLine=function(row){return this.$lines[row]||\\\"\\\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\\\"\\\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\\\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\\\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\\\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\\\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\\\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\\\"),this.insertMergedLines(position,[\\\"\\\",\\\"\\\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\\\"\\\"]),column=0):(lines=[\\\"\\\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\\\"remove\\\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\\\"remove\\\",lines:[\\\"\\\",\\\"\\\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\\\"insert\\\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\\\"change\\\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\\\"\\\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\\\"insert\\\"==delta.action?\\\"remove\\\":\\\"insert\\\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\\\"ace/worker/mirror\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/range\\\",\\\"ace/document\\\",\\\"ace/lib/lang\\\"],function(acequire,exports){\\\"use strict\\\";acequire(\\\"../range\\\").Range;var Document=acequire(\\\"../document\\\").Document,lang=acequire(\\\"../lib/lang\\\"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(\\\"\\\"),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on(\\\"change\\\",function(e){var data=e.data;if(data[0].start)doc.applyDeltas(data);else for(var i=0;data.length>i;i+=2){if(Array.isArray(data[i+1]))var d={action:\\\"insert\\\",start:data[i],lines:data[i+1]};else var d={action:\\\"remove\\\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\\\"ace/mode/xml/sax\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){function XMLReader(){}function parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){function fixedFromCharCode(code){if(code>65535){code-=65536;var surrogate1=55296+(code>>10),surrogate2=56320+(1023&code);return String.fromCharCode(surrogate1,surrogate2)}return String.fromCharCode(code)}function entityReplacer(a){var k=a.slice(1,-1);return k in entityMap?entityMap[k]:\\\"#\\\"===k.charAt(0)?fixedFromCharCode(parseInt(k.substr(1).replace(\\\"x\\\",\\\"0x\\\"))):(errorHandler.error(\\\"entity not found:\\\"+a),a)}function appendText(end){var xt=source.substring(start,end).replace(/&#?\\\\w+;/g,entityReplacer);locator&&position(start),domBuilder.characters(xt,0,end-start),start=end}function position(start,m){for(;start>=endPos&&(m=linePattern.exec(source));)startPos=m.index,endPos=startPos+m[0].length,locator.lineNumber++;locator.columnNumber=start-startPos+1}for(var startPos=0,endPos=0,linePattern=/.+(?:\\\\r\\\\n?|\\\\n)|.*$/g,locator=domBuilder.locator,parseStack=[{currentNSMap:defaultNSMapCopy}],closeMap={},start=0;;){var i=source.indexOf(\\\"<\\\",start);if(0>i){if(!source.substr(start).match(/^\\\\s*$/)){var doc=domBuilder.document,text=doc.createTextNode(source.substr(start));doc.appendChild(text),domBuilder.currentElement=text}return}switch(i>start&&appendText(i),source.charAt(i+1)){case\\\"/\\\":var config,end=source.indexOf(\\\">\\\",i+3),tagName=source.substring(i+2,end);if(!(parseStack.length>1)){errorHandler.fatalError(\\\"end tag name not found for: \\\"+tagName);break}config=parseStack.pop();var localNSMap=config.localNSMap;if(config.tagName!=tagName&&errorHandler.fatalError(\\\"end tag name: \\\"+tagName+\\\" does not match the current start tagName: \\\"+config.tagName),domBuilder.endElement(config.uri,config.localName,tagName),localNSMap)for(var prefix in localNSMap)domBuilder.endPrefixMapping(prefix);end++;break;case\\\"?\\\":locator&&position(i),end=parseInstruction(source,i,domBuilder);break;case\\\"!\\\":locator&&position(i),end=parseDCC(source,i,domBuilder,errorHandler);break;default:try{locator&&position(i);var el=new ElementAttributes,end=parseElementStartPart(source,i,el,entityReplacer,errorHandler),len=el.length;if(len&&locator){for(var backup=copyLocator(locator,{}),i=0;len>i;i++){var a=el[i];position(a.offset),a.offset=copyLocator(locator,{})}copyLocator(backup,locator)}!el.closed&&fixSelfClosed(source,end,el.tagName,closeMap)&&(el.closed=!0,entityMap.nbsp||errorHandler.warning(\\\"unclosed xml attribute\\\")),appendElement(el,domBuilder,parseStack),\\\"http://www.w3.org/1999/xhtml\\\"!==el.uri||el.closed?end++:end=parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)}catch(e){errorHandler.error(\\\"element parse error: \\\"+e),end=-1}}0>end?appendText(i+1):start=end}}function copyLocator(f,t){return t.lineNumber=f.lineNumber,t.columnNumber=f.columnNumber,t}function parseElementStartPart(source,start,el,entityReplacer,errorHandler){for(var attrName,value,p=++start,s=S_TAG;;){var c=source.charAt(p);switch(c){case\\\"=\\\":if(s===S_ATTR)attrName=source.slice(start,p),s=S_EQ;else{if(s!==S_ATTR_S)throw Error(\\\"attribute equal must after attrName\\\");s=S_EQ}break;case\\\"'\\\":case'\\\"':if(s===S_EQ){if(start=p+1,p=source.indexOf(c,start),!(p>0))throw Error(\\\"attribute value no end '\\\"+c+\\\"' match\\\");value=source.slice(start,p).replace(/&#?\\\\w+;/g,entityReplacer),el.add(attrName,value,start-1),s=S_E}else{if(s!=S_V)throw Error('attribute value must after \\\"=\\\"');value=source.slice(start,p).replace(/&#?\\\\w+;/g,entityReplacer),el.add(attrName,value,start),errorHandler.warning('attribute \\\"'+attrName+'\\\" missed start quot('+c+\\\")!!\\\"),start=p+1,s=S_E}break;case\\\"/\\\":switch(s){case S_TAG:el.setTagName(source.slice(start,p));case S_E:case S_S:case S_C:s=S_C,el.closed=!0;case S_V:case S_ATTR:case S_ATTR_S:break;default:throw Error(\\\"attribute invalid close char('/')\\\")}break;case\\\"\\\":errorHandler.error(\\\"unexpected end of input\\\");case\\\">\\\":switch(s){case S_TAG:el.setTagName(source.slice(start,p));case S_E:case S_S:case S_C:break;case S_V:case S_ATTR:value=source.slice(start,p),\\\"/\\\"===value.slice(-1)&&(el.closed=!0,value=value.slice(0,-1));case S_ATTR_S:s===S_ATTR_S&&(value=attrName),s==S_V?(errorHandler.warning('attribute \\\"'+value+'\\\" missed quot(\\\")!!'),el.add(attrName,value.replace(/&#?\\\\w+;/g,entityReplacer),start)):(errorHandler.warning('attribute \\\"'+value+'\\\" missed value!! \\\"'+value+'\\\" instead!!'),el.add(value,value,start));break;case S_EQ:throw Error(\\\"attribute value missed!!\\\")}return p;case\\\"€\\\":c=\\\" \\\";default:if(\\\" \\\">=c)switch(s){case S_TAG:el.setTagName(source.slice(start,p)),s=S_S;break;case S_ATTR:attrName=source.slice(start,p),s=S_ATTR_S;break;case S_V:var value=source.slice(start,p).replace(/&#?\\\\w+;/g,entityReplacer);errorHandler.warning('attribute \\\"'+value+'\\\" missed quot(\\\")!!'),el.add(attrName,value,start);case S_E:s=S_S}else switch(s){case S_ATTR_S:errorHandler.warning('attribute \\\"'+attrName+'\\\" missed value!! \\\"'+attrName+'\\\" instead!!'),el.add(attrName,attrName,start),start=p,s=S_ATTR;\\nbreak;case S_E:errorHandler.warning('attribute space is acequired\\\"'+attrName+'\\\"!!');case S_S:s=S_ATTR,start=p;break;case S_EQ:s=S_V,start=p;break;case S_C:throw Error(\\\"elements closed character '/' and '>' must be connected to\\\")}}p++}}function appendElement(el,domBuilder,parseStack){for(var tagName=el.tagName,localNSMap=null,currentNSMap=parseStack[parseStack.length-1].currentNSMap,i=el.length;i--;){var a=el[i],qName=a.qName,value=a.value,nsp=qName.indexOf(\\\":\\\");if(nsp>0)var prefix=a.prefix=qName.slice(0,nsp),localName=qName.slice(nsp+1),nsPrefix=\\\"xmlns\\\"===prefix&&localName;else localName=qName,prefix=null,nsPrefix=\\\"xmlns\\\"===qName&&\\\"\\\";a.localName=localName,nsPrefix!==!1&&(null==localNSMap&&(localNSMap={},_copy(currentNSMap,currentNSMap={})),currentNSMap[nsPrefix]=localNSMap[nsPrefix]=value,a.uri=\\\"http://www.w3.org/2000/xmlns/\\\",domBuilder.startPrefixMapping(nsPrefix,value))}for(var i=el.length;i--;){a=el[i];var prefix=a.prefix;prefix&&(\\\"xml\\\"===prefix&&(a.uri=\\\"http://www.w3.org/XML/1998/namespace\\\"),\\\"xmlns\\\"!==prefix&&(a.uri=currentNSMap[prefix]))}var nsp=tagName.indexOf(\\\":\\\");nsp>0?(prefix=el.prefix=tagName.slice(0,nsp),localName=el.localName=tagName.slice(nsp+1)):(prefix=null,localName=el.localName=tagName);var ns=el.uri=currentNSMap[prefix||\\\"\\\"];if(domBuilder.startElement(ns,localName,tagName,el),el.closed){if(domBuilder.endElement(ns,localName,tagName),localNSMap)for(prefix in localNSMap)domBuilder.endPrefixMapping(prefix)}else el.currentNSMap=currentNSMap,el.localNSMap=localNSMap,parseStack.push(el)}function parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){if(/^(?:script|textarea)$/i.test(tagName)){var elEndStart=source.indexOf(\\\"\\\",elStartEnd),text=source.substring(elStartEnd+1,elEndStart);if(/[&<]/.test(text))return/^script$/i.test(tagName)?(domBuilder.characters(text,0,text.length),elEndStart):(text=text.replace(/&#?\\\\w+;/g,entityReplacer),domBuilder.characters(text,0,text.length),elEndStart)}return elStartEnd+1}function fixSelfClosed(source,elStartEnd,tagName,closeMap){var pos=closeMap[tagName];return null==pos&&(pos=closeMap[tagName]=source.lastIndexOf(\\\"\\\")),elStartEnd>pos}function _copy(source,target){for(var n in source)target[n]=source[n]}function parseDCC(source,start,domBuilder,errorHandler){var next=source.charAt(start+2);switch(next){case\\\"-\\\":if(\\\"-\\\"===source.charAt(start+3)){var end=source.indexOf(\\\"-->\\\",start+4);return end>start?(domBuilder.comment(source,start+4,end-start-4),end+3):(errorHandler.error(\\\"Unclosed comment\\\"),-1)}return-1;default:if(\\\"CDATA[\\\"==source.substr(start+3,6)){var end=source.indexOf(\\\"]]>\\\",start+9);return domBuilder.startCDATA(),domBuilder.characters(source,start+9,end-start-9),domBuilder.endCDATA(),end+3}var matchs=split(source,start),len=matchs.length;if(len>1&&/!doctype/i.test(matchs[0][0])){var name=matchs[1][0],pubid=len>3&&/^public$/i.test(matchs[2][0])&&matchs[3][0],sysid=len>4&&matchs[4][0],lastMatch=matchs[len-1];return domBuilder.startDTD(name,pubid&&pubid.replace(/^(['\\\"])(.*?)\\\\1$/,\\\"$2\\\"),sysid&&sysid.replace(/^(['\\\"])(.*?)\\\\1$/,\\\"$2\\\")),domBuilder.endDTD(),lastMatch.index+lastMatch[0].length}}return-1}function parseInstruction(source,start,domBuilder){var end=source.indexOf(\\\"?>\\\",start);if(end){var match=source.substring(start,end).match(/^<\\\\?(\\\\S*)\\\\s*([\\\\s\\\\S]*?)\\\\s*$/);return match?(match[0].length,domBuilder.processingInstruction(match[1],match[2]),end+2):-1}return-1}function ElementAttributes(){}function _set_proto_(thiz,parent){return thiz.__proto__=parent,thiz}function split(source,start){var match,buf=[],reg=/'[^']+'|\\\"[^\\\"]+\\\"|[^\\\\s<>\\\\/=]+=?|(\\\\/?\\\\s*>|<)/g;for(reg.lastIndex=start,reg.exec(source);match=reg.exec(source);)if(buf.push(match),match[1])return buf}var nameStartChar=/[A-Z_a-z\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD]/,nameChar=RegExp(\\\"[\\\\\\\\-\\\\\\\\.0-9\\\"+nameStartChar.source.slice(1,-1)+\\\"·̀-ͯ\\\\\\\\ux203F-⁀]\\\"),tagNamePattern=RegExp(\\\"^\\\"+nameStartChar.source+nameChar.source+\\\"*(?::\\\"+nameStartChar.source+nameChar.source+\\\"*)?$\\\"),S_TAG=0,S_ATTR=1,S_ATTR_S=2,S_EQ=3,S_V=4,S_E=5,S_S=6,S_C=7;return XMLReader.prototype={parse:function(source,defaultNSMap,entityMap){var domBuilder=this.domBuilder;domBuilder.startDocument(),_copy(defaultNSMap,defaultNSMap={}),parse(source,defaultNSMap,entityMap,domBuilder,this.errorHandler),domBuilder.endDocument()}},ElementAttributes.prototype={setTagName:function(tagName){if(!tagNamePattern.test(tagName))throw Error(\\\"invalid tagName:\\\"+tagName);this.tagName=tagName},add:function(qName,value,offset){if(!tagNamePattern.test(qName))throw Error(\\\"invalid attribute:\\\"+qName);this[this.length++]={qName:qName,value:value,offset:offset}},length:0,getLocalName:function(i){return this[i].localName},getOffset:function(i){return this[i].offset},getQName:function(i){return this[i].qName},getURI:function(i){return this[i].uri},getValue:function(i){return this[i].value}},_set_proto_({},_set_proto_.prototype)instanceof _set_proto_||(_set_proto_=function(thiz,parent){function p(){}p.prototype=parent,p=new p;for(parent in thiz)p[parent]=thiz[parent];return p}),XMLReader}),ace.define(\\\"ace/mode/xml/dom\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){function copy(src,dest){for(var p in src)dest[p]=src[p]}function _extends(Class,Super){function t(){}var pt=Class.prototype;if(Object.create){var ppt=Object.create(Super.prototype);pt.__proto__=ppt}pt instanceof Super||(t.prototype=Super.prototype,t=new t,copy(pt,t),Class.prototype=pt=t),pt.constructor!=Class&&(\\\"function\\\"!=typeof Class&&console.error(\\\"unknow Class:\\\"+Class),pt.constructor=Class)}function DOMException(code,message){if(message instanceof Error)var error=message;else error=this,Error.call(this,ExceptionMessage[code]),this.message=ExceptionMessage[code],Error.captureStackTrace&&Error.captureStackTrace(this,DOMException);return error.code=code,message&&(this.message=this.message+\\\": \\\"+message),error}function NodeList(){}function LiveNodeList(node,refresh){this._node=node,this._refresh=refresh,_updateLiveList(this)}function _updateLiveList(list){var inc=list._node._inc||list._node.ownerDocument._inc;if(list._inc!=inc){var ls=list._refresh(list._node);__set__(list,\\\"length\\\",ls.length),copy(ls,list),list._inc=inc}}function NamedNodeMap(){}function _findNodeIndex(list,node){for(var i=list.length;i--;)if(list[i]===node)return i}function _addNamedNode(el,list,newAttr,oldAttr){if(oldAttr?list[_findNodeIndex(list,oldAttr)]=newAttr:list[list.length++]=newAttr,el){newAttr.ownerElement=el;var doc=el.ownerDocument;doc&&(oldAttr&&_onRemoveAttribute(doc,el,oldAttr),_onAddAttribute(doc,el,newAttr))}}function _removeNamedNode(el,list,attr){var i=_findNodeIndex(list,attr);if(!(i>=0))throw DOMException(NOT_FOUND_ERR,Error());for(var lastIndex=list.length-1;lastIndex>i;)list[i]=list[++i];if(list.length=lastIndex,el){var doc=el.ownerDocument;doc&&(_onRemoveAttribute(doc,el,attr),attr.ownerElement=null)}}function DOMImplementation(features){if(this._features={},features)for(var feature in features)this._features=features[feature]}function Node(){}function _xmlEncoder(c){return\\\"<\\\"==c&&\\\"<\\\"||\\\">\\\"==c&&\\\">\\\"||\\\"&\\\"==c&&\\\"&\\\"||'\\\"'==c&&\\\""\\\"||\\\"&#\\\"+c.charCodeAt()+\\\";\\\"}function _visitNode(node,callback){if(callback(node))return!0;if(node=node.firstChild)do if(_visitNode(node,callback))return!0;while(node=node.nextSibling)}function Document(){}function _onAddAttribute(doc,el,newAttr){doc&&doc._inc++;var ns=newAttr.namespaceURI;\\\"http://www.w3.org/2000/xmlns/\\\"==ns&&(el._nsMap[newAttr.prefix?newAttr.localName:\\\"\\\"]=newAttr.value)}function _onRemoveAttribute(doc,el,newAttr){doc&&doc._inc++;var ns=newAttr.namespaceURI;\\\"http://www.w3.org/2000/xmlns/\\\"==ns&&delete el._nsMap[newAttr.prefix?newAttr.localName:\\\"\\\"]}function _onUpdateChild(doc,el,newChild){if(doc&&doc._inc){doc._inc++;var cs=el.childNodes;if(newChild)cs[cs.length++]=newChild;else{for(var child=el.firstChild,i=0;child;)cs[i++]=child,child=child.nextSibling;cs.length=i}}}function _removeChild(parentNode,child){var previous=child.previousSibling,next=child.nextSibling;return previous?previous.nextSibling=next:parentNode.firstChild=next,next?next.previousSibling=previous:parentNode.lastChild=previous,_onUpdateChild(parentNode.ownerDocument,parentNode),child}function _insertBefore(parentNode,newChild,nextChild){var cp=newChild.parentNode;if(cp&&cp.removeChild(newChild),newChild.nodeType===DOCUMENT_FRAGMENT_NODE){var newFirst=newChild.firstChild;if(null==newFirst)return newChild;var newLast=newChild.lastChild}else newFirst=newLast=newChild;var pre=nextChild?nextChild.previousSibling:parentNode.lastChild;newFirst.previousSibling=pre,newLast.nextSibling=nextChild,pre?pre.nextSibling=newFirst:parentNode.firstChild=newFirst,null==nextChild?parentNode.lastChild=newLast:nextChild.previousSibling=newLast;do newFirst.parentNode=parentNode;while(newFirst!==newLast&&(newFirst=newFirst.nextSibling));return _onUpdateChild(parentNode.ownerDocument||parentNode,parentNode),newChild.nodeType==DOCUMENT_FRAGMENT_NODE&&(newChild.firstChild=newChild.lastChild=null),newChild}function _appendSingleChild(parentNode,newChild){var cp=newChild.parentNode;if(cp){var pre=parentNode.lastChild;cp.removeChild(newChild);var pre=parentNode.lastChild}var pre=parentNode.lastChild;return newChild.parentNode=parentNode,newChild.previousSibling=pre,newChild.nextSibling=null,pre?pre.nextSibling=newChild:parentNode.firstChild=newChild,parentNode.lastChild=newChild,_onUpdateChild(parentNode.ownerDocument,parentNode,newChild),newChild}function Element(){this._nsMap={}}function Attr(){}function CharacterData(){}function Text(){}function Comment(){}function CDATASection(){}function DocumentType(){}function Notation(){}function Entity(){}function EntityReference(){}function DocumentFragment(){}function ProcessingInstruction(){}function XMLSerializer(){}function serializeToString(node,buf){switch(node.nodeType){case ELEMENT_NODE:var attrs=node.attributes,len=attrs.length,child=node.firstChild,nodeName=node.tagName,isHTML=htmlns===node.namespaceURI;buf.push(\\\"<\\\",nodeName);for(var i=0;len>i;i++)serializeToString(attrs.item(i),buf,isHTML);if(child||isHTML&&!/^(?:meta|link|img|br|hr|input|button)$/i.test(nodeName)){if(buf.push(\\\">\\\"),isHTML&&/^script$/i.test(nodeName))child&&buf.push(child.data);else for(;child;)serializeToString(child,buf),child=child.nextSibling;buf.push(\\\"\\\")}else buf.push(\\\"/>\\\");return;case DOCUMENT_NODE:case DOCUMENT_FRAGMENT_NODE:for(var child=node.firstChild;child;)serializeToString(child,buf),child=child.nextSibling;return;case ATTRIBUTE_NODE:return buf.push(\\\" \\\",node.name,'=\\\"',node.value.replace(/[<&\\\"]/g,_xmlEncoder),'\\\"');case TEXT_NODE:return buf.push(node.data.replace(/[<&]/g,_xmlEncoder));case CDATA_SECTION_NODE:return buf.push(\\\"\\\");case COMMENT_NODE:return buf.push(\\\"\\\");case DOCUMENT_TYPE_NODE:var pubid=node.publicId,sysid=node.systemId;if(buf.push(\\\"');else if(sysid&&\\\".\\\"!=sysid)buf.push(' SYSTEM \\\"',sysid,'\\\">');else{var sub=node.internalSubset;sub&&buf.push(\\\" [\\\",sub,\\\"]\\\"),buf.push(\\\">\\\")}return;case PROCESSING_INSTRUCTION_NODE:return buf.push(\\\"\\\");case ENTITY_REFERENCE_NODE:return buf.push(\\\"&\\\",node.nodeName,\\\";\\\");default:buf.push(\\\"??\\\",node.nodeName)}}function importNode(doc,node,deep){var node2;switch(node.nodeType){case ELEMENT_NODE:node2=node.cloneNode(!1),node2.ownerDocument=doc;case DOCUMENT_FRAGMENT_NODE:break;case ATTRIBUTE_NODE:deep=!0}if(node2||(node2=node.cloneNode(!1)),node2.ownerDocument=doc,node2.parentNode=null,deep)for(var child=node.firstChild;child;)node2.appendChild(importNode(doc,child,deep)),child=child.nextSibling;return node2}function cloneNode(doc,node,deep){var node2=new node.constructor;for(var n in node){var v=node[n];\\\"object\\\"!=typeof v&&v!=node2[n]&&(node2[n]=v)}switch(node.childNodes&&(node2.childNodes=new NodeList),node2.ownerDocument=doc,node2.nodeType){case ELEMENT_NODE:var attrs=node.attributes,attrs2=node2.attributes=new NamedNodeMap,len=attrs.length;attrs2._ownerElement=node2;for(var i=0;len>i;i++)node2.setAttributeNode(cloneNode(doc,attrs.item(i),!0));break;case ATTRIBUTE_NODE:deep=!0}if(deep)for(var child=node.firstChild;child;)node2.appendChild(cloneNode(doc,child,deep)),child=child.nextSibling;return node2}function __set__(object,key,value){object[key]=value}function getTextContent(node){switch(node.nodeType){case 1:case 11:var buf=[];for(node=node.firstChild;node;)7!==node.nodeType&&8!==node.nodeType&&buf.push(getTextContent(node)),node=node.nextSibling;return buf.join(\\\"\\\");default:return node.nodeValue}}var htmlns=\\\"http://www.w3.org/1999/xhtml\\\",NodeType={},ELEMENT_NODE=NodeType.ELEMENT_NODE=1,ATTRIBUTE_NODE=NodeType.ATTRIBUTE_NODE=2,TEXT_NODE=NodeType.TEXT_NODE=3,CDATA_SECTION_NODE=NodeType.CDATA_SECTION_NODE=4,ENTITY_REFERENCE_NODE=NodeType.ENTITY_REFERENCE_NODE=5,ENTITY_NODE=NodeType.ENTITY_NODE=6,PROCESSING_INSTRUCTION_NODE=NodeType.PROCESSING_INSTRUCTION_NODE=7,COMMENT_NODE=NodeType.COMMENT_NODE=8,DOCUMENT_NODE=NodeType.DOCUMENT_NODE=9,DOCUMENT_TYPE_NODE=NodeType.DOCUMENT_TYPE_NODE=10,DOCUMENT_FRAGMENT_NODE=NodeType.DOCUMENT_FRAGMENT_NODE=11,NOTATION_NODE=NodeType.NOTATION_NODE=12,ExceptionCode={},ExceptionMessage={};ExceptionCode.INDEX_SIZE_ERR=(ExceptionMessage[1]=\\\"Index size error\\\",1),ExceptionCode.DOMSTRING_SIZE_ERR=(ExceptionMessage[2]=\\\"DOMString size error\\\",2),ExceptionCode.HIERARCHY_REQUEST_ERR=(ExceptionMessage[3]=\\\"Hierarchy request error\\\",3),ExceptionCode.WRONG_DOCUMENT_ERR=(ExceptionMessage[4]=\\\"Wrong document\\\",4),ExceptionCode.INVALID_CHARACTER_ERR=(ExceptionMessage[5]=\\\"Invalid character\\\",5),ExceptionCode.NO_DATA_ALLOWED_ERR=(ExceptionMessage[6]=\\\"No data allowed\\\",6),ExceptionCode.NO_MODIFICATION_ALLOWED_ERR=(ExceptionMessage[7]=\\\"No modification allowed\\\",7);var NOT_FOUND_ERR=ExceptionCode.NOT_FOUND_ERR=(ExceptionMessage[8]=\\\"Not found\\\",8);ExceptionCode.NOT_SUPPORTED_ERR=(ExceptionMessage[9]=\\\"Not supported\\\",9);var INUSE_ATTRIBUTE_ERR=ExceptionCode.INUSE_ATTRIBUTE_ERR=(ExceptionMessage[10]=\\\"Attribute in use\\\",10);ExceptionCode.INVALID_STATE_ERR=(ExceptionMessage[11]=\\\"Invalid state\\\",11),ExceptionCode.SYNTAX_ERR=(ExceptionMessage[12]=\\\"Syntax error\\\",12),ExceptionCode.INVALID_MODIFICATION_ERR=(ExceptionMessage[13]=\\\"Invalid modification\\\",13),ExceptionCode.NAMESPACE_ERR=(ExceptionMessage[14]=\\\"Invalid namespace\\\",14),ExceptionCode.INVALID_ACCESS_ERR=(ExceptionMessage[15]=\\\"Invalid access\\\",15),DOMException.prototype=Error.prototype,copy(ExceptionCode,DOMException),NodeList.prototype={length:0,item:function(index){return this[index]||null}},LiveNodeList.prototype.item=function(i){return _updateLiveList(this),this[i]},_extends(LiveNodeList,NodeList),NamedNodeMap.prototype={length:0,item:NodeList.prototype.item,getNamedItem:function(key){for(var i=this.length;i--;){var attr=this[i];if(attr.nodeName==key)return attr}},setNamedItem:function(attr){var el=attr.ownerElement;if(el&&el!=this._ownerElement)throw new DOMException(INUSE_ATTRIBUTE_ERR);var oldAttr=this.getNamedItem(attr.nodeName);return _addNamedNode(this._ownerElement,this,attr,oldAttr),oldAttr},setNamedItemNS:function(attr){var oldAttr,el=attr.ownerElement;if(el&&el!=this._ownerElement)throw new DOMException(INUSE_ATTRIBUTE_ERR);return oldAttr=this.getNamedItemNS(attr.namespaceURI,attr.localName),_addNamedNode(this._ownerElement,this,attr,oldAttr),oldAttr},removeNamedItem:function(key){var attr=this.getNamedItem(key);return _removeNamedNode(this._ownerElement,this,attr),attr},removeNamedItemNS:function(namespaceURI,localName){var attr=this.getNamedItemNS(namespaceURI,localName);return _removeNamedNode(this._ownerElement,this,attr),attr},getNamedItemNS:function(namespaceURI,localName){for(var i=this.length;i--;){var node=this[i];if(node.localName==localName&&node.namespaceURI==namespaceURI)return node}return null}},DOMImplementation.prototype={hasFeature:function(feature,version){var versions=this._features[feature.toLowerCase()];return versions&&(!version||version in versions)?!0:!1},createDocument:function(namespaceURI,qualifiedName,doctype){var doc=new Document;if(doc.implementation=this,doc.childNodes=new NodeList,doc.doctype=doctype,doctype&&doc.appendChild(doctype),qualifiedName){var root=doc.createElementNS(namespaceURI,qualifiedName);doc.appendChild(root)}return doc},createDocumentType:function(qualifiedName,publicId,systemId){var node=new DocumentType;return node.name=qualifiedName,node.nodeName=qualifiedName,node.publicId=publicId,node.systemId=systemId,node}},Node.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(newChild,refChild){return _insertBefore(this,newChild,refChild)},replaceChild:function(newChild,oldChild){this.insertBefore(newChild,oldChild),oldChild&&this.removeChild(oldChild)},removeChild:function(oldChild){return _removeChild(this,oldChild)},appendChild:function(newChild){return this.insertBefore(newChild,null)},hasChildNodes:function(){return null!=this.firstChild},cloneNode:function(deep){return cloneNode(this.ownerDocument||this,this,deep)},normalize:function(){for(var child=this.firstChild;child;){var next=child.nextSibling;next&&next.nodeType==TEXT_NODE&&child.nodeType==TEXT_NODE?(this.removeChild(next),child.appendData(next.data)):(child.normalize(),child=next)}},isSupported:function(feature,version){return this.ownerDocument.implementation.hasFeature(feature,version)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(namespaceURI){for(var el=this;el;){var map=el._nsMap;if(map)for(var n in map)if(map[n]==namespaceURI)return n;el=2==el.nodeType?el.ownerDocument:el.parentNode}return null},lookupNamespaceURI:function(prefix){for(var el=this;el;){var map=el._nsMap;if(map&&prefix in map)return map[prefix];el=2==el.nodeType?el.ownerDocument:el.parentNode}return null},isDefaultNamespace:function(namespaceURI){var prefix=this.lookupPrefix(namespaceURI);return null==prefix}},copy(NodeType,Node),copy(NodeType,Node.prototype),Document.prototype={nodeName:\\\"#document\\\",nodeType:DOCUMENT_NODE,doctype:null,documentElement:null,_inc:1,insertBefore:function(newChild,refChild){if(newChild.nodeType==DOCUMENT_FRAGMENT_NODE){for(var child=newChild.firstChild;child;){var next=child.nextSibling;this.insertBefore(child,refChild),child=next}return newChild}return null==this.documentElement&&1==newChild.nodeType&&(this.documentElement=newChild),_insertBefore(this,newChild,refChild),newChild.ownerDocument=this,newChild},removeChild:function(oldChild){return this.documentElement==oldChild&&(this.documentElement=null),_removeChild(this,oldChild)},importNode:function(importedNode,deep){return importNode(this,importedNode,deep)},getElementById:function(id){var rtv=null;return _visitNode(this.documentElement,function(node){return 1==node.nodeType&&node.getAttribute(\\\"id\\\")==id?(rtv=node,!0):void 0}),rtv},createElement:function(tagName){var node=new Element;node.ownerDocument=this,node.nodeName=tagName,node.tagName=tagName,node.childNodes=new NodeList;var attrs=node.attributes=new NamedNodeMap;return attrs._ownerElement=node,node},createDocumentFragment:function(){var node=new DocumentFragment;return node.ownerDocument=this,node.childNodes=new NodeList,node},createTextNode:function(data){var node=new Text;return node.ownerDocument=this,node.appendData(data),node},createComment:function(data){var node=new Comment;return node.ownerDocument=this,node.appendData(data),node},createCDATASection:function(data){var node=new CDATASection;return node.ownerDocument=this,node.appendData(data),node},createProcessingInstruction:function(target,data){var node=new ProcessingInstruction;return node.ownerDocument=this,node.tagName=node.target=target,node.nodeValue=node.data=data,node},createAttribute:function(name){var node=new Attr;return node.ownerDocument=this,node.name=name,node.nodeName=name,node.localName=name,node.specified=!0,node},createEntityReference:function(name){var node=new EntityReference;return node.ownerDocument=this,node.nodeName=name,node},createElementNS:function(namespaceURI,qualifiedName){var node=new Element,pl=qualifiedName.split(\\\":\\\"),attrs=node.attributes=new NamedNodeMap;return node.childNodes=new NodeList,node.ownerDocument=this,node.nodeName=qualifiedName,node.tagName=qualifiedName,node.namespaceURI=namespaceURI,2==pl.length?(node.prefix=pl[0],node.localName=pl[1]):node.localName=qualifiedName,attrs._ownerElement=node,node},createAttributeNS:function(namespaceURI,qualifiedName){var node=new Attr,pl=qualifiedName.split(\\\":\\\");return node.ownerDocument=this,node.nodeName=qualifiedName,node.name=qualifiedName,node.namespaceURI=namespaceURI,node.specified=!0,2==pl.length?(node.prefix=pl[0],node.localName=pl[1]):node.localName=qualifiedName,node}},_extends(Document,Node),Element.prototype={nodeType:ELEMENT_NODE,hasAttribute:function(name){return null!=this.getAttributeNode(name)},getAttribute:function(name){var attr=this.getAttributeNode(name);return attr&&attr.value||\\\"\\\"},getAttributeNode:function(name){return this.attributes.getNamedItem(name)},setAttribute:function(name,value){var attr=this.ownerDocument.createAttribute(name);attr.value=attr.nodeValue=\\\"\\\"+value,this.setAttributeNode(attr)},removeAttribute:function(name){var attr=this.getAttributeNode(name);attr&&this.removeAttributeNode(attr)},appendChild:function(newChild){return newChild.nodeType===DOCUMENT_FRAGMENT_NODE?this.insertBefore(newChild,null):_appendSingleChild(this,newChild)},setAttributeNode:function(newAttr){return this.attributes.setNamedItem(newAttr)},setAttributeNodeNS:function(newAttr){return this.attributes.setNamedItemNS(newAttr)},removeAttributeNode:function(oldAttr){return this.attributes.removeNamedItem(oldAttr.nodeName)},removeAttributeNS:function(namespaceURI,localName){var old=this.getAttributeNodeNS(namespaceURI,localName);old&&this.removeAttributeNode(old)},hasAttributeNS:function(namespaceURI,localName){return null!=this.getAttributeNodeNS(namespaceURI,localName)},getAttributeNS:function(namespaceURI,localName){var attr=this.getAttributeNodeNS(namespaceURI,localName);return attr&&attr.value||\\\"\\\"},setAttributeNS:function(namespaceURI,qualifiedName,value){var attr=this.ownerDocument.createAttributeNS(namespaceURI,qualifiedName);attr.value=attr.nodeValue=\\\"\\\"+value,this.setAttributeNode(attr)},getAttributeNodeNS:function(namespaceURI,localName){return this.attributes.getNamedItemNS(namespaceURI,localName)},getElementsByTagName:function(tagName){return new LiveNodeList(this,function(base){var ls=[];return _visitNode(base,function(node){node===base||node.nodeType!=ELEMENT_NODE||\\\"*\\\"!==tagName&&node.tagName!=tagName||ls.push(node)}),ls})},getElementsByTagNameNS:function(namespaceURI,localName){return new LiveNodeList(this,function(base){var ls=[];return _visitNode(base,function(node){node===base||node.nodeType!==ELEMENT_NODE||\\\"*\\\"!==namespaceURI&&node.namespaceURI!==namespaceURI||\\\"*\\\"!==localName&&node.localName!=localName||ls.push(node)}),ls})}},Document.prototype.getElementsByTagName=Element.prototype.getElementsByTagName,Document.prototype.getElementsByTagNameNS=Element.prototype.getElementsByTagNameNS,_extends(Element,Node),Attr.prototype.nodeType=ATTRIBUTE_NODE,_extends(Attr,Node),CharacterData.prototype={data:\\\"\\\",substringData:function(offset,count){return this.data.substring(offset,offset+count)},appendData:function(text){text=this.data+text,this.nodeValue=this.data=text,this.length=text.length},insertData:function(offset,text){this.replaceData(offset,0,text)},appendChild:function(){throw Error(ExceptionMessage[3])},deleteData:function(offset,count){this.replaceData(offset,count,\\\"\\\")},replaceData:function(offset,count,text){var start=this.data.substring(0,offset),end=this.data.substring(offset+count);text=start+text+end,this.nodeValue=this.data=text,this.length=text.length}},_extends(CharacterData,Node),Text.prototype={nodeName:\\\"#text\\\",nodeType:TEXT_NODE,splitText:function(offset){var text=this.data,newText=text.substring(offset);text=text.substring(0,offset),this.data=this.nodeValue=text,this.length=text.length;var newNode=this.ownerDocument.createTextNode(newText);return this.parentNode&&this.parentNode.insertBefore(newNode,this.nextSibling),newNode}},_extends(Text,CharacterData),Comment.prototype={nodeName:\\\"#comment\\\",nodeType:COMMENT_NODE},_extends(Comment,CharacterData),CDATASection.prototype={nodeName:\\\"#cdata-section\\\",nodeType:CDATA_SECTION_NODE},_extends(CDATASection,CharacterData),DocumentType.prototype.nodeType=DOCUMENT_TYPE_NODE,_extends(DocumentType,Node),Notation.prototype.nodeType=NOTATION_NODE,_extends(Notation,Node),Entity.prototype.nodeType=ENTITY_NODE,_extends(Entity,Node),EntityReference.prototype.nodeType=ENTITY_REFERENCE_NODE,_extends(EntityReference,Node),DocumentFragment.prototype.nodeName=\\\"#document-fragment\\\",DocumentFragment.prototype.nodeType=DOCUMENT_FRAGMENT_NODE,_extends(DocumentFragment,Node),ProcessingInstruction.prototype.nodeType=PROCESSING_INSTRUCTION_NODE,_extends(ProcessingInstruction,Node),XMLSerializer.prototype.serializeToString=function(node){var buf=[];return serializeToString(node,buf),buf.join(\\\"\\\")},Node.prototype.toString=function(){return XMLSerializer.prototype.serializeToString(this)};try{Object.defineProperty&&(Object.defineProperty(LiveNodeList.prototype,\\\"length\\\",{get:function(){return _updateLiveList(this),this.$$length}}),Object.defineProperty(Node.prototype,\\\"textContent\\\",{get:function(){return getTextContent(this)},set:function(data){switch(this.nodeType){case 1:case 11:for(;this.firstChild;)this.removeChild(this.firstChild);(data||data+\\\"\\\")&&this.appendChild(this.ownerDocument.createTextNode(data));break;default:this.data=data,this.value=value,this.nodeValue=data}}}),__set__=function(object,key,value){object[\\\"$$\\\"+key]=value})}catch(e){}return DOMImplementation}),ace.define(\\\"ace/mode/xml/dom-parser\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/mode/xml/sax\\\",\\\"ace/mode/xml/dom\\\"],function(acequire){\\\"use strict\\\";function DOMParser(options){this.options=options||{locator:{}}}function buildErrorHandler(errorImpl,domBuilder,locator){function build(key){var fn=errorImpl[key];if(!fn)if(isCallback)fn=2==errorImpl.length?function(msg){errorImpl(key,msg)}:errorImpl;else for(var i=arguments.length;--i&&!(fn=errorImpl[arguments[i]]););errorHandler[key]=fn&&function(msg){fn(msg+_locator(locator),msg,locator)}||function(){}}if(!errorImpl){if(domBuilder instanceof DOMHandler)return domBuilder;errorImpl=domBuilder}var errorHandler={},isCallback=errorImpl instanceof Function;return locator=locator||{},build(\\\"warning\\\",\\\"warn\\\"),build(\\\"error\\\",\\\"warn\\\",\\\"warning\\\"),build(\\\"fatalError\\\",\\\"warn\\\",\\\"warning\\\",\\\"error\\\"),errorHandler}function DOMHandler(){this.cdata=!1}function position(locator,node){node.lineNumber=locator.lineNumber,node.columnNumber=locator.columnNumber}function _locator(l){return l?\\\"\\\\n@\\\"+(l.systemId||\\\"\\\")+\\\"#[line:\\\"+l.lineNumber+\\\",col:\\\"+l.columnNumber+\\\"]\\\":void 0}function _toString(chars,start,length){return\\\"string\\\"==typeof chars?chars.substr(start,length):chars.length>=start+length||start?new java.lang.String(chars,start,length)+\\\"\\\":chars}function appendElement(hander,node){hander.currentElement?hander.currentElement.appendChild(node):hander.document.appendChild(node)}var XMLReader=acequire(\\\"./sax\\\"),DOMImplementation=acequire(\\\"./dom\\\");return DOMParser.prototype.parseFromString=function(source,mimeType){var options=this.options,sax=new XMLReader,domBuilder=options.domBuilder||new DOMHandler,errorHandler=options.errorHandler,locator=options.locator,defaultNSMap=options.xmlns||{},entityMap={lt:\\\"<\\\",gt:\\\">\\\",amp:\\\"&\\\",quot:'\\\"',apos:\\\"'\\\"};return locator&&domBuilder.setDocumentLocator(locator),sax.errorHandler=buildErrorHandler(errorHandler,domBuilder,locator),sax.domBuilder=options.domBuilder||domBuilder,/\\\\/x?html?$/.test(mimeType)&&(entityMap.nbsp=\\\" \\\",entityMap.copy=\\\"©\\\",defaultNSMap[\\\"\\\"]=\\\"http://www.w3.org/1999/xhtml\\\"),source?sax.parse(source,defaultNSMap,entityMap):sax.errorHandler.error(\\\"invalid document source\\\"),domBuilder.document},DOMHandler.prototype={startDocument:function(){this.document=(new DOMImplementation).createDocument(null,null,null),this.locator&&(this.document.documentURI=this.locator.systemId)},startElement:function(namespaceURI,localName,qName,attrs){var doc=this.document,el=doc.createElementNS(namespaceURI,qName||localName),len=attrs.length;appendElement(this,el),this.currentElement=el,this.locator&&position(this.locator,el);for(var i=0;len>i;i++){var namespaceURI=attrs.getURI(i),value=attrs.getValue(i),qName=attrs.getQName(i),attr=doc.createAttributeNS(namespaceURI,qName);attr.getOffset&&position(attr.getOffset(1),attr),attr.value=attr.nodeValue=value,el.setAttributeNode(attr)}},endElement:function(){var current=this.currentElement;current.tagName,this.currentElement=current.parentNode},startPrefixMapping:function(){},endPrefixMapping:function(){},processingInstruction:function(target,data){var ins=this.document.createProcessingInstruction(target,data);this.locator&&position(this.locator,ins),appendElement(this,ins)},ignorableWhitespace:function(){},characters:function(chars){if(chars=_toString.apply(this,arguments),this.currentElement&&chars){if(this.cdata){var charNode=this.document.createCDATASection(chars);this.currentElement.appendChild(charNode)}else{var charNode=this.document.createTextNode(chars);this.currentElement.appendChild(charNode)}this.locator&&position(this.locator,charNode)}},skippedEntity:function(){},endDocument:function(){this.document.normalize()},setDocumentLocator:function(locator){(this.locator=locator)&&(locator.lineNumber=0)},comment:function(chars){chars=_toString.apply(this,arguments);var comm=this.document.createComment(chars);this.locator&&position(this.locator,comm),appendElement(this,comm)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(name,publicId,systemId){var impl=this.document.implementation;if(impl&&impl.createDocumentType){var dt=impl.createDocumentType(name,publicId,systemId);this.locator&&position(this.locator,dt),appendElement(this,dt)}},warning:function(error){console.warn(error,_locator(this.locator))},error:function(error){console.error(error,_locator(this.locator))},fatalError:function(error){throw console.error(error,_locator(this.locator)),error}},\\\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\\\".replace(/\\\\w+/g,function(key){DOMHandler.prototype[key]=function(){return null}}),{DOMParser:DOMParser}}),ace.define(\\\"ace/mode/xml_worker\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/lib/lang\\\",\\\"ace/worker/mirror\\\",\\\"ace/mode/xml/dom-parser\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"../lib/oop\\\");acequire(\\\"../lib/lang\\\");var Mirror=acequire(\\\"../worker/mirror\\\").Mirror,DOMParser=acequire(\\\"./xml/dom-parser\\\").DOMParser,Worker=exports.Worker=function(sender){Mirror.call(this,sender),this.setTimeout(400),this.context=null};oop.inherits(Worker,Mirror),function(){this.setOptions=function(options){this.context=options.context},this.onUpdate=function(){var value=this.doc.getValue();if(value){var parser=new DOMParser,errors=[];parser.options.errorHandler={fatalError:function(fullMsg,errorMsg,locator){errors.push({row:locator.lineNumber,column:locator.columnNumber,text:errorMsg,type:\\\"error\\\"})},error:function(fullMsg,errorMsg,locator){errors.push({row:locator.lineNumber,column:locator.columnNumber,text:errorMsg,type:\\\"error\\\"})},warning:function(fullMsg,errorMsg,locator){errors.push({row:locator.lineNumber,column:locator.columnNumber,text:errorMsg,type:\\\"warning\\\"})}},parser.parseFromString(value),this.sender.emit(\\\"error\\\",errors)}}}.call(Worker.prototype)}),ace.define(\\\"ace/lib/es5-shim\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\\\"sentinel\\\",{}),\\\"sentinel\\\"in object\\n}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\\\"function\\\"!=typeof target)throw new TypeError(\\\"Function.prototype.bind called on incompatible \\\"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\\\"__defineGetter__\\\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\\\"XXX\\\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\\\"[object Array]\\\"==_toString(obj)});var boxedString=Object(\\\"a\\\"),splitString=\\\"a\\\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduce of empty array with no initial value\\\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\\\"reduce of empty array with no initial value\\\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\\\"Object.getOwnPropertyDescriptor called on a non-object: \\\";Object.getOwnPropertyDescriptor=function(object,property){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\\\"object\\\"!=typeof prototype)throw new TypeError(\\\"typeof prototype[\\\"+typeof prototype+\\\"] != 'object'\\\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\\\"undefined\\\"==typeof document||doesDefinePropertyWork(document.createElement(\\\"div\\\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\\\"Property description must be an object: \\\",ERR_NON_OBJECT_TARGET=\\\"Object.defineProperty called on non-object: \\\",ERR_ACCESSORS_NOT_SUPPORTED=\\\"getters & setters can not be defined on this javascript engine\\\";Object.defineProperty=function(object,property,descriptor){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\\\"object\\\"!=typeof descriptor&&\\\"function\\\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\\\"value\\\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\\\"get\\\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\\\"set\\\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\\\"function\\\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\\\"\\\";owns(object,name);)name+=\\\"?\\\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\\\"toString\\\",\\\"toLocaleString\\\",\\\"valueOf\\\",\\\"hasOwnProperty\\\",\\\"isPrototypeOf\\\",\\\"propertyIsEnumerable\\\",\\\"constructor\\\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(\\\"Object.keys called on a non-object\\\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\\\"\\t\\\\n\\u000b\\\\f\\\\r   ᠎              \\\\u2028\\\\u2029\\\";if(!String.prototype.trim||ws.trim()){ws=\\\"[\\\"+ws+\\\"]\\\";var trimBeginRegexp=RegExp(\\\"^\\\"+ws+ws+\\\"*\\\"),trimEndRegexp=RegExp(ws+ws+\\\"*$\\\");String.prototype.trim=function(){return(this+\\\"\\\").replace(trimBeginRegexp,\\\"\\\").replace(trimEndRegexp,\\\"\\\")}}var toObject=function(o){if(null==o)throw new TypeError(\\\"can't convert \\\"+o+\\\" to object\\\");return Object(o)}});\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/brace/worker/xml.js\n// module id = 538\n// module chunks = 0","export default function(x) {\n return function() {\n return x;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/src/constant.js\n// module id = 539\n// module chunks = 0","export default function(x) {\n return x;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/src/identity.js\n// module id = 543\n// module chunks = 0","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-collection/src/set.js\n// module id = 559\n// module chunks = 0","import define, {extend} from \"./define\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color\";\nimport {deg2rad, rad2deg} from \"./math\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-color/src/cubehelix.js\n// module id = 561\n// module chunks = 0","import define, {extend} from \"./define\";\nimport {Color, rgbConvert, Rgb} from \"./color\";\nimport {deg2rad, rad2deg} from \"./math\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nvar K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return hcl2lab(this).rgb();\n }\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-color/src/lab.js\n// module id = 562\n// module chunks = 0","import formatLocale from \"./locale\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-format/src/defaultLocale.js\n// module id = 563\n// module chunks = 0","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-format/src/formatGroup.js\n// module id = 564\n// module chunks = 0","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-format/src/formatNumerals.js\n// module id = 565\n// module chunks = 0","import formatDecimal from \"./formatDecimal\";\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-format/src/formatRounded.js\n// module id = 566\n// module chunks = 0","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (i0 > 0) { if (!+s[i]) break out; i0 = 0; } break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-format/src/formatTrim.js\n// module id = 567\n// module chunks = 0","import formatPrefixAuto from \"./formatPrefixAuto\";\nimport formatRounded from \"./formatRounded\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-format/src/formatTypes.js\n// module id = 568\n// module chunks = 0","export default function(x) {\n return x;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-format/src/identity.js\n// module id = 569\n// module chunks = 0","import exponent from \"./exponent\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-format/src/precisionFixed.js\n// module id = 570\n// module chunks = 0","import exponent from \"./exponent\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-format/src/precisionPrefix.js\n// module id = 571\n// module chunks = 0","import exponent from \"./exponent\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-format/src/precisionRound.js\n// module id = 572\n// module chunks = 0","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/cubehelix.js\n// module id = 573\n// module chunks = 0","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/hcl.js\n// module id = 575\n// module chunks = 0","import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/hsl.js\n// module id = 576\n// module chunks = 0","export default function(a, b) {\n return a = +a, b -= a, function(t) {\n return Math.round(a + b * t);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/round.js\n// module id = 582\n// module chunks = 0","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/transform/decompose.js\n// module id = 583\n// module chunks = 0","import number from \"../number\";\nimport {parseCss, parseSvg} from \"./parse\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/transform/index.js\n// module id = 584\n// module chunks = 0","import decompose, {identity} from \"./decompose\";\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\nexport function parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/transform/parse.js\n// module id = 585\n// module chunks = 0","var rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nexport default function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000;\n\n return i;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/src/zoom.js\n// module id = 586\n// module chunks = 0","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-path/src/path.js\n// module id = 587\n// module chunks = 0","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init\";\nimport ordinal from \"./ordinal\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = [+_[0], +_[1]], round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), range)\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/band.js\n// module id = 588\n// module chunks = 0","export default function(x) {\n return function() {\n return x;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/constant.js\n// module id = 589\n// module chunks = 0","import {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\nimport {linearish} from \"./linear\";\nimport {loggish} from \"./log\";\nimport {copy} from \"./sequential\";\nimport {symlogish} from \"./symlog\";\nimport {powish} from \"./pow\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (x < t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), t2 = transform(x2 = +_[2]), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1);\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/diverging.js\n// module id = 590\n// module chunks = 0","import {map} from \"./array\";\nimport {linearish} from \"./linear\";\nimport number from \"./number\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = map.call(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? map.call(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/identity.js\n// module id = 591\n// module chunks = 0","import {ascending, bisect, quantile as threshold} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/quantile.js\n// module id = 592\n// module chunks = 0","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {linearish} from \"./linear\";\nimport {initRange} from \"./init\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = slice.call(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/quantize.js\n// module id = 593\n// module chunks = 0","import {ascending, bisect} from \"d3-array\";\nimport {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (!isNaN(x = +x)) return interpolator((bisect(domain, x) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/sequentialQuantile.js\n// module id = 594\n// module chunks = 0","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/threshold.js\n// module id = 595\n// module chunks = 0","import {calendar} from \"./time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond} from \"d3-time\";\nimport {initRange} from \"./init\";\n\nexport default function() {\n return initRange.apply(calendar(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/src/utcTime.js\n// module id = 596\n// module chunks = 0","import noop from \"../noop\";\nimport {point} from \"./basis\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/curve/basisClosed.js\n// module id = 599\n// module chunks = 0","import {point} from \"./basis\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/curve/basisOpen.js\n// module id = 600\n// module chunks = 0","import {Basis} from \"./basis\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/curve/bundle.js\n// module id = 601\n// module chunks = 0","import {CardinalClosed} from \"./cardinalClosed\";\nimport noop from \"../noop\";\nimport {point} from \"./catmullRom\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/curve/catmullRomClosed.js\n// module id = 602\n// module chunks = 0","import {CardinalOpen} from \"./cardinalOpen\";\nimport {point} from \"./catmullRom\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/curve/catmullRomOpen.js\n// module id = 603\n// module chunks = 0","import noop from \"../noop\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/curve/linearClosed.js\n// module id = 604\n// module chunks = 0","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/curve/monotone.js\n// module id = 605\n// module chunks = 0","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/curve/natural.js\n// module id = 606\n// module chunks = 0","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/curve/step.js\n// module id = 607\n// module chunks = 0","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/descending.js\n// module id = 608\n// module chunks = 0","export default function(d) {\n return d;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/identity.js\n// module id = 609\n// module chunks = 0","import none from \"./none\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/offset/expand.js\n// module id = 612\n// module chunks = 0","import none from \"./none\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/offset/silhouette.js\n// module id = 613\n// module chunks = 0","import none from \"./none\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/offset/wiggle.js\n// module id = 614\n// module chunks = 0","import {slice} from \"./array\";\nimport constant from \"./constant\";\nimport offsetNone from \"./offset/none\";\nimport orderNone from \"./order/none\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/stack.js\n// module id = 619\n// module chunks = 0","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle\";\nimport cross from \"./symbol/cross\";\nimport diamond from \"./symbol/diamond\";\nimport star from \"./symbol/star\";\nimport square from \"./symbol/square\";\nimport triangle from \"./symbol/triangle\";\nimport wye from \"./symbol/wye\";\nimport constant from \"./constant\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function() {\n var type = constant(circle),\n size = constant(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-shape/src/symbol.js\n// module id = 620\n// module chunks = 0","import {isoSpecifier} from \"./isoFormat\";\nimport {utcParse} from \"./defaultLocale\";\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : utcParse(isoSpecifier);\n\nexport default parseIso;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time-format/src/isoParse.js\n// module id = 621\n// module chunks = 0","import interval from \"./interval\";\nimport {durationDay, durationMinute} from \"./duration\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time/src/day.js\n// module id = 622\n// module chunks = 0","import interval from \"./interval\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time/src/hour.js\n// module id = 623\n// module chunks = 0","import interval from \"./interval\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time/src/millisecond.js\n// module id = 624\n// module chunks = 0","import interval from \"./interval\";\nimport {durationMinute, durationSecond} from \"./duration\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time/src/minute.js\n// module id = 625\n// module chunks = 0","import interval from \"./interval\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time/src/month.js\n// module id = 626\n// module chunks = 0","import interval from \"./interval\";\nimport {durationSecond} from \"./duration\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time/src/second.js\n// module id = 627\n// module chunks = 0","import interval from \"./interval\";\nimport {durationDay} from \"./duration\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time/src/utcDay.js\n// module id = 628\n// module chunks = 0","import interval from \"./interval\";\nimport {durationHour} from \"./duration\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time/src/utcHour.js\n// module id = 629\n// module chunks = 0","import interval from \"./interval\";\nimport {durationMinute} from \"./duration\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time/src/utcMinute.js\n// module id = 630\n// module chunks = 0","import interval from \"./interval\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time/src/utcMonth.js\n// module id = 631\n// module chunks = 0","import interval from \"./interval\";\nimport {durationWeek} from \"./duration\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time/src/utcWeek.js\n// module id = 632\n// module chunks = 0","import interval from \"./interval\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time/src/utcYear.js\n// module id = 633\n// module chunks = 0","import interval from \"./interval\";\nimport {durationMinute, durationWeek} from \"./duration\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time/src/week.js\n// module id = 634\n// module chunks = 0","import interval from \"./interval\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time/src/year.js\n// module id = 635\n// module chunks = 0","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/deep-equal/index.js\n// module id = 636\n// module chunks = 0","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/deep-equal/lib/is_arguments.js\n// module id = 637\n// module chunks = 0","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/deep-equal/lib/keys.js\n// module id = 638\n// module chunks = 0","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dom-helpers/class/addClass.js\n// module id = 639\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dom-helpers/class/hasClass.js\n// module id = 640\n// module chunks = 0","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dom-helpers/class/removeClass.js\n// module id = 641\n// module chunks = 0","// 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\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/events/events.js\n// module id = 642\n// module chunks = 0","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/exenv/index.js\n// module id = 643\n// module chunks = 0","/**\n * lodash 3.9.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\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\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/**\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/** 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 * 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\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 equivalents which return 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\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\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 = getNative;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash._getnative/index.js\n// module id = 644\n// module chunks = 0","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\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(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash.debounce/index.js\n// module id = 645\n// module chunks = 0","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used for built-in 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\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * 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 // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, 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 Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\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(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isArguments;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash.isarguments/index.js\n// module id = 646\n// module chunks = 0","/**\n * lodash 3.0.4 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n funcTag = '[object Function]';\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\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\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/**\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/** 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/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\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 * 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\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\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\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 equivalents which return 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\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\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 = isArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash.isarray/index.js\n// module id = 647\n// module chunks = 0","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\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/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\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[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\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 == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\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 {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\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 {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\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 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\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 {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !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 result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\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 = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\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 length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\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(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\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/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\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 */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash.isequal/index.js\n// module id = 648\n// module chunks = 0","/**\n * lodash 3.1.2 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar getNative = require('lodash._getnative'),\n isArguments = require('lodash.isarguments'),\n isArray = require('lodash.isarray');\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\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 for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\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 * 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\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\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\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\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\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\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\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\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 = keys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash.keys/index.js\n// module id = 649\n// module chunks = 0","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\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(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash.throttle/index.js\n// module id = 650\n// module chunks = 0","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_DataView.js\n// module id = 651\n// module chunks = 0","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Hash.js\n// module id = 652\n// module chunks = 0","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Promise.js\n// module id = 653\n// module chunks = 0","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_WeakMap.js\n// module id = 654\n// module chunks = 0","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_apply.js\n// module id = 655\n// module chunks = 0","/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\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 all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = arrayEvery;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayEvery.js\n// module id = 656\n// module chunks = 0","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `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 object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseAssign.js\n// module id = 657\n// module chunks = 0","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `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 baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseAssignIn.js\n// module id = 658\n// module chunks = 0","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\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 genTag = '[object GeneratorFunction]',\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 symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\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[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : 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 copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseClone.js\n// module id = 659\n// module chunks = 0","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseCreate.js\n// module id = 660\n// module chunks = 0","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nmodule.exports = baseEvery;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseEvery.js\n// module id = 661\n// module chunks = 0","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseFilter.js\n// module id = 662\n// module chunks = 0","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly 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// ./~/lodash/_baseFor.js\n// module id = 663\n// module chunks = 0","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseHasIn.js\n// module id = 664\n// module chunks = 0","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\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 return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIndexOf.js\n// module id = 665\n// module chunks = 0","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseIntersection;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIntersection.js\n// module id = 666\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsArguments.js\n// module id = 667\n// module chunks = 0","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in 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 `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 {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsEqualDeep.js\n// module id = 668\n// module chunks = 0","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsMap.js\n// module id = 669\n// module chunks = 0","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(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 stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsMatch.js\n// module id = 670\n// module chunks = 0","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsNaN.js\n// module id = 671\n// module chunks = 0","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.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 funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsNative.js\n// module id = 672\n// module chunks = 0","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsSet.js\n// module id = 673\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./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 dataViewTag = '[object DataView]',\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[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsTypedArray.js\n// module id = 674\n// module chunks = 0","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseKeys.js\n// module id = 675\n// module chunks = 0","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseKeysIn.js\n// module id = 676\n// module chunks = 0","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseMatches.js\n// module id = 677\n// module chunks = 0","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseMatchesProperty.js\n// module id = 678\n// module chunks = 0","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseOrderBy.js\n// module id = 679\n// module chunks = 0","/**\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 accessor 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// ./~/lodash/_baseProperty.js\n// module id = 680\n// module chunks = 0","var baseGet = require('./_baseGet');\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 accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_basePropertyDeep.js\n// module id = 681\n// module chunks = 0","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseRange.js\n// module id = 682\n// module chunks = 0","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseSetToString.js\n// module id = 683\n// module chunks = 0","/**\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 if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\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// ./~/lodash/_baseSlice.js\n// module id = 684\n// module chunks = 0","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection 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 baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseSome.js\n// module id = 685\n// module chunks = 0","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseSortBy.js\n// module id = 686\n// module chunks = 0","/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nmodule.exports = baseSum;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseSum.js\n// module id = 687\n// module chunks = 0","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseTimes.js\n// module id = 688\n// module chunks = 0","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseToString.js\n// module id = 689\n// module chunks = 0","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseTrim.js\n// module id = 690\n// module chunks = 0","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\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 (!includes(seen, computed, comparator)) {\n if (seen !== result) {\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// ./~/lodash/_baseUniq.js\n// module id = 691\n// module chunks = 0","var castPath = require('./_castPath'),\n last = require('./last'),\n parent = require('./_parent'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseUnset.js\n// module id = 692\n// module chunks = 0","var isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nmodule.exports = castArrayLikeObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_castArrayLikeObject.js\n// module id = 693\n// module chunks = 0","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_castFunction.js\n// module id = 694\n// module chunks = 0","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cloneBuffer.js\n// module id = 695\n// module chunks = 0","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cloneDataView.js\n// module id = 696\n// module chunks = 0","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cloneRegExp.js\n// module id = 697\n// module chunks = 0","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cloneSymbol.js\n// module id = 698\n// module chunks = 0","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cloneTypedArray.js\n// module id = 699\n// module chunks = 0","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_compareAscending.js\n// module id = 700\n// module chunks = 0","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_compareMultiple.js\n// module id = 701\n// module chunks = 0","/**\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 copyArray(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 = copyArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_copyArray.js\n// module id = 702\n// module chunks = 0","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_copySymbols.js\n// module id = 703\n// module chunks = 0","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_copySymbolsIn.js\n// module id = 704\n// module chunks = 0","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_coreJsData.js\n// module id = 705\n// module chunks = 0","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\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 baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_createAssigner.js\n// module id = 706\n// module chunks = 0","var isArrayLike = require('./isArrayLike');\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 if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(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// ./~/lodash/_createBaseEach.js\n// module id = 707\n// module chunks = 0","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\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 index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++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// ./~/lodash/_createBaseFor.js\n// module id = 708\n// module chunks = 0","var baseIteratee = require('./_baseIteratee'),\n isArrayLike = require('./isArrayLike'),\n keys = require('./keys');\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_createFind.js\n// module id = 709\n// module chunks = 0","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_createRange.js\n// module id = 710\n// module chunks = 0","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_createSet.js\n// module id = 711\n// module chunks = 0","var isPlainObject = require('./isPlainObject');\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nmodule.exports = customOmitClone;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_customOmitClone.js\n// module id = 712\n// module chunks = 0","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\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 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_equalByTag.js\n// module id = 713\n// module chunks = 0","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in 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 {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !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 result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_equalObjects.js\n// module id = 714\n// module chunks = 0","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_flatRest.js\n// module id = 715\n// module chunks = 0","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property 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 = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getMatchData.js\n// module id = 716\n// module chunks = 0","var Symbol = require('./_Symbol');\n\n/** Used for built-in 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\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getRawTag.js\n// module id = 717\n// module chunks = 0","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getValue.js\n// module id = 718\n// module chunks = 0","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hasPath.js\n// module id = 719\n// module chunks = 0","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashClear.js\n// module id = 720\n// module chunks = 0","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashDelete.js\n// module id = 721\n// module chunks = 0","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashGet.js\n// module id = 722\n// module chunks = 0","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashHas.js\n// module id = 723\n// module chunks = 0","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashSet.js\n// module id = 724\n// module chunks = 0","/** Used for built-in 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 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// ./~/lodash/_initCloneArray.js\n// module id = 725\n// module chunks = 0","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\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/**\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`, `Map`, `Number`, `RegExp`, `Set`, 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 cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_initCloneByTag.js\n// module id = 726\n// module chunks = 0","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\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 return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_initCloneObject.js\n// module id = 727\n// module chunks = 0","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isFlattenable.js\n// module id = 728\n// module chunks = 0","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isKeyable.js\n// module id = 729\n// module chunks = 0","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isMasked.js\n// module id = 730\n// module chunks = 0","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheClear.js\n// module id = 731\n// module chunks = 0","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheDelete.js\n// module id = 732\n// module chunks = 0","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheGet.js\n// module id = 733\n// module chunks = 0","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheHas.js\n// module id = 734\n// module chunks = 0","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheSet.js\n// module id = 735\n// module chunks = 0","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheClear.js\n// module id = 736\n// module chunks = 0","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheDelete.js\n// module id = 737\n// module chunks = 0","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheGet.js\n// module id = 738\n// module chunks = 0","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheHas.js\n// module id = 739\n// module chunks = 0","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheSet.js\n// module id = 740\n// module chunks = 0","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapToArray.js\n// module id = 741\n// module chunks = 0","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_memoizeCapped.js\n// module id = 742\n// module chunks = 0","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_nativeKeys.js\n// module id = 743\n// module chunks = 0","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_nativeKeysIn.js\n// module id = 744\n// module chunks = 0","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_objectToString.js\n// module id = 745\n// module chunks = 0","var baseGet = require('./_baseGet'),\n baseSlice = require('./_baseSlice');\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_parent.js\n// module id = 746\n// module chunks = 0","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_setCacheAdd.js\n// module id = 747\n// module chunks = 0","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_setCacheHas.js\n// module id = 748\n// module chunks = 0","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_shortOut.js\n// module id = 749\n// module chunks = 0","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_stackClear.js\n// module id = 750\n// module chunks = 0","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_stackDelete.js\n// module id = 751\n// module chunks = 0","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_stackGet.js\n// module id = 752\n// module chunks = 0","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_stackHas.js\n// module id = 753\n// module chunks = 0","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_stackSet.js\n// module id = 754\n// module chunks = 0","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\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 strictIndexOf(array, value, fromIndex) {\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 = strictIndexOf;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_strictIndexOf.js\n// module id = 755\n// module chunks = 0","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_stringToPath.js\n// module id = 756\n// module chunks = 0","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_trimmedEndIndex.js\n// module id = 757\n// module chunks = 0","var copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n keysIn = require('./keysIn');\n\n/**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\nvar assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n});\n\nmodule.exports = assignIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/assignIn.js\n// module id = 758\n// module chunks = 0","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/constant.js\n// module id = 759\n// module chunks = 0","module.exports = require('./forEach');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/each.js\n// module id = 760\n// module chunks = 0","module.exports = require('./assignIn');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/extend.js\n// module id = 761\n// module chunks = 0","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/filter.js\n// module id = 762\n// module chunks = 0","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/find.js\n// module id = 763\n// module chunks = 0","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/findIndex.js\n// module id = 764\n// module chunks = 0","var baseFlatten = require('./_baseFlatten'),\n map = require('./map');\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nmodule.exports = flatMap;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/flatMap.js\n// module id = 765\n// module chunks = 0","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/flatten.js\n// module id = 766\n// module chunks = 0","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/hasIn.js\n// module id = 767\n// module chunks = 0","var arrayMap = require('./_arrayMap'),\n baseIntersection = require('./_baseIntersection'),\n baseRest = require('./_baseRest'),\n castArrayLikeObject = require('./_castArrayLikeObject');\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nmodule.exports = intersection;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/intersection.js\n// module id = 768\n// module chunks = 0","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isArrayLikeObject.js\n// module id = 769\n// module chunks = 0","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isMap.js\n// module id = 770\n// module chunks = 0","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isSet.js\n// module id = 771\n// module chunks = 0","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/mapValues.js\n// module id = 772\n// module chunks = 0","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/memoize.js\n// module id = 773\n// module chunks = 0","var baseExtremum = require('./_baseExtremum'),\n baseIteratee = require('./_baseIteratee'),\n baseLt = require('./_baseLt');\n\n/**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\nfunction minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt)\n : undefined;\n}\n\nmodule.exports = minBy;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/minBy.js\n// module id = 774\n// module chunks = 0","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/noop.js\n// module id = 775\n// module chunks = 0","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/now.js\n// module id = 776\n// module chunks = 0","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/property.js\n// module id = 777\n// module chunks = 0","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/some.js\n// module id = 778\n// module chunks = 0","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/stubFalse.js\n// module id = 779\n// module chunks = 0","var baseIteratee = require('./_baseIteratee'),\n baseSum = require('./_baseSum');\n\n/**\n * This method is like `_.sum` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be summed.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the sum.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.sumBy(objects, function(o) { return o.n; });\n * // => 20\n *\n * // The `_.property` iteratee shorthand.\n * _.sumBy(objects, 'n');\n * // => 20\n */\nfunction sumBy(array, iteratee) {\n return (array && array.length)\n ? baseSum(array, baseIteratee(iteratee, 2))\n : 0;\n}\n\nmodule.exports = sumBy;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/sumBy.js\n// module id = 780\n// module chunks = 0","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/throttle.js\n// module id = 781\n// module chunks = 0","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/toInteger.js\n// module id = 782\n// module chunks = 0","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/toString.js\n// module id = 783\n// module chunks = 0","var Mexp=require('./postfix_evaluator.js');\r\nMexp.prototype.formulaEval = function () {\r\n\t\"use strict\";\r\n\tvar stack=[],pop1,pop2,pop3;\r\n\tvar disp=[];\r\n\tvar temp='';\r\n\tvar arr=this.value;\r\n\tfor(var i=0;i\"+pop2.value+\"\"+arr[i].show+\"\"+pop1.value+\"\",type:10});\r\n\t\t\telse disp.push({value:(pop2.type!=1?\"(\":\"\")+pop2.value+(pop2.type!=1?\")\":\"\")+\"\"+pop1.value+\"\",type:1});\r\n\t\t}\r\n\t\telse if(arr[i].type===2||arr[i].type===9){\r\n\t\t\tpop1=disp.pop();\r\n\t\t\tpop2=disp.pop();\r\n\t\t\tdisp.push({value:(pop2.type!=1?\"(\":\"\")+pop2.value+(pop2.type!=1?\")\":\"\")+arr[i].show+(pop1.type!=1?\"(\":\"\")+pop1.value+(pop1.type!=1?\")\":\"\"),type:arr[i].type});\r\n\t\t}\r\n\t\telse if(arr[i].type===12){\r\n\t\t\tpop1=disp.pop();\r\n\t\t\tpop2=disp.pop();\r\n\t\t\tpop3=disp.pop();\r\n\t\t\tdisp.push({value:arr[i].show+\"(\"+pop3.value+\",\"+pop2.value+\",\"+pop1.value+\")\",type:12});\r\n\t\t}\r\n\t}\r\n\treturn disp[0].value;\r\n};\r\nmodule.exports=Mexp;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/math-expression-evaluator/src/formula_evaluator.js\n// module id = 784\n// module chunks = 0","var Mexp=require('./math_function.js');\r\n\tfunction inc(arr,val){\r\n\t\tfor(var i=0;i(newAr.length-2)?newAr.length-1:inpStr.length-i);x>0;x--){\r\n\t\t\t\tfor(y=0;yprep)stack.push(elem);\r\n\t\t\t\telse {\r\n\t\t\t\t\twhile(prep>=pre&&!flag||flag&&pre1) {\r\n\t\tthrow(new Mexp.exception(\"Uncaught Syntax error\"));\r\n\t}\r\n\treturn stack[0].value>1000000000000000?\"Infinity\":parseFloat(stack[0].value.toFixed(15));\r\n};\r\nMexp.eval=function(str,tokens,obj){\r\n\tif (typeof tokens===\"undefined\") {\r\n\t\treturn this.lex(str).toPostfix().postfixEval();\r\n\t}\r\n\telse if (typeof obj===\"undefined\") {\r\n\t\tif (typeof tokens.length!==\"undefined\") \r\n\t\t\treturn this.lex(str,tokens).toPostfix().postfixEval();\r\n\t\telse\r\n\t\t\treturn this.lex(str).toPostfix().postfixEval(tokens);\r\n\t}\r\n\telse\r\n\t\treturn this.lex(str,tokens).toPostfix().postfixEval(obj);\r\n};\r\nmodule.exports=Mexp;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/math-expression-evaluator/src/postfix_evaluator.js\n// module id = 788\n// module chunks = 0","if performance? and performance.now\n module.exports = -> performance.now()\nelse if process? and process.hrtime\n module.exports = -> (getNanoSeconds() - nodeLoadTime) / 1e6\n hrtime = process.hrtime\n getNanoSeconds = ->\n hr = hrtime()\n hr[0] * 1e9 + hr[1]\n moduleLoadTime = getNanoSeconds()\n upTime = process.uptime() * 1e9\n nodeLoadTime = moduleLoadTime - upTime\nelse if Date.now\n module.exports = -> Date.now() - loadTime\n loadTime = Date.now()\nelse\n module.exports = -> new Date().getTime() - loadTime\n loadTime = new Date().getTime()\n\n\n\n// WEBPACK FOOTER //\n// ./~/performance-now/src/performance-now.coffee","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/checkPropTypes.js\n// module id = 790\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithThrowingShims.js\n// module id = 791\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithTypeCheckers.js\n// module id = 792\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _brace = require('brace');\n\nvar _brace2 = _interopRequireDefault(_brace);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _lodash = require('lodash.isequal');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _ace$acequire = _brace2.default.acequire('ace/range');\n\nvar Range = _ace$acequire.Range;\n\n\nvar editorOptions = ['minLines', 'maxLines', 'readOnly', 'highlightActiveLine', 'tabSize', 'enableBasicAutocompletion', 'enableLiveAutocompletion', 'enableSnippets '];\n\nvar ReactAce = function (_Component) {\n _inherits(ReactAce, _Component);\n\n function ReactAce(props) {\n _classCallCheck(this, ReactAce);\n\n var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ReactAce).call(this, props));\n\n ['onChange', 'onFocus', 'onBlur', 'onCopy', 'onPaste', 'onScroll', 'handleOptions'].forEach(function (method) {\n _this[method] = _this[method].bind(_this);\n });\n return _this;\n }\n\n _createClass(ReactAce, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n var _props = this.props;\n var name = _props.name;\n var className = _props.className;\n var onBeforeLoad = _props.onBeforeLoad;\n var mode = _props.mode;\n var theme = _props.theme;\n var fontSize = _props.fontSize;\n var value = _props.value;\n var cursorStart = _props.cursorStart;\n var showGutter = _props.showGutter;\n var wrapEnabled = _props.wrapEnabled;\n var showPrintMargin = _props.showPrintMargin;\n var keyboardHandler = _props.keyboardHandler;\n var onLoad = _props.onLoad;\n var commands = _props.commands;\n var annotations = _props.annotations;\n var markers = _props.markers;\n\n\n this.editor = _brace2.default.edit(name);\n\n if (onBeforeLoad) {\n onBeforeLoad(_brace2.default);\n }\n\n var editorProps = Object.keys(this.props.editorProps);\n for (var i = 0; i < editorProps.length; i++) {\n this.editor[editorProps[i]] = this.props.editorProps[editorProps[i]];\n }\n\n this.editor.getSession().setMode('ace/mode/' + mode);\n this.editor.setTheme('ace/theme/' + theme);\n this.editor.setFontSize(fontSize);\n this.editor.setValue(value, cursorStart);\n this.editor.renderer.setShowGutter(showGutter);\n this.editor.getSession().setUseWrapMode(wrapEnabled);\n this.editor.setShowPrintMargin(showPrintMargin);\n this.editor.on('focus', this.onFocus);\n this.editor.on('blur', this.onBlur);\n this.editor.on('copy', this.onCopy);\n this.editor.on('paste', this.onPaste);\n this.editor.on('change', this.onChange);\n this.editor.session.on('changeScrollTop', this.onScroll);\n this.handleOptions(this.props);\n this.editor.getSession().setAnnotations(annotations || []);\n this.handleMarkers(markers || []);\n\n // get a list of possible options to avoid 'misspelled option errors'\n var availableOptions = this.editor.$options;\n for (var _i = 0; _i < editorOptions.length; _i++) {\n var option = editorOptions[_i];\n if (availableOptions.hasOwnProperty(option)) {\n this.editor.setOption(option, this.props[option]);\n }\n }\n\n if (Array.isArray(commands)) {\n commands.forEach(function (command) {\n _this2.editor.commands.addCommand(command);\n });\n }\n\n if (keyboardHandler) {\n this.editor.setKeyboardHandler('ace/keyboard/' + keyboardHandler);\n }\n\n if (className) {\n this.refs.editor.className += ' ' + className;\n }\n\n if (onLoad) {\n onLoad(this.editor);\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var _this3 = this;\n\n var oldProps = this.props;\n\n for (var i = 0; i < editorOptions.length; i++) {\n var option = editorOptions[i];\n if (nextProps[option] !== oldProps[option]) {\n this.editor.setOption(option, nextProps[option]);\n }\n }\n\n if (nextProps.className !== oldProps.className) {\n (function () {\n var appliedClasses = _this3.refs.editor.className;\n var appliedClassesArray = appliedClasses.trim().split(' ');\n var oldClassesArray = oldProps.className.trim().split(' ');\n oldClassesArray.forEach(function (oldClass) {\n var index = appliedClassesArray.indexOf(oldClass);\n appliedClassesArray.splice(index, 1);\n });\n _this3.refs.editor.className = ' ' + nextProps.className + ' ' + appliedClassesArray.join(' ');\n })();\n }\n\n if (nextProps.mode !== oldProps.mode) {\n this.editor.getSession().setMode('ace/mode/' + nextProps.mode);\n }\n if (nextProps.theme !== oldProps.theme) {\n this.editor.setTheme('ace/theme/' + nextProps.theme);\n }\n if (nextProps.fontSize !== oldProps.fontSize) {\n this.editor.setFontSize(nextProps.fontSize);\n }\n if (nextProps.wrapEnabled !== oldProps.wrapEnabled) {\n this.editor.getSession().setUseWrapMode(nextProps.wrapEnabled);\n }\n if (nextProps.showPrintMargin !== oldProps.showPrintMargin) {\n this.editor.setShowPrintMargin(nextProps.showPrintMargin);\n }\n if (nextProps.showGutter !== oldProps.showGutter) {\n this.editor.renderer.setShowGutter(nextProps.showGutter);\n }\n if (!(0, _lodash2.default)(nextProps.setOptions, oldProps.setOptions)) {\n this.handleOptions(nextProps);\n }\n if (!(0, _lodash2.default)(nextProps.annotations, oldProps.annotations)) {\n this.editor.getSession().setAnnotations(nextProps.annotations || []);\n }\n if (!(0, _lodash2.default)(nextProps.markers, oldProps.markers)) {\n this.handleMarkers(nextProps.markers || []);\n }\n if (this.editor && this.editor.getValue() !== nextProps.value) {\n // editor.setValue is a synchronous function call, change event is emitted before setValue return.\n this.silent = true;\n var pos = this.editor.session.selection.toJSON();\n this.editor.setValue(nextProps.value, nextProps.cursorStart);\n this.editor.session.selection.fromJSON(pos);\n this.silent = false;\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.editor.destroy();\n this.editor = null;\n }\n }, {\n key: 'onChange',\n value: function onChange() {\n if (this.props.onChange && !this.silent) {\n var value = this.editor.getValue();\n this.props.onChange(value);\n }\n }\n }, {\n key: 'onFocus',\n value: function onFocus() {\n if (this.props.onFocus) {\n this.props.onFocus();\n }\n }\n }, {\n key: 'onBlur',\n value: function onBlur() {\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n }\n }, {\n key: 'onCopy',\n value: function onCopy(text) {\n if (this.props.onCopy) {\n this.props.onCopy(text);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(text) {\n if (this.props.onPaste) {\n this.props.onPaste(text);\n }\n }\n }, {\n key: 'onScroll',\n value: function onScroll() {\n if (this.props.onScroll) {\n this.props.onScroll(this.editor);\n }\n }\n }, {\n key: 'handleOptions',\n value: function handleOptions(props) {\n var setOptions = Object.keys(props.setOptions);\n for (var y = 0; y < setOptions.length; y++) {\n this.editor.setOption(setOptions[y], props.setOptions[setOptions[y]]);\n }\n }\n }, {\n key: 'handleMarkers',\n value: function handleMarkers(markers) {\n var _this4 = this;\n\n // remove foreground markers\n var currentMarkers = this.editor.getSession().getMarkers(true);\n for (var i in currentMarkers) {\n if (currentMarkers.hasOwnProperty(i)) {\n this.editor.getSession().removeMarker(currentMarkers[i].id);\n }\n }\n // remove background markers\n currentMarkers = this.editor.getSession().getMarkers(false);\n for (var _i2 in currentMarkers) {\n if (currentMarkers.hasOwnProperty(_i2)) {\n this.editor.getSession().removeMarker(currentMarkers[_i2].id);\n }\n }\n // add new markers\n markers.forEach(function (_ref) {\n var startRow = _ref.startRow;\n var startCol = _ref.startCol;\n var endRow = _ref.endRow;\n var endCol = _ref.endCol;\n var className = _ref.className;\n var type = _ref.type;\n var _ref$inFront = _ref.inFront;\n var inFront = _ref$inFront === undefined ? false : _ref$inFront;\n\n var range = new Range(startRow, startCol, endRow, endCol);\n _this4.editor.getSession().addMarker(range, className, type, inFront);\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props2 = this.props;\n var name = _props2.name;\n var width = _props2.width;\n var height = _props2.height;\n\n var divStyle = { width: width, height: height };\n return _react2.default.createElement('div', { ref: 'editor',\n id: name,\n style: divStyle\n });\n }\n }]);\n\n return ReactAce;\n}(_react.Component);\n\nexports.default = ReactAce;\n\n\nReactAce.propTypes = {\n mode: _react.PropTypes.string,\n theme: _react.PropTypes.string,\n name: _react.PropTypes.string,\n className: _react.PropTypes.string,\n height: _react.PropTypes.string,\n width: _react.PropTypes.string,\n fontSize: _react.PropTypes.number,\n showGutter: _react.PropTypes.bool,\n onChange: _react.PropTypes.func,\n onCopy: _react.PropTypes.func,\n onPaste: _react.PropTypes.func,\n onFocus: _react.PropTypes.func,\n onBlur: _react.PropTypes.func,\n onScroll: _react.PropTypes.func,\n value: _react.PropTypes.string,\n onLoad: _react.PropTypes.func,\n onBeforeLoad: _react.PropTypes.func,\n minLines: _react.PropTypes.number,\n maxLines: _react.PropTypes.number,\n readOnly: _react.PropTypes.bool,\n highlightActiveLine: _react.PropTypes.bool,\n tabSize: _react.PropTypes.number,\n showPrintMargin: _react.PropTypes.bool,\n cursorStart: _react.PropTypes.number,\n editorProps: _react.PropTypes.object,\n setOptions: _react.PropTypes.object,\n annotations: _react.PropTypes.array,\n markers: _react.PropTypes.array,\n keyboardHandler: _react.PropTypes.string,\n wrapEnabled: _react.PropTypes.bool,\n enableBasicAutocompletion: _react.PropTypes.oneOfType([_react.PropTypes.bool, _react.PropTypes.array]),\n enableLiveAutocompletion: _react.PropTypes.oneOfType([_react.PropTypes.bool, _react.PropTypes.array]),\n commands: _react.PropTypes.array\n};\n\nReactAce.defaultProps = {\n name: 'brace-editor',\n mode: '',\n theme: '',\n height: '500px',\n width: '500px',\n value: '',\n fontSize: 12,\n showGutter: true,\n onChange: null,\n onPaste: null,\n onLoad: null,\n onScroll: null,\n minLines: null,\n maxLines: null,\n readOnly: false,\n highlightActiveLine: true,\n showPrintMargin: true,\n tabSize: 4,\n cursorStart: 1,\n editorProps: {},\n setOptions: {},\n wrapEnabled: false,\n enableBasicAutocompletion: false,\n enableLiveAutocompletion: false\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-ace/lib/ace.js\n// module id = 793\n// module chunks = 0","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"prop-types\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"prop-types\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Dropzone\"] = factory(require(\"react\"), require(\"prop-types\"));\n\telse\n\t\troot[\"Dropzone\"] = factory(root[\"react\"], root[\"prop-types\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition\n\n\n// WEBPACK FOOTER //\n// webpack:///webpack/universalModuleDefinition"," \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 94061f0f903741766228\n\n\n// WEBPACK FOOTER //\n// webpack:/webpack/bootstrap 94061f0f903741766228","/* eslint prefer-template: 0 */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport accepts from 'attr-accept';\nimport getDataTransferItems from './getDataTransferItems';\n\nconst supportMultiple = (typeof document !== 'undefined' && document && document.createElement) ?\n 'multiple' in document.createElement('input') :\n true;\n\nfunction fileAccepted(file, accept) {\n // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with\n // that MIME type will always be accepted\n return file.type === 'application/x-moz-file' || accepts(file, accept);\n}\n\nclass Dropzone extends React.Component {\n static onDocumentDragOver(e) {\n // allow the entire document to be a drag target\n e.preventDefault();\n }\n\n constructor(props, context) {\n super(props, context);\n this.onClick = this.onClick.bind(this);\n this.onDocumentDrop = this.onDocumentDrop.bind(this);\n this.onDragStart = this.onDragStart.bind(this);\n this.onDragEnter = this.onDragEnter.bind(this);\n this.onDragLeave = this.onDragLeave.bind(this);\n this.onDragOver = this.onDragOver.bind(this);\n this.onDrop = this.onDrop.bind(this);\n this.onFileDialogCancel = this.onFileDialogCancel.bind(this);\n this.setRef = this.setRef.bind(this);\n this.isFileDialogActive = false;\n this.state = {\n draggedFiles: [],\n acceptedFiles: [],\n rejectedFiles: []\n };\n }\n\n componentDidMount() {\n const { preventDropOnDocument } = this.props;\n this.dragTargets = [];\n\n if (preventDropOnDocument) {\n document.addEventListener('dragover', Dropzone.onDocumentDragOver, false);\n document.addEventListener('drop', this.onDocumentDrop, false);\n }\n // Tried implementing addEventListener, but didn't work out\n document.body.onfocus = this.onFileDialogCancel;\n }\n\n componentWillUnmount() {\n const { preventDropOnDocument } = this.props;\n if (preventDropOnDocument) {\n document.removeEventListener('dragover', Dropzone.onDocumentDragOver);\n document.removeEventListener('drop', this.onDocumentDrop);\n }\n // Can be replaced with removeEventListener, if addEventListener works\n document.body.onfocus = null;\n }\n\n onDocumentDrop(e) {\n if (this.node.contains(e.target)) {\n // if we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n e.preventDefault();\n this.dragTargets = [];\n }\n\n onDragStart(e) {\n if (this.props.onDragStart) {\n this.props.onDragStart.call(this, e);\n }\n }\n\n onDragEnter(e) {\n e.preventDefault();\n\n // Count the dropzone and any children that are entered.\n if (this.dragTargets.indexOf(e.target) === -1) {\n this.dragTargets.push(e.target);\n }\n\n this.setState({ draggedFiles: getDataTransferItems(e) });\n\n if (this.props.onDragEnter) {\n this.props.onDragEnter.call(this, e);\n }\n }\n\n onDragOver(e) { // eslint-disable-line class-methods-use-this\n e.preventDefault();\n e.stopPropagation();\n try {\n e.dataTransfer.dropEffect = 'copy'; // eslint-disable-line no-param-reassign\n } catch (err) {\n // continue regardless of error\n }\n\n if (this.props.onDragOver) {\n this.props.onDragOver.call(this, e);\n }\n return false;\n }\n\n onDragLeave(e) {\n e.preventDefault();\n\n // Only deactivate once the dropzone and all children have been left.\n this.dragTargets = this.dragTargets.filter(el => el !== e.target && this.node.contains(el));\n if (this.dragTargets.length > 0) {\n return;\n }\n\n // Clear dragging files state\n this.setState({ draggedFiles: [] });\n\n if (this.props.onDragLeave) {\n this.props.onDragLeave.call(this, e);\n }\n }\n\n onDrop(e) {\n const { onDrop, onDropAccepted, onDropRejected, multiple, disablePreview, accept } = this.props;\n const fileList = getDataTransferItems(e);\n const acceptedFiles = [];\n const rejectedFiles = [];\n\n // Stop default browser behavior\n e.preventDefault();\n\n // Reset the counter along with the drag on a drop.\n this.dragTargets = [];\n this.isFileDialogActive = false;\n\n fileList.forEach((file) => {\n if (!disablePreview) {\n try {\n file.preview = window.URL.createObjectURL(file); // eslint-disable-line no-param-reassign\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Failed to generate preview for file', file, err); // eslint-disable-line no-console\n }\n }\n }\n\n if (fileAccepted(file, accept) && this.fileMatchSize(file)) {\n acceptedFiles.push(file);\n } else {\n rejectedFiles.push(file);\n }\n });\n\n if (!multiple) {\n // if not in multi mode add any extra accepted files to rejected.\n // This will allow end users to easily ignore a multi file drop in \"single\" mode.\n rejectedFiles.push(...acceptedFiles.splice(1));\n }\n\n if (onDrop) {\n onDrop.call(this, acceptedFiles, rejectedFiles, e);\n }\n\n if (rejectedFiles.length > 0 && onDropRejected) {\n onDropRejected.call(this, rejectedFiles, e);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted.call(this, acceptedFiles, e);\n }\n\n // Clear files value\n this.draggedFiles = null;\n\n // Reset drag state\n this.setState({\n draggedFiles: [],\n acceptedFiles,\n rejectedFiles\n });\n }\n\n onClick(e) {\n const { onClick, disableClick } = this.props;\n if (!disableClick) {\n e.stopPropagation();\n this.open();\n if (onClick) {\n onClick.call(this, e);\n }\n }\n }\n\n onFileDialogCancel() {\n // timeout will not recognize context of this method\n const { onFileDialogCancel } = this.props;\n const { fileInputEl } = this;\n let { isFileDialogActive } = this;\n // execute the timeout only if the onFileDialogCancel is defined and FileDialog\n // is opened in the browser\n if (onFileDialogCancel && isFileDialogActive) {\n setTimeout(() => {\n // Returns an object as FileList\n const FileList = fileInputEl.files;\n if (!FileList.length) {\n isFileDialogActive = false;\n onFileDialogCancel();\n }\n }, 300);\n }\n }\n\n setRef(ref) {\n this.node = ref;\n }\n\n fileMatchSize(file) {\n return file.size <= this.props.maxSize && file.size >= this.props.minSize;\n }\n\n allFilesAccepted(files) {\n return files.every(file => fileAccepted(file, this.props.accept));\n }\n\n /**\n * Open system file upload dialog.\n *\n * @public\n */\n open() {\n this.isFileDialogActive = true;\n this.fileInputEl.value = null;\n this.fileInputEl.click();\n }\n\n renderChildren = (children, isDragActive, isDragReject) => {\n if (typeof children === 'function') {\n return children({ ...this.state, isDragActive, isDragReject });\n }\n return children;\n }\n\n render() {\n const {\n accept,\n activeClassName,\n inputProps,\n multiple,\n name,\n rejectClassName,\n children,\n ...rest\n } = this.props;\n\n let {\n activeStyle,\n className,\n rejectStyle,\n style,\n ...props // eslint-disable-line prefer-const\n } = rest;\n\n const { draggedFiles } = this.state;\n const filesCount = draggedFiles.length;\n const isMultipleAllowed = multiple || filesCount <= 1;\n const isDragActive = filesCount > 0 && this.allFilesAccepted(draggedFiles);\n const isDragReject = filesCount > 0 && (!isDragActive || !isMultipleAllowed);\n\n className = className || '';\n\n if (isDragActive && activeClassName) {\n className += ' ' + activeClassName;\n }\n if (isDragReject && rejectClassName) {\n className += ' ' + rejectClassName;\n }\n\n if (!className && !style && !activeStyle && !rejectStyle) {\n style = {\n width: 200,\n height: 200,\n borderWidth: 2,\n borderColor: '#666',\n borderStyle: 'dashed',\n borderRadius: 5\n };\n activeStyle = {\n borderStyle: 'solid',\n borderColor: '#6c6',\n backgroundColor: '#eee'\n };\n rejectStyle = {\n borderStyle: 'solid',\n borderColor: '#c66',\n backgroundColor: '#eee'\n };\n }\n\n let appliedStyle;\n if (activeStyle && isDragActive) {\n appliedStyle = {\n ...style,\n ...activeStyle\n };\n } else if (rejectStyle && isDragReject) {\n appliedStyle = {\n ...style,\n ...rejectStyle\n };\n } else {\n appliedStyle = {\n ...style\n };\n }\n\n const inputAttributes = {\n accept,\n type: 'file',\n style: { display: 'none' },\n multiple: supportMultiple && multiple,\n ref: el => this.fileInputEl = el, // eslint-disable-line\n onChange: this.onDrop\n };\n\n if (name && name.length) {\n inputAttributes.name = name;\n }\n\n // Remove custom properties before passing them to the wrapper div element\n const customProps = [\n 'acceptedFiles',\n 'preventDropOnDocument',\n 'disablePreview',\n 'disableClick',\n 'onDropAccepted',\n 'onDropRejected',\n 'onFileDialogCancel',\n 'maxSize',\n 'minSize'\n ];\n const divProps = { ...props };\n customProps.forEach(prop => delete divProps[prop]);\n\n return (\n \n {this.renderChildren(children, isDragActive, isDragReject)}\n \n
    \n );\n }\n}\n\nDropzone.propTypes = {\n /**\n * Allow specific types of files. See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable accross platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/okonet/react-dropzone/issues/276\n */\n accept: PropTypes.string,\n\n /**\n * Contents of the dropzone\n */\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.func\n ]),\n\n /**\n * Disallow clicking on the dropzone container to open file dialog\n */\n disableClick: PropTypes.bool,\n\n /**\n * Enable/disable preview generation\n */\n disablePreview: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * Pass additional attributes to the `` tag\n */\n inputProps: PropTypes.object,\n\n /**\n * Allow dropping multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * `name` attribute for the input tag\n */\n name: PropTypes.string,\n\n /**\n * Maximum file size\n */\n maxSize: PropTypes.number,\n\n /**\n * Minimum file size\n */\n minSize: PropTypes.number,\n\n /**\n * className\n */\n className: PropTypes.string,\n\n /**\n * className for accepted state\n */\n activeClassName: PropTypes.string,\n\n /**\n * className for rejected state\n */\n rejectClassName: PropTypes.string,\n\n /**\n * CSS styles to apply\n */\n style: PropTypes.object,\n\n /**\n * CSS styles to apply when drop will be accepted\n */\n activeStyle: PropTypes.object,\n\n /**\n * CSS styles to apply when drop will be rejected\n */\n rejectStyle: PropTypes.object,\n\n /**\n * onClick callback\n * @param {Event} event\n */\n onClick: PropTypes.func,\n\n /**\n * onDrop callback\n */\n onDrop: PropTypes.func,\n\n /**\n * onDropAccepted callback\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * onDropRejected callback\n */\n onDropRejected: PropTypes.func,\n\n /**\n * onDragStart callback\n */\n onDragStart: PropTypes.func,\n\n /**\n * onDragEnter callback\n */\n onDragEnter: PropTypes.func,\n\n /**\n * onDragOver callback\n */\n onDragOver: PropTypes.func,\n\n /**\n * onDragLeave callback\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Provide a callback on clicking the cancel button of the file dialog\n */\n onFileDialogCancel: PropTypes.func\n};\n\nDropzone.defaultProps = {\n preventDropOnDocument: true,\n disablePreview: false,\n disableClick: false,\n multiple: true,\n maxSize: Infinity,\n minSize: 0\n};\n\nexport default Dropzone;\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js\n\n\n// WEBPACK FOOTER //\n// webpack:///src/index.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\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 = runTimeout(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 runClearTimeout(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 runTimeout(drainQueue);\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// ./~/process/browser.js\n// module id = 1\n// module chunks = 0\n\n\n// WEBPACK FOOTER //\n// webpack:///~/process/browser.js","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"react\"\n// module id = 2\n// module chunks = 0\n\n\n// WEBPACK FOOTER //\n// webpack:/external \"react\"","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"prop-types\"\n// module id = 3\n// module chunks = 0\n\n\n// WEBPACK FOOTER //\n// webpack:/external \"prop-types\"","module.exports=function(t){function n(e){if(r[e])return r[e].exports;var o=r[e]={exports:{},id:e,loaded:!1};return t[e].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}var r={};return n.m=t,n.c=r,n.p=\"\",n(0)}([function(t,n,r){\"use strict\";n.__esModule=!0,r(8),r(9),n[\"default\"]=function(t,n){if(t&&n){var r=function(){var r=Array.isArray(n)?n:n.split(\",\"),e=t.name||\"\",o=t.type||\"\",i=o.replace(/\\/.*$/,\"\");return{v:r.some(function(t){var n=t.trim();return\".\"===n.charAt(0)?e.toLowerCase().endsWith(n.toLowerCase()):/\\/\\*$/.test(n)?i===n.replace(/\\/.*$/,\"\"):o===n})}}();if(\"object\"==typeof r)return r.v}return!0},t.exports=n[\"default\"]},function(t,n){var r=t.exports={version:\"1.2.2\"};\"number\"==typeof __e&&(__e=r)},function(t,n){var r=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=r)},function(t,n,r){var e=r(2),o=r(1),i=r(4),u=r(19),c=\"prototype\",f=function(t,n){return function(){return t.apply(n,arguments)}},s=function(t,n,r){var a,p,l,y,d=t&s.G,h=t&s.P,v=d?e:t&s.S?e[n]||(e[n]={}):(e[n]||{})[c],x=d?o:o[n]||(o[n]={});d&&(r=n);for(a in r)p=!(t&s.F)&&v&&a in v,l=(p?v:r)[a],y=t&s.B&&p?f(l,e):h&&\"function\"==typeof l?f(Function.call,l):l,v&&!p&&u(v,a,l),x[a]!=l&&i(x,a,y),h&&((x[c]||(x[c]={}))[a]=l)};e.core=o,s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,t.exports=s},function(t,n,r){var e=r(5),o=r(18);t.exports=r(22)?function(t,n,r){return e.setDesc(t,n,o(1,r))}:function(t,n,r){return t[n]=r,t}},function(t,n){var r=Object;t.exports={create:r.create,getProto:r.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:r.getOwnPropertyDescriptor,setDesc:r.defineProperty,setDescs:r.defineProperties,getKeys:r.keys,getNames:r.getOwnPropertyNames,getSymbols:r.getOwnPropertySymbols,each:[].forEach}},function(t,n){var r=0,e=Math.random();t.exports=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++r+e).toString(36))}},function(t,n,r){var e=r(20)(\"wks\"),o=r(2).Symbol;t.exports=function(t){return e[t]||(e[t]=o&&o[t]||(o||r(6))(\"Symbol.\"+t))}},function(t,n,r){r(26),t.exports=r(1).Array.some},function(t,n,r){r(25),t.exports=r(1).String.endsWith},function(t,n){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(t+\" is not a function!\");return t}},function(t,n){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},function(t,n,r){var e=r(10);t.exports=function(t,n,r){if(e(t),void 0===n)return t;switch(r){case 1:return function(r){return t.call(n,r)};case 2:return function(r,e){return t.call(n,r,e)};case 3:return function(r,e,o){return t.call(n,r,e,o)}}return function(){return t.apply(n,arguments)}}},function(t,n){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,n,r){t.exports=function(t){var n=/./;try{\"/./\"[t](n)}catch(e){try{return n[r(7)(\"match\")]=!1,!\"/./\"[t](n)}catch(o){}}return!0}},function(t,n){t.exports=function(t){try{return!!t()}catch(n){return!0}}},function(t,n){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,n,r){var e=r(16),o=r(11),i=r(7)(\"match\");t.exports=function(t){var n;return e(t)&&(void 0!==(n=t[i])?!!n:\"RegExp\"==o(t))}},function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},function(t,n,r){var e=r(2),o=r(4),i=r(6)(\"src\"),u=\"toString\",c=Function[u],f=(\"\"+c).split(u);r(1).inspectSource=function(t){return c.call(t)},(t.exports=function(t,n,r,u){\"function\"==typeof r&&(o(r,i,t[n]?\"\"+t[n]:f.join(String(n))),\"name\"in r||(r.name=n)),t===e?t[n]=r:(u||delete t[n],o(t,n,r))})(Function.prototype,u,function(){return\"function\"==typeof this&&this[i]||c.call(this)})},function(t,n,r){var e=r(2),o=\"__core-js_shared__\",i=e[o]||(e[o]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,n,r){var e=r(17),o=r(13);t.exports=function(t,n,r){if(e(n))throw TypeError(\"String#\"+r+\" doesn't accept regex!\");return String(o(t))}},function(t,n,r){t.exports=!r(15)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(t,n){var r=Math.ceil,e=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?e:r)(t)}},function(t,n,r){var e=r(23),o=Math.min;t.exports=function(t){return t>0?o(e(t),9007199254740991):0}},function(t,n,r){\"use strict\";var e=r(3),o=r(24),i=r(21),u=\"endsWith\",c=\"\"[u];e(e.P+e.F*r(14)(u),\"String\",{endsWith:function(t){var n=i(this,t,u),r=arguments,e=r.length>1?r[1]:void 0,f=o(n.length),s=void 0===e?f:Math.min(o(e),f),a=String(t);return c?c.call(n,a,s):n.slice(s-a.length,s)===a}})},function(t,n,r){var e=r(5),o=r(3),i=r(1).Array||Array,u={},c=function(t,n){e.each.call(t.split(\",\"),function(t){void 0==n&&t in i?u[t]=i[t]:t in[]&&(u[t]=r(12)(Function.call,[][t],n))})};c(\"pop,reverse,shift,keys,values,entries\",1),c(\"indexOf,every,some,forEach,map,filter,find,findIndex,includes\",3),c(\"join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill\"),o(o.S,\"Array\",u)}]);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/attr-accept/dist/index.js\n// module id = 4\n// module chunks = 0\n\n\n// WEBPACK FOOTER //\n// webpack:///~/attr-accept/dist/index.js","export default function getDataTransferFiles(event) {\n let dataTransferItemsList = [];\n if (event.dataTransfer) {\n const dt = event.dataTransfer;\n if (dt.files && dt.files.length) {\n dataTransferItemsList = dt.files;\n } else if (dt.items && dt.items.length) {\n // During the drag even the dataTransfer.files is null\n // but Chrome implements some drag store, which is accesible via dataTransfer.items\n dataTransferItemsList = dt.items;\n }\n } else if (event.target && event.target.files) {\n dataTransferItemsList = event.target.files;\n }\n // Convert from DataTransferItemsList to the native Array\n return Array.prototype.slice.call(dataTransferItemsList);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/getDataTransferItems.js\n\n\n// WEBPACK FOOTER //\n// webpack:///src/getDataTransferItems.js","/** @license React v16.8.4\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\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 argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-is/cjs/react-is.development.js\n// module id = 795\n// module chunks = 0","/** @license React v16.8.4\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-is/cjs/react-is.production.min.js\n// module id = 796\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _resizeObserverPolyfill = require('resize-observer-polyfill');\n\nvar _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill);\n\nvar _lodash = require('lodash.debounce');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _lodash3 = require('lodash.throttle');\n\nvar _lodash4 = _interopRequireDefault(_lodash3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar listMode = { debounce: _lodash2.default, throttle: _lodash4.default };\n\nvar styles = {\n position: 'absolute',\n width: 0,\n height: 0,\n visibility: 'hidden',\n display: 'none'\n};\n\nvar ResizeDetector = function (_PureComponent) {\n _inherits(ResizeDetector, _PureComponent);\n\n function ResizeDetector(props) {\n _classCallCheck(this, ResizeDetector);\n\n var _this = _possibleConstructorReturn(this, (ResizeDetector.__proto__ || Object.getPrototypeOf(ResizeDetector)).call(this, props));\n\n _this.createResizeObserver = function (entries) {\n var _this$props = _this.props,\n handleWidth = _this$props.handleWidth,\n handleHeight = _this$props.handleHeight,\n onResize = _this$props.onResize;\n\n entries.forEach(function (entry) {\n var _entry$contentRect = entry.contentRect,\n width = _entry$contentRect.width,\n height = _entry$contentRect.height;\n\n var notifyWidth = handleWidth && _this.width !== width;\n var notifyHeight = handleHeight && _this.height !== height;\n if (!_this.skipOnMount && (notifyWidth || notifyHeight)) {\n onResize(width, height);\n }\n _this.width = width;\n _this.height = height;\n _this.skipOnMount = false;\n });\n };\n\n var skipOnMount = props.skipOnMount,\n refreshMode = props.refreshMode,\n refreshRate = props.refreshRate;\n\n\n _this.width = undefined;\n _this.height = undefined;\n _this.skipOnMount = skipOnMount;\n\n var resizeObserver = listMode[refreshMode] && listMode[refreshMode](_this.createResizeObserver, refreshRate) || _this.createResizeObserver;\n\n _this.ro = new _resizeObserverPolyfill2.default(resizeObserver);\n return _this;\n }\n\n _createClass(ResizeDetector, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var resizableElementId = this.props.resizableElementId;\n\n var resizableElement = resizableElementId ? document.getElementById(resizableElementId) : this.el.parentElement;\n this.ro.observe(resizableElement);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n var resizableElementId = this.props.resizableElementId;\n\n var resizableElement = resizableElementId ? document.getElementById(resizableElementId) : this.el.parentElement;\n this.ro.unobserve(resizableElement);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n return _react2.default.createElement('div', {\n style: styles,\n ref: function ref(el) {\n _this2.el = el;\n }\n });\n }\n }]);\n\n return ResizeDetector;\n}(_react.PureComponent);\n\nexports.default = ResizeDetector;\n\n\nResizeDetector.propTypes = {\n handleWidth: _propTypes2.default.bool,\n handleHeight: _propTypes2.default.bool,\n skipOnMount: _propTypes2.default.bool,\n refreshRate: _propTypes2.default.number,\n refreshMode: _propTypes2.default.string,\n resizableElementId: _propTypes2.default.string,\n onResize: _propTypes2.default.func\n};\n\nResizeDetector.defaultProps = {\n handleWidth: false,\n handleHeight: false,\n skipOnMount: false,\n refreshRate: 1000,\n refreshMode: undefined,\n resizableElementId: '',\n onResize: function onResize(e) {\n return e;\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-resize-detector/lib/components/ResizeDetector.js\n// module id = 797\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ResizeDetector = require('./components/ResizeDetector');\n\nvar _ResizeDetector2 = _interopRequireDefault(_ResizeDetector);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _ResizeDetector2.default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-resize-detector/lib/index.js\n// module id = 798\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-resize-detector/~/prop-types/checkPropTypes.js\n// module id = 799\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-resize-detector/~/prop-types/factoryWithThrowingShims.js\n// module id = 800\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-resize-detector/~/prop-types/factoryWithTypeCheckers.js\n// module id = 801\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-resize-detector/~/prop-types/index.js\n// module id = 802\n// module chunks = 0","import React, { Children } from 'react';\nimport { TransitionGroup } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport AnimateGroupChild from './AnimateGroupChild';\n\nfunction AnimateGroup(props) {\n var component = props.component,\n children = props.children,\n appear = props.appear,\n enter = props.enter,\n leave = props.leave;\n return React.createElement(TransitionGroup, {\n component: component\n }, Children.map(children, function (child, index) {\n return React.createElement(AnimateGroupChild, {\n appearOptions: appear,\n enterOptions: enter,\n leaveOptions: leave,\n key: \"child-\".concat(index)\n }, child);\n }));\n}\n\nAnimateGroup.propTypes = {\n appear: PropTypes.object,\n enter: PropTypes.object,\n leave: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.element]),\n component: PropTypes.any\n};\nAnimateGroup.defaultProps = {\n component: 'span'\n};\nexport default AnimateGroup;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-smooth/es6/AnimateGroup.js\n// module id = 803\n// module chunks = 0","import _isNumber from \"lodash/isNumber\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport React, { Component, Children } from 'react';\nimport { Transition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport Animate from './Animate';\n\nvar parseDurationOfSingleTransition = function parseDurationOfSingleTransition() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var steps = options.steps,\n duration = options.duration;\n\n if (steps && steps.length) {\n return steps.reduce(function (result, entry) {\n return result + (_isNumber(entry.duration) && entry.duration > 0 ? entry.duration : 0);\n }, 0);\n }\n\n if (_isNumber(duration)) {\n return duration;\n }\n\n return 0;\n};\n\nvar AnimateGroupChild =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(AnimateGroupChild, _Component);\n\n function AnimateGroupChild() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, AnimateGroupChild);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(AnimateGroupChild)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isActive: false\n };\n\n _this.handleEnter = function (node, isAppearing) {\n var _this$props = _this.props,\n appearOptions = _this$props.appearOptions,\n enterOptions = _this$props.enterOptions;\n\n _this.handleStyleActive(isAppearing ? appearOptions : enterOptions);\n };\n\n _this.handleExit = function () {\n _this.handleStyleActive(_this.props.leaveOptions);\n };\n\n return _this;\n }\n\n _createClass(AnimateGroupChild, [{\n key: \"handleStyleActive\",\n value: function handleStyleActive(style) {\n if (style) {\n var onAnimationEnd = style.onAnimationEnd ? function () {\n style.onAnimationEnd();\n } : null;\n this.setState(_objectSpread({}, style, {\n onAnimationEnd: onAnimationEnd,\n isActive: true\n }));\n }\n }\n }, {\n key: \"parseTimeout\",\n value: function parseTimeout() {\n var _this$props2 = this.props,\n appearOptions = _this$props2.appearOptions,\n enterOptions = _this$props2.enterOptions,\n leaveOptions = _this$props2.leaveOptions;\n return parseDurationOfSingleTransition(appearOptions) + parseDurationOfSingleTransition(enterOptions) + parseDurationOfSingleTransition(leaveOptions);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n children = _this$props3.children,\n appearOptions = _this$props3.appearOptions,\n enterOptions = _this$props3.enterOptions,\n leaveOptions = _this$props3.leaveOptions,\n props = _objectWithoutProperties(_this$props3, [\"children\", \"appearOptions\", \"enterOptions\", \"leaveOptions\"]);\n\n return React.createElement(Transition, _extends({}, props, {\n onEnter: this.handleEnter,\n onExit: this.handleExit,\n timeout: this.parseTimeout()\n }), function () {\n return React.createElement(Animate, _this2.state, Children.only(children));\n });\n }\n }]);\n\n return AnimateGroupChild;\n}(Component);\n\nAnimateGroupChild.propTypes = {\n appearOptions: PropTypes.object,\n enterOptions: PropTypes.object,\n leaveOptions: PropTypes.object,\n children: PropTypes.element\n};\nexport default AnimateGroupChild;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-smooth/es6/AnimateGroupChild.js\n// module id = 804\n// module chunks = 0","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport setRafTimeout from './setRafTimeout';\nexport default function createAnimateManager() {\n var currStyle = {};\n\n var handleChange = function handleChange() {\n return null;\n };\n\n var shouldStop = false;\n\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n\n var styles = _style;\n\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n\n if (typeof curr === 'number') {\n setRafTimeout(setStyle.bind(null, restStyles), curr);\n return;\n }\n\n setStyle(curr);\n setRafTimeout(setStyle.bind(null, restStyles));\n return;\n }\n\n if (_typeof(_style) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n\n if (typeof _style === 'function') {\n _style();\n }\n };\n\n return {\n stop: function stop() {\n shouldStop = true;\n },\n start: function start(style) {\n shouldStop = false;\n setStyle(style);\n },\n subscribe: function subscribe(_handleChange) {\n handleChange = _handleChange;\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-smooth/es6/AnimateManager.js\n// module id = 805\n// module chunks = 0","import _isPlainObject from \"lodash/isPlainObject\";\nimport _isEqual from \"lodash/isEqual\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (_typeof(objA) !== 'object' || objA === null || _typeof(objB) !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = hasOwnProperty.bind(objB);\n\n for (var i = 0; i < keysA.length; i++) {\n var keyA = keysA[i];\n\n if (objA[keyA] === objB[keyA]) {\n continue;\n } // special diff with Array or Object\n\n\n if (_isArray(objA[keyA])) {\n if (!_isArray(objB[keyA]) || objA[keyA].length !== objB[keyA].length) {\n return false;\n } else if (!_isEqual(objA[keyA], objB[keyA])) {\n return false;\n }\n } else if (_isPlainObject(objA[keyA])) {\n if (!_isPlainObject(objB[keyA]) || !_isEqual(objA[keyA], objB[keyA])) {\n return false;\n }\n } else if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shallowCompare(instance, nextProps, nextState) {\n return !shallowEqual(instance.props, nextProps) || !shallowEqual(instance.state, nextState);\n}\n\nfunction shouldComponentUpdate(nextProps, nextState) {\n return shallowCompare(this, nextProps, nextState);\n}\n/* eslint-disable no-param-reassign */\n\n\nfunction pureRenderDecorator(component) {\n component.prototype.shouldComponentUpdate = shouldComponentUpdate;\n}\n\nexport { shallowEqual };\nexport default pureRenderDecorator;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-smooth/es6/PureRender.js\n// module id = 806\n// module chunks = 0","import _filter from \"lodash/filter\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport raf, { cancel as caf } from 'raf';\nimport { getIntersectionKeys, mapObject } from './util';\n\nvar alpha = function alpha(begin, end, k) {\n return begin + (end - begin) * k;\n};\n\nvar needContinue = function needContinue(_ref) {\n var from = _ref.from,\n to = _ref.to;\n return from !== to;\n};\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\n\n\nvar calStepperVals = function calStepperVals(easing, preVals, steps) {\n var nextStepVals = mapObject(function (key, val) {\n if (needContinue(val)) {\n var _easing = easing(val.from, val.to, val.velocity),\n _easing2 = _slicedToArray(_easing, 2),\n newX = _easing2[0],\n newV = _easing2[1];\n\n return _objectSpread({}, val, {\n from: newX,\n velocity: newV\n });\n }\n\n return val;\n }, preVals);\n\n if (steps < 1) {\n return mapObject(function (key, val) {\n if (needContinue(val)) {\n return _objectSpread({}, val, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n\n return val;\n }, preVals);\n }\n\n return calStepperVals(easing, nextStepVals, steps - 1);\n}; // configure update function\n\n\nexport default (function (from, to, easing, duration, render) {\n var interKeys = getIntersectionKeys(from, to);\n var timingStyle = interKeys.reduce(function (res, key) {\n return _objectSpread({}, res, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _objectSpread({}, res, _defineProperty({}, key, {\n from: from[key],\n velocity: 0,\n to: to[key]\n }));\n }, {});\n var cafId = -1;\n var preTime;\n var beginTime;\n\n var update = function update() {\n return null;\n };\n\n var getCurrStyle = function getCurrStyle() {\n return mapObject(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n\n var shouldStopAnimation = function shouldStopAnimation() {\n return !_filter(stepperStyle, needContinue).length;\n }; // stepper timing function like spring\n\n\n var stepperUpdate = function stepperUpdate(now) {\n if (!preTime) {\n preTime = now;\n }\n\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps); // get union set and add compatible prefix\n\n render(_objectSpread({}, from, to, getCurrStyle(stepperStyle)));\n preTime = now;\n\n if (!shouldStopAnimation()) {\n cafId = raf(update);\n }\n }; // t => val timing function like cubic-bezier\n\n\n var timingUpdate = function timingUpdate(now) {\n if (!beginTime) {\n beginTime = now;\n }\n\n var t = (now - beginTime) / duration;\n var currStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(t)]));\n }, timingStyle); // get union set and add compatible prefix\n\n render(_objectSpread({}, from, to, currStyle));\n\n if (t < 1) {\n cafId = raf(update);\n } else {\n var finalStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(1)]));\n }, timingStyle);\n render(_objectSpread({}, from, to, finalStyle));\n }\n };\n\n update = easing.isStepper ? stepperUpdate : timingUpdate; // return start animation method\n\n return function () {\n raf(update); // return stop animation method\n\n return function () {\n caf(cafId);\n };\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-smooth/es6/configUpdate.js\n// module id = 807\n// module chunks = 0","import raf from 'raf';\nexport default function setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var currTime = -1;\n\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n raf(shouldUpdate);\n }\n };\n\n raf(shouldUpdate);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-smooth/es6/setRafTimeout.js\n// module id = 808\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-smooth/~/prop-types/checkPropTypes.js\n// module id = 809\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-smooth/~/prop-types/factoryWithThrowingShims.js\n// module id = 810\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-smooth/~/prop-types/factoryWithTypeCheckers.js\n// module id = 811\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _addClass = _interopRequireDefault(require(\"dom-helpers/class/addClass\"));\n\nvar _removeClass = _interopRequireDefault(require(\"dom-helpers/class/removeClass\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n *
    \n * {\"I'll receive my-node-* classes\"}\n *
    \n *
    \n * \n *
    \n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-transition-group/CSSTransition.js\n// module id = 812\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
    I appear first
    \n *
    I replace the above
    \n *
    \n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-transition-group/ReplaceTransition.js\n// module id = 813\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-transition-group/~/prop-types/checkPropTypes.js\n// module id = 814\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-transition-group/~/prop-types/factoryWithThrowingShims.js\n// module id = 815\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-transition-group/~/prop-types/factoryWithTypeCheckers.js\n// module id = 816\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-transition-group/utils/ChildMapping.js\n// module id = 817\n// module chunks = 0","'use strict';\n\nvar _get = require('babel-runtime/helpers/get')['default'];\n\nvar _inherits = require('babel-runtime/helpers/inherits')['default'];\n\nvar _createClass = require('babel-runtime/helpers/create-class')['default'];\n\nvar _classCallCheck = require('babel-runtime/helpers/class-call-check')['default'];\n\nvar _Object$keys = require('babel-runtime/core-js/object/keys')['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\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _shallowequal = require('shallowequal');\n\nvar _shallowequal2 = _interopRequireDefault(_shallowequal);\n\nvar _deepEqual = require('deep-equal');\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar NodeHeader = (function (_React$Component) {\n _inherits(NodeHeader, _React$Component);\n\n function NodeHeader(props) {\n _classCallCheck(this, NodeHeader);\n\n _get(Object.getPrototypeOf(NodeHeader.prototype), 'constructor', this).call(this, props);\n }\n\n _createClass(NodeHeader, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var props = this.props;\n var nextPropKeys = _Object$keys(nextProps);\n for (var i = 0; i < nextPropKeys.length; i++) {\n var key = nextPropKeys[i];\n if (key === 'animations') {\n continue;\n }\n var isEqual = (0, _shallowequal2['default'])(props[key], nextProps[key]);\n if (!isEqual) {\n return true;\n }\n }\n return !(0, _deepEqual2['default'])(props.animations, nextProps.animations, { strict: true });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props;\n var style = _props.style;\n var decorators = _props.decorators;\n\n var terminal = !this.props.node.children;\n var active = this.props.node.active;\n var container = [style.link, active ? style.activeLink : null];\n var headerStyles = _Object$assign({ container: container }, this.props.style);\n return _react2['default'].createElement(decorators.Container, {\n style: headerStyles,\n decorators: decorators,\n terminal: terminal,\n onClick: this.props.onClick,\n animations: this.props.animations,\n node: this.props.node\n });\n }\n }]);\n\n return NodeHeader;\n})(_react2['default'].Component);\n\nNodeHeader.propTypes = {\n style: _react2['default'].PropTypes.object.isRequired,\n decorators: _react2['default'].PropTypes.object.isRequired,\n animations: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.object, _react2['default'].PropTypes.bool]).isRequired,\n node: _react2['default'].PropTypes.object.isRequired,\n onClick: _react2['default'].PropTypes.func\n};\n\nexports['default'] = NodeHeader;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/lib/components/header.js\n// module id = 818\n// module chunks = 0","'use strict';\n\nvar _get = require('babel-runtime/helpers/get')['default'];\n\nvar _inherits = require('babel-runtime/helpers/inherits')['default'];\n\nvar _createClass = require('babel-runtime/helpers/create-class')['default'];\n\nvar _classCallCheck = require('babel-runtime/helpers/class-call-check')['default'];\n\nvar _extends = require('babel-runtime/helpers/extends')['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\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _velocityReact = require('velocity-react');\n\nvar _header = require('./header');\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar TreeNode = (function (_React$Component) {\n _inherits(TreeNode, _React$Component);\n\n function TreeNode(props) {\n _classCallCheck(this, TreeNode);\n\n _get(Object.getPrototypeOf(TreeNode.prototype), 'constructor', this).call(this, props);\n this.onClick = this.onClick.bind(this);\n }\n\n _createClass(TreeNode, [{\n key: 'onClick',\n value: function onClick() {\n var toggled = !this.props.node.toggled;\n var onToggle = this.props.onToggle;\n if (onToggle) {\n onToggle(this.props.node, toggled);\n }\n }\n }, {\n key: 'animations',\n value: function animations() {\n var props = this.props;\n if (props.animations === false) {\n return false;\n }\n var anim = _Object$assign({}, props.animations, props.node.animations);\n return {\n toggle: anim.toggle(this.props),\n drawer: anim.drawer(this.props)\n };\n }\n }, {\n key: 'decorators',\n value: function decorators() {\n // Merge Any Node Based Decorators Into The Pack\n var props = this.props;\n var nodeDecorators = props.node.decorators || {};\n return _Object$assign({}, props.decorators, nodeDecorators);\n }\n }, {\n key: 'render',\n value: function render() {\n var decorators = this.decorators();\n var animations = this.animations();\n return _react2['default'].createElement(\n 'li',\n { style: this.props.style.base, ref: 'topLevel' },\n this.renderHeader(decorators, animations),\n this.renderDrawer(decorators, animations)\n );\n }\n }, {\n key: 'renderDrawer',\n value: function renderDrawer(decorators, animations) {\n var toggled = this.props.node.toggled;\n if (!animations && !toggled) {\n return null;\n }\n if (!animations && toggled) {\n return this.renderChildren(decorators, animations);\n }\n return _react2['default'].createElement(\n _velocityReact.VelocityTransitionGroup,\n _extends({}, animations.drawer, { ref: 'velocity' }),\n toggled ? this.renderChildren(decorators, animations) : null\n );\n }\n }, {\n key: 'renderHeader',\n value: function renderHeader(decorators, animations) {\n return _react2['default'].createElement(_header2['default'], {\n decorators: decorators,\n animations: animations,\n style: this.props.style,\n node: _Object$assign({}, this.props.node),\n onClick: this.onClick\n });\n }\n }, {\n key: 'renderChildren',\n value: function renderChildren(decorators) {\n var _this = this;\n\n if (this.props.node.loading) {\n return this.renderLoading(decorators);\n }\n var children = this.props.node.children;\n if (!Array.isArray(children)) {\n children = children ? [children] : [];\n }\n return _react2['default'].createElement(\n 'ul',\n { style: this.props.style.subtree, ref: 'subtree' },\n children.map(function (child, index) {\n return _react2['default'].createElement(TreeNode, _extends({}, _this._eventBubbles(), {\n key: child.id || index,\n node: child,\n decorators: _this.props.decorators,\n animations: _this.props.animations,\n style: _this.props.style\n }));\n })\n );\n }\n }, {\n key: 'renderLoading',\n value: function renderLoading(decorators) {\n return _react2['default'].createElement(\n 'ul',\n { style: this.props.style.subtree },\n _react2['default'].createElement(\n 'li',\n null,\n _react2['default'].createElement(decorators.Loading, { style: this.props.style.loading })\n )\n );\n }\n }, {\n key: '_eventBubbles',\n value: function _eventBubbles() {\n return { onToggle: this.props.onToggle };\n }\n }]);\n\n return TreeNode;\n})(_react2['default'].Component);\n\nTreeNode.propTypes = {\n style: _react2['default'].PropTypes.object.isRequired,\n node: _react2['default'].PropTypes.object.isRequired,\n decorators: _react2['default'].PropTypes.object.isRequired,\n animations: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.object, _react2['default'].PropTypes.bool]).isRequired,\n onToggle: _react2['default'].PropTypes.func\n};\n\nexports['default'] = TreeNode;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/lib/components/node.js\n// module id = 819\n// module chunks = 0","'use strict';\n\nvar _get = require('babel-runtime/helpers/get')['default'];\n\nvar _inherits = require('babel-runtime/helpers/inherits')['default'];\n\nvar _createClass = require('babel-runtime/helpers/create-class')['default'];\n\nvar _classCallCheck = require('babel-runtime/helpers/class-call-check')['default'];\n\nvar _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _node = require('./node');\n\nvar _node2 = _interopRequireDefault(_node);\n\nvar _decorators = require('./decorators');\n\nvar _decorators2 = _interopRequireDefault(_decorators);\n\nvar _themesDefault = require('../themes/default');\n\nvar _themesDefault2 = _interopRequireDefault(_themesDefault);\n\nvar _themesAnimations = require('../themes/animations');\n\nvar _themesAnimations2 = _interopRequireDefault(_themesAnimations);\n\nvar TreeBeard = (function (_React$Component) {\n _inherits(TreeBeard, _React$Component);\n\n function TreeBeard(props) {\n _classCallCheck(this, TreeBeard);\n\n _get(Object.getPrototypeOf(TreeBeard.prototype), 'constructor', this).call(this, props);\n }\n\n _createClass(TreeBeard, [{\n key: 'render',\n value: function render() {\n var _this = this;\n\n var data = this.props.data;\n // Support Multiple Root Nodes. Its not formally a tree, but its a use-case.\n if (!Array.isArray(data)) {\n data = [data];\n }\n return _react2['default'].createElement(\n 'ul',\n { style: this.props.style.tree.base, ref: 'treeBase' },\n data.map(function (node, index) {\n return _react2['default'].createElement(_node2['default'], {\n key: node.id || index,\n node: node,\n onToggle: _this.props.onToggle,\n animations: _this.props.animations,\n decorators: _this.props.decorators,\n style: _this.props.style.tree.node\n });\n })\n );\n }\n }]);\n\n return TreeBeard;\n})(_react2['default'].Component);\n\nTreeBeard.propTypes = {\n style: _react2['default'].PropTypes.object,\n data: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.object, _react2['default'].PropTypes.array]).isRequired,\n animations: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.object, _react2['default'].PropTypes.bool]),\n onToggle: _react2['default'].PropTypes.func,\n decorators: _react2['default'].PropTypes.object\n};\n\nTreeBeard.defaultProps = {\n style: _themesDefault2['default'],\n animations: _themesAnimations2['default'],\n decorators: _decorators2['default']\n};\n\nexports['default'] = TreeBeard;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/lib/components/treebeard.js\n// module id = 820\n// module chunks = 0","'use strict';\nmodule.exports = {\n Treebeard: require('./components/treebeard'),\n decorators: require('./components/decorators'),\n animations: require('./themes/animations'),\n theme: require('./themes/default')\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/lib/index.js\n// module id = 821\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n// special flexbox specifications\n\n\nvar _prefixAll2 = require('./static/prefixAll');\n\nvar _prefixAll3 = _interopRequireDefault(_prefixAll2);\n\nvar _getBrowserInformation = require('./utils/getBrowserInformation');\n\nvar _getBrowserInformation2 = _interopRequireDefault(_getBrowserInformation);\n\nvar _getPrefixedKeyframes = require('./utils/getPrefixedKeyframes');\n\nvar _getPrefixedKeyframes2 = _interopRequireDefault(_getPrefixedKeyframes);\n\nvar _capitalizeString = require('./utils/capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nvar _sortPrefixedStyle = require('./utils/sortPrefixedStyle');\n\nvar _sortPrefixedStyle2 = _interopRequireDefault(_sortPrefixedStyle);\n\nvar _prefixProps = require('./prefixProps');\n\nvar _prefixProps2 = _interopRequireDefault(_prefixProps);\n\nvar _position = require('./plugins/position');\n\nvar _position2 = _interopRequireDefault(_position);\n\nvar _calc = require('./plugins/calc');\n\nvar _calc2 = _interopRequireDefault(_calc);\n\nvar _zoomCursor = require('./plugins/zoomCursor');\n\nvar _zoomCursor2 = _interopRequireDefault(_zoomCursor);\n\nvar _grabCursor = require('./plugins/grabCursor');\n\nvar _grabCursor2 = _interopRequireDefault(_grabCursor);\n\nvar _flex = require('./plugins/flex');\n\nvar _flex2 = _interopRequireDefault(_flex);\n\nvar _sizing = require('./plugins/sizing');\n\nvar _sizing2 = _interopRequireDefault(_sizing);\n\nvar _gradient = require('./plugins/gradient');\n\nvar _gradient2 = _interopRequireDefault(_gradient);\n\nvar _transition = require('./plugins/transition');\n\nvar _transition2 = _interopRequireDefault(_transition);\n\nvar _flexboxIE = require('./plugins/flexboxIE');\n\nvar _flexboxIE2 = _interopRequireDefault(_flexboxIE);\n\nvar _flexboxOld = require('./plugins/flexboxOld');\n\nvar _flexboxOld2 = _interopRequireDefault(_flexboxOld);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar plugins = [_position2.default, _calc2.default, _zoomCursor2.default, _grabCursor2.default, _sizing2.default, _gradient2.default, _transition2.default, _flexboxIE2.default, _flexboxOld2.default,\n// this must be run AFTER the flexbox specs\n_flex2.default];\n\nvar Prefixer = function () {\n /**\n * Instantiante a new prefixer\n * @param {string} userAgent - userAgent to gather prefix information according to caniuse.com\n * @param {string} keepUnprefixed - keeps unprefixed properties and values\n */\n\n function Prefixer() {\n var _this = this;\n\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n _classCallCheck(this, Prefixer);\n\n var defaultUserAgent = typeof navigator !== 'undefined' ? navigator.userAgent : undefined;\n\n this._userAgent = options.userAgent || defaultUserAgent;\n this._keepUnprefixed = options.keepUnprefixed || false;\n\n this._browserInfo = (0, _getBrowserInformation2.default)(this._userAgent);\n\n // Checks if the userAgent was resolved correctly\n if (this._browserInfo && this._browserInfo.prefix) {\n // set additional prefix information\n this.cssPrefix = this._browserInfo.prefix.css;\n this.jsPrefix = this._browserInfo.prefix.inline;\n this.prefixedKeyframes = (0, _getPrefixedKeyframes2.default)(this._browserInfo);\n } else {\n this._usePrefixAllFallback = true;\n return false;\n }\n\n var data = this._browserInfo.browser && _prefixProps2.default[this._browserInfo.browser];\n if (data) {\n this._requiresPrefix = Object.keys(data).filter(function (key) {\n return data[key] >= _this._browserInfo.version;\n }).reduce(function (result, name) {\n result[name] = true;\n return result;\n }, {});\n this._hasPropsRequiringPrefix = Object.keys(this._requiresPrefix).length > 0;\n } else {\n this._usePrefixAllFallback = true;\n }\n }\n\n /**\n * Returns a prefixed version of the style object\n * @param {Object} styles - Style object that gets prefixed properties added\n * @returns {Object} - Style object with prefixed properties and values\n */\n\n\n _createClass(Prefixer, [{\n key: 'prefix',\n value: function prefix(styles) {\n var _this2 = this;\n\n // use prefixAll as fallback if userAgent can not be resolved\n if (this._usePrefixAllFallback) {\n return (0, _prefixAll3.default)(styles);\n }\n\n // only add prefixes if needed\n if (!this._hasPropsRequiringPrefix) {\n return styles;\n }\n\n Object.keys(styles).forEach(function (property) {\n var value = styles[property];\n if (value instanceof Object && !Array.isArray(value)) {\n // recurse through nested style objects\n styles[property] = _this2.prefix(value);\n } else {\n // add prefixes if needed\n if (_this2._requiresPrefix[property]) {\n styles[_this2.jsPrefix + (0, _capitalizeString2.default)(property)] = value;\n if (!_this2._keepUnprefixed) {\n delete styles[property];\n }\n }\n }\n });\n\n Object.keys(styles).forEach(function (property) {\n [].concat(styles[property]).forEach(function (value) {\n // resolve plugins\n plugins.forEach(function (plugin) {\n // generates a new plugin interface with current data\n assignStyles(styles, plugin({\n property: property,\n value: value,\n styles: styles,\n browserInfo: _this2._browserInfo,\n prefix: {\n js: _this2.jsPrefix,\n css: _this2.cssPrefix,\n keyframes: _this2.prefixedKeyframes\n },\n keepUnprefixed: _this2._keepUnprefixed,\n requiresPrefix: _this2._requiresPrefix\n }), value, _this2._keepUnprefixed);\n });\n });\n });\n\n return (0, _sortPrefixedStyle2.default)(styles);\n }\n\n /**\n * Returns a prefixed version of the style object using all vendor prefixes\n * @param {Object} styles - Style object that gets prefixed properties added\n * @returns {Object} - Style object with prefixed properties and values\n */\n\n }], [{\n key: 'prefixAll',\n value: function prefixAll(styles) {\n return (0, _prefixAll3.default)(styles);\n }\n }]);\n\n return Prefixer;\n}();\n\nexports.default = Prefixer;\n\n\nfunction assignStyles(base) {\n var extend = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n var value = arguments[2];\n var keepUnprefixed = arguments[3];\n\n Object.keys(extend).forEach(function (property) {\n var baseValue = base[property];\n if (Array.isArray(baseValue)) {\n [].concat(extend[property]).forEach(function (val) {\n if (base[property].indexOf(val) === -1) {\n base[property].splice(baseValue.indexOf(value), keepUnprefixed ? 0 : 1, val);\n }\n });\n } else {\n base[property] = extend[property];\n }\n });\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/Prefixer.js\n// module id = 822\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = calc;\n\nvar _getPrefixedValue = require('../utils/getPrefixedValue');\n\nvar _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction calc(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var _ref$browserInfo = _ref.browserInfo;\n var browser = _ref$browserInfo.browser;\n var version = _ref$browserInfo.version;\n var css = _ref.prefix.css;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n if (typeof value === 'string' && value.indexOf('calc(') > -1 && (browser === 'firefox' && version < 15 || browser === 'chrome' && version < 25 || browser === 'safari' && version < 6.1 || browser === 'ios_saf' && version < 7)) {\n return _defineProperty({}, property, (0, _getPrefixedValue2.default)(value.replace(/calc\\(/g, css + 'calc('), value, keepUnprefixed));\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/plugins/calc.js\n// module id = 823\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flex;\n\nvar _getPrefixedValue = require('../utils/getPrefixedValue');\n\nvar _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar values = { flex: true, 'inline-flex': true };\n\nfunction flex(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var _ref$browserInfo = _ref.browserInfo;\n var browser = _ref$browserInfo.browser;\n var version = _ref$browserInfo.version;\n var css = _ref.prefix.css;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n if (property === 'display' && values[value] && (browser === 'chrome' && version < 29 && version > 20 || (browser === 'safari' || browser === 'ios_saf') && version < 9 && version > 6 || browser === 'opera' && (version == 15 || version == 16))) {\n return {\n display: (0, _getPrefixedValue2.default)(css + value, value, keepUnprefixed)\n };\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/plugins/flex.js\n// module id = 824\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxIE;\n\nvar _getPrefixedValue = require('../utils/getPrefixedValue');\n\nvar _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar alternativeValues = {\n 'space-around': 'distribute',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end',\n flex: 'flexbox',\n 'inline-flex': 'inline-flexbox'\n};\nvar alternativeProps = {\n alignContent: 'msFlexLinePack',\n alignSelf: 'msFlexItemAlign',\n alignItems: 'msFlexAlign',\n justifyContent: 'msFlexPack',\n order: 'msFlexOrder',\n flexGrow: 'msFlexPositive',\n flexShrink: 'msFlexNegative',\n flexBasis: 'msPreferredSize'\n};\n\nfunction flexboxIE(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var styles = _ref.styles;\n var _ref$browserInfo = _ref.browserInfo;\n var browser = _ref$browserInfo.browser;\n var version = _ref$browserInfo.version;\n var css = _ref.prefix.css;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n if ((alternativeProps[property] || property === 'display' && typeof value === 'string' && value.indexOf('flex') > -1) && (browser === 'ie_mob' || browser === 'ie') && version == 10) {\n if (!keepUnprefixed && !Array.isArray(styles[property])) {\n delete styles[property];\n }\n if (property === 'display' && alternativeValues[value]) {\n return {\n display: (0, _getPrefixedValue2.default)(css + alternativeValues[value], value, keepUnprefixed)\n };\n }\n if (alternativeProps[property]) {\n return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);\n }\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/plugins/flexboxIE.js\n// module id = 825\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxOld;\n\nvar _getPrefixedValue = require('../utils/getPrefixedValue');\n\nvar _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar alternativeValues = {\n 'space-around': 'justify',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end',\n 'wrap-reverse': 'multiple',\n wrap: 'multiple',\n flex: 'box',\n 'inline-flex': 'inline-box'\n};\n\nvar alternativeProps = {\n alignItems: 'WebkitBoxAlign',\n justifyContent: 'WebkitBoxPack',\n flexWrap: 'WebkitBoxLines'\n};\n\nvar otherProps = ['alignContent', 'alignSelf', 'order', 'flexGrow', 'flexShrink', 'flexBasis', 'flexDirection'];\nvar properties = Object.keys(alternativeProps).concat(otherProps);\n\nfunction flexboxOld(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var styles = _ref.styles;\n var _ref$browserInfo = _ref.browserInfo;\n var browser = _ref$browserInfo.browser;\n var version = _ref$browserInfo.version;\n var css = _ref.prefix.css;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n if ((properties.indexOf(property) > -1 || property === 'display' && typeof value === 'string' && value.indexOf('flex') > -1) && (browser === 'firefox' && version < 22 || browser === 'chrome' && version < 21 || (browser === 'safari' || browser === 'ios_saf') && version <= 6.1 || browser === 'android' && version < 4.4 || browser === 'and_uc')) {\n if (!keepUnprefixed && !Array.isArray(styles[property])) {\n delete styles[property];\n }\n if (property === 'flexDirection' && typeof value === 'string') {\n return {\n WebkitBoxOrient: value.indexOf('column') > -1 ? 'vertical' : 'horizontal',\n WebkitBoxDirection: value.indexOf('reverse') > -1 ? 'reverse' : 'normal'\n };\n }\n if (property === 'display' && alternativeValues[value]) {\n return {\n display: (0, _getPrefixedValue2.default)(css + alternativeValues[value], value, keepUnprefixed)\n };\n }\n if (alternativeProps[property]) {\n return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);\n }\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/plugins/flexboxOld.js\n// module id = 826\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = grabCursor;\n\nvar _getPrefixedValue = require('../utils/getPrefixedValue');\n\nvar _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar values = { grab: true, grabbing: true };\n\nfunction grabCursor(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var browser = _ref.browserInfo.browser;\n var css = _ref.prefix.css;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n // adds prefixes for firefox, chrome, safari, and opera regardless of version until a reliable brwoser support info can be found (see: https://github.com/rofrischmann/inline-style-prefixer/issues/79)\n if (property === 'cursor' && values[value] && (browser === 'firefox' || browser === 'chrome' || browser === 'safari' || browser === 'opera')) {\n return {\n cursor: (0, _getPrefixedValue2.default)(css + value, value, keepUnprefixed)\n };\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/plugins/grabCursor.js\n// module id = 827\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = gradient;\n\nvar _getPrefixedValue = require('../utils/getPrefixedValue');\n\nvar _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/;\n\nfunction gradient(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var _ref$browserInfo = _ref.browserInfo;\n var browser = _ref$browserInfo.browser;\n var version = _ref$browserInfo.version;\n var css = _ref.prefix.css;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n if (typeof value === 'string' && value.match(values) !== null && (browser === 'firefox' && version < 16 || browser === 'chrome' && version < 26 || (browser === 'safari' || browser === 'ios_saf') && version < 7 || (browser === 'opera' || browser === 'op_mini') && version < 12.1 || browser === 'android' && version < 4.4 || browser === 'and_uc')) {\n return _defineProperty({}, property, (0, _getPrefixedValue2.default)(css + value, value, keepUnprefixed));\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/plugins/gradient.js\n// module id = 828\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = position;\n\nvar _getPrefixedValue = require('../utils/getPrefixedValue');\n\nvar _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction position(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var browser = _ref.browserInfo.browser;\n var css = _ref.prefix.css;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n if (property === 'position' && value === 'sticky' && (browser === 'safari' || browser === 'ios_saf')) {\n return _defineProperty({}, property, (0, _getPrefixedValue2.default)(css + value, value, keepUnprefixed));\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/plugins/position.js\n// module id = 829\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sizing;\n\nvar _getPrefixedValue = require('../utils/getPrefixedValue');\n\nvar _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar properties = {\n maxHeight: true,\n maxWidth: true,\n width: true,\n height: true,\n columnWidth: true,\n minWidth: true,\n minHeight: true\n};\nvar values = {\n 'min-content': true,\n 'max-content': true,\n 'fill-available': true,\n 'fit-content': true,\n 'contain-floats': true\n};\n\nfunction sizing(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var css = _ref.prefix.css;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n // This might change in the future\n // Keep an eye on it\n if (properties[property] && values[value]) {\n return _defineProperty({}, property, (0, _getPrefixedValue2.default)(css + value, value, keepUnprefixed));\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/plugins/sizing.js\n// module id = 830\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nexports.default = transition;\n\nvar _hyphenateStyleName = require('hyphenate-style-name');\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nvar _unprefixProperty = require('../utils/unprefixProperty');\n\nvar _unprefixProperty2 = _interopRequireDefault(_unprefixProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar properties = { transition: true, transitionProperty: true };\n\nfunction transition(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var css = _ref.prefix.css;\n var requiresPrefix = _ref.requiresPrefix;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n // also check for already prefixed transitions\n var unprefixedProperty = (0, _unprefixProperty2.default)(property);\n\n if (typeof value === 'string' && properties[unprefixedProperty]) {\n var _ret = function () {\n // TODO: memoize this array\n var requiresPrefixDashCased = Object.keys(requiresPrefix).map(function (prop) {\n return (0, _hyphenateStyleName2.default)(prop);\n });\n\n // only split multi values, not cubic beziers\n var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g);\n\n requiresPrefixDashCased.forEach(function (prop) {\n multipleValues.forEach(function (val, index) {\n if (val.indexOf(prop) > -1 && prop !== 'order') {\n multipleValues[index] = val.replace(prop, css + prop) + (keepUnprefixed ? ',' + val : '');\n }\n });\n });\n\n return {\n v: _defineProperty({}, property, multipleValues.join(','))\n };\n }();\n\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/plugins/transition.js\n// module id = 831\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = zoomCursor;\n\nvar _getPrefixedValue = require('../utils/getPrefixedValue');\n\nvar _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar values = { 'zoom-in': true, 'zoom-out': true };\n\nfunction zoomCursor(_ref) {\n var property = _ref.property;\n var value = _ref.value;\n var _ref$browserInfo = _ref.browserInfo;\n var browser = _ref$browserInfo.browser;\n var version = _ref$browserInfo.version;\n var css = _ref.prefix.css;\n var keepUnprefixed = _ref.keepUnprefixed;\n\n if (property === 'cursor' && values[value] && (browser === 'firefox' && version < 24 || browser === 'chrome' && version < 37 || browser === 'safari' && version < 9 || browser === 'opera' && version < 24)) {\n return {\n cursor: (0, _getPrefixedValue2.default)(css + value, value, keepUnprefixed)\n };\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/plugins/zoomCursor.js\n// module id = 832\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = { \"chrome\": { \"transform\": 35, \"transformOrigin\": 35, \"transformOriginX\": 35, \"transformOriginY\": 35, \"backfaceVisibility\": 35, \"perspective\": 35, \"perspectiveOrigin\": 35, \"transformStyle\": 35, \"transformOriginZ\": 35, \"animation\": 42, \"animationDelay\": 42, \"animationDirection\": 42, \"animationFillMode\": 42, \"animationDuration\": 42, \"animationIterationCount\": 42, \"animationName\": 42, \"animationPlayState\": 42, \"animationTimingFunction\": 42, \"appearance\": 55, \"userSelect\": 55, \"fontKerning\": 32, \"textEmphasisPosition\": 55, \"textEmphasis\": 55, \"textEmphasisStyle\": 55, \"textEmphasisColor\": 55, \"boxDecorationBreak\": 55, \"clipPath\": 55, \"maskImage\": 55, \"maskMode\": 55, \"maskRepeat\": 55, \"maskPosition\": 55, \"maskClip\": 55, \"maskOrigin\": 55, \"maskSize\": 55, \"maskComposite\": 55, \"mask\": 55, \"maskBorderSource\": 55, \"maskBorderMode\": 55, \"maskBorderSlice\": 55, \"maskBorderWidth\": 55, \"maskBorderOutset\": 55, \"maskBorderRepeat\": 55, \"maskBorder\": 55, \"maskType\": 55, \"textDecorationStyle\": 55, \"textDecorationSkip\": 55, \"textDecorationLine\": 55, \"textDecorationColor\": 55, \"filter\": 52, \"fontFeatureSettings\": 47, \"breakAfter\": 49, \"breakBefore\": 49, \"breakInside\": 49, \"columnCount\": 49, \"columnFill\": 49, \"columnGap\": 49, \"columnRule\": 49, \"columnRuleColor\": 49, \"columnRuleStyle\": 49, \"columnRuleWidth\": 49, \"columns\": 49, \"columnSpan\": 49, \"columnWidth\": 49 }, \"safari\": { \"flex\": 8, \"flexBasis\": 8, \"flexDirection\": 8, \"flexGrow\": 8, \"flexFlow\": 8, \"flexShrink\": 8, \"flexWrap\": 8, \"alignContent\": 8, \"alignItems\": 8, \"alignSelf\": 8, \"justifyContent\": 8, \"order\": 8, \"transition\": 6, \"transitionDelay\": 6, \"transitionDuration\": 6, \"transitionProperty\": 6, \"transitionTimingFunction\": 6, \"transform\": 8, \"transformOrigin\": 8, \"transformOriginX\": 8, \"transformOriginY\": 8, \"backfaceVisibility\": 8, \"perspective\": 8, \"perspectiveOrigin\": 8, \"transformStyle\": 8, \"transformOriginZ\": 8, \"animation\": 8, \"animationDelay\": 8, \"animationDirection\": 8, \"animationFillMode\": 8, \"animationDuration\": 8, \"animationIterationCount\": 8, \"animationName\": 8, \"animationPlayState\": 8, \"animationTimingFunction\": 8, \"appearance\": 10, \"userSelect\": 10, \"backdropFilter\": 10, \"fontKerning\": 9, \"scrollSnapType\": 10, \"scrollSnapPointsX\": 10, \"scrollSnapPointsY\": 10, \"scrollSnapDestination\": 10, \"scrollSnapCoordinate\": 10, \"textEmphasisPosition\": 7, \"textEmphasis\": 7, \"textEmphasisStyle\": 7, \"textEmphasisColor\": 7, \"boxDecorationBreak\": 10, \"clipPath\": 10, \"maskImage\": 10, \"maskMode\": 10, \"maskRepeat\": 10, \"maskPosition\": 10, \"maskClip\": 10, \"maskOrigin\": 10, \"maskSize\": 10, \"maskComposite\": 10, \"mask\": 10, \"maskBorderSource\": 10, \"maskBorderMode\": 10, \"maskBorderSlice\": 10, \"maskBorderWidth\": 10, \"maskBorderOutset\": 10, \"maskBorderRepeat\": 10, \"maskBorder\": 10, \"maskType\": 10, \"textDecorationStyle\": 10, \"textDecorationSkip\": 10, \"textDecorationLine\": 10, \"textDecorationColor\": 10, \"shapeImageThreshold\": 10, \"shapeImageMargin\": 10, \"shapeImageOutside\": 10, \"filter\": 9, \"hyphens\": 10, \"flowInto\": 10, \"flowFrom\": 10, \"breakBefore\": 8, \"breakAfter\": 8, \"breakInside\": 8, \"regionFragment\": 10, \"columnCount\": 8, \"columnFill\": 8, \"columnGap\": 8, \"columnRule\": 8, \"columnRuleColor\": 8, \"columnRuleStyle\": 8, \"columnRuleWidth\": 8, \"columns\": 8, \"columnSpan\": 8, \"columnWidth\": 8 }, \"firefox\": { \"appearance\": 51, \"userSelect\": 51, \"boxSizing\": 28, \"textAlignLast\": 48, \"textDecorationStyle\": 35, \"textDecorationSkip\": 35, \"textDecorationLine\": 35, \"textDecorationColor\": 35, \"tabSize\": 51, \"hyphens\": 42, \"fontFeatureSettings\": 33, \"breakAfter\": 51, \"breakBefore\": 51, \"breakInside\": 51, \"columnCount\": 51, \"columnFill\": 51, \"columnGap\": 51, \"columnRule\": 51, \"columnRuleColor\": 51, \"columnRuleStyle\": 51, \"columnRuleWidth\": 51, \"columns\": 51, \"columnSpan\": 51, \"columnWidth\": 51 }, \"opera\": { \"flex\": 16, \"flexBasis\": 16, \"flexDirection\": 16, \"flexGrow\": 16, \"flexFlow\": 16, \"flexShrink\": 16, \"flexWrap\": 16, \"alignContent\": 16, \"alignItems\": 16, \"alignSelf\": 16, \"justifyContent\": 16, \"order\": 16, \"transform\": 22, \"transformOrigin\": 22, \"transformOriginX\": 22, \"transformOriginY\": 22, \"backfaceVisibility\": 22, \"perspective\": 22, \"perspectiveOrigin\": 22, \"transformStyle\": 22, \"transformOriginZ\": 22, \"animation\": 29, \"animationDelay\": 29, \"animationDirection\": 29, \"animationFillMode\": 29, \"animationDuration\": 29, \"animationIterationCount\": 29, \"animationName\": 29, \"animationPlayState\": 29, \"animationTimingFunction\": 29, \"appearance\": 41, \"userSelect\": 41, \"fontKerning\": 19, \"textEmphasisPosition\": 41, \"textEmphasis\": 41, \"textEmphasisStyle\": 41, \"textEmphasisColor\": 41, \"boxDecorationBreak\": 41, \"clipPath\": 41, \"maskImage\": 41, \"maskMode\": 41, \"maskRepeat\": 41, \"maskPosition\": 41, \"maskClip\": 41, \"maskOrigin\": 41, \"maskSize\": 41, \"maskComposite\": 41, \"mask\": 41, \"maskBorderSource\": 41, \"maskBorderMode\": 41, \"maskBorderSlice\": 41, \"maskBorderWidth\": 41, \"maskBorderOutset\": 41, \"maskBorderRepeat\": 41, \"maskBorder\": 41, \"maskType\": 41, \"textDecorationStyle\": 41, \"textDecorationSkip\": 41, \"textDecorationLine\": 41, \"textDecorationColor\": 41, \"filter\": 39, \"fontFeatureSettings\": 34, \"breakAfter\": 36, \"breakBefore\": 36, \"breakInside\": 36, \"columnCount\": 36, \"columnFill\": 36, \"columnGap\": 36, \"columnRule\": 36, \"columnRuleColor\": 36, \"columnRuleStyle\": 36, \"columnRuleWidth\": 36, \"columns\": 36, \"columnSpan\": 36, \"columnWidth\": 36 }, \"ie\": { \"flex\": 10, \"flexDirection\": 10, \"flexFlow\": 10, \"flexWrap\": 10, \"transform\": 9, \"transformOrigin\": 9, \"transformOriginX\": 9, \"transformOriginY\": 9, \"userSelect\": 11, \"wrapFlow\": 11, \"wrapThrough\": 11, \"wrapMargin\": 11, \"scrollSnapType\": 11, \"scrollSnapPointsX\": 11, \"scrollSnapPointsY\": 11, \"scrollSnapDestination\": 11, \"scrollSnapCoordinate\": 11, \"touchAction\": 10, \"hyphens\": 11, \"flowInto\": 11, \"flowFrom\": 11, \"breakBefore\": 11, \"breakAfter\": 11, \"breakInside\": 11, \"regionFragment\": 11, \"gridTemplateColumns\": 11, \"gridTemplateRows\": 11, \"gridTemplateAreas\": 11, \"gridTemplate\": 11, \"gridAutoColumns\": 11, \"gridAutoRows\": 11, \"gridAutoFlow\": 11, \"grid\": 11, \"gridRowStart\": 11, \"gridColumnStart\": 11, \"gridRowEnd\": 11, \"gridRow\": 11, \"gridColumn\": 11, \"gridColumnEnd\": 11, \"gridColumnGap\": 11, \"gridRowGap\": 11, \"gridArea\": 11, \"gridGap\": 11, \"textSizeAdjust\": 11 }, \"edge\": { \"userSelect\": 14, \"wrapFlow\": 14, \"wrapThrough\": 14, \"wrapMargin\": 14, \"scrollSnapType\": 14, \"scrollSnapPointsX\": 14, \"scrollSnapPointsY\": 14, \"scrollSnapDestination\": 14, \"scrollSnapCoordinate\": 14, \"hyphens\": 14, \"flowInto\": 14, \"flowFrom\": 14, \"breakBefore\": 14, \"breakAfter\": 14, \"breakInside\": 14, \"regionFragment\": 14, \"gridTemplateColumns\": 14, \"gridTemplateRows\": 14, \"gridTemplateAreas\": 14, \"gridTemplate\": 14, \"gridAutoColumns\": 14, \"gridAutoRows\": 14, \"gridAutoFlow\": 14, \"grid\": 14, \"gridRowStart\": 14, \"gridColumnStart\": 14, \"gridRowEnd\": 14, \"gridRow\": 14, \"gridColumn\": 14, \"gridColumnEnd\": 14, \"gridColumnGap\": 14, \"gridRowGap\": 14, \"gridArea\": 14, \"gridGap\": 14 }, \"ios_saf\": { \"flex\": 8.1, \"flexBasis\": 8.1, \"flexDirection\": 8.1, \"flexGrow\": 8.1, \"flexFlow\": 8.1, \"flexShrink\": 8.1, \"flexWrap\": 8.1, \"alignContent\": 8.1, \"alignItems\": 8.1, \"alignSelf\": 8.1, \"justifyContent\": 8.1, \"order\": 8.1, \"transition\": 6, \"transitionDelay\": 6, \"transitionDuration\": 6, \"transitionProperty\": 6, \"transitionTimingFunction\": 6, \"transform\": 8.1, \"transformOrigin\": 8.1, \"transformOriginX\": 8.1, \"transformOriginY\": 8.1, \"backfaceVisibility\": 8.1, \"perspective\": 8.1, \"perspectiveOrigin\": 8.1, \"transformStyle\": 8.1, \"transformOriginZ\": 8.1, \"animation\": 8.1, \"animationDelay\": 8.1, \"animationDirection\": 8.1, \"animationFillMode\": 8.1, \"animationDuration\": 8.1, \"animationIterationCount\": 8.1, \"animationName\": 8.1, \"animationPlayState\": 8.1, \"animationTimingFunction\": 8.1, \"appearance\": 9.3, \"userSelect\": 9.3, \"backdropFilter\": 9.3, \"fontKerning\": 9.3, \"scrollSnapType\": 9.3, \"scrollSnapPointsX\": 9.3, \"scrollSnapPointsY\": 9.3, \"scrollSnapDestination\": 9.3, \"scrollSnapCoordinate\": 9.3, \"boxDecorationBreak\": 9.3, \"clipPath\": 9.3, \"maskImage\": 9.3, \"maskMode\": 9.3, \"maskRepeat\": 9.3, \"maskPosition\": 9.3, \"maskClip\": 9.3, \"maskOrigin\": 9.3, \"maskSize\": 9.3, \"maskComposite\": 9.3, \"mask\": 9.3, \"maskBorderSource\": 9.3, \"maskBorderMode\": 9.3, \"maskBorderSlice\": 9.3, \"maskBorderWidth\": 9.3, \"maskBorderOutset\": 9.3, \"maskBorderRepeat\": 9.3, \"maskBorder\": 9.3, \"maskType\": 9.3, \"textSizeAdjust\": 9.3, \"textDecorationStyle\": 9.3, \"textDecorationSkip\": 9.3, \"textDecorationLine\": 9.3, \"textDecorationColor\": 9.3, \"shapeImageThreshold\": 9.3, \"shapeImageMargin\": 9.3, \"shapeImageOutside\": 9.3, \"filter\": 9, \"hyphens\": 9.3, \"flowInto\": 9.3, \"flowFrom\": 9.3, \"breakBefore\": 8.1, \"breakAfter\": 8.1, \"breakInside\": 8.1, \"regionFragment\": 9.3, \"columnCount\": 8.1, \"columnFill\": 8.1, \"columnGap\": 8.1, \"columnRule\": 8.1, \"columnRuleColor\": 8.1, \"columnRuleStyle\": 8.1, \"columnRuleWidth\": 8.1, \"columns\": 8.1, \"columnSpan\": 8.1, \"columnWidth\": 8.1 }, \"android\": { \"flex\": 4.2, \"flexBasis\": 4.2, \"flexDirection\": 4.2, \"flexGrow\": 4.2, \"flexFlow\": 4.2, \"flexShrink\": 4.2, \"flexWrap\": 4.2, \"alignContent\": 4.2, \"alignItems\": 4.2, \"alignSelf\": 4.2, \"justifyContent\": 4.2, \"order\": 4.2, \"transition\": 4.2, \"transitionDelay\": 4.2, \"transitionDuration\": 4.2, \"transitionProperty\": 4.2, \"transitionTimingFunction\": 4.2, \"transform\": 4.4, \"transformOrigin\": 4.4, \"transformOriginX\": 4.4, \"transformOriginY\": 4.4, \"backfaceVisibility\": 4.4, \"perspective\": 4.4, \"perspectiveOrigin\": 4.4, \"transformStyle\": 4.4, \"transformOriginZ\": 4.4, \"animation\": 4.4, \"animationDelay\": 4.4, \"animationDirection\": 4.4, \"animationFillMode\": 4.4, \"animationDuration\": 4.4, \"animationIterationCount\": 4.4, \"animationName\": 4.4, \"animationPlayState\": 4.4, \"animationTimingFunction\": 4.4, \"appearance\": 51, \"userSelect\": 51, \"fontKerning\": 4.4, \"textEmphasisPosition\": 51, \"textEmphasis\": 51, \"textEmphasisStyle\": 51, \"textEmphasisColor\": 51, \"boxDecorationBreak\": 51, \"clipPath\": 51, \"maskImage\": 51, \"maskMode\": 51, \"maskRepeat\": 51, \"maskPosition\": 51, \"maskClip\": 51, \"maskOrigin\": 51, \"maskSize\": 51, \"maskComposite\": 51, \"mask\": 51, \"maskBorderSource\": 51, \"maskBorderMode\": 51, \"maskBorderSlice\": 51, \"maskBorderWidth\": 51, \"maskBorderOutset\": 51, \"maskBorderRepeat\": 51, \"maskBorder\": 51, \"maskType\": 51, \"filter\": 51, \"fontFeatureSettings\": 4.4, \"breakAfter\": 51, \"breakBefore\": 51, \"breakInside\": 51, \"columnCount\": 51, \"columnFill\": 51, \"columnGap\": 51, \"columnRule\": 51, \"columnRuleColor\": 51, \"columnRuleStyle\": 51, \"columnRuleWidth\": 51, \"columns\": 51, \"columnSpan\": 51, \"columnWidth\": 51 }, \"and_chr\": { \"appearance\": 51, \"userSelect\": 51, \"textEmphasisPosition\": 51, \"textEmphasis\": 51, \"textEmphasisStyle\": 51, \"textEmphasisColor\": 51, \"boxDecorationBreak\": 51, \"clipPath\": 51, \"maskImage\": 51, \"maskMode\": 51, \"maskRepeat\": 51, \"maskPosition\": 51, \"maskClip\": 51, \"maskOrigin\": 51, \"maskSize\": 51, \"maskComposite\": 51, \"mask\": 51, \"maskBorderSource\": 51, \"maskBorderMode\": 51, \"maskBorderSlice\": 51, \"maskBorderWidth\": 51, \"maskBorderOutset\": 51, \"maskBorderRepeat\": 51, \"maskBorder\": 51, \"maskType\": 51, \"textDecorationStyle\": 51, \"textDecorationSkip\": 51, \"textDecorationLine\": 51, \"textDecorationColor\": 51, \"filter\": 51 }, \"and_uc\": { \"flex\": 9.9, \"flexBasis\": 9.9, \"flexDirection\": 9.9, \"flexGrow\": 9.9, \"flexFlow\": 9.9, \"flexShrink\": 9.9, \"flexWrap\": 9.9, \"alignContent\": 9.9, \"alignItems\": 9.9, \"alignSelf\": 9.9, \"justifyContent\": 9.9, \"order\": 9.9, \"transition\": 9.9, \"transitionDelay\": 9.9, \"transitionDuration\": 9.9, \"transitionProperty\": 9.9, \"transitionTimingFunction\": 9.9, \"transform\": 9.9, \"transformOrigin\": 9.9, \"transformOriginX\": 9.9, \"transformOriginY\": 9.9, \"backfaceVisibility\": 9.9, \"perspective\": 9.9, \"perspectiveOrigin\": 9.9, \"transformStyle\": 9.9, \"transformOriginZ\": 9.9, \"animation\": 9.9, \"animationDelay\": 9.9, \"animationDirection\": 9.9, \"animationFillMode\": 9.9, \"animationDuration\": 9.9, \"animationIterationCount\": 9.9, \"animationName\": 9.9, \"animationPlayState\": 9.9, \"animationTimingFunction\": 9.9, \"appearance\": 9.9, \"userSelect\": 9.9, \"fontKerning\": 9.9, \"textEmphasisPosition\": 9.9, \"textEmphasis\": 9.9, \"textEmphasisStyle\": 9.9, \"textEmphasisColor\": 9.9, \"maskImage\": 9.9, \"maskMode\": 9.9, \"maskRepeat\": 9.9, \"maskPosition\": 9.9, \"maskClip\": 9.9, \"maskOrigin\": 9.9, \"maskSize\": 9.9, \"maskComposite\": 9.9, \"mask\": 9.9, \"maskBorderSource\": 9.9, \"maskBorderMode\": 9.9, \"maskBorderSlice\": 9.9, \"maskBorderWidth\": 9.9, \"maskBorderOutset\": 9.9, \"maskBorderRepeat\": 9.9, \"maskBorder\": 9.9, \"maskType\": 9.9, \"textSizeAdjust\": 9.9, \"filter\": 9.9, \"hyphens\": 9.9, \"flowInto\": 9.9, \"flowFrom\": 9.9, \"breakBefore\": 9.9, \"breakAfter\": 9.9, \"breakInside\": 9.9, \"regionFragment\": 9.9, \"fontFeatureSettings\": 9.9, \"columnCount\": 9.9, \"columnFill\": 9.9, \"columnGap\": 9.9, \"columnRule\": 9.9, \"columnRuleColor\": 9.9, \"columnRuleStyle\": 9.9, \"columnRuleWidth\": 9.9, \"columns\": 9.9, \"columnSpan\": 9.9, \"columnWidth\": 9.9 }, \"op_mini\": {} };\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/prefixProps.js\n// module id = 833\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = calc;\n\nvar _joinPrefixedValue = require('../../utils/joinPrefixedValue');\n\nvar _joinPrefixedValue2 = _interopRequireDefault(_joinPrefixedValue);\n\nvar _isPrefixedValue = require('../../utils/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction calc(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('calc(') > -1) {\n return (0, _joinPrefixedValue2.default)(property, value, function (prefix, value) {\n return value.replace(/calc\\(/g, prefix + 'calc(');\n });\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/static/plugins/calc.js\n// module id = 834\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cursor;\n\nvar _joinPrefixedValue = require('../../utils/joinPrefixedValue');\n\nvar _joinPrefixedValue2 = _interopRequireDefault(_joinPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar values = {\n 'zoom-in': true,\n 'zoom-out': true,\n grab: true,\n grabbing: true\n};\n\nfunction cursor(property, value) {\n if (property === 'cursor' && values[value]) {\n return (0, _joinPrefixedValue2.default)(property, value);\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/static/plugins/cursor.js\n// module id = 835\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flex;\nvar values = { flex: true, 'inline-flex': true };\n\nfunction flex(property, value) {\n if (property === 'display' && values[value]) {\n return {\n display: ['-webkit-box', '-moz-box', '-ms-' + value + 'box', '-webkit-' + value, value]\n };\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/static/plugins/flex.js\n// module id = 836\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxIE;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar alternativeValues = {\n 'space-around': 'distribute',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end'\n};\nvar alternativeProps = {\n alignContent: 'msFlexLinePack',\n alignSelf: 'msFlexItemAlign',\n alignItems: 'msFlexAlign',\n justifyContent: 'msFlexPack',\n order: 'msFlexOrder',\n flexGrow: 'msFlexPositive',\n flexShrink: 'msFlexNegative',\n flexBasis: 'msPreferredSize'\n};\n\nfunction flexboxIE(property, value) {\n if (alternativeProps[property]) {\n return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/static/plugins/flexboxIE.js\n// module id = 837\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxOld;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar alternativeValues = {\n 'space-around': 'justify',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end',\n 'wrap-reverse': 'multiple',\n wrap: 'multiple'\n};\n\nvar alternativeProps = {\n alignItems: 'WebkitBoxAlign',\n justifyContent: 'WebkitBoxPack',\n flexWrap: 'WebkitBoxLines'\n};\n\nfunction flexboxOld(property, value) {\n if (property === 'flexDirection' && typeof value === 'string') {\n return {\n WebkitBoxOrient: value.indexOf('column') > -1 ? 'vertical' : 'horizontal',\n WebkitBoxDirection: value.indexOf('reverse') > -1 ? 'reverse' : 'normal'\n };\n }\n if (alternativeProps[property]) {\n return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/static/plugins/flexboxOld.js\n// module id = 838\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = gradient;\n\nvar _joinPrefixedValue = require('../../utils/joinPrefixedValue');\n\nvar _joinPrefixedValue2 = _interopRequireDefault(_joinPrefixedValue);\n\nvar _isPrefixedValue = require('../../utils/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/;\n\nfunction gradient(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.match(values) !== null) {\n return (0, _joinPrefixedValue2.default)(property, value);\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/static/plugins/gradient.js\n// module id = 839\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = position;\nfunction position(property, value) {\n if (property === 'position' && value === 'sticky') {\n return { position: ['-webkit-sticky', 'sticky'] };\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/static/plugins/position.js\n// module id = 840\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sizing;\n\nvar _joinPrefixedValue = require('../../utils/joinPrefixedValue');\n\nvar _joinPrefixedValue2 = _interopRequireDefault(_joinPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar properties = {\n maxHeight: true,\n maxWidth: true,\n width: true,\n height: true,\n columnWidth: true,\n minWidth: true,\n minHeight: true\n};\nvar values = {\n 'min-content': true,\n 'max-content': true,\n 'fill-available': true,\n 'fit-content': true,\n 'contain-floats': true\n};\n\nfunction sizing(property, value) {\n if (properties[property] && values[value]) {\n return (0, _joinPrefixedValue2.default)(property, value);\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/static/plugins/sizing.js\n// module id = 841\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = transition;\n\nvar _hyphenateStyleName = require('hyphenate-style-name');\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nvar _capitalizeString = require('../../utils/capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nvar _isPrefixedValue = require('../../utils/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nvar _prefixProps = require('../prefixProps');\n\nvar _prefixProps2 = _interopRequireDefault(_prefixProps);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar properties = {\n transition: true,\n transitionProperty: true,\n WebkitTransition: true,\n WebkitTransitionProperty: true\n};\n\nfunction transition(property, value) {\n // also check for already prefixed transitions\n if (typeof value === 'string' && properties[property]) {\n var _ref2;\n\n var outputValue = prefixValue(value);\n var webkitOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (value) {\n return value.match(/-moz-|-ms-/) === null;\n }).join(',');\n\n // if the property is already prefixed\n if (property.indexOf('Webkit') > -1) {\n return _defineProperty({}, property, webkitOutput);\n }\n\n return _ref2 = {}, _defineProperty(_ref2, 'Webkit' + (0, _capitalizeString2.default)(property), webkitOutput), _defineProperty(_ref2, property, outputValue), _ref2;\n }\n}\n\nfunction prefixValue(value) {\n if ((0, _isPrefixedValue2.default)(value)) {\n return value;\n }\n\n // only split multi values, not cubic beziers\n var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g);\n\n // iterate each single value and check for transitioned properties\n // that need to be prefixed as well\n multipleValues.forEach(function (val, index) {\n multipleValues[index] = Object.keys(_prefixProps2.default).reduce(function (out, prefix) {\n var dashCasePrefix = '-' + prefix.toLowerCase() + '-';\n\n Object.keys(_prefixProps2.default[prefix]).forEach(function (prop) {\n var dashCaseProperty = (0, _hyphenateStyleName2.default)(prop);\n\n if (val.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') {\n // join all prefixes and create a new value\n out = val.replace(dashCaseProperty, dashCasePrefix + dashCaseProperty) + ',' + out;\n }\n });\n return out;\n }, val);\n });\n\n return multipleValues.join(',');\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/static/plugins/transition.js\n// module id = 842\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixAll;\n\nvar _prefixProps = require('./prefixProps');\n\nvar _prefixProps2 = _interopRequireDefault(_prefixProps);\n\nvar _capitalizeString = require('../utils/capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nvar _sortPrefixedStyle = require('../utils/sortPrefixedStyle');\n\nvar _sortPrefixedStyle2 = _interopRequireDefault(_sortPrefixedStyle);\n\nvar _position = require('./plugins/position');\n\nvar _position2 = _interopRequireDefault(_position);\n\nvar _calc = require('./plugins/calc');\n\nvar _calc2 = _interopRequireDefault(_calc);\n\nvar _cursor = require('./plugins/cursor');\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _flex = require('./plugins/flex');\n\nvar _flex2 = _interopRequireDefault(_flex);\n\nvar _sizing = require('./plugins/sizing');\n\nvar _sizing2 = _interopRequireDefault(_sizing);\n\nvar _gradient = require('./plugins/gradient');\n\nvar _gradient2 = _interopRequireDefault(_gradient);\n\nvar _transition = require('./plugins/transition');\n\nvar _transition2 = _interopRequireDefault(_transition);\n\nvar _flexboxIE = require('./plugins/flexboxIE');\n\nvar _flexboxIE2 = _interopRequireDefault(_flexboxIE);\n\nvar _flexboxOld = require('./plugins/flexboxOld');\n\nvar _flexboxOld2 = _interopRequireDefault(_flexboxOld);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// special flexbox specifications\n\n\nvar plugins = [_position2.default, _calc2.default, _cursor2.default, _sizing2.default, _gradient2.default, _transition2.default, _flexboxIE2.default, _flexboxOld2.default, _flex2.default];\n\n/**\n * Returns a prefixed version of the style object using all vendor prefixes\n * @param {Object} styles - Style object that gets prefixed properties added\n * @returns {Object} - Style object with prefixed properties and values\n */\nfunction prefixAll(styles) {\n Object.keys(styles).forEach(function (property) {\n var value = styles[property];\n if (value instanceof Object && !Array.isArray(value)) {\n // recurse through nested style objects\n styles[property] = prefixAll(value);\n } else {\n Object.keys(_prefixProps2.default).forEach(function (prefix) {\n var properties = _prefixProps2.default[prefix];\n // add prefixes if needed\n if (properties[property]) {\n styles[prefix + (0, _capitalizeString2.default)(property)] = value;\n }\n });\n }\n });\n\n Object.keys(styles).forEach(function (property) {\n [].concat(styles[property]).forEach(function (value, index) {\n // resolve every special plugins\n plugins.forEach(function (plugin) {\n return assignStyles(styles, plugin(property, value));\n });\n });\n });\n\n return (0, _sortPrefixedStyle2.default)(styles);\n}\n\nfunction assignStyles(base) {\n var extend = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n Object.keys(extend).forEach(function (property) {\n var baseValue = base[property];\n if (Array.isArray(baseValue)) {\n [].concat(extend[property]).forEach(function (value) {\n var valueIndex = baseValue.indexOf(value);\n if (valueIndex > -1) {\n base[property].splice(valueIndex, 1);\n }\n base[property].push(value);\n });\n } else {\n base[property] = extend[property];\n }\n });\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/static/prefixAll.js\n// module id = 843\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bowser = require('bowser');\n\nvar _bowser2 = _interopRequireDefault(_bowser);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar vendorPrefixes = {\n Webkit: ['chrome', 'safari', 'ios', 'android', 'phantom', 'opera', 'webos', 'blackberry', 'bada', 'tizen', 'chromium', 'vivaldi'],\n Moz: ['firefox', 'seamonkey', 'sailfish'],\n ms: ['msie', 'msedge']\n};\nvar browsers = {\n chrome: [['chrome'], ['chromium']],\n safari: [['safari']],\n firefox: [['firefox']],\n edge: [['msedge']],\n opera: [['opera'], ['vivaldi']],\n ios_saf: [['ios', 'mobile'], ['ios', 'tablet']],\n ie: [['msie']],\n op_mini: [['opera', 'mobile'], ['opera', 'tablet']],\n and_uc: [['android', 'mobile'], ['android', 'tablet']],\n android: [['android', 'mobile'], ['android', 'tablet']]\n};\n\nvar browserByInfo = function browserByInfo(info) {\n if (info.firefox) {\n return 'firefox';\n }\n var name = '';\n\n Object.keys(browsers).forEach(function (browser) {\n browsers[browser].forEach(function (condition) {\n var match = 0;\n condition.forEach(function (single) {\n if (info[single]) {\n match += 1;\n }\n });\n if (condition.length === match) {\n name = browser;\n }\n });\n });\n\n return name;\n};\n\n/**\n * Uses bowser to get default browser information such as version and name\n * Evaluates bowser info and adds vendorPrefix information\n * @param {string} userAgent - userAgent that gets evaluated\n */\n\nexports.default = function (userAgent) {\n if (!userAgent) {\n return false;\n }\n var info = _bowser2.default._detect(userAgent);\n\n Object.keys(vendorPrefixes).forEach(function (prefix) {\n vendorPrefixes[prefix].forEach(function (browser) {\n if (info[browser]) {\n info.prefix = {\n inline: prefix,\n css: '-' + prefix.toLowerCase() + '-'\n };\n }\n });\n });\n\n info.browser = browserByInfo(info);\n\n // For cordova IOS 8 the version is missing, set truncated osversion to prevent NaN\n info.version = info.version ? parseFloat(info.version) : parseInt(parseFloat(info.osversion), 10);\n info.osversion = parseFloat(info.osversion);\n\n // iOS forces all browsers to use Safari under the hood\n // as the Safari version seems to match the iOS version\n // we just explicitely use the osversion instead\n // https://github.com/rofrischmann/inline-style-prefixer/issues/72\n if (info.browser === 'ios_saf' && info.version > info.osversion) {\n info.version = info.osversion;\n info.safari = true;\n }\n\n // seperate native android chrome\n // https://github.com/rofrischmann/inline-style-prefixer/issues/45\n if (info.browser === 'android' && info.chrome && info.version > 37) {\n info.browser = 'and_chr';\n }\n\n // For android < 4.4 we want to check the osversion\n // not the chrome version, see issue #26\n // https://github.com/rofrischmann/inline-style-prefixer/issues/26\n if (info.browser === 'android' && info.osversion < 5) {\n info.version = info.osversion;\n }\n\n return info;\n};\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/utils/getBrowserInformation.js\n// module id = 844\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (_ref) {\n var browser = _ref.browser;\n var version = _ref.version;\n var prefix = _ref.prefix;\n\n var prefixedKeyframes = 'keyframes';\n\n if (browser === 'chrome' && version < 43 || (browser === 'safari' || browser === 'ios_saf') && version < 9 || browser === 'opera' && version < 30 || browser === 'android' && version <= 4.4 || browser === 'and_uc') {\n prefixedKeyframes = prefix.css + prefixedKeyframes;\n }\n return prefixedKeyframes;\n};\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/utils/getPrefixedKeyframes.js\n// module id = 845\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (property) {\n return property.match(/^(Webkit|Moz|O|ms)/) !== null;\n};\n\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/utils/isPrefixedProperty.js\n// module id = 846\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (property) {\n var unprefixed = property.replace(/^(ms|Webkit|Moz|O)/, '');\n return unprefixed.charAt(0).toLowerCase() + unprefixed.slice(1);\n};\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/inline-style-prefixer/lib/utils/unprefixProperty.js\n// module id = 847\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = appendImportantToEachValue;\n\nvar _appendPxIfNeeded = require('./append-px-if-needed');\n\nvar _appendPxIfNeeded2 = _interopRequireDefault(_appendPxIfNeeded);\n\nvar _mapObject = require('./map-object');\n\nvar _mapObject2 = _interopRequireDefault(_mapObject);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction appendImportantToEachValue(style) {\n return (0, _mapObject2.default)(style, function (result, key) {\n return (0, _appendPxIfNeeded2.default)(key, style[key]) + ' !important';\n });\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/append-important-to-each-value.js\n// module id = 848\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _camelCaseRegex = /([a-z])?([A-Z])/g;\n\nvar _camelCaseReplacer = function _camelCaseReplacer(match, p1, p2) {\n return (p1 || '') + '-' + p2.toLowerCase();\n};\n\nvar _camelCaseToDashCase = function _camelCaseToDashCase(s) {\n return s.replace(_camelCaseRegex, _camelCaseReplacer);\n};\n\nvar camelCasePropsToDashCase = function camelCasePropsToDashCase(prefixedStyle) {\n // Since prefix is expected to work on inline style objects, we must\n // translate the keys to dash case for rendering to CSS.\n return Object.keys(prefixedStyle).reduce(function (result, key) {\n var dashCaseKey = _camelCaseToDashCase(key);\n\n // Fix IE vendor prefix\n if (/^ms-/.test(dashCaseKey)) {\n dashCaseKey = '-' + dashCaseKey;\n }\n\n result[dashCaseKey] = prefixedStyle[key];\n return result;\n }, {});\n};\n\nexports.default = camelCasePropsToDashCase;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/camel-case-props-to-dash-case.js\n// module id = 849\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _enhancer = require('../enhancer');\n\nvar _enhancer2 = _interopRequireDefault(_enhancer);\n\nvar _styleKeeper = require('../style-keeper');\n\nvar _styleKeeper2 = _interopRequireDefault(_styleKeeper);\n\nvar _styleSheet = require('./style-sheet');\n\nvar _styleSheet2 = _interopRequireDefault(_styleSheet);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _getStyleKeeper(instance) {\n if (!instance._radiumStyleKeeper) {\n var userAgent = instance.props.radiumConfig && instance.props.radiumConfig.userAgent || instance.context._radiumConfig && instance.context._radiumConfig.userAgent;\n instance._radiumStyleKeeper = new _styleKeeper2.default(userAgent);\n }\n\n return instance._radiumStyleKeeper;\n}\n\nvar StyleRoot = function (_PureComponent) {\n _inherits(StyleRoot, _PureComponent);\n\n function StyleRoot() {\n _classCallCheck(this, StyleRoot);\n\n var _this = _possibleConstructorReturn(this, _PureComponent.apply(this, arguments));\n\n _getStyleKeeper(_this);\n return _this;\n }\n\n StyleRoot.prototype.getChildContext = function getChildContext() {\n return { _radiumStyleKeeper: _getStyleKeeper(this) };\n };\n\n StyleRoot.prototype.render = function render() {\n /* eslint-disable no-unused-vars */\n // Pass down all props except config to the rendered div.\n var _props = this.props,\n radiumConfig = _props.radiumConfig,\n otherProps = _objectWithoutProperties(_props, ['radiumConfig']);\n /* eslint-enable no-unused-vars */\n\n return _react2.default.createElement(\n 'div',\n otherProps,\n this.props.children,\n _react2.default.createElement(_styleSheet2.default, null)\n );\n };\n\n return StyleRoot;\n}(_react.PureComponent);\n\nStyleRoot.contextTypes = {\n _radiumConfig: _react.PropTypes.object,\n _radiumStyleKeeper: _react.PropTypes.instanceOf(_styleKeeper2.default)\n};\n\nStyleRoot.childContextTypes = {\n _radiumStyleKeeper: _react.PropTypes.instanceOf(_styleKeeper2.default)\n};\n\nStyleRoot = (0, _enhancer2.default)(StyleRoot);\n\nexports.default = StyleRoot;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/components/style-root.js\n// module id = 850\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = undefined;\n\nvar _class, _temp;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styleKeeper = require('../style-keeper');\n\nvar _styleKeeper2 = _interopRequireDefault(_styleKeeper);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar StyleSheet = (_temp = _class = function (_PureComponent) {\n _inherits(StyleSheet, _PureComponent);\n\n function StyleSheet() {\n _classCallCheck(this, StyleSheet);\n\n var _this = _possibleConstructorReturn(this, _PureComponent.apply(this, arguments));\n\n _this._onChange = function () {\n setTimeout(function () {\n _this._isMounted && _this.setState(_this._getCSSState());\n }, 0);\n };\n\n _this.state = _this._getCSSState();\n return _this;\n }\n\n StyleSheet.prototype.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n this._subscription = this.context._radiumStyleKeeper.subscribe(this._onChange);\n this._onChange();\n };\n\n StyleSheet.prototype.componentWillUnmount = function componentWillUnmount() {\n this._isMounted = false;\n if (this._subscription) {\n this._subscription.remove();\n }\n };\n\n StyleSheet.prototype._getCSSState = function _getCSSState() {\n return { css: this.context._radiumStyleKeeper.getCSS() };\n };\n\n StyleSheet.prototype.render = function render() {\n return _react2.default.createElement('style', { dangerouslySetInnerHTML: { __html: this.state.css } });\n };\n\n return StyleSheet;\n}(_react.PureComponent), _class.contextTypes = {\n _radiumStyleKeeper: _react2.default.PropTypes.instanceOf(_styleKeeper2.default)\n}, _temp);\nexports.default = StyleSheet;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/components/style-sheet.js\n// module id = 851\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _class, _temp;\n\nvar _cssRuleSetToString = require('../css-rule-set-to-string');\n\nvar _cssRuleSetToString2 = _interopRequireDefault(_cssRuleSetToString);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Style = (_temp = _class = function (_PureComponent) {\n _inherits(Style, _PureComponent);\n\n function Style() {\n _classCallCheck(this, Style);\n\n return _possibleConstructorReturn(this, _PureComponent.apply(this, arguments));\n }\n\n Style.prototype._buildStyles = function _buildStyles(styles) {\n var _this2 = this;\n\n var userAgent = this.props.radiumConfig && this.props.radiumConfig.userAgent || this.context && this.context._radiumConfig && this.context._radiumConfig.userAgent;\n\n var scopeSelector = this.props.scopeSelector;\n\n var rootRules = Object.keys(styles).reduce(function (accumulator, selector) {\n if (_typeof(styles[selector]) !== 'object') {\n accumulator[selector] = styles[selector];\n }\n\n return accumulator;\n }, {});\n var rootStyles = Object.keys(rootRules).length ? (0, _cssRuleSetToString2.default)(scopeSelector || '', rootRules, userAgent) : '';\n\n return rootStyles + Object.keys(styles).reduce(function (accumulator, selector) {\n var rules = styles[selector];\n\n if (selector === 'mediaQueries') {\n accumulator += _this2._buildMediaQueryString(rules);\n } else if (_typeof(styles[selector]) === 'object') {\n var completeSelector = scopeSelector ? selector.split(',').map(function (part) {\n return scopeSelector + ' ' + part.trim();\n }).join(',') : selector;\n\n accumulator += (0, _cssRuleSetToString2.default)(completeSelector, rules, userAgent);\n }\n\n return accumulator;\n }, '');\n };\n\n Style.prototype._buildMediaQueryString = function _buildMediaQueryString(stylesByMediaQuery) {\n var _this3 = this;\n\n var mediaQueryString = '';\n\n Object.keys(stylesByMediaQuery).forEach(function (query) {\n mediaQueryString += '@media ' + query + '{' + _this3._buildStyles(stylesByMediaQuery[query]) + '}';\n });\n\n return mediaQueryString;\n };\n\n Style.prototype.render = function render() {\n if (!this.props.rules) {\n return null;\n }\n\n var styles = this._buildStyles(this.props.rules);\n\n return _react2.default.createElement('style', { dangerouslySetInnerHTML: { __html: styles } });\n };\n\n return Style;\n}(_react.PureComponent), _class.propTypes = {\n radiumConfig: _react.PropTypes.object,\n rules: _react.PropTypes.object,\n scopeSelector: _react.PropTypes.string\n}, _class.contextTypes = {\n _radiumConfig: _react.PropTypes.object\n}, _class.defaultProps = {\n scopeSelector: ''\n}, _temp);\nexports.default = Style;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/components/style.js\n// module id = 852\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enhancer = require('./enhancer');\n\nvar _enhancer2 = _interopRequireDefault(_enhancer);\n\nvar _plugins = require('./plugins');\n\nvar _plugins2 = _interopRequireDefault(_plugins);\n\nvar _style = require('./components/style');\n\nvar _style2 = _interopRequireDefault(_style);\n\nvar _styleRoot = require('./components/style-root');\n\nvar _styleRoot2 = _interopRequireDefault(_styleRoot);\n\nvar _getState = require('./get-state');\n\nvar _getState2 = _interopRequireDefault(_getState);\n\nvar _keyframes = require('./keyframes');\n\nvar _keyframes2 = _interopRequireDefault(_keyframes);\n\nvar _resolveStyles = require('./resolve-styles');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction Radium(ComposedComponent) {\n return (0, _enhancer2.default)(ComposedComponent);\n}\n\nRadium.Plugins = _plugins2.default;\nRadium.Style = _style2.default;\nRadium.StyleRoot = _styleRoot2.default;\nRadium.getState = _getState2.default;\nRadium.keyframes = _keyframes2.default;\n\nif (process.env.NODE_ENV !== 'production') {\n Radium.TestMode = {\n clearState: _resolveStyles.__clearStateForTests,\n disable: _resolveStyles.__setTestMode.bind(null, false),\n enable: _resolveStyles.__setTestMode.bind(null, true)\n };\n}\n\nexports.default = Radium;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/index.js\n// module id = 853\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = keyframes;\n\nvar _cssRuleSetToString = require('./css-rule-set-to-string');\n\nvar _cssRuleSetToString2 = _interopRequireDefault(_cssRuleSetToString);\n\nvar _hash = require('./hash');\n\nvar _hash2 = _interopRequireDefault(_hash);\n\nvar _prefixer = require('./prefixer');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction keyframes(keyframeRules, name) {\n return {\n __radiumKeyframes: true,\n __process: function __process(userAgent) {\n var keyframesPrefixed = (0, _prefixer.getPrefixedKeyframes)(userAgent);\n var rules = Object.keys(keyframeRules).map(function (percentage) {\n return (0, _cssRuleSetToString2.default)(percentage, keyframeRules[percentage], userAgent);\n }).join('\\n');\n var animationName = (name ? name + '-' : '') + 'radium-animation-' + (0, _hash2.default)(rules);\n var css = '@' + keyframesPrefixed + ' ' + animationName + ' {\\n' + rules + '\\n}\\n';\n return { css: css, animationName: animationName };\n }\n };\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/keyframes.js\n// module id = 854\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.isNestedStyle = isNestedStyle;\nexports.mergeStyles = mergeStyles;\nfunction isNestedStyle(value) {\n // Don't merge objects overriding toString, since they should be converted\n // to string values.\n return value && value.constructor === Object && value.toString === Object.prototype.toString;\n}\n\n// Merge style objects. Deep merge plain object values.\nfunction mergeStyles(styles) {\n var result = {};\n\n styles.forEach(function (style) {\n if (!style || (typeof style === 'undefined' ? 'undefined' : _typeof(style)) !== 'object') {\n return;\n }\n\n if (Array.isArray(style)) {\n style = mergeStyles(style);\n }\n\n Object.keys(style).forEach(function (key) {\n // Simple case, nothing nested\n if (!isNestedStyle(style[key]) || !isNestedStyle(result[key])) {\n result[key] = style[key];\n return;\n }\n\n // If nested media, don't merge the nested styles, append a space to the\n // end (benign when converted to CSS). This way we don't end up merging\n // media queries that appear later in the chain with those that appear\n // earlier.\n if (key.indexOf('@media') === 0) {\n var newKey = key;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n newKey += ' ';\n if (!result[newKey]) {\n result[newKey] = style[key];\n return;\n }\n }\n }\n\n // Merge all other nested styles recursively\n result[key] = mergeStyles([result[key], style[key]]);\n });\n });\n\n return result;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/merge-styles.js\n// module id = 855\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _checkProps = function checkProps() {};\n\nif (process.env.NODE_ENV !== 'production') {\n // Warn if you use longhand and shorthand properties in the same style\n // object.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties\n\n var shorthandPropertyExpansions = {\n background: ['backgroundAttachment', 'backgroundBlendMode', 'backgroundClip', 'backgroundColor', 'backgroundImage', 'backgroundOrigin', 'backgroundPosition', 'backgroundPositionX', 'backgroundPositionY', 'backgroundRepeat', 'backgroundRepeatX', 'backgroundRepeatY', 'backgroundSize'],\n border: ['borderBottom', 'borderBottomColor', 'borderBottomStyle', 'borderBottomWidth', 'borderColor', 'borderLeft', 'borderLeftColor', 'borderLeftStyle', 'borderLeftWidth', 'borderRight', 'borderRightColor', 'borderRightStyle', 'borderRightWidth', 'borderStyle', 'borderTop', 'borderTopColor', 'borderTopStyle', 'borderTopWidth', 'borderWidth'],\n borderImage: ['borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth'],\n borderRadius: ['borderBottomLeftRadius', 'borderBottomRightRadius', 'borderTopLeftRadius', 'borderTopRightRadius'],\n font: ['fontFamily', 'fontKerning', 'fontSize', 'fontStretch', 'fontStyle', 'fontVariant', 'fontVariantLigatures', 'fontWeight', 'lineHeight'],\n listStyle: ['listStyleImage', 'listStylePosition', 'listStyleType'],\n margin: ['marginBottom', 'marginLeft', 'marginRight', 'marginTop'],\n padding: ['paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop'],\n transition: ['transitionDelay', 'transitionDuration', 'transitionProperty', 'transitionTimingFunction']\n };\n\n _checkProps = function checkProps(config) {\n var componentName = config.componentName,\n style = config.style;\n\n if ((typeof style === 'undefined' ? 'undefined' : _typeof(style)) !== 'object' || !style) {\n return;\n }\n\n var styleKeys = Object.keys(style);\n styleKeys.forEach(function (styleKey) {\n if (Array.isArray(shorthandPropertyExpansions[styleKey]) && shorthandPropertyExpansions[styleKey].some(function (sp) {\n return styleKeys.indexOf(sp) !== -1;\n })) {\n if (process.env.NODE_ENV !== 'production') {\n /* eslint-disable no-console */\n console.warn('Radium: property \"' + styleKey + '\" in style object', style, ': do not mix longhand and ' + 'shorthand properties in the same style object. Check the render ' + 'method of ' + componentName + '.', 'See https://github.com/FormidableLabs/radium/issues/95 for more ' + 'information.');\n /* eslint-enable no-console */\n }\n }\n });\n\n styleKeys.forEach(function (k) {\n return _checkProps(_extends({}, config, { style: style[k] }));\n });\n return;\n };\n}\n\nexports.default = _checkProps;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/plugins/check-props-plugin.js\n// module id = 856\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = keyframesPlugin;\nfunction keyframesPlugin(_ref) {\n var addCSS = _ref.addCSS,\n config = _ref.config,\n style = _ref.style;\n\n var newStyle = Object.keys(style).reduce(function (newStyleInProgress, key) {\n var value = style[key];\n if (key === 'animationName' && value && value.__radiumKeyframes) {\n var keyframesValue = value;\n\n var _keyframesValue$__pro = keyframesValue.__process(config.userAgent),\n animationName = _keyframesValue$__pro.animationName,\n css = _keyframesValue$__pro.css;\n\n addCSS(css);\n value = animationName;\n }\n\n newStyleInProgress[key] = value;\n return newStyleInProgress;\n }, {});\n return { style: newStyle };\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/plugins/keyframes-plugin.js\n// module id = 857\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n\n// Convenient syntax for multiple styles: `style={[style1, style2, etc]}`\n// Ignores non-objects, so you can do `this.state.isCool && styles.cool`.\nvar mergeStyleArrayPlugin = function mergeStyleArrayPlugin(_ref) {\n var style = _ref.style,\n mergeStyles = _ref.mergeStyles;\n\n // eslint-disable-line no-shadow\n var newStyle = Array.isArray(style) ? mergeStyles(style) : style;\n return { style: newStyle };\n};\n\nexports.default = mergeStyleArrayPlugin;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/plugins/merge-style-array-plugin.js\n// module id = 858\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _callbacks = [];\nvar _mouseUpListenerIsActive = false;\n\nfunction _handleMouseUp() {\n _callbacks.forEach(function (callback) {\n callback();\n });\n}\n\nvar subscribe = function subscribe(callback) {\n if (_callbacks.indexOf(callback) === -1) {\n _callbacks.push(callback);\n }\n\n if (!_mouseUpListenerIsActive) {\n window.addEventListener('mouseup', _handleMouseUp);\n _mouseUpListenerIsActive = true;\n }\n\n return {\n remove: function remove() {\n var index = _callbacks.indexOf(callback);\n _callbacks.splice(index, 1);\n\n if (_callbacks.length === 0 && _mouseUpListenerIsActive) {\n window.removeEventListener('mouseup', _handleMouseUp);\n _mouseUpListenerIsActive = false;\n }\n }\n };\n};\n\nexports.default = {\n subscribe: subscribe,\n __triggerForTests: _handleMouseUp\n};\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/plugins/mouse-up-listener.js\n// module id = 859\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixPlugin;\n\nvar _prefixer = require('../prefixer');\n\nfunction prefixPlugin(_ref) {\n var config = _ref.config,\n style = _ref.style;\n\n var newStyle = (0, _prefixer.getPrefixedStyle)(style, config.userAgent);\n return { style: newStyle };\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/plugins/prefix-plugin.js\n// module id = 860\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = removeNestedStyles;\nfunction removeNestedStyles(_ref) {\n var isNestedStyle = _ref.isNestedStyle,\n style = _ref.style;\n\n // eslint-disable-line no-shadow\n var newStyle = Object.keys(style).reduce(function (newStyleInProgress, key) {\n var value = style[key];\n if (!isNestedStyle(value)) {\n newStyleInProgress[key] = value;\n }\n return newStyleInProgress;\n }, {});\n\n return {\n style: newStyle\n };\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/plugins/remove-nested-styles-plugin.js\n// module id = 861\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _mouseUpListener = require('./mouse-up-listener');\n\nvar _mouseUpListener2 = _interopRequireDefault(_mouseUpListener);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _isInteractiveStyleField = function _isInteractiveStyleField(styleFieldName) {\n return styleFieldName === ':hover' || styleFieldName === ':active' || styleFieldName === ':focus';\n};\n\nvar resolveInteractionStyles = function resolveInteractionStyles(config) {\n var ExecutionEnvironment = config.ExecutionEnvironment,\n getComponentField = config.getComponentField,\n getState = config.getState,\n mergeStyles = config.mergeStyles,\n props = config.props,\n setState = config.setState,\n style = config.style;\n\n\n var newComponentFields = {};\n var newProps = {};\n\n // Only add handlers if necessary\n if (style[':hover']) {\n // Always call the existing handler if one is already defined.\n // This code, and the very similar ones below, could be abstracted a bit\n // more, but it hurts readability IMO.\n var existingOnMouseEnter = props.onMouseEnter;\n newProps.onMouseEnter = function (e) {\n existingOnMouseEnter && existingOnMouseEnter(e);\n setState(':hover', true);\n };\n\n var existingOnMouseLeave = props.onMouseLeave;\n newProps.onMouseLeave = function (e) {\n existingOnMouseLeave && existingOnMouseLeave(e);\n setState(':hover', false);\n };\n }\n\n if (style[':active']) {\n var existingOnMouseDown = props.onMouseDown;\n newProps.onMouseDown = function (e) {\n existingOnMouseDown && existingOnMouseDown(e);\n newComponentFields._lastMouseDown = Date.now();\n setState(':active', 'viamousedown');\n };\n\n var existingOnKeyDown = props.onKeyDown;\n newProps.onKeyDown = function (e) {\n existingOnKeyDown && existingOnKeyDown(e);\n if (e.key === ' ' || e.key === 'Enter') {\n setState(':active', 'viakeydown');\n }\n };\n\n var existingOnKeyUp = props.onKeyUp;\n newProps.onKeyUp = function (e) {\n existingOnKeyUp && existingOnKeyUp(e);\n if (e.key === ' ' || e.key === 'Enter') {\n setState(':active', false);\n }\n };\n }\n\n if (style[':focus']) {\n var existingOnFocus = props.onFocus;\n newProps.onFocus = function (e) {\n existingOnFocus && existingOnFocus(e);\n setState(':focus', true);\n };\n\n var existingOnBlur = props.onBlur;\n newProps.onBlur = function (e) {\n existingOnBlur && existingOnBlur(e);\n setState(':focus', false);\n };\n }\n\n if (style[':active'] && !getComponentField('_radiumMouseUpListener') && ExecutionEnvironment.canUseEventListeners) {\n newComponentFields._radiumMouseUpListener = _mouseUpListener2.default.subscribe(function () {\n Object.keys(getComponentField('state')._radiumStyleState).forEach(function (key) {\n if (getState(':active', key) === 'viamousedown') {\n setState(':active', false, key);\n }\n });\n });\n }\n\n // Merge the styles in the order they were defined\n var interactionStyles = props.disabled ? [style[':disabled']] : Object.keys(style).filter(function (name) {\n return _isInteractiveStyleField(name) && getState(name);\n }).map(function (name) {\n return style[name];\n });\n\n var newStyle = mergeStyles([style].concat(interactionStyles));\n\n // Remove interactive styles\n newStyle = Object.keys(newStyle).reduce(function (styleWithoutInteractions, name) {\n if (!_isInteractiveStyleField(name) && name !== ':disabled') {\n styleWithoutInteractions[name] = newStyle[name];\n }\n return styleWithoutInteractions;\n }, {});\n\n return {\n componentFields: newComponentFields,\n props: newProps,\n style: newStyle\n };\n};\n\nexports.default = resolveInteractionStyles;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/plugins/resolve-interaction-styles-plugin.js\n// module id = 862\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = resolveMediaQueries;\nvar _windowMatchMedia = void 0;\nfunction _getWindowMatchMedia(ExecutionEnvironment) {\n if (_windowMatchMedia === undefined) {\n _windowMatchMedia = !!ExecutionEnvironment.canUseDOM && !!window && !!window.matchMedia && function (mediaQueryString) {\n return window.matchMedia(mediaQueryString);\n } || null;\n }\n return _windowMatchMedia;\n}\n\nfunction _filterObject(obj, predicate) {\n return Object.keys(obj).filter(function (key) {\n return predicate(obj[key], key);\n }).reduce(function (result, key) {\n result[key] = obj[key];\n return result;\n }, {});\n}\n\nfunction _removeMediaQueries(style) {\n return Object.keys(style).reduce(function (styleWithoutMedia, key) {\n if (key.indexOf('@media') !== 0) {\n styleWithoutMedia[key] = style[key];\n }\n return styleWithoutMedia;\n }, {});\n}\n\nfunction _topLevelRulesToCSS(_ref) {\n var addCSS = _ref.addCSS,\n appendImportantToEachValue = _ref.appendImportantToEachValue,\n cssRuleSetToString = _ref.cssRuleSetToString,\n hash = _ref.hash,\n isNestedStyle = _ref.isNestedStyle,\n style = _ref.style,\n userAgent = _ref.userAgent;\n\n var className = '';\n Object.keys(style).filter(function (name) {\n return name.indexOf('@media') === 0;\n }).map(function (query) {\n var topLevelRules = appendImportantToEachValue(_filterObject(style[query], function (value) {\n return !isNestedStyle(value);\n }));\n\n if (!Object.keys(topLevelRules).length) {\n return;\n }\n\n var ruleCSS = cssRuleSetToString('', topLevelRules, userAgent);\n\n // CSS classes cannot start with a number\n var mediaQueryClassName = 'rmq-' + hash(query + ruleCSS);\n var css = query + '{ .' + mediaQueryClassName + ruleCSS + '}';\n\n addCSS(css);\n\n className += (className ? ' ' : '') + mediaQueryClassName;\n });\n return className;\n}\n\nfunction _subscribeToMediaQuery(_ref2) {\n var listener = _ref2.listener,\n listenersByQuery = _ref2.listenersByQuery,\n matchMedia = _ref2.matchMedia,\n mediaQueryListsByQuery = _ref2.mediaQueryListsByQuery,\n query = _ref2.query;\n\n query = query.replace('@media ', '');\n\n var mql = mediaQueryListsByQuery[query];\n if (!mql && matchMedia) {\n mediaQueryListsByQuery[query] = mql = matchMedia(query);\n }\n\n if (!listenersByQuery || !listenersByQuery[query]) {\n mql.addListener(listener);\n\n listenersByQuery[query] = {\n remove: function remove() {\n mql.removeListener(listener);\n }\n };\n }\n return mql;\n}\n\nfunction resolveMediaQueries(_ref3) {\n var ExecutionEnvironment = _ref3.ExecutionEnvironment,\n addCSS = _ref3.addCSS,\n appendImportantToEachValue = _ref3.appendImportantToEachValue,\n config = _ref3.config,\n cssRuleSetToString = _ref3.cssRuleSetToString,\n getComponentField = _ref3.getComponentField,\n getGlobalState = _ref3.getGlobalState,\n hash = _ref3.hash,\n isNestedStyle = _ref3.isNestedStyle,\n mergeStyles = _ref3.mergeStyles,\n props = _ref3.props,\n setState = _ref3.setState,\n style = _ref3.style;\n\n // eslint-disable-line no-shadow\n var newStyle = _removeMediaQueries(style);\n var mediaQueryClassNames = _topLevelRulesToCSS({\n addCSS: addCSS,\n appendImportantToEachValue: appendImportantToEachValue,\n cssRuleSetToString: cssRuleSetToString,\n hash: hash,\n isNestedStyle: isNestedStyle,\n style: style,\n userAgent: config.userAgent\n });\n\n var newProps = mediaQueryClassNames ? {\n className: mediaQueryClassNames + (props.className ? ' ' + props.className : '')\n } : null;\n\n var matchMedia = config.matchMedia || _getWindowMatchMedia(ExecutionEnvironment);\n\n if (!matchMedia) {\n return {\n props: newProps,\n style: newStyle\n };\n }\n\n var listenersByQuery = _extends({}, getComponentField('_radiumMediaQueryListenersByQuery'));\n var mediaQueryListsByQuery = getGlobalState('mediaQueryListsByQuery') || {};\n\n Object.keys(style).filter(function (name) {\n return name.indexOf('@media') === 0;\n }).map(function (query) {\n var nestedRules = _filterObject(style[query], isNestedStyle);\n\n if (!Object.keys(nestedRules).length) {\n return;\n }\n\n var mql = _subscribeToMediaQuery({\n listener: function listener() {\n return setState(query, mql.matches, '_all');\n },\n listenersByQuery: listenersByQuery,\n matchMedia: matchMedia,\n mediaQueryListsByQuery: mediaQueryListsByQuery,\n query: query\n });\n\n // Apply media query states\n if (mql.matches) {\n newStyle = mergeStyles([newStyle, nestedRules]);\n }\n });\n\n return {\n componentFields: {\n _radiumMediaQueryListenersByQuery: listenersByQuery\n },\n globalState: { mediaQueryListsByQuery: mediaQueryListsByQuery },\n props: newProps,\n style: newStyle\n };\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/plugins/resolve-media-queries-plugin.js\n// module id = 863\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = visited;\nfunction visited(_ref) {\n var addCSS = _ref.addCSS,\n appendImportantToEachValue = _ref.appendImportantToEachValue,\n config = _ref.config,\n cssRuleSetToString = _ref.cssRuleSetToString,\n hash = _ref.hash,\n props = _ref.props,\n style = _ref.style;\n\n // eslint-disable-line no-shadow\n var className = props.className;\n\n var newStyle = Object.keys(style).reduce(function (newStyleInProgress, key) {\n var value = style[key];\n if (key === ':visited') {\n value = appendImportantToEachValue(value);\n var ruleCSS = cssRuleSetToString('', value, config.userAgent);\n var visitedClassName = 'rad-' + hash(ruleCSS);\n var css = '.' + visitedClassName + ':visited' + ruleCSS;\n\n addCSS(css);\n className = (className ? className + ' ' : '') + visitedClassName;\n } else {\n newStyleInProgress[key] = value;\n }\n\n return newStyleInProgress;\n }, {});\n\n return {\n props: className === props.className ? null : { className: className },\n style: newStyle\n };\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-treebeard/~/radium/lib/plugins/visited-plugin.js\n// module id = 864\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getTickValuesFixedDomain = exports.getTickValues = exports.getNiceTickValues = void 0;\n\nvar _decimal = _interopRequireDefault(require(\"decimal.js-light\"));\n\nvar _utils = require(\"./util/utils\");\n\nvar _arithmetic = _interopRequireDefault(require(\"./util/arithmetic\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new _decimal.default(0);\n }\n\n var digitCount = _arithmetic.default.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n\n var digitCountValue = new _decimal.default(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new _decimal.default(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new _decimal.default(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new _decimal.default(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new _decimal.default(10).pow(_arithmetic.default.getDigitCount(value) - 1);\n middle = new _decimal.default(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new _decimal.default(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new _decimal.default(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new _decimal.default(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = (0, _utils.compose)((0, _utils.map)(function (n) {\n return middle.add(new _decimal.default(n - middleIndex).mul(step)).toNumber();\n }), _utils.range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new _decimal.default(0),\n tickMin: new _decimal.default(0),\n tickMax: new _decimal.default(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new _decimal.default(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new _decimal.default(0);\n } else {\n // calculate the middle value\n middle = new _decimal.default(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new _decimal.default(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new _decimal.default(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new _decimal.default(belowCount).mul(step)),\n tickMax: middle.add(new _decimal.default(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray((0, _utils.range)(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : _toConsumableArray((0, _utils.range)(0, tickCount - 1).map(function () {\n return -Infinity;\n })).concat([cormax]);\n\n return min > max ? (0, _utils.reverse)(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = _arithmetic.default.rangeStep(tickMin, tickMax.add(new _decimal.default(0.1).mul(step)), step);\n\n return min > max ? (0, _utils.reverse)(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new _decimal.default(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = (0, _utils.compose)((0, _utils.map)(function (n) {\n return new _decimal.default(cormin).add(new _decimal.default(n).mul(step)).toNumber();\n }), _utils.range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? (0, _utils.reverse)(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n // More than two ticks should be return\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new _decimal.default(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n\n var values = _toConsumableArray(_arithmetic.default.rangeStep(new _decimal.default(cormin), new _decimal.default(cormax).sub(new _decimal.default(0.99).mul(step)), step)).concat([cormax]);\n\n return min > max ? (0, _utils.reverse)(values) : values;\n}\n\nvar getNiceTickValues = (0, _utils.memoize)(getNiceTickValuesFn);\nexports.getNiceTickValues = getNiceTickValues;\nvar getTickValues = (0, _utils.memoize)(getTickValuesFn);\nexports.getTickValues = getTickValues;\nvar getTickValuesFixedDomain = (0, _utils.memoize)(getTickValuesFixedDomainFn);\nexports.getTickValuesFixedDomain = getTickValuesFixedDomain;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts-scale/lib/getNiceTickValues.js\n// module id = 865\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"getTickValues\", {\n enumerable: true,\n get: function get() {\n return _getNiceTickValues.getTickValues;\n }\n});\nObject.defineProperty(exports, \"getNiceTickValues\", {\n enumerable: true,\n get: function get() {\n return _getNiceTickValues.getNiceTickValues;\n }\n});\nObject.defineProperty(exports, \"getTickValuesFixedDomain\", {\n enumerable: true,\n get: function get() {\n return _getNiceTickValues.getTickValuesFixedDomain;\n }\n});\n\nvar _getNiceTickValues = require(\"./getNiceTickValues\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts-scale/lib/index.js\n// module id = 866\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _decimal = _interopRequireDefault(require(\"decimal.js-light\"));\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\n\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new _decimal.default(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new _decimal.default(start);\n var result = [];\n\n while (num.lt(end)) {\n result.push(num.toNumber());\n num = num.add(step);\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = (0, _utils.curry)(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = (0, _utils.curry)(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = (0, _utils.curry)(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nvar _default = {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};\nexports.default = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts-scale/lib/util/arithmetic.js\n// module id = 867\n// module chunks = 0","import _isFunction from \"lodash/isFunction\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Cartesian Grid\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport pureRender from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\n\nvar CartesianGrid = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(CartesianGrid, _Component);\n\n function CartesianGrid() {\n _classCallCheck(this, CartesianGrid);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(CartesianGrid).apply(this, arguments));\n }\n\n _createClass(CartesianGrid, [{\n key: \"renderHorizontal\",\n\n /**\n * Draw the horizontal grid lines\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal lines\n */\n value: function renderHorizontal(horizontalPoints) {\n var _this = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n width = _this$props.width,\n horizontal = _this$props.horizontal;\n\n if (!horizontalPoints || !horizontalPoints.length) {\n return null;\n }\n\n var items = horizontalPoints.map(function (entry, i) {\n var props = _objectSpread({}, _this.props, {\n x1: x,\n y1: entry,\n x2: x + width,\n y2: entry,\n key: \"line-\".concat(i),\n index: i\n });\n\n return _this.constructor.renderLineItem(horizontal, props);\n });\n return React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-horizontal\"\n }, items);\n }\n /**\n * Draw vertical grid lines\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical lines\n */\n\n }, {\n key: \"renderVertical\",\n value: function renderVertical(verticalPoints) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n y = _this$props2.y,\n height = _this$props2.height,\n vertical = _this$props2.vertical;\n\n if (!verticalPoints || !verticalPoints.length) {\n return null;\n }\n\n var items = verticalPoints.map(function (entry, i) {\n var props = _objectSpread({}, _this2.props, {\n x1: entry,\n y1: y,\n x2: entry,\n y2: y + height,\n key: \"line-\".concat(i),\n index: i\n });\n\n return _this2.constructor.renderLineItem(vertical, props);\n });\n return React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-vertical\"\n }, items);\n }\n /**\n * Draw vertical grid stripes filled by colors\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical stripes\n */\n\n }, {\n key: \"renderVerticalStripes\",\n value: function renderVerticalStripes(verticalPoints) {\n var verticalFill = this.props.verticalFill;\n\n if (!verticalFill || !verticalFill.length) {\n return null;\n }\n\n var _this$props3 = this.props,\n fillOpacity = _this$props3.fillOpacity,\n x = _this$props3.x,\n y = _this$props3.y,\n width = _this$props3.width,\n height = _this$props3.height;\n var verticalPointsUpdated = verticalPoints.slice().sort(function (a, b) {\n return a - b;\n });\n\n if (x !== verticalPointsUpdated[0]) {\n verticalPointsUpdated.unshift(0);\n }\n\n var items = verticalPointsUpdated.map(function (entry, i) {\n var lineWidth = verticalPointsUpdated[i + 1] ? verticalPointsUpdated[i + 1] - entry : x + width - entry;\n\n if (lineWidth <= 0) {\n return null;\n }\n\n var colorIndex = i % verticalFill.length;\n return React.createElement(\"rect\", {\n key: \"react-\".concat(i),\n x: Math.round(entry + x - x),\n y: y,\n width: lineWidth,\n height: height,\n stroke: \"none\",\n fill: verticalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-vertical\"\n }, items);\n }\n /**\n * Draw horizontal grid stripes filled by colors\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal stripes\n */\n\n }, {\n key: \"renderHorizontalStripes\",\n value: function renderHorizontalStripes(horizontalPoints) {\n var horizontalFill = this.props.horizontalFill;\n\n if (!horizontalFill || !horizontalFill.length) {\n return null;\n }\n\n var _this$props4 = this.props,\n fillOpacity = _this$props4.fillOpacity,\n x = _this$props4.x,\n y = _this$props4.y,\n width = _this$props4.width,\n height = _this$props4.height;\n var horizontalPointsUpdated = horizontalPoints.slice().sort(function (a, b) {\n return a - b;\n });\n\n if (y !== horizontalPointsUpdated[0]) {\n horizontalPointsUpdated.unshift(0);\n }\n\n var items = horizontalPointsUpdated.map(function (entry, i) {\n var lineHeight = horizontalPointsUpdated[i + 1] ? horizontalPointsUpdated[i + 1] - entry : y + height - entry;\n\n if (lineHeight <= 0) {\n return null;\n }\n\n var colorIndex = i % horizontalFill.length;\n return React.createElement(\"rect\", {\n key: \"react-\".concat(i),\n y: Math.round(entry + y - y),\n x: x,\n height: lineHeight,\n width: width,\n stroke: \"none\",\n fill: horizontalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-horizontal\"\n }, items);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var fill = this.props.fill;\n\n if (!fill || fill === 'none') {\n return null;\n }\n\n var _this$props5 = this.props,\n fillOpacity = _this$props5.fillOpacity,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height;\n return React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n stroke: \"none\",\n fill: fill,\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n horizontal = _this$props6.horizontal,\n vertical = _this$props6.vertical,\n horizontalCoordinatesGenerator = _this$props6.horizontalCoordinatesGenerator,\n verticalCoordinatesGenerator = _this$props6.verticalCoordinatesGenerator,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n offset = _this$props6.offset,\n chartWidth = _this$props6.chartWidth,\n chartHeight = _this$props6.chartHeight;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0 || !isNumber(x) || x !== +x || !isNumber(y) || y !== +y) {\n return null;\n }\n\n var _this$props7 = this.props,\n horizontalPoints = _this$props7.horizontalPoints,\n verticalPoints = _this$props7.verticalPoints; // No horizontal points are specified\n\n if ((!horizontalPoints || !horizontalPoints.length) && _isFunction(horizontalCoordinatesGenerator)) {\n horizontalPoints = horizontalCoordinatesGenerator({\n yAxis: yAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n } // No vertical points are specified\n\n\n if ((!verticalPoints || !verticalPoints.length) && _isFunction(verticalCoordinatesGenerator)) {\n verticalPoints = verticalCoordinatesGenerator({\n xAxis: xAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n }\n\n return React.createElement(\"g\", {\n className: \"recharts-cartesian-grid\"\n }, this.renderBackground(), horizontal && this.renderHorizontal(horizontalPoints), vertical && this.renderVertical(verticalPoints), horizontal && this.renderHorizontalStripes(horizontalPoints), vertical && this.renderVerticalStripes(verticalPoints));\n }\n }], [{\n key: \"renderLineItem\",\n value: function renderLineItem(option, props) {\n var lineItem;\n\n if (React.isValidElement(option)) {\n lineItem = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n lineItem = option(props);\n } else {\n var x1 = props.x1,\n y1 = props.y1,\n x2 = props.x2,\n y2 = props.y2,\n key = props.key,\n others = _objectWithoutProperties(props, [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"]);\n\n lineItem = React.createElement(\"line\", _extends({}, getPresentationAttributes(others), {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n fill: \"none\",\n key: key\n }));\n }\n\n return lineItem;\n }\n }]);\n\n return CartesianGrid;\n}(Component), _class2.displayName = 'CartesianGrid', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n horizontal: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool]),\n vertical: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool]),\n horizontalPoints: PropTypes.arrayOf(PropTypes.number),\n verticalPoints: PropTypes.arrayOf(PropTypes.number),\n horizontalCoordinatesGenerator: PropTypes.func,\n verticalCoordinatesGenerator: PropTypes.func,\n xAxis: PropTypes.object,\n yAxis: PropTypes.object,\n offset: PropTypes.object,\n chartWidth: PropTypes.number,\n chartHeight: PropTypes.number,\n verticalFill: PropTypes.arrayOf(PropTypes.string),\n horizontalFill: PropTypes.arrayOf(PropTypes.string)\n}), _class2.defaultProps = {\n horizontal: true,\n vertical: true,\n // The ordinates of horizontal grid lines\n horizontalPoints: [],\n // The abscissas of vertical grid lines\n verticalPoints: [],\n stroke: '#ccc',\n fill: 'none',\n // The fill of colors of grid lines\n verticalFill: [],\n horizontalFill: []\n}, _temp)) || _class;\n\nexport default CartesianGrid;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/cartesian/CartesianGrid.js\n// module id = 868\n// module chunks = 0","/**\n * @fileOverview Area Chart\n */\nimport generateCategoricalChart from './generateCategoricalChart';\nimport Area from '../cartesian/Area';\nimport XAxis from '../cartesian/XAxis';\nimport YAxis from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport default generateCategoricalChart({\n chartName: 'AreaChart',\n GraphicalChild: Area,\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/chart/AreaChart.js\n// module id = 869\n// module chunks = 0","/**\n * @fileOverview Bar Chart\n */\nimport generateCategoricalChart from './generateCategoricalChart';\nimport Bar from '../cartesian/Bar';\nimport XAxis from '../cartesian/XAxis';\nimport YAxis from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport default generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/chart/BarChart.js\n// module id = 870\n// module chunks = 0","/**\n * @fileOverview Composed Chart\n */\nimport generateCategoricalChart from './generateCategoricalChart';\nimport Area from '../cartesian/Area';\nimport Bar from '../cartesian/Bar';\nimport Line from '../cartesian/Line';\nimport Scatter from '../cartesian/Scatter';\nimport XAxis from '../cartesian/XAxis';\nimport YAxis from '../cartesian/YAxis';\nimport ZAxis from '../cartesian/ZAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport default generateCategoricalChart({\n chartName: 'ComposedChart',\n GraphicalChild: [Line, Area, Bar, Scatter],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }, {\n axisType: 'zAxis',\n AxisComp: ZAxis\n }],\n formatAxisMap: formatAxisMap\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/chart/ComposedChart.js\n// module id = 871\n// module chunks = 0","/**\n * @fileOverview Funnel Chart\n */\nimport PropTypes from 'prop-types';\nimport generateCategoricalChart from './generateCategoricalChart';\nimport Funnel from '../numberAxis/Funnel';\nexport default generateCategoricalChart({\n chartName: 'FunnelChart',\n GraphicalChild: Funnel,\n eventType: 'item',\n axisComponents: [],\n defaultProps: {\n layout: 'centric'\n },\n propTypes: {\n layout: PropTypes.oneOf(['centric'])\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/chart/FunnelChart.js\n// module id = 872\n// module chunks = 0","/**\n * @fileOverview Line Chart\n */\nimport generateCategoricalChart from './generateCategoricalChart';\nimport Line from '../cartesian/Line';\nimport XAxis from '../cartesian/XAxis';\nimport YAxis from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport default generateCategoricalChart({\n chartName: 'LineChart',\n GraphicalChild: Line,\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/chart/LineChart.js\n// module id = 873\n// module chunks = 0","/**\n * @fileOverview Pie Chart\n */\nimport PropTypes from 'prop-types';\nimport generateCategoricalChart from './generateCategoricalChart';\nimport PolarAngleAxis from '../polar/PolarAngleAxis';\nimport PolarRadiusAxis from '../polar/PolarRadiusAxis';\nimport { formatAxisMap } from '../util/PolarUtils';\nimport Pie from '../polar/Pie';\nexport default generateCategoricalChart({\n chartName: 'PieChart',\n GraphicalChild: Pie,\n eventType: 'item',\n legendContent: 'children',\n axisComponents: [{\n axisType: 'angleAxis',\n AxisComp: PolarAngleAxis\n }, {\n axisType: 'radiusAxis',\n AxisComp: PolarRadiusAxis\n }],\n formatAxisMap: formatAxisMap,\n defaultProps: {\n layout: 'centric',\n startAngle: 0,\n endAngle: 360,\n cx: '50%',\n cy: '50%',\n innerRadius: 0,\n outerRadius: '80%'\n },\n propTypes: {\n layout: PropTypes.oneOf(['centric']),\n startAngle: PropTypes.number,\n endAngle: PropTypes.number,\n cx: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n cy: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n innerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n outerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/chart/PieChart.js\n// module id = 874\n// module chunks = 0","/**\n * @fileOverview Radar Chart\n */\nimport PropTypes from 'prop-types';\nimport generateCategoricalChart from './generateCategoricalChart';\nimport Radar from '../polar/Radar';\nimport PolarAngleAxis from '../polar/PolarAngleAxis';\nimport PolarRadiusAxis from '../polar/PolarRadiusAxis';\nimport { formatAxisMap } from '../util/PolarUtils';\nexport default generateCategoricalChart({\n chartName: 'RadarChart',\n GraphicalChild: Radar,\n axisComponents: [{\n axisType: 'angleAxis',\n AxisComp: PolarAngleAxis\n }, {\n axisType: 'radiusAxis',\n AxisComp: PolarRadiusAxis\n }],\n formatAxisMap: formatAxisMap,\n defaultProps: {\n layout: 'centric',\n startAngle: 90,\n endAngle: -270,\n cx: '50%',\n cy: '50%',\n innerRadius: 0,\n outerRadius: '80%'\n },\n propTypes: {\n layout: PropTypes.oneOf(['centric']),\n startAngle: PropTypes.number,\n endAngle: PropTypes.number,\n cx: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n cy: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n innerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n outerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/chart/RadarChart.js\n// module id = 875\n// module chunks = 0","/**\n * @fileOverview Radar Bar Chart\n */\nimport PropTypes from 'prop-types';\nimport generateCategoricalChart from './generateCategoricalChart';\nimport PolarAngleAxis from '../polar/PolarAngleAxis';\nimport PolarRadiusAxis from '../polar/PolarRadiusAxis';\nimport { formatAxisMap } from '../util/PolarUtils';\nimport RadialBar from '../polar/RadialBar';\nexport default generateCategoricalChart({\n chartName: 'RadialBarChart',\n GraphicalChild: RadialBar,\n legendContent: 'children',\n axisComponents: [{\n axisType: 'angleAxis',\n AxisComp: PolarAngleAxis\n }, {\n axisType: 'radiusAxis',\n AxisComp: PolarRadiusAxis\n }],\n formatAxisMap: formatAxisMap,\n defaultProps: {\n layout: 'radial',\n startAngle: 0,\n endAngle: 360,\n cx: '50%',\n cy: '50%',\n innerRadius: 0,\n outerRadius: '80%'\n },\n propTypes: {\n layout: PropTypes.oneOf(['radial']),\n startAngle: PropTypes.number,\n endAngle: PropTypes.number,\n cx: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n cy: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n innerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n outerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/chart/RadialBarChart.js\n// module id = 876\n// module chunks = 0","import _isFunction from \"lodash/isFunction\";\nimport _sumBy from \"lodash/sumBy\";\nimport _min from \"lodash/min\";\nimport _maxBy from \"lodash/maxBy\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * @file TreemapChart\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Surface from '../container/Surface';\nimport Layer from '../container/Layer';\nimport Tooltip from '../component/Tooltip';\nimport Rectangle from '../shape/Rectangle';\nimport pureRender, { shallowEqual } from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, EVENT_ATTRIBUTES, filterSvgElements, validateWidthHeight, findChildByType } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nvar defaultCoordinateOfTooltip = {\n x: 0,\n y: 0\n};\n\nvar interpolationGenerator = function interpolationGenerator(a, b) {\n var ka = +a;\n var kb = b - ka;\n return function (t) {\n return ka + kb * t;\n };\n};\n\nvar centerY = function centerY(node) {\n return node.y + node.dy / 2;\n};\n\nvar getValue = function getValue(entry) {\n return entry && entry.value || 0;\n};\n\nvar getSumOfIds = function getSumOfIds(links, ids) {\n return ids.reduce(function (result, id) {\n return result + getValue(links[id]);\n }, 0);\n};\n\nvar getSumWithWeightedSource = function getSumWithWeightedSource(tree, links, ids) {\n return ids.reduce(function (result, id) {\n var link = links[id];\n var sourceNode = tree[link.source];\n return result + centerY(sourceNode) * getValue(links[id]);\n }, 0);\n};\n\nvar getSumWithWeightedTarget = function getSumWithWeightedTarget(tree, links, ids) {\n return ids.reduce(function (result, id) {\n var link = links[id];\n var targetNode = tree[link.target];\n return result + centerY(targetNode) * getValue(links[id]);\n }, 0);\n};\n\nvar ascendingY = function ascendingY(a, b) {\n return a.y - b.y;\n};\n\nvar searchTargetsAndSources = function searchTargetsAndSources(links, id) {\n var sourceNodes = [];\n var sourceLinks = [];\n var targetNodes = [];\n var targetLinks = [];\n\n for (var i = 0, len = links.length; i < len; i++) {\n var link = links[i];\n\n if (link.source === id) {\n targetNodes.push(link.target);\n targetLinks.push(i);\n }\n\n if (link.target === id) {\n sourceNodes.push(link.source);\n sourceLinks.push(i);\n }\n }\n\n return {\n sourceNodes: sourceNodes,\n sourceLinks: sourceLinks,\n targetLinks: targetLinks,\n targetNodes: targetNodes\n };\n};\n\nvar updateDepthOfTargets = function updateDepthOfTargets(tree, curNode) {\n var targetNodes = curNode.targetNodes;\n\n for (var i = 0, len = targetNodes.length; i < len; i++) {\n var target = tree[targetNodes[i]];\n\n if (target) {\n target.depth = Math.max(curNode.depth + 1, target.depth);\n updateDepthOfTargets(tree, target);\n }\n }\n};\n\nvar getNodesTree = function getNodesTree(_ref, width, nodeWidth) {\n var nodes = _ref.nodes,\n links = _ref.links;\n var tree = nodes.map(function (entry, index) {\n var result = searchTargetsAndSources(links, index);\n return _objectSpread({}, entry, result, {\n value: Math.max(getSumOfIds(links, result.sourceLinks), getSumOfIds(links, result.targetLinks)),\n depth: 0\n });\n });\n\n for (var i = 0, len = tree.length; i < len; i++) {\n var node = tree[i];\n\n if (!node.sourceNodes.length) {\n updateDepthOfTargets(tree, node);\n }\n }\n\n var maxDepth = _maxBy(tree, function (entry) {\n return entry.depth;\n }).depth;\n\n if (maxDepth >= 1) {\n var childWidth = (width - nodeWidth) / maxDepth;\n\n for (var _i = 0, _len = tree.length; _i < _len; _i++) {\n var _node = tree[_i];\n\n if (!_node.targetNodes.length) {\n _node.depth = maxDepth;\n }\n\n _node.x = _node.depth * childWidth;\n _node.dx = nodeWidth;\n }\n }\n\n return {\n tree: tree,\n maxDepth: maxDepth\n };\n};\n\nvar getDepthTree = function getDepthTree(tree) {\n var result = [];\n\n for (var i = 0, len = tree.length; i < len; i++) {\n var node = tree[i];\n\n if (!result[node.depth]) {\n result[node.depth] = [];\n }\n\n result[node.depth].push(node);\n }\n\n return result;\n};\n\nvar updateYOfTree = function updateYOfTree(depthTree, height, nodePadding, links) {\n var yRatio = _min(depthTree.map(function (nodes) {\n return (height - (nodes.length - 1) * nodePadding) / _sumBy(nodes, getValue);\n }));\n\n for (var d = 0, maxDepth = depthTree.length; d < maxDepth; d++) {\n for (var i = 0, len = depthTree[d].length; i < len; i++) {\n var node = depthTree[d][i];\n node.y = i;\n node.dy = node.value * yRatio;\n }\n }\n\n return links.map(function (link) {\n return _objectSpread({}, link, {\n dy: getValue(link) * yRatio\n });\n });\n};\n\nvar resolveCollisions = function resolveCollisions(depthTree, height, nodePadding) {\n for (var i = 0, len = depthTree.length; i < len; i++) {\n var nodes = depthTree[i];\n var n = nodes.length; // Sort by the value of y\n\n nodes.sort(ascendingY);\n var y0 = 0;\n\n for (var j = 0; j < n; j++) {\n var node = nodes[j];\n var dy = y0 - node.y;\n\n if (dy > 0) {\n node.y += dy;\n }\n\n y0 = node.y + node.dy + nodePadding;\n }\n\n y0 = height + nodePadding;\n\n for (var _j = n - 1; _j >= 0; _j--) {\n var _node2 = nodes[_j];\n\n var _dy = _node2.y + _node2.dy + nodePadding - y0;\n\n if (_dy > 0) {\n _node2.y -= _dy;\n y0 = _node2.y;\n } else {\n break;\n }\n }\n }\n};\n\nvar relaxLeftToRight = function relaxLeftToRight(tree, depthTree, links, alpha) {\n for (var i = 0, maxDepth = depthTree.length; i < maxDepth; i++) {\n var nodes = depthTree[i];\n\n for (var j = 0, len = nodes.length; j < len; j++) {\n var node = nodes[j];\n\n if (node.sourceLinks.length) {\n var sourceSum = getSumOfIds(links, node.sourceLinks);\n var weightedSum = getSumWithWeightedSource(tree, links, node.sourceLinks);\n var y = weightedSum / sourceSum;\n node.y += (y - centerY(node)) * alpha;\n }\n }\n }\n};\n\nvar relaxRightToLeft = function relaxRightToLeft(tree, depthTree, links, alpha) {\n for (var i = depthTree.length - 1; i >= 0; i--) {\n var nodes = depthTree[i];\n\n for (var j = 0, len = nodes.length; j < len; j++) {\n var node = nodes[j];\n\n if (node.targetLinks.length) {\n var targetSum = getSumOfIds(links, node.targetLinks);\n var weightedSum = getSumWithWeightedTarget(tree, links, node.targetLinks);\n var y = weightedSum / targetSum;\n node.y += (y - centerY(node)) * alpha;\n }\n }\n }\n};\n\nvar updateYOfLinks = function updateYOfLinks(tree, links) {\n for (var i = 0, len = tree.length; i < len; i++) {\n var node = tree[i];\n var sy = 0;\n var ty = 0;\n node.targetLinks.sort(function (a, b) {\n return tree[links[a].target].y - tree[links[b].target].y;\n });\n node.sourceLinks.sort(function (a, b) {\n return tree[links[a].source].y - tree[links[b].source].y;\n });\n\n for (var j = 0, tLen = node.targetLinks.length; j < tLen; j++) {\n var link = links[node.targetLinks[j]];\n\n if (link) {\n link.sy = sy;\n sy += link.dy;\n }\n }\n\n for (var _j2 = 0, sLen = node.sourceLinks.length; _j2 < sLen; _j2++) {\n var _link = links[node.sourceLinks[_j2]];\n\n if (_link) {\n _link.ty = ty;\n ty += _link.dy;\n }\n }\n }\n};\n\nvar computeData = function computeData(_ref2) {\n var data = _ref2.data,\n width = _ref2.width,\n height = _ref2.height,\n iterations = _ref2.iterations,\n nodeWidth = _ref2.nodeWidth,\n nodePadding = _ref2.nodePadding;\n var links = data.links;\n\n var _getNodesTree = getNodesTree(data, width, nodeWidth),\n tree = _getNodesTree.tree;\n\n var depthTree = getDepthTree(tree);\n var newLinks = updateYOfTree(depthTree, height, nodePadding, links);\n resolveCollisions(depthTree, height, nodePadding);\n var alpha = 1;\n\n for (var i = 1; i <= iterations; i++) {\n relaxRightToLeft(tree, depthTree, newLinks, alpha *= 0.99);\n resolveCollisions(depthTree, height, nodePadding);\n relaxLeftToRight(tree, depthTree, newLinks, alpha);\n resolveCollisions(depthTree, height, nodePadding);\n }\n\n updateYOfLinks(tree, newLinks);\n return {\n nodes: tree,\n links: newLinks\n };\n};\n\nvar getCoordinateOfTooltip = function getCoordinateOfTooltip(el, type) {\n if (type === 'node') {\n return {\n x: el.x + el.width / 2,\n y: el.y + el.height / 2\n };\n }\n\n return {\n x: (el.sourceX + el.targetX) / 2,\n y: (el.sourceY + el.targetY) / 2\n };\n};\n\nvar getPayloadOfTooltip = function getPayloadOfTooltip(el, type, nameKey) {\n var payload = el.payload;\n\n if (type === 'node') {\n return [{\n payload: el,\n name: getValueByDataKey(payload, nameKey, ''),\n value: getValueByDataKey(payload, 'value')\n }];\n }\n\n if (payload.source && payload.target) {\n var sourceName = getValueByDataKey(payload.source, nameKey, '');\n var targetName = getValueByDataKey(payload.target, nameKey, '');\n return [{\n payload: el,\n name: \"\".concat(sourceName, \" - \").concat(targetName),\n value: getValueByDataKey(payload, 'value')\n }];\n }\n\n return [];\n};\n\nvar Sankey = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Sankey, _Component);\n\n function Sankey(props) {\n var _this;\n\n _classCallCheck(this, Sankey);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Sankey).call(this, props));\n _this.state = _this.constructor.createDefaultState(props);\n return _this;\n }\n\n _createClass(Sankey, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n data = _this$props.data,\n width = _this$props.width,\n height = _this$props.height,\n margin = _this$props.margin,\n iterations = _this$props.iterations,\n nodeWidth = _this$props.nodeWidth,\n nodePadding = _this$props.nodePadding,\n nameKey = _this$props.nameKey;\n\n if (nextProps.data !== data || nextProps.width !== width || nextProps.height !== height || !shallowEqual(nextProps.margin, margin) || nextProps.iterations !== iterations || nextProps.nodeWidth !== nodeWidth || nextProps.nodePadding !== nodePadding || nextProps.nameKey !== nameKey) {\n this.setState(this.constructor.createDefaultState(nextProps));\n }\n }\n /**\n * Returns default, reset state for the sankey chart.\n * @param {Object} props The latest props\n * @return {Object} Whole new state\n */\n\n }, {\n key: \"handleMouseEnter\",\n value: function handleMouseEnter(el, type, e) {\n var _this$props2 = this.props,\n onMouseEnter = _this$props2.onMouseEnter,\n children = _this$props2.children;\n var tooltipItem = findChildByType(children, Tooltip);\n\n if (tooltipItem) {\n this.setState({\n activeElement: el,\n activeElementType: type,\n isTooltipActive: true\n }, function () {\n if (onMouseEnter) {\n onMouseEnter(el, type, e);\n }\n });\n } else if (onMouseEnter) {\n onMouseEnter(el, type, e);\n }\n }\n }, {\n key: \"handleMouseLeave\",\n value: function handleMouseLeave(el, type, e) {\n var _this$props3 = this.props,\n onMouseLeave = _this$props3.onMouseLeave,\n children = _this$props3.children;\n var tooltipItem = findChildByType(children, Tooltip);\n\n if (tooltipItem) {\n this.setState({\n isTooltipActive: false\n }, function () {\n if (onMouseLeave) {\n onMouseLeave(el, type, e);\n }\n });\n } else if (onMouseLeave) {\n onMouseLeave(el, type, e);\n }\n }\n }, {\n key: \"renderLinks\",\n value: function renderLinks(links, nodes) {\n var _this2 = this;\n\n var _this$props4 = this.props,\n linkCurvature = _this$props4.linkCurvature,\n linkContent = _this$props4.link,\n margin = _this$props4.margin;\n var top = margin.top || 0;\n var left = margin.left || 0;\n return React.createElement(Layer, {\n className: \"recharts-sankey-links\",\n key: \"recharts-sankey-links\"\n }, links.map(function (link, i) {\n var sourceRelativeY = link.sy,\n targetRelativeY = link.ty,\n linkWidth = link.dy;\n var source = nodes[link.source];\n var target = nodes[link.target];\n var sourceX = source.x + source.dx + left;\n var targetX = target.x + left;\n var interpolationFunc = interpolationGenerator(sourceX, targetX);\n var sourceControlX = interpolationFunc(linkCurvature);\n var targetControlX = interpolationFunc(1 - linkCurvature);\n var sourceY = source.y + sourceRelativeY + linkWidth / 2 + top;\n var targetY = target.y + targetRelativeY + linkWidth / 2 + top;\n\n var linkProps = _objectSpread({\n sourceX: sourceX,\n targetX: targetX,\n sourceY: sourceY,\n targetY: targetY,\n sourceControlX: sourceControlX,\n targetControlX: targetControlX,\n sourceRelativeY: sourceRelativeY,\n targetRelativeY: targetRelativeY,\n linkWidth: linkWidth,\n index: i,\n payload: _objectSpread({}, link, {\n source: source,\n target: target\n })\n }, getPresentationAttributes(linkContent));\n\n var events = {\n onMouseEnter: _this2.handleMouseEnter.bind(_this2, linkProps, 'link'),\n onMouseLeave: _this2.handleMouseLeave.bind(_this2, linkProps, 'link')\n };\n return React.createElement(Layer, _extends({\n key: \"link\".concat(i)\n }, events), _this2.constructor.renderLinkItem(linkContent, linkProps));\n }));\n }\n }, {\n key: \"renderNodes\",\n value: function renderNodes(nodes) {\n var _this3 = this;\n\n var _this$props5 = this.props,\n nodeContent = _this$props5.node,\n margin = _this$props5.margin;\n var top = margin.top || 0;\n var left = margin.left || 0;\n return React.createElement(Layer, {\n className: \"recharts-sankey-nodes\",\n key: \"recharts-sankey-nodes\"\n }, nodes.map(function (node, i) {\n var x = node.x,\n y = node.y,\n dx = node.dx,\n dy = node.dy;\n\n var nodeProps = _objectSpread({}, getPresentationAttributes(nodeContent), {\n x: x + left,\n y: y + top,\n width: dx,\n height: dy,\n index: i,\n payload: node\n });\n\n var events = {\n onMouseEnter: _this3.handleMouseEnter.bind(_this3, nodeProps, 'node'),\n onMouseLeave: _this3.handleMouseLeave.bind(_this3, nodeProps, 'node')\n };\n return React.createElement(Layer, _extends({\n key: \"node\".concat(i)\n }, events), _this3.constructor.renderNodeItem(nodeContent, nodeProps));\n }));\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n var _this$props6 = this.props,\n children = _this$props6.children,\n width = _this$props6.width,\n height = _this$props6.height,\n nameKey = _this$props6.nameKey;\n var tooltipItem = findChildByType(children, Tooltip);\n\n if (!tooltipItem) {\n return null;\n }\n\n var _this$state = this.state,\n isTooltipActive = _this$state.isTooltipActive,\n activeElement = _this$state.activeElement,\n activeElementType = _this$state.activeElementType;\n var viewBox = {\n x: 0,\n y: 0,\n width: width,\n height: height\n };\n var coordinate = activeElement ? getCoordinateOfTooltip(activeElement, activeElementType) : defaultCoordinateOfTooltip;\n var payload = activeElement ? getPayloadOfTooltip(activeElement, activeElementType, nameKey) : [];\n return React.cloneElement(tooltipItem, {\n viewBox: viewBox,\n active: isTooltipActive,\n coordinate: coordinate,\n label: '',\n payload: payload\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!validateWidthHeight(this)) {\n return null;\n }\n\n var _this$props7 = this.props,\n width = _this$props7.width,\n height = _this$props7.height,\n className = _this$props7.className,\n style = _this$props7.style,\n children = _this$props7.children,\n others = _objectWithoutProperties(_this$props7, [\"width\", \"height\", \"className\", \"style\", \"children\"]);\n\n var _this$state2 = this.state,\n links = _this$state2.links,\n nodes = _this$state2.nodes;\n var attrs = getPresentationAttributes(others);\n return React.createElement(\"div\", {\n className: classNames('recharts-wrapper', className),\n style: _objectSpread({}, style, {\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n })\n }, React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), filterSvgElements(children), this.renderLinks(links, nodes), this.renderNodes(nodes)), this.renderTooltip());\n }\n }], [{\n key: \"createDefaultState\",\n value: function createDefaultState(props) {\n var data = props.data,\n width = props.width,\n height = props.height,\n margin = props.margin,\n iterations = props.iterations,\n nodeWidth = props.nodeWidth,\n nodePadding = props.nodePadding;\n var contentWidth = width - (margin && margin.left || 0) - (margin && margin.right || 0);\n var contentHeight = height - (margin && margin.top || 0) - (margin && margin.bottom || 0);\n\n var _computeData = computeData({\n data: data,\n width: contentWidth,\n height: contentHeight,\n iterations: iterations,\n nodeWidth: nodeWidth,\n nodePadding: nodePadding\n }),\n links = _computeData.links,\n nodes = _computeData.nodes;\n\n return {\n activeElement: null,\n activeElementType: null,\n isTooltipActive: false,\n nodes: nodes,\n links: links\n };\n }\n }, {\n key: \"renderLinkItem\",\n value: function renderLinkItem(option, props) {\n if (React.isValidElement(option)) {\n return React.cloneElement(option, props);\n }\n\n if (_isFunction(option)) {\n return option(props);\n }\n\n var sourceX = props.sourceX,\n sourceY = props.sourceY,\n sourceControlX = props.sourceControlX,\n targetX = props.targetX,\n targetY = props.targetY,\n targetControlX = props.targetControlX,\n linkWidth = props.linkWidth,\n others = _objectWithoutProperties(props, [\"sourceX\", \"sourceY\", \"sourceControlX\", \"targetX\", \"targetY\", \"targetControlX\", \"linkWidth\"]);\n\n return React.createElement(\"path\", _extends({\n className: \"recharts-sankey-link\",\n d: \"\\n M\".concat(sourceX, \",\").concat(sourceY, \"\\n C\").concat(sourceControlX, \",\").concat(sourceY, \" \").concat(targetControlX, \",\").concat(targetY, \" \").concat(targetX, \",\").concat(targetY, \"\\n \"),\n fill: \"none\",\n stroke: \"#333\",\n strokeWidth: linkWidth,\n strokeOpacity: \"0.2\"\n }, getPresentationAttributes(others)));\n }\n }, {\n key: \"renderNodeItem\",\n value: function renderNodeItem(option, props) {\n if (React.isValidElement(option)) {\n return React.cloneElement(option, props);\n }\n\n if (_isFunction(option)) {\n return option(props);\n }\n\n return React.createElement(Rectangle, _extends({\n className: \"recharts-sankey-node\",\n fill: \"#0088fe\",\n fillOpacity: \"0.8\"\n }, props));\n }\n }]);\n\n return Sankey;\n}(Component), _class2.displayName = 'Sankey', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, {\n nameKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n width: PropTypes.number,\n height: PropTypes.number,\n data: PropTypes.shape({\n nodes: PropTypes.array,\n links: PropTypes.arrayOf(PropTypes.shape({\n target: PropTypes.number,\n source: PropTypes.number,\n value: PropTypes.number\n }))\n }),\n nodePadding: PropTypes.number,\n nodeWidth: PropTypes.number,\n linkCurvature: PropTypes.number,\n iterations: PropTypes.number,\n node: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func]),\n link: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func]),\n style: PropTypes.object,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n margin: PropTypes.shape({\n top: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number\n })\n}), _class2.defaultProps = {\n nodePadding: 10,\n nodeWidth: 10,\n nameKey: 'name',\n dataKey: 'value',\n linkCurvature: 0.5,\n iterations: 32,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n }\n}, _temp)) || _class;\n\nexport default Sankey;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/chart/Sankey.js\n// module id = 877\n// module chunks = 0","/**\n * @fileOverview Scatter Chart\n */\nimport generateCategoricalChart from './generateCategoricalChart';\nimport Scatter from '../cartesian/Scatter';\nimport XAxis from '../cartesian/XAxis';\nimport YAxis from '../cartesian/YAxis';\nimport ZAxis from '../cartesian/ZAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport default generateCategoricalChart({\n chartName: 'ScatterChart',\n GraphicalChild: Scatter,\n eventType: 'single',\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }, {\n axisType: 'zAxis',\n AxisComp: ZAxis\n }],\n formatAxisMap: formatAxisMap\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/chart/ScatterChart.js\n// module id = 878\n// module chunks = 0","import _get from \"lodash/get\";\nimport _omit from \"lodash/omit\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNaN from \"lodash/isNaN\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n\n/**\n * @fileOverview TreemapChart\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Smooth from 'react-smooth';\nimport classNames from 'classnames';\nimport Surface from '../container/Surface';\nimport Layer from '../container/Layer';\nimport Rectangle from '../shape/Rectangle';\nimport { findChildByType, getPresentationAttributes, filterSvgElements, validateWidthHeight, isSsr } from '../util/ReactUtils';\nimport Tooltip from '../component/Tooltip';\nimport Polygon from '../shape/Polygon';\nimport pureRender from '../util/PureRender';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { COLOR_PANEL } from '../util/Constants';\nimport { getStringSize } from '../util/DOMUtils';\nimport { uniqueId } from '../util/DataUtils';\n\nvar computeNode = function computeNode(_ref) {\n var depth = _ref.depth,\n node = _ref.node,\n index = _ref.index,\n valueKey = _ref.valueKey;\n var children = node.children;\n var childDepth = depth + 1;\n var computedChildren = children && children.length ? children.map(function (child, i) {\n return computeNode({\n depth: childDepth,\n node: child,\n index: i,\n valueKey: valueKey\n });\n }) : null;\n var value;\n\n if (children && children.length) {\n value = computedChildren.reduce(function (result, child) {\n return result + child.value;\n }, 0);\n } else {\n value = _isNaN(node[valueKey]) || node[valueKey] <= 0 ? 0 : node[valueKey];\n }\n\n return _objectSpread({}, node, {\n children: computedChildren,\n value: value,\n depth: depth,\n index: index\n });\n};\n\nvar filterRect = function filterRect(node) {\n return {\n x: node.x,\n y: node.y,\n width: node.width,\n height: node.height\n };\n}; // Compute the area for each child based on value & scale.\n\n\nvar getAreaOfChildren = function getAreaOfChildren(children, areaValueRatio) {\n var ratio = areaValueRatio < 0 ? 0 : areaValueRatio;\n return children.map(function (child) {\n var area = child.value * ratio;\n return _objectSpread({}, child, {\n area: _isNaN(area) || area <= 0 ? 0 : area\n });\n });\n}; // Computes the score for the specified row, as the worst aspect ratio.\n\n\nvar getWorstScore = function getWorstScore(row, parentSize, aspectRatio) {\n var parentArea = parentSize * parentSize;\n var rowArea = row.area * row.area;\n\n var _row$reduce = row.reduce(function (result, child) {\n return {\n min: Math.min(result.min, child.area),\n max: Math.max(result.max, child.area)\n };\n }, {\n min: Infinity,\n max: 0\n }),\n min = _row$reduce.min,\n max = _row$reduce.max;\n\n return rowArea ? Math.max(parentArea * max * aspectRatio / rowArea, rowArea / (parentArea * min * aspectRatio)) : Infinity;\n};\n\nvar horizontalPosition = function horizontalPosition(row, parentSize, parentRect, isFlush) {\n var rowHeight = parentSize ? Math.round(row.area / parentSize) : 0;\n\n if (isFlush || rowHeight > parentRect.height) {\n rowHeight = parentRect.height;\n }\n\n var curX = parentRect.x;\n var child;\n\n for (var i = 0, len = row.length; i < len; i++) {\n child = row[i];\n child.x = curX;\n child.y = parentRect.y;\n child.height = rowHeight;\n child.width = Math.min(rowHeight ? Math.round(child.area / rowHeight) : 0, parentRect.x + parentRect.width - curX);\n curX += child.width;\n } // what's z\n\n\n child.z = true; // add the remain x to the last one of row\n\n child.width += parentRect.x + parentRect.width - curX;\n return _objectSpread({}, parentRect, {\n y: parentRect.y + rowHeight,\n height: parentRect.height - rowHeight\n });\n};\n\nvar verticalPosition = function verticalPosition(row, parentSize, parentRect, isFlush) {\n var rowWidth = parentSize ? Math.round(row.area / parentSize) : 0;\n\n if (isFlush || rowWidth > parentRect.width) {\n rowWidth = parentRect.width;\n }\n\n var curY = parentRect.y;\n var child;\n\n for (var i = 0, len = row.length; i < len; i++) {\n child = row[i];\n child.x = parentRect.x;\n child.y = curY;\n child.width = rowWidth;\n child.height = Math.min(rowWidth ? Math.round(child.area / rowWidth) : 0, parentRect.y + parentRect.height - curY);\n curY += child.height;\n }\n\n child.z = false;\n child.height += parentRect.y + parentRect.height - curY;\n return _objectSpread({}, parentRect, {\n x: parentRect.x + rowWidth,\n width: parentRect.width - rowWidth\n });\n};\n\nvar position = function position(row, parentSize, parentRect, isFlush) {\n if (parentSize === parentRect.width) {\n return horizontalPosition(row, parentSize, parentRect, isFlush);\n }\n\n return verticalPosition(row, parentSize, parentRect, isFlush);\n}; // Recursively arranges the specified node's children into squarified rows.\n\n\nvar squarify = function squarify(node, aspectRatio) {\n var children = node.children;\n\n if (children && children.length) {\n var rect = filterRect(node);\n var row = [];\n var best = Infinity; // the best row score so far\n\n var child, score; // the current row score\n\n var size = Math.min(rect.width, rect.height); // initial orientation\n\n var scaleChildren = getAreaOfChildren(children, rect.width * rect.height / node.value);\n var tempChildren = scaleChildren.slice();\n row.area = 0;\n\n while (tempChildren.length > 0) {\n // row first\n // eslint-disable-next-line prefer-destructuring\n row.push(child = tempChildren[0]);\n row.area += child.area;\n score = getWorstScore(row, size, aspectRatio);\n\n if (score <= best) {\n // continue with this orientation\n tempChildren.shift();\n best = score;\n } else {\n // abort, and try a different orientation\n row.area -= row.pop().area;\n rect = position(row, size, rect, false);\n size = Math.min(rect.width, rect.height);\n row.length = row.area = 0;\n best = Infinity;\n }\n }\n\n if (row.length) {\n rect = position(row, size, rect, true);\n row.length = row.area = 0;\n }\n\n return _objectSpread({}, node, {\n children: scaleChildren.map(function (c) {\n return squarify(c, aspectRatio);\n })\n });\n }\n\n return node;\n};\n\nvar Treemap = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Treemap, _Component);\n\n function Treemap() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Treemap);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Treemap)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = _this.constructor.createDefaultState();\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (_isFunction(onAnimationEnd)) {\n onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n var onAnimationStart = _this.props.onAnimationStart;\n\n _this.setState({\n isAnimationFinished: false\n });\n\n if (_isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Treemap, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props = this.props,\n type = _this$props.type,\n width = _this$props.width,\n height = _this$props.height,\n data = _this$props.data,\n dataKey = _this$props.dataKey,\n aspectRatio = _this$props.aspectRatio;\n\n var _this$computeRoot = this.computeRoot({\n type: type,\n width: width,\n height: height,\n data: data,\n dataKey: dataKey,\n aspectRatio: aspectRatio\n }),\n formatRoot = _this$computeRoot.formatRoot,\n currentRoot = _this$computeRoot.currentRoot,\n nestIndex = _this$computeRoot.nestIndex;\n\n this.setState({\n formatRoot: formatRoot,\n currentRoot: currentRoot,\n nestIndex: nestIndex\n });\n }\n }, {\n key: \"computeRoot\",\n value: function computeRoot(_ref2) {\n var type = _ref2.type,\n width = _ref2.width,\n height = _ref2.height,\n data = _ref2.data,\n dataKey = _ref2.dataKey,\n aspectRatio = _ref2.aspectRatio;\n var root = computeNode({\n depth: 0,\n node: {\n children: data,\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n index: 0,\n valueKey: dataKey\n });\n var formatRoot = squarify(root, aspectRatio);\n var nestIndex = this.state.nestIndex;\n\n if (type === 'nest') {\n nestIndex.push(root);\n }\n\n return {\n formatRoot: formatRoot,\n currentRoot: root,\n nestIndex: nestIndex\n };\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var type = nextProps.type,\n width = nextProps.width,\n height = nextProps.height,\n data = nextProps.data,\n dataKey = nextProps.dataKey,\n aspectRatio = nextProps.aspectRatio;\n\n if (data !== this.props.data || type !== this.props.type || width !== this.props.width || height !== this.props.height || dataKey !== this.props.dataKey || aspectRatio !== this.props.aspectRatio) {\n var nextRoot = this.computeRoot({\n type: type,\n width: width,\n height: height,\n data: data,\n dataKey: dataKey,\n aspectRatio: aspectRatio\n });\n this.setState(_objectSpread({}, this.constructor.createDefaultState(), nextRoot, {\n nestIndex: [nextRoot.currentRoot]\n }));\n }\n }\n /**\n * Returns default, reset state for the treemap chart.\n * @return {Object} Whole new state\n */\n\n }, {\n key: \"handleMouseEnter\",\n value: function handleMouseEnter(node, e) {\n var _this$props2 = this.props,\n onMouseEnter = _this$props2.onMouseEnter,\n children = _this$props2.children;\n var tooltipItem = findChildByType(children, Tooltip);\n\n if (tooltipItem) {\n this.setState({\n isTooltipActive: true,\n activeNode: node\n }, function () {\n if (onMouseEnter) {\n onMouseEnter(node, e);\n }\n });\n } else if (onMouseEnter) {\n onMouseEnter(node, e);\n }\n }\n }, {\n key: \"handleMouseLeave\",\n value: function handleMouseLeave(node, e) {\n var _this$props3 = this.props,\n onMouseLeave = _this$props3.onMouseLeave,\n children = _this$props3.children;\n var tooltipItem = findChildByType(children, Tooltip);\n\n if (tooltipItem) {\n this.setState({\n isTooltipActive: false,\n activeNode: null\n }, function () {\n if (onMouseLeave) {\n onMouseLeave(node, e);\n }\n });\n } else if (onMouseLeave) {\n onMouseLeave(node, e);\n }\n }\n }, {\n key: \"handleClick\",\n value: function handleClick(node) {\n var _this$props4 = this.props,\n onClick = _this$props4.onClick,\n type = _this$props4.type;\n\n if (type === 'nest' && node.children) {\n var _this$props5 = this.props,\n width = _this$props5.width,\n height = _this$props5.height,\n dataKey = _this$props5.dataKey,\n aspectRatio = _this$props5.aspectRatio;\n var root = computeNode({\n depth: 0,\n node: _objectSpread({}, node, {\n x: 0,\n y: 0,\n width: width,\n height: height\n }),\n index: 0,\n valueKey: dataKey\n });\n var formatRoot = squarify(root, aspectRatio);\n var nestIndex = this.state.nestIndex;\n nestIndex.push(node);\n this.setState({\n formatRoot: formatRoot,\n currentRoot: root,\n nestIndex: nestIndex\n });\n }\n\n if (onClick) {\n onClick(node);\n }\n }\n }, {\n key: \"handleNestIndex\",\n value: function handleNestIndex(node, i) {\n var nestIndex = this.state.nestIndex;\n var _this$props6 = this.props,\n width = _this$props6.width,\n height = _this$props6.height,\n dataKey = _this$props6.dataKey,\n aspectRatio = _this$props6.aspectRatio;\n var root = computeNode({\n depth: 0,\n node: _objectSpread({}, node, {\n x: 0,\n y: 0,\n width: width,\n height: height\n }),\n index: 0,\n valueKey: dataKey\n });\n var formatRoot = squarify(root, aspectRatio);\n nestIndex = nestIndex.slice(0, i + 1);\n this.setState({\n formatRoot: formatRoot,\n currentRoot: node,\n nestIndex: nestIndex\n });\n }\n }, {\n key: \"renderItem\",\n value: function renderItem(content, nodeProps, isLeaf) {\n var _this2 = this;\n\n var _this$props7 = this.props,\n isAnimationActive = _this$props7.isAnimationActive,\n animationBegin = _this$props7.animationBegin,\n animationDuration = _this$props7.animationDuration,\n animationEasing = _this$props7.animationEasing,\n isUpdateAnimationActive = _this$props7.isUpdateAnimationActive,\n type = _this$props7.type,\n animationId = _this$props7.animationId,\n colorPanel = _this$props7.colorPanel;\n var isAnimationFinished = this.state.isAnimationFinished;\n var width = nodeProps.width,\n height = nodeProps.height,\n x = nodeProps.x,\n y = nodeProps.y,\n depth = nodeProps.depth;\n var translateX = parseInt((Math.random() * 2 - 1) * width, 10);\n var event = {};\n\n if (isLeaf || type === 'nest') {\n event = {\n onMouseEnter: this.handleMouseEnter.bind(this, nodeProps),\n onMouseLeave: this.handleMouseLeave.bind(this, nodeProps),\n onClick: this.handleClick.bind(this, nodeProps)\n };\n }\n\n if (!isAnimationActive) {\n return React.createElement(Layer, event, this.constructor.renderContentItem(content, _objectSpread({}, nodeProps, {\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n width: width,\n height: height,\n x: x,\n y: y\n }), type, colorPanel));\n }\n\n return React.createElement(Smooth, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n key: \"treemap-\".concat(animationId),\n from: {\n x: x,\n y: y,\n width: width,\n height: height\n },\n to: {\n x: x,\n y: y,\n width: width,\n height: height\n },\n onAnimationStart: this.handleAnimationStart,\n onAnimationEnd: this.handleAnimationEnd\n }, function (_ref3) {\n var currX = _ref3.x,\n currY = _ref3.y,\n currWidth = _ref3.width,\n currHeight = _ref3.height;\n return React.createElement(Smooth, {\n from: \"translate(\".concat(translateX, \"px, \").concat(translateX, \"px)\"),\n to: \"translate(0, 0)\",\n attributeName: \"transform\",\n begin: animationBegin,\n easing: animationEasing,\n isActive: isAnimationActive,\n duration: animationDuration\n }, React.createElement(Layer, event, function () {\n // when animation Duration , only render depth=1 nodes\n if (depth > 2 && !isAnimationFinished) {\n return null;\n }\n\n return _this2.constructor.renderContentItem(content, _objectSpread({}, nodeProps, {\n isAnimationActive: isAnimationActive,\n isUpdateAnimationActive: !isUpdateAnimationActive,\n width: currWidth,\n height: currHeight,\n x: currX,\n y: currY\n }), type, colorPanel);\n }()));\n });\n }\n }, {\n key: \"renderNode\",\n value: function renderNode(root, node, i) {\n var _this3 = this;\n\n var _this$props8 = this.props,\n content = _this$props8.content,\n type = _this$props8.type;\n\n var nodeProps = _objectSpread({}, getPresentationAttributes(this.props), node, {\n root: root\n });\n\n var isLeaf = !node.children || !node.children.length;\n var currentRoot = this.state.currentRoot;\n var isCurrentRootChild = (currentRoot.children || []).filter(function (item) {\n return item.depth === node.depth && item.name === node.name;\n });\n\n if (!isCurrentRootChild.length && root.depth && type === 'nest') {\n return null;\n }\n\n return React.createElement(Layer, {\n key: \"recharts-treemap-node-\".concat(i),\n className: \"recharts-treemap-depth-\".concat(node.depth)\n }, this.renderItem(content, nodeProps, isLeaf), node.children && node.children.length ? node.children.map(function (child, index) {\n return _this3.renderNode(node, child, index);\n }) : null);\n }\n }, {\n key: \"renderAllNodes\",\n value: function renderAllNodes() {\n var formatRoot = this.state.formatRoot;\n\n if (!formatRoot) {\n return null;\n }\n\n return this.renderNode(formatRoot, formatRoot, 0);\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n var _this$props9 = this.props,\n children = _this$props9.children,\n nameKey = _this$props9.nameKey;\n var tooltipItem = findChildByType(children, Tooltip);\n\n if (!tooltipItem) {\n return null;\n }\n\n var _this$props10 = this.props,\n width = _this$props10.width,\n height = _this$props10.height,\n dataKey = _this$props10.dataKey;\n var _this$state = this.state,\n isTooltipActive = _this$state.isTooltipActive,\n activeNode = _this$state.activeNode;\n var viewBox = {\n x: 0,\n y: 0,\n width: width,\n height: height\n };\n var coordinate = activeNode ? {\n x: activeNode.x + activeNode.width / 2,\n y: activeNode.y + activeNode.height / 2\n } : null;\n var payload = isTooltipActive && activeNode ? [{\n payload: activeNode,\n name: getValueByDataKey(activeNode, nameKey, ''),\n value: getValueByDataKey(activeNode, dataKey)\n }] : [];\n return React.cloneElement(tooltipItem, {\n viewBox: viewBox,\n active: isTooltipActive,\n coordinate: coordinate,\n label: '',\n payload: payload\n });\n } // render nest treemap\n\n }, {\n key: \"renderNestIndex\",\n value: function renderNestIndex() {\n var _this4 = this;\n\n var _this$props11 = this.props,\n nameKey = _this$props11.nameKey,\n nestIndexContent = _this$props11.nestIndexContent;\n var nestIndex = this.state.nestIndex;\n return React.createElement(\"div\", {\n className: \"recharts-treemap-nest-index-wrapper\",\n style: {\n marginTop: '8px',\n textAlign: 'center'\n }\n }, nestIndex.map(function (item, i) {\n var name = _get(item, nameKey, 'root');\n\n var content = null;\n\n if (React.isValidElement(nestIndexContent)) {\n content = React.cloneElement(nestIndexContent, item, i);\n }\n\n if (_isFunction(nestIndexContent)) {\n content = nestIndexContent(item, i);\n } else {\n content = name;\n }\n\n return (// eslint-disable-next-line jsx-a11y/click-events-have-key-events\n React.createElement(\"div\", {\n onClick: _this4.handleNestIndex.bind(_this4, item, i),\n key: \"nest-index-\".concat(uniqueId()),\n className: \"recharts-treemap-nest-index-box\",\n style: {\n cursor: 'pointer',\n display: 'inline-block',\n padding: '0 7px',\n background: '#000',\n color: '#fff',\n marginRight: '3px'\n }\n }, content)\n );\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!validateWidthHeight(this)) {\n return null;\n }\n\n var _this$props12 = this.props,\n width = _this$props12.width,\n height = _this$props12.height,\n className = _this$props12.className,\n style = _this$props12.style,\n children = _this$props12.children,\n type = _this$props12.type,\n others = _objectWithoutProperties(_this$props12, [\"width\", \"height\", \"className\", \"style\", \"children\", \"type\"]);\n\n var attrs = getPresentationAttributes(others);\n return React.createElement(\"div\", {\n className: classNames('recharts-wrapper', className),\n style: _objectSpread({}, style, {\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n })\n }, React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: type === 'nest' ? height - 30 : height\n }), this.renderAllNodes(), filterSvgElements(children)), this.renderTooltip(), type === 'nest' && this.renderNestIndex());\n }\n }], [{\n key: \"createDefaultState\",\n value: function createDefaultState() {\n return {\n isTooltipActive: false,\n isAnimationFinished: false,\n activeNode: null,\n currentRoot: null,\n formatRoot: null,\n nestIndex: []\n };\n }\n }, {\n key: \"renderContentItem\",\n value: function renderContentItem(content, nodeProps, type, colorPanel) {\n if (React.isValidElement(content)) {\n return React.cloneElement(content, nodeProps);\n }\n\n if (_isFunction(content)) {\n return content(nodeProps);\n } // optimize default shape\n\n\n var x = nodeProps.x,\n y = nodeProps.y,\n width = nodeProps.width,\n height = nodeProps.height,\n index = nodeProps.index;\n var arrow = null;\n\n if (width > 10 && height > 10 && nodeProps.children && type === 'nest') {\n arrow = React.createElement(Polygon, {\n points: [{\n x: x + 2,\n y: y + height / 2\n }, {\n x: x + 6,\n y: y + height / 2 + 3\n }, {\n x: x + 2,\n y: y + height / 2 + 6\n }]\n });\n }\n\n var text = null;\n var nameSize = getStringSize(nodeProps.name);\n\n if (width > 20 && height > 20 && nameSize.width < width && nameSize.height < height) {\n text = React.createElement(\"text\", {\n x: x + 8,\n y: y + height / 2 + 7,\n fontSize: 14\n }, nodeProps.name);\n }\n\n var colors = colorPanel || COLOR_PANEL;\n return React.createElement(\"g\", null, React.createElement(Rectangle, _extends({\n fill: nodeProps.depth < 2 ? colors[index % colors.length] : 'rgba(255,255,255,0)',\n stroke: \"#fff\"\n }, _omit(nodeProps, 'children'))), arrow, text);\n }\n }]);\n\n return Treemap;\n}(Component), _class2.displayName = 'Treemap', _class2.propTypes = {\n width: PropTypes.number,\n height: PropTypes.number,\n data: PropTypes.array,\n style: PropTypes.object,\n aspectRatio: PropTypes.number,\n content: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n fill: PropTypes.string,\n stroke: PropTypes.string,\n className: PropTypes.string,\n nameKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n // optional values flat/nest, flat show whole treemap, nest only show depth=1 node\n type: PropTypes.oneOf(['flat', 'nest']),\n colorPanel: PropTypes.array,\n // customize nest index content\n nestIndexContent: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onClick: PropTypes.func,\n isAnimationActive: PropTypes.bool,\n isUpdateAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear'])\n}, _class2.defaultProps = {\n dataKey: 'value',\n aspectRatio: 0.5 * (1 + Math.sqrt(5)),\n isAnimationActive: !isSsr(),\n isUpdateAnimationActive: !isSsr(),\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'linear',\n type: 'flat'\n}, _temp)) || _class;\n\nexport default Treemap;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/chart/Treemap.js\n// module id = 879\n// module chunks = 0","import _isFunction from \"lodash/isFunction\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Customized\n */\nimport React, { isValidElement, cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport Layer from '../container/Layer';\nimport { warn } from '../util/LogUtils';\n/**\n * custom svg elements by rechart instance props and state.\n * @returns {Object} svg elements\n */\n\nexport default function Customized(_ref) {\n var component = _ref.component,\n props = _objectWithoutProperties(_ref, [\"component\"]);\n\n var child;\n\n if (isValidElement(component)) {\n child = cloneElement(component, props);\n } else if (_isFunction(component)) {\n child = component(props);\n } else {\n warn(false, 'Customized\\'s props `component` must be React.element or Function, but got %s.', _typeof(component));\n }\n\n return React.createElement(Layer, {\n className: \"recharts-customized-wrapper\"\n }, child);\n}\nCustomized.displayName = 'Customized';\nCustomized.propTypes = {\n component: PropTypes.oneOfType([PropTypes.element, PropTypes.func]).isRequired\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/component/Customized.js\n// module id = 880\n// module chunks = 0","var _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport Surface from '../container/Surface';\nimport Symbols from '../shape/Symbols';\nimport { filterEventsOfChild, LEGEND_TYPES } from '../util/ReactUtils';\nvar SIZE = 32;\nvar ICON_TYPES = LEGEND_TYPES.filter(function (type) {\n return type !== 'none';\n});\n\nvar DefaultLegendContent = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(DefaultLegendContent, _Component);\n\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(DefaultLegendContent).apply(this, arguments));\n }\n\n _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n value: function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n\n if (data.type === 'plainline') {\n return React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'line') {\n return React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'rect') {\n return React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n\n return React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var _classNames;\n\n var finalFormatter = entry.formatter || formatter;\n var className = classNames((_classNames = {\n 'recharts-legend-item': true\n }, _defineProperty(_classNames, \"legend-item-\".concat(i), true), _defineProperty(_classNames, \"inactive\", entry.inactive), _classNames));\n\n if (entry.type === 'none') {\n return null;\n }\n\n return React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle,\n key: \"legend-item-\".concat(i)\n }, filterEventsOfChild(_this.props, entry, i)), React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), React.createElement(\"span\", {\n className: \"recharts-legend-item-text\"\n }, finalFormatter ? finalFormatter(entry.value, entry, i) : entry.value));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n\n if (!payload || !payload.length) {\n return null;\n }\n\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n\n return DefaultLegendContent;\n}(Component), _class2.displayName = 'Legend', _class2.propTypes = {\n content: PropTypes.element,\n iconSize: PropTypes.number,\n iconType: PropTypes.oneOf(ICON_TYPES),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n align: PropTypes.oneOf(['center', 'left', 'right']),\n verticalAlign: PropTypes.oneOf(['top', 'bottom', 'middle']),\n payload: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.any,\n id: PropTypes.any,\n type: PropTypes.oneOf(LEGEND_TYPES)\n })),\n inactiveColor: PropTypes.string,\n formatter: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onClick: PropTypes.func\n}, _class2.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n}, _temp)) || _class;\n\nexport default DefaultLegendContent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/component/DefaultLegendContent.js\n// module id = 881\n// module chunks = 0","import _sortBy from \"lodash/sortBy\";\nimport _isArray from \"lodash/isArray\";\n\nvar _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport { isNumOrStr } from '../util/DataUtils';\n\nvar defaultFormatter = function defaultFormatter(value) {\n return _isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n};\n\nvar DefaultTooltipContent = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(DefaultTooltipContent, _Component);\n\n function DefaultTooltipContent() {\n _classCallCheck(this, DefaultTooltipContent);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(DefaultTooltipContent).apply(this, arguments));\n }\n\n _createClass(DefaultTooltipContent, [{\n key: \"renderContent\",\n value: function renderContent() {\n var _this$props = this.props,\n payload = _this$props.payload,\n separator = _this$props.separator,\n formatter = _this$props.formatter,\n itemStyle = _this$props.itemStyle,\n itemSorter = _this$props.itemSorter;\n\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? _sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var name = entry.name,\n value = entry.value;\n\n if (finalFormatter) {\n var formatted = finalFormatter(value, name, entry, i);\n\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n\n value = _formatted[0];\n name = _formatted[1];\n } else {\n value = formatted;\n }\n }\n\n return React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(name) ? React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, name) : null, isNumOrStr(name) ? React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, value), React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''));\n });\n return React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n wrapperClassName = _this$props2.wrapperClassName,\n contentStyle = _this$props2.contentStyle,\n labelClassName = _this$props2.labelClassName,\n labelStyle = _this$props2.labelStyle,\n label = _this$props2.label,\n labelFormatter = _this$props2.labelFormatter;\n\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n\n var hasLabel = isNumOrStr(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = classNames('recharts-default-tooltip', wrapperClassName);\n var labelCN = classNames('recharts-tooltip-label', labelClassName);\n\n if (hasLabel && labelFormatter) {\n finalLabel = labelFormatter(label);\n }\n\n return React.createElement(\"div\", {\n className: wrapperCN,\n style: finalStyle\n }, React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, finalLabel), this.renderContent());\n }\n }]);\n\n return DefaultTooltipContent;\n}(Component), _class2.displayName = 'DefaultTooltipContent', _class2.propTypes = {\n separator: PropTypes.string,\n wrapperClassName: PropTypes.string,\n labelClassName: PropTypes.string,\n formatter: PropTypes.func,\n contentStyle: PropTypes.object,\n itemStyle: PropTypes.object,\n labelStyle: PropTypes.object,\n labelFormatter: PropTypes.func,\n label: PropTypes.any,\n payload: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.any,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.array]),\n unit: PropTypes.any\n })),\n itemSorter: PropTypes.func\n}, _class2.defaultProps = {\n separator: ' : ',\n contentStyle: {},\n itemStyle: {},\n labelStyle: {}\n}, _temp)) || _class;\n\nexport default DefaultTooltipContent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/component/DefaultTooltipContent.js\n// module id = 882\n// module chunks = 0","import _debounce from \"lodash/debounce\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Wrapper component to make charts adapt to the size of parent * DOM\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport ReactResizeDetector from 'react-resize-detector';\nimport { isPercent } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\n\nvar ResponsiveContainer =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ResponsiveContainer, _Component);\n\n function ResponsiveContainer(props) {\n var _this;\n\n _classCallCheck(this, ResponsiveContainer);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ResponsiveContainer).call(this, props));\n\n _this.updateDimensionsImmediate = function () {\n if (!_this.mounted) {\n return;\n }\n\n var newSize = _this.getContainerSize();\n\n if (newSize) {\n var _this$state = _this.state,\n oldWidth = _this$state.containerWidth,\n oldHeight = _this$state.containerHeight;\n var containerWidth = newSize.containerWidth,\n containerHeight = newSize.containerHeight;\n\n if (containerWidth !== oldWidth || containerHeight !== oldHeight) {\n _this.setState({\n containerWidth: containerWidth,\n containerHeight: containerHeight\n });\n }\n }\n };\n\n _this.state = {\n containerWidth: -1,\n containerHeight: -1\n };\n _this.handleResize = props.debounce > 0 ? _debounce(_this.updateDimensionsImmediate, props.debounce) : _this.updateDimensionsImmediate;\n return _this;\n }\n /* eslint-disable react/no-did-mount-set-state */\n\n\n _createClass(ResponsiveContainer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true;\n var size = this.getContainerSize();\n\n if (size) {\n this.setState(size);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n }\n }, {\n key: \"getContainerSize\",\n value: function getContainerSize() {\n if (!this.container) {\n return null;\n }\n\n return {\n containerWidth: this.container.clientWidth,\n containerHeight: this.container.clientHeight\n };\n }\n }, {\n key: \"renderChart\",\n value: function renderChart() {\n var _this$state2 = this.state,\n containerWidth = _this$state2.containerWidth,\n containerHeight = _this$state2.containerHeight;\n\n if (containerWidth < 0 || containerHeight < 0) {\n return null;\n }\n\n var _this$props = this.props,\n aspect = _this$props.aspect,\n width = _this$props.width,\n height = _this$props.height,\n minWidth = _this$props.minWidth,\n minHeight = _this$props.minHeight,\n maxHeight = _this$props.maxHeight,\n children = _this$props.children;\n warn(isPercent(width) || isPercent(height), \"The width(%s) and height(%s) are both fixed numbers,\\n maybe you don't need to use a ResponsiveContainer.\", width, height);\n warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var calculatedWidth = isPercent(width) ? containerWidth : width;\n var calculatedHeight = isPercent(height) ? containerHeight : height;\n\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n } // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n\n\n if (maxHeight && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n\n warn(calculatedWidth > 0 || calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n return React.cloneElement(children, {\n width: calculatedWidth,\n height: calculatedHeight\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n minWidth = _this$props2.minWidth,\n minHeight = _this$props2.minHeight,\n width = _this$props2.width,\n height = _this$props2.height,\n maxHeight = _this$props2.maxHeight,\n id = _this$props2.id,\n className = _this$props2.className;\n var style = {\n width: width,\n height: height,\n minWidth: minWidth,\n minHeight: minHeight,\n maxHeight: maxHeight\n };\n return React.createElement(\"div\", {\n id: id,\n className: classNames('recharts-responsive-container', className),\n style: style,\n ref: function ref(node) {\n _this2.container = node;\n }\n }, this.renderChart(), React.createElement(ReactResizeDetector, {\n handleWidth: true,\n handleHeight: true,\n onResize: this.handleResize\n }));\n }\n }]);\n\n return ResponsiveContainer;\n}(Component);\n\nResponsiveContainer.displayName = 'ResponsiveContainer';\nResponsiveContainer.propTypes = {\n aspect: PropTypes.number,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n minHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n minWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n children: PropTypes.node.isRequired,\n debounce: PropTypes.number,\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nResponsiveContainer.defaultProps = {\n width: '100%',\n height: '100%',\n debounce: 0\n};\nexport default ResponsiveContainer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/component/ResponsiveContainer.js\n// module id = 883\n// module chunks = 0","var _class, _class2, _temp;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Polar Grid\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport pureRender from '../util/PureRender';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes } from '../util/ReactUtils';\n\nvar PolarGrid = pureRender(_class = (_temp = _class2 =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(PolarGrid, _Component);\n\n function PolarGrid() {\n _classCallCheck(this, PolarGrid);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(PolarGrid).apply(this, arguments));\n }\n\n _createClass(PolarGrid, [{\n key: \"getPolygonPath\",\n value: function getPolygonPath(radius) {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n polarAngles = _this$props.polarAngles;\n var path = '';\n polarAngles.forEach(function (angle, i) {\n var point = polarToCartesian(cx, cy, radius, angle);\n\n if (i) {\n path += \"L \".concat(point.x, \",\").concat(point.y);\n } else {\n path += \"M \".concat(point.x, \",\").concat(point.y);\n }\n });\n path += 'Z';\n return path;\n }\n /**\n * Draw axis of radial line\n * @return {[type]} The lines\n */\n\n }, {\n key: \"renderPolarAngles\",\n value: function renderPolarAngles() {\n var _this$props2 = this.props,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n innerRadius = _this$props2.innerRadius,\n outerRadius = _this$props2.outerRadius,\n polarAngles = _this$props2.polarAngles;\n\n if (!polarAngles || !polarAngles.length) {\n return null;\n }\n\n var props = _objectSpread({\n stroke: '#ccc'\n }, getPresentationAttributes(this.props));\n\n return React.createElement(\"g\", {\n className: \"recharts-polar-grid-angle\"\n }, polarAngles.map(function (entry, i) {\n var start = polarToCartesian(cx, cy, innerRadius, entry);\n var end = polarToCartesian(cx, cy, outerRadius, entry);\n return React.createElement(\"line\", _extends({}, props, {\n key: \"line-\".concat(i),\n x1: start.x,\n y1: start.y,\n x2: end.x,\n y2: end.y\n }));\n }));\n }\n /**\n * Draw concentric circles\n * @param {Number} radius The radius of circle\n * @param {Number} index The index of circle\n * @param {Object} extraProps Extra props\n * @return {ReactElement} circle\n */\n\n }, {\n key: \"renderConcentricCircle\",\n value: function renderConcentricCircle(radius, index, extraProps) {\n var _this$props3 = this.props,\n cx = _this$props3.cx,\n cy = _this$props3.cy;\n\n var props = _objectSpread({\n stroke: '#ccc'\n }, getPresentationAttributes(this.props), {\n fill: 'none'\n }, extraProps);\n\n return React.createElement(\"circle\", _extends({}, props, {\n className: \"recharts-polar-grid-concentric-circle\",\n key: \"circle-\".concat(index),\n cx: cx,\n cy: cy,\n r: radius\n }));\n }\n /**\n * Draw concentric polygons\n * @param {Number} radius The radius of polygon\n * @param {Number} index The index of polygon\n * @param {Object} extraProps Extra props\n * @return {ReactElement} polygon\n */\n\n }, {\n key: \"renderConcentricPolygon\",\n value: function renderConcentricPolygon(radius, index, extraProps) {\n var props = _objectSpread({\n stroke: '#ccc'\n }, getPresentationAttributes(this.props), {\n fill: 'none'\n }, extraProps);\n\n return React.createElement(\"path\", _extends({}, props, {\n className: \"recharts-polar-grid-concentric-polygon\",\n key: \"path-\".concat(index),\n d: this.getPolygonPath(radius)\n }));\n }\n /**\n * Draw concentric axis\n * @return {ReactElement} Concentric axis\n * @todo Optimize the name\n */\n\n }, {\n key: \"renderConcentricPath\",\n value: function renderConcentricPath() {\n var _this = this;\n\n var _this$props4 = this.props,\n polarRadius = _this$props4.polarRadius,\n gridType = _this$props4.gridType;\n\n if (!polarRadius || !polarRadius.length) {\n return null;\n }\n\n return React.createElement(\"g\", {\n className: \"recharts-polar-grid-concentric\"\n }, polarRadius.map(function (entry, i) {\n return gridType === 'circle' ? _this.renderConcentricCircle(entry, i) : _this.renderConcentricPolygon(entry, i);\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var outerRadius = this.props.outerRadius;\n\n if (outerRadius <= 0) {\n return null;\n }\n\n return React.createElement(\"g\", {\n className: \"recharts-polar-grid\"\n }, this.renderPolarAngles(), this.renderConcentricPath());\n }\n }]);\n\n return PolarGrid;\n}(Component), _class2.displayName = 'PolarGrid', _class2.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n cx: PropTypes.number,\n cy: PropTypes.number,\n innerRadius: PropTypes.number,\n outerRadius: PropTypes.number,\n polarAngles: PropTypes.arrayOf(PropTypes.number),\n polarRadius: PropTypes.arrayOf(PropTypes.number),\n gridType: PropTypes.oneOf(['polygon', 'circle'])\n}), _class2.defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n gridType: 'polygon'\n}, _temp)) || _class;\n\nexport default PolarGrid;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/polar/PolarGrid.js\n// module id = 885\n// module chunks = 0","import 'core-js/es6/math';\nimport 'core-js/es6/number';\n/* eslint no-proto: 0 */\n\nvar testObject = {};\n\nif (!(Object.setPrototypeOf || testObject.__proto__)) {\n var nativeGetPrototypeOf = Object.getPrototypeOf;\n\n Object.getPrototypeOf = function (object) {\n if (object.__proto__) {\n return object.__proto__;\n }\n\n return nativeGetPrototypeOf.call(Object, object);\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/polyfill.js\n// module id = 886\n// module chunks = 0","export var COLOR_PANEL = ['#1890FF', '#66B5FF', '#41D9C7', '#2FC25B', '#6EDB8F', '#9AE65C', '#FACC14', '#E6965C', '#57AD71', '#223273', '#738AE6', '#7564CC', '#8543E0', '#A877ED', '#5C8EE6', '#13C2C2', '#70E0E0', '#5CA3E6', '#3436C7', '#8082FF', '#DD81E6', '#F04864', '#FA7D92', '#D598D9'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/util/Constants.js\n// module id = 887\n// module chunks = 0","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread({}, res, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/util/CssPrefixUtils.js\n// module id = 888\n// module chunks = 0","import EventEmitter from 'events';\nvar eventCenter = new EventEmitter();\n\nif (eventCenter.setMaxListeners) {\n eventCenter.setMaxListeners(10);\n}\n\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents';\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/es6/util/Events.js\n// module id = 889\n// module chunks = 0","require('../modules/es6.math.acosh');\nrequire('../modules/es6.math.asinh');\nrequire('../modules/es6.math.atanh');\nrequire('../modules/es6.math.cbrt');\nrequire('../modules/es6.math.clz32');\nrequire('../modules/es6.math.cosh');\nrequire('../modules/es6.math.expm1');\nrequire('../modules/es6.math.fround');\nrequire('../modules/es6.math.hypot');\nrequire('../modules/es6.math.imul');\nrequire('../modules/es6.math.log10');\nrequire('../modules/es6.math.log1p');\nrequire('../modules/es6.math.log2');\nrequire('../modules/es6.math.sign');\nrequire('../modules/es6.math.sinh');\nrequire('../modules/es6.math.tanh');\nrequire('../modules/es6.math.trunc');\nmodule.exports = require('../modules/_core').Math;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/es6/math.js\n// module id = 890\n// module chunks = 0","require('../modules/es6.number.constructor');\nrequire('../modules/es6.number.to-fixed');\nrequire('../modules/es6.number.to-precision');\nrequire('../modules/es6.number.epsilon');\nrequire('../modules/es6.number.is-finite');\nrequire('../modules/es6.number.is-integer');\nrequire('../modules/es6.number.is-nan');\nrequire('../modules/es6.number.is-safe-integer');\nrequire('../modules/es6.number.max-safe-integer');\nrequire('../modules/es6.number.min-safe-integer');\nrequire('../modules/es6.number.parse-float');\nrequire('../modules/es6.number.parse-int');\nmodule.exports = require('../modules/_core').Number;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/es6/number.js\n// module id = 891\n// module chunks = 0","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_a-function.js\n// module id = 892\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_array-includes.js\n// module id = 893\n// module chunks = 0","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_function-to-string.js\n// module id = 894\n// module chunks = 0","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_html.js\n// module id = 895\n// module chunks = 0","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_inherit-if-required.js\n// module id = 896\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_iobject.js\n// module id = 897\n// module chunks = 0","module.exports = false;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_library.js\n// module id = 898\n// module chunks = 0","// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_math-fround.js\n// module id = 899\n// module chunks = 0","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_object-create.js\n// module id = 900\n// module chunks = 0","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_object-dps.js\n// module id = 901\n// module chunks = 0","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_object-gopn.js\n// module id = 902\n// module chunks = 0","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_object-keys.js\n// module id = 903\n// module chunks = 0","exports.f = {}.propertyIsEnumerable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_object-pie.js\n// module id = 904\n// module chunks = 0","var $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_parse-float.js\n// module id = 905\n// module chunks = 0","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_parse-int.js\n// module id = 906\n// module chunks = 0","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar 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, require('./_object-gopd').f(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//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_set-proto.js\n// module id = 907\n// module chunks = 0","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_string-repeat.js\n// module id = 908\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_to-absolute-index.js\n// module id = 909\n// module chunks = 0","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/_to-length.js\n// module id = 910\n// module chunks = 0","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.math.acosh.js\n// module id = 911\n// module chunks = 0","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.math.asinh.js\n// module id = 912\n// module chunks = 0","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.math.atanh.js\n// module id = 913\n// module chunks = 0","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.math.cbrt.js\n// module id = 914\n// module chunks = 0","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.math.clz32.js\n// module id = 915\n// module chunks = 0","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.math.cosh.js\n// module id = 916\n// module chunks = 0","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.math.expm1.js\n// module id = 917\n// module chunks = 0","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.math.fround.js\n// module id = 918\n// module chunks = 0","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.math.hypot.js\n// module id = 919\n// module chunks = 0","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.math.imul.js\n// module id = 920\n// module chunks = 0","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.math.log10.js\n// module id = 921\n// module chunks = 0","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.math.log1p.js\n// module id = 922\n// module chunks = 0","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.math.log2.js\n// module id = 923\n// module chunks = 0","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.math.sign.js\n// module id = 924\n// module chunks = 0","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.math.sinh.js\n// module id = 925\n// module chunks = 0","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.math.tanh.js\n// module id = 926\n// module chunks = 0","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.math.trunc.js\n// module id = 927\n// module chunks = 0","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.number.constructor.js\n// module id = 928\n// module chunks = 0","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.number.epsilon.js\n// module id = 929\n// module chunks = 0","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.number.is-finite.js\n// module id = 930\n// module chunks = 0","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.number.is-integer.js\n// module id = 931\n// module chunks = 0","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.number.is-nan.js\n// module id = 932\n// module chunks = 0","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.number.is-safe-integer.js\n// module id = 933\n// module chunks = 0","// 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//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.number.max-safe-integer.js\n// module id = 934\n// module chunks = 0","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.number.min-safe-integer.js\n// module id = 935\n// module chunks = 0","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.number.parse-float.js\n// module id = 936\n// module chunks = 0","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.number.parse-int.js\n// module id = 937\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar toInteger = require('./_to-integer');\nvar aNumberValue = require('./_a-number-value');\nvar repeat = require('./_string-repeat');\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.number.to-fixed.js\n// module id = 938\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar $fails = require('./_fails');\nvar aNumberValue = require('./_a-number-value');\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/core-js/modules/es6.number.to-precision.js\n// module id = 939\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/prop-types/checkPropTypes.js\n// module id = 940\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/prop-types/factoryWithThrowingShims.js\n// module id = 941\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/recharts/~/prop-types/factoryWithTypeCheckers.js\n// module id = 942\n// module chunks = 0","/**\n * Module dependencies\n */\nvar balanced = require(\"balanced-match\")\nvar reduceFunctionCall = require(\"reduce-function-call\")\nvar mexp = require(\"math-expression-evaluator\")\n\n/**\n * Constantes\n */\nvar MAX_STACK = 100 // should be enough for a single calc()...\nvar NESTED_CALC_RE = /(\\+|\\-|\\*|\\\\|[^a-z]|)(\\s*)(\\()/g\n\n/**\n * Global variables\n */\nvar stack\n\n/**\n * Expose reduceCSSCalc plugin\n *\n * @type {Function}\n */\nmodule.exports = reduceCSSCalc\n\n/**\n * Reduce CSS calc() in a string, whenever it's possible\n *\n * @param {String} value css input\n */\nfunction reduceCSSCalc(value, decimalPrecision) {\n stack = 0\n decimalPrecision = Math.pow(10, decimalPrecision === undefined ? 5 : decimalPrecision)\n\n // Allow calc() on multiple lines\n value = value.replace(/\\n+/g, \" \")\n\n /**\n * Evaluates an expression\n *\n * @param {String} expression\n * @returns {String}\n */\n function evaluateExpression (expression, functionIdentifier, call) {\n if (stack++ > MAX_STACK) {\n stack = 0\n throw new Error(\"Call stack overflow for \" + call)\n }\n\n if (expression === \"\") {\n throw new Error(functionIdentifier + \"(): '\" + call + \"' must contain a non-whitespace string\")\n }\n\n expression = evaluateNestedExpression(expression, call)\n\n var units = getUnitsInExpression(expression)\n\n // If the expression contains multiple units or CSS variables,\n // then let the expression be (i.e. browser calc())\n if (units.length > 1 || expression.indexOf(\"var(\") > -1) {\n return functionIdentifier + \"(\" + expression + \")\"\n }\n\n var unit = units[0] || \"\"\n\n if (unit === \"%\") {\n // Convert percentages to numbers, to handle expressions like: 50% * 50% (will become: 25%):\n // console.log(expression)\n expression = expression.replace(/\\b[0-9\\.]+%/g, function(percent) {\n return parseFloat(percent.slice(0, -1)) * 0.01\n })\n }\n\n // Remove units in expression:\n var toEvaluate = expression.replace(new RegExp(unit, \"gi\"), \"\")\n var result\n\n try {\n result = mexp.eval(toEvaluate)\n }\n catch (e) {\n return functionIdentifier + \"(\" + expression + \")\"\n }\n\n // Transform back to a percentage result:\n if (unit === \"%\") {\n result *= 100\n }\n\n // adjust rounding shit\n // (0.1 * 0.2 === 0.020000000000000004)\n if (functionIdentifier.length || unit === \"%\") {\n result = Math.round(result * decimalPrecision) / decimalPrecision\n }\n\n // Add unit\n result += unit\n\n return result\n }\n\n /**\n * Evaluates nested expressions\n *\n * @param {String} expression\n * @returns {String}\n */\n function evaluateNestedExpression(expression, call) {\n // Remove the calc part from nested expressions to ensure\n // better browser compatibility\n expression = expression.replace(/((?:\\-[a-z]+\\-)?calc)/g, \"\")\n var evaluatedPart = \"\"\n var nonEvaluatedPart = expression\n var matches\n while ((matches = NESTED_CALC_RE.exec(nonEvaluatedPart))) {\n if (matches[0].index > 0) {\n evaluatedPart += nonEvaluatedPart.substring(0, matches[0].index)\n }\n\n var balancedExpr = balanced(\"(\", \")\", nonEvaluatedPart.substring([0].index))\n if (balancedExpr.body === \"\") {\n throw new Error(\"'\" + expression + \"' must contain a non-whitespace string\")\n }\n\n var evaluated = evaluateExpression(balancedExpr.body, \"\", call)\n\n evaluatedPart += balancedExpr.pre + evaluated\n nonEvaluatedPart = balancedExpr.post\n }\n\n return evaluatedPart + nonEvaluatedPart\n }\n\n return reduceFunctionCall(value, /((?:\\-[a-z]+\\-)?calc)\\(/, evaluateExpression)\n}\n\n/**\n * Checks what units are used in an expression\n *\n * @param {String} expression\n * @returns {Array}\n */\n\nfunction getUnitsInExpression(expression) {\n var uniqueUnits = []\n var uniqueLowerCaseUnits = []\n var unitRegEx = /[\\.0-9]([%a-z]+)/gi\n var matches = unitRegEx.exec(expression)\n\n while (matches) {\n if (!matches || !matches[1]) {\n continue\n }\n\n if (uniqueLowerCaseUnits.indexOf(matches[1].toLowerCase()) === -1) {\n uniqueUnits.push(matches[1])\n uniqueLowerCaseUnits.push(matches[1].toLowerCase())\n }\n\n matches = unitRegEx.exec(expression)\n }\n\n return uniqueUnits\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/reduce-css-calc/index.js\n// module id = 943\n// module chunks = 0","module.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/reduce-css-calc/~/balanced-match/index.js\n// module id = 944\n// module chunks = 0","/*\n * Module dependencies\n */\nvar balanced = require(\"balanced-match\")\n\n/**\n * Expose `reduceFunctionCall`\n *\n * @type {Function}\n */\nmodule.exports = reduceFunctionCall\n\n/**\n * Walkthrough all expressions, evaluate them and insert them into the declaration\n *\n * @param {Array} expressions\n * @param {Object} declaration\n */\n\nfunction reduceFunctionCall(string, functionRE, callback) {\n var call = string\n return getFunctionCalls(string, functionRE).reduce(function(string, obj) {\n return string.replace(obj.functionIdentifier + \"(\" + obj.matches.body + \")\", evalFunctionCall(obj.matches.body, obj.functionIdentifier, callback, call, functionRE))\n }, string)\n}\n\n/**\n * Parses expressions in a value\n *\n * @param {String} value\n * @returns {Array}\n * @api private\n */\n\nfunction getFunctionCalls(call, functionRE) {\n var expressions = []\n\n var fnRE = typeof functionRE === \"string\" ? new RegExp(\"\\\\b(\" + functionRE + \")\\\\(\") : functionRE\n do {\n var searchMatch = fnRE.exec(call)\n if (!searchMatch) {\n return expressions\n }\n if (searchMatch[1] === undefined) {\n throw new Error(\"Missing the first couple of parenthesis to get the function identifier in \" + functionRE)\n }\n var fn = searchMatch[1]\n var startIndex = searchMatch.index\n var matches = balanced(\"(\", \")\", call.substring(startIndex))\n\n if (!matches || matches.start !== searchMatch[0].length - 1) {\n throw new SyntaxError(fn + \"(): missing closing ')' in the value '\" + call + \"'\")\n }\n\n expressions.push({matches: matches, functionIdentifier: fn})\n call = matches.post\n }\n while (fnRE.test(call))\n\n return expressions\n}\n\n/**\n * Evaluates an expression\n *\n * @param {String} expression\n * @returns {String}\n * @api private\n */\n\nfunction evalFunctionCall (string, functionIdentifier, callback, call, functionRE) {\n // allow recursivity\n return callback(reduceFunctionCall(string, functionRE, callback), functionIdentifier, call)\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/reduce-function-call/index.js\n// module id = 945\n// module chunks = 0","module.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/reduce-function-call/~/balanced-match/index.js\n// module id = 946\n// module chunks = 0","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/resize-observer-polyfill/dist/ResizeObserver.es.js\n// module id = 947\n// module chunks = 0","'use strict';\n\nvar fetchKeys = require('lodash.keys');\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = fetchKeys(objA);\n var keysB = fetchKeys(objB);\n\n var len = keysA.length;\n if (len !== keysB.length) {\n return false;\n }\n\n compareContext = compareContext || null;\n\n // Test for A's keys different from B.\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n for (var i = 0; i < len; i++) {\n var key = keysA[i];\n if (!bHasOwnProperty(key)) {\n return false;\n }\n var valueA = objA[key];\n var valueB = objB[key];\n\n var _ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n if (_ret === false || _ret === void 0 && valueA !== valueB) {\n return false;\n }\n }\n\n return true;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/shallowequal/modules/index.js\n// module id = 948\n// module chunks = 0","/*! VelocityJS.org (1.5.2). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */\r\n\r\n/*************************\r\n Velocity jQuery Shim\r\n *************************/\r\n\r\n/*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */\r\n\r\n/* This file contains the jQuery functions that Velocity relies on, thereby removing Velocity's dependency on a full copy of jQuery, and allowing it to work in any environment. */\r\n/* These shimmed functions are only used if jQuery isn't present. If both this shim and jQuery are loaded, Velocity defaults to jQuery proper. */\r\n/* Browser support: Using this shim instead of jQuery proper removes support for IE8. */\r\n\r\n(function(window) {\r\n\t\"use strict\";\r\n\t/***************\r\n\t Setup\r\n\t ***************/\r\n\r\n\t/* If jQuery is already loaded, there's no point in loading this shim. */\r\n\tif (window.jQuery) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t/* jQuery base. */\r\n\tvar $ = function(selector, context) {\r\n\t\treturn new $.fn.init(selector, context);\r\n\t};\r\n\r\n\t/********************\r\n\t Private Methods\r\n\t ********************/\r\n\r\n\t/* jQuery */\r\n\t$.isWindow = function(obj) {\r\n\t\t/* jshint eqeqeq: false */\r\n\t\treturn obj && obj === obj.window;\r\n\t};\r\n\r\n\t/* jQuery */\r\n\t$.type = function(obj) {\r\n\t\tif (!obj) {\r\n\t\t\treturn obj + \"\";\r\n\t\t}\r\n\r\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\r\n\t\t\t\tclass2type[toString.call(obj)] || \"object\" :\r\n\t\t\t\ttypeof obj;\r\n\t};\r\n\r\n\t/* jQuery */\r\n\t$.isArray = Array.isArray || function(obj) {\r\n\t\treturn $.type(obj) === \"array\";\r\n\t};\r\n\r\n\t/* jQuery */\r\n\tfunction isArraylike(obj) {\r\n\t\tvar length = obj.length,\r\n\t\t\t\ttype = $.type(obj);\r\n\r\n\t\tif (type === \"function\" || $.isWindow(obj)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (obj.nodeType === 1 && length) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && (length - 1) in obj;\r\n\t}\r\n\r\n\t/***************\r\n\t $ Methods\r\n\t ***************/\r\n\r\n\t/* jQuery: Support removed for IE<9. */\r\n\t$.isPlainObject = function(obj) {\r\n\t\tvar key;\r\n\r\n\t\tif (!obj || $.type(obj) !== \"object\" || obj.nodeType || $.isWindow(obj)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tif (obj.constructor &&\r\n\t\t\t\t\t!hasOwn.call(obj, \"constructor\") &&\r\n\t\t\t\t\t!hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\")) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (key in obj) {\r\n\t\t}\r\n\r\n\t\treturn key === undefined || hasOwn.call(obj, key);\r\n\t};\r\n\r\n\t/* jQuery */\r\n\t$.each = function(obj, callback, args) {\r\n\t\tvar value,\r\n\t\t\t\ti = 0,\r\n\t\t\t\tlength = obj.length,\r\n\t\t\t\tisArray = isArraylike(obj);\r\n\r\n\t\tif (args) {\r\n\t\t\tif (isArray) {\r\n\t\t\t\tfor (; i < length; i++) {\r\n\t\t\t\t\tvalue = callback.apply(obj[i], args);\r\n\r\n\t\t\t\t\tif (value === false) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i in obj) {\r\n\t\t\t\t\tif (!obj.hasOwnProperty(i)) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvalue = callback.apply(obj[i], args);\r\n\r\n\t\t\t\t\tif (value === false) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\tif (isArray) {\r\n\t\t\t\tfor (; i < length; i++) {\r\n\t\t\t\t\tvalue = callback.call(obj[i], i, obj[i]);\r\n\r\n\t\t\t\t\tif (value === false) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i in obj) {\r\n\t\t\t\t\tif (!obj.hasOwnProperty(i)) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvalue = callback.call(obj[i], i, obj[i]);\r\n\r\n\t\t\t\t\tif (value === false) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn obj;\r\n\t};\r\n\r\n\t/* Custom */\r\n\t$.data = function(node, key, value) {\r\n\t\t/* $.getData() */\r\n\t\tif (value === undefined) {\r\n\t\t\tvar getId = node[$.expando],\r\n\t\t\t\t\tstore = getId && cache[getId];\r\n\r\n\t\t\tif (key === undefined) {\r\n\t\t\t\treturn store;\r\n\t\t\t} else if (store) {\r\n\t\t\t\tif (key in store) {\r\n\t\t\t\t\treturn store[key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t/* $.setData() */\r\n\t\t} else if (key !== undefined) {\r\n\t\t\tvar setId = node[$.expando] || (node[$.expando] = ++$.uuid);\r\n\r\n\t\t\tcache[setId] = cache[setId] || {};\r\n\t\t\tcache[setId][key] = value;\r\n\r\n\t\t\treturn value;\r\n\t\t}\r\n\t};\r\n\r\n\t/* Custom */\r\n\t$.removeData = function(node, keys) {\r\n\t\tvar id = node[$.expando],\r\n\t\t\t\tstore = id && cache[id];\r\n\r\n\t\tif (store) {\r\n\t\t\t// Cleanup the entire store if no keys are provided.\r\n\t\t\tif (!keys) {\r\n\t\t\t\tdelete cache[id];\r\n\t\t\t} else {\r\n\t\t\t\t$.each(keys, function(_, key) {\r\n\t\t\t\t\tdelete store[key];\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/* jQuery */\r\n\t$.extend = function() {\r\n\t\tvar src, copyIsArray, copy, name, options, clone,\r\n\t\t\t\ttarget = arguments[0] || {},\r\n\t\t\t\ti = 1,\r\n\t\t\t\tlength = arguments.length,\r\n\t\t\t\tdeep = false;\r\n\r\n\t\tif (typeof target === \"boolean\") {\r\n\t\t\tdeep = target;\r\n\r\n\t\t\ttarget = arguments[i] || {};\r\n\t\t\ti++;\r\n\t\t}\r\n\r\n\t\tif (typeof target !== \"object\" && $.type(target) !== \"function\") {\r\n\t\t\ttarget = {};\r\n\t\t}\r\n\r\n\t\tif (i === length) {\r\n\t\t\ttarget = this;\r\n\t\t\ti--;\r\n\t\t}\r\n\r\n\t\tfor (; i < length; i++) {\r\n\t\t\tif ((options = arguments[i])) {\r\n\t\t\t\tfor (name in options) {\r\n\t\t\t\t\tif (!options.hasOwnProperty(name)) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsrc = target[name];\r\n\t\t\t\t\tcopy = options[name];\r\n\r\n\t\t\t\t\tif (target === copy) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (deep && copy && ($.isPlainObject(copy) || (copyIsArray = $.isArray(copy)))) {\r\n\t\t\t\t\t\tif (copyIsArray) {\r\n\t\t\t\t\t\t\tcopyIsArray = false;\r\n\t\t\t\t\t\t\tclone = src && $.isArray(src) ? src : [];\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tclone = src && $.isPlainObject(src) ? src : {};\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttarget[name] = $.extend(deep, clone, copy);\r\n\r\n\t\t\t\t\t} else if (copy !== undefined) {\r\n\t\t\t\t\t\ttarget[name] = copy;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t};\r\n\r\n\t/* jQuery 1.4.3 */\r\n\t$.queue = function(elem, type, data) {\r\n\t\tfunction $makeArray(arr, results) {\r\n\t\t\tvar ret = results || [];\r\n\r\n\t\t\tif (arr) {\r\n\t\t\t\tif (isArraylike(Object(arr))) {\r\n\t\t\t\t\t/* $.merge */\r\n\t\t\t\t\t(function(first, second) {\r\n\t\t\t\t\t\tvar len = +second.length,\r\n\t\t\t\t\t\t\t\tj = 0,\r\n\t\t\t\t\t\t\t\ti = first.length;\r\n\r\n\t\t\t\t\t\twhile (j < len) {\r\n\t\t\t\t\t\t\tfirst[i++] = second[j++];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (len !== len) {\r\n\t\t\t\t\t\t\twhile (second[j] !== undefined) {\r\n\t\t\t\t\t\t\t\tfirst[i++] = second[j++];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfirst.length = i;\r\n\r\n\t\t\t\t\t\treturn first;\r\n\t\t\t\t\t})(ret, typeof arr === \"string\" ? [arr] : arr);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t[].push.call(ret, arr);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn ret;\r\n\t\t}\r\n\r\n\t\tif (!elem) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\ttype = (type || \"fx\") + \"queue\";\r\n\r\n\t\tvar q = $.data(elem, type);\r\n\r\n\t\tif (!data) {\r\n\t\t\treturn q || [];\r\n\t\t}\r\n\r\n\t\tif (!q || $.isArray(data)) {\r\n\t\t\tq = $.data(elem, type, $makeArray(data));\r\n\t\t} else {\r\n\t\t\tq.push(data);\r\n\t\t}\r\n\r\n\t\treturn q;\r\n\t};\r\n\r\n\t/* jQuery 1.4.3 */\r\n\t$.dequeue = function(elems, type) {\r\n\t\t/* Custom: Embed element iteration. */\r\n\t\t$.each(elems.nodeType ? [elems] : elems, function(i, elem) {\r\n\t\t\ttype = type || \"fx\";\r\n\r\n\t\t\tvar queue = $.queue(elem, type),\r\n\t\t\t\t\tfn = queue.shift();\r\n\r\n\t\t\tif (fn === \"inprogress\") {\r\n\t\t\t\tfn = queue.shift();\r\n\t\t\t}\r\n\r\n\t\t\tif (fn) {\r\n\t\t\t\tif (type === \"fx\") {\r\n\t\t\t\t\tqueue.unshift(\"inprogress\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfn.call(elem, function() {\r\n\t\t\t\t\t$.dequeue(elem, type);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\t/******************\r\n\t $.fn Methods\r\n\t ******************/\r\n\r\n\t/* jQuery */\r\n\t$.fn = $.prototype = {\r\n\t\tinit: function(selector) {\r\n\t\t\t/* Just return the element wrapped inside an array; don't proceed with the actual jQuery node wrapping process. */\r\n\t\t\tif (selector.nodeType) {\r\n\t\t\t\tthis[0] = selector;\r\n\r\n\t\t\t\treturn this;\r\n\t\t\t} else {\r\n\t\t\t\tthrow new Error(\"Not a DOM node.\");\r\n\t\t\t}\r\n\t\t},\r\n\t\toffset: function() {\r\n\t\t\t/* jQuery altered code: Dropped disconnected DOM node checking. */\r\n\t\t\tvar box = this[0].getBoundingClientRect ? this[0].getBoundingClientRect() : {top: 0, left: 0};\r\n\r\n\t\t\treturn {\r\n\t\t\t\ttop: box.top + (window.pageYOffset || document.scrollTop || 0) - (document.clientTop || 0),\r\n\t\t\t\tleft: box.left + (window.pageXOffset || document.scrollLeft || 0) - (document.clientLeft || 0)\r\n\t\t\t};\r\n\t\t},\r\n\t\tposition: function() {\r\n\t\t\t/* jQuery */\r\n\t\t\tfunction offsetParentFn(elem) {\r\n\t\t\t\tvar offsetParent = elem.offsetParent;\r\n\r\n\t\t\t\twhile (offsetParent && (offsetParent.nodeName.toLowerCase() !== \"html\" && offsetParent.style && offsetParent.style.position.toLowerCase() === \"static\")) {\r\n\t\t\t\t\toffsetParent = offsetParent.offsetParent;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn offsetParent || document;\r\n\t\t\t}\r\n\r\n\t\t\t/* Zepto */\r\n\t\t\tvar elem = this[0],\r\n\t\t\t\t\toffsetParent = offsetParentFn(elem),\r\n\t\t\t\t\toffset = this.offset(),\r\n\t\t\t\t\tparentOffset = /^(?:body|html)$/i.test(offsetParent.nodeName) ? {top: 0, left: 0} : $(offsetParent).offset();\r\n\r\n\t\t\toffset.top -= parseFloat(elem.style.marginTop) || 0;\r\n\t\t\toffset.left -= parseFloat(elem.style.marginLeft) || 0;\r\n\r\n\t\t\tif (offsetParent.style) {\r\n\t\t\t\tparentOffset.top += parseFloat(offsetParent.style.borderTopWidth) || 0;\r\n\t\t\t\tparentOffset.left += parseFloat(offsetParent.style.borderLeftWidth) || 0;\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\ttop: offset.top - parentOffset.top,\r\n\t\t\t\tleft: offset.left - parentOffset.left\r\n\t\t\t};\r\n\t\t}\r\n\t};\r\n\r\n\t/**********************\r\n\t Private Variables\r\n\t **********************/\r\n\r\n\t/* For $.data() */\r\n\tvar cache = {};\r\n\t$.expando = \"velocity\" + (new Date().getTime());\r\n\t$.uuid = 0;\r\n\r\n\t/* For $.queue() */\r\n\tvar class2type = {},\r\n\t\t\thasOwn = class2type.hasOwnProperty,\r\n\t\t\ttoString = class2type.toString;\r\n\r\n\tvar types = \"Boolean Number String Function Array Date RegExp Object Error\".split(\" \");\r\n\tfor (var i = 0; i < types.length; i++) {\r\n\t\tclass2type[\"[object \" + types[i] + \"]\"] = types[i].toLowerCase();\r\n\t}\r\n\r\n\t/* Makes $(node) possible, without having to call init. */\r\n\t$.fn.init.prototype = $.fn;\r\n\r\n\t/* Globalize Velocity onto the window, and assign its Utilities property. */\r\n\twindow.Velocity = {Utilities: $};\r\n})(window);\r\n\r\n/******************\r\n Velocity.js\r\n ******************/\r\n\r\n(function(factory) {\r\n\t\"use strict\";\r\n\t/* CommonJS module. */\r\n\tif (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n\t\tmodule.exports = factory();\r\n\t\t/* AMD module. */\r\n\t} else if (typeof define === \"function\" && define.amd) {\r\n\t\tdefine(factory);\r\n\t\t/* Browser globals. */\r\n\t} else {\r\n\t\tfactory();\r\n\t}\r\n}(function() {\r\n\t\"use strict\";\r\n\treturn function(global, window, document, undefined) {\r\n\r\n\t\t/***************\r\n\t\t Summary\r\n\t\t ***************/\r\n\r\n\t\t/*\r\n\t\t - CSS: CSS stack that works independently from the rest of Velocity.\r\n\t\t - animate(): Core animation method that iterates over the targeted elements and queues the incoming call onto each element individually.\r\n\t\t - Pre-Queueing: Prepare the element for animation by instantiating its data cache and processing the call's options.\r\n\t\t - Queueing: The logic that runs once the call has reached its point of execution in the element's $.queue() stack.\r\n\t\t Most logic is placed here to avoid risking it becoming stale (if the element's properties have changed).\r\n\t\t - Pushing: Consolidation of the tween data followed by its push onto the global in-progress calls container.\r\n\t\t - tick(): The single requestAnimationFrame loop responsible for tweening all in-progress calls.\r\n\t\t - completeCall(): Handles the cleanup process for each Velocity call.\r\n\t\t */\r\n\r\n\t\t/*********************\r\n\t\t Helper Functions\r\n\t\t *********************/\r\n\r\n\t\t/* IE detection. Gist: https://gist.github.com/julianshapiro/9098609 */\r\n\t\tvar IE = (function() {\r\n\t\t\tif (document.documentMode) {\r\n\t\t\t\treturn document.documentMode;\r\n\t\t\t} else {\r\n\t\t\t\tfor (var i = 7; i > 4; i--) {\r\n\t\t\t\t\tvar div = document.createElement(\"div\");\r\n\r\n\t\t\t\t\tdiv.innerHTML = \"\";\r\n\r\n\t\t\t\t\tif (div.getElementsByTagName(\"span\").length) {\r\n\t\t\t\t\t\tdiv = null;\r\n\r\n\t\t\t\t\t\treturn i;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn undefined;\r\n\t\t})();\r\n\r\n\t\t/* rAF shim. Gist: https://gist.github.com/julianshapiro/9497513 */\r\n\t\tvar rAFShim = (function() {\r\n\t\t\tvar timeLast = 0;\r\n\r\n\t\t\treturn window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(callback) {\r\n\t\t\t\tvar timeCurrent = (new Date()).getTime(),\r\n\t\t\t\t\t\ttimeDelta;\r\n\r\n\t\t\t\t/* Dynamically set delay on a per-tick basis to match 60fps. */\r\n\t\t\t\t/* Technique by Erik Moller. MIT license: https://gist.github.com/paulirish/1579671 */\r\n\t\t\t\ttimeDelta = Math.max(0, 16 - (timeCurrent - timeLast));\r\n\t\t\t\ttimeLast = timeCurrent + timeDelta;\r\n\r\n\t\t\t\treturn setTimeout(function() {\r\n\t\t\t\t\tcallback(timeCurrent + timeDelta);\r\n\t\t\t\t}, timeDelta);\r\n\t\t\t};\r\n\t\t})();\r\n\r\n\t\tvar performance = (function() {\r\n\t\t\tvar perf = window.performance || {};\r\n\r\n\t\t\tif (typeof perf.now !== \"function\") {\r\n\t\t\t\tvar nowOffset = perf.timing && perf.timing.navigationStart ? perf.timing.navigationStart : (new Date()).getTime();\r\n\r\n\t\t\t\tperf.now = function() {\r\n\t\t\t\t\treturn (new Date()).getTime() - nowOffset;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\treturn perf;\r\n\t\t})();\r\n\r\n\t\t/* Array compacting. Copyright Lo-Dash. MIT License: https://github.com/lodash/lodash/blob/master/LICENSE.txt */\r\n\t\tfunction compactSparseArray(array) {\r\n\t\t\tvar index = -1,\r\n\t\t\t\t\tlength = array ? array.length : 0,\r\n\t\t\t\t\tresult = [];\r\n\r\n\t\t\twhile (++index < length) {\r\n\t\t\t\tvar value = array[index];\r\n\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tresult.push(value);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Shim for \"fixing\" IE's lack of support (IE < 9) for applying slice\r\n\t\t * on host objects like NamedNodeMap, NodeList, and HTMLCollection\r\n\t\t * (technically, since host objects have been implementation-dependent,\r\n\t\t * at least before ES2015, IE hasn't needed to work this way).\r\n\t\t * Also works on strings, fixes IE < 9 to allow an explicit undefined\r\n\t\t * for the 2nd argument (as in Firefox), and prevents errors when\r\n\t\t * called on other DOM objects.\r\n\t\t */\r\n\t\tvar _slice = (function() {\r\n\t\t\tvar slice = Array.prototype.slice;\r\n\r\n\t\t\ttry {\r\n\t\t\t\t// Can't be used with DOM elements in IE < 9\r\n\t\t\t\tslice.call(document.documentElement);\r\n\t\t\t\treturn slice;\r\n\t\t\t} catch (e) { // Fails in IE < 9\r\n\r\n\t\t\t\t// This will work for genuine arrays, array-like objects, \r\n\t\t\t\t// NamedNodeMap (attributes, entities, notations),\r\n\t\t\t\t// NodeList (e.g., getElementsByTagName), HTMLCollection (e.g., childNodes),\r\n\t\t\t\t// and will not fail on other DOM objects (as do DOM elements in IE < 9)\r\n\t\t\t\treturn function(begin, end) {\r\n\t\t\t\t\tvar len = this.length;\r\n\r\n\t\t\t\t\tif (typeof begin !== \"number\") {\r\n\t\t\t\t\t\tbegin = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// IE < 9 gets unhappy with an undefined end argument\r\n\t\t\t\t\tif (typeof end !== \"number\") {\r\n\t\t\t\t\t\tend = len;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// For native Array objects, we use the native slice function\r\n\t\t\t\t\tif (this.slice) {\r\n\t\t\t\t\t\treturn slice.call(this, begin, end);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// For array like object we handle it ourselves.\r\n\t\t\t\t\tvar i,\r\n\t\t\t\t\t\t\tcloned = [],\r\n\t\t\t\t\t\t\t// Handle negative value for \"begin\"\r\n\t\t\t\t\t\t\tstart = (begin >= 0) ? begin : Math.max(0, len + begin),\r\n\t\t\t\t\t\t\t// Handle negative value for \"end\"\r\n\t\t\t\t\t\t\tupTo = end < 0 ? len + end : Math.min(end, len),\r\n\t\t\t\t\t\t\t// Actual expected size of the slice\r\n\t\t\t\t\t\t\tsize = upTo - start;\r\n\r\n\t\t\t\t\tif (size > 0) {\r\n\t\t\t\t\t\tcloned = new Array(size);\r\n\t\t\t\t\t\tif (this.charAt) {\r\n\t\t\t\t\t\t\tfor (i = 0; i < size; i++) {\r\n\t\t\t\t\t\t\t\tcloned[i] = this.charAt(start + i);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tfor (i = 0; i < size; i++) {\r\n\t\t\t\t\t\t\t\tcloned[i] = this[start + i];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn cloned;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t/* .indexOf doesn't exist in IE<9 */\r\n\t\tvar _inArray = (function() {\r\n\t\t\tif (Array.prototype.includes) {\r\n\t\t\t\treturn function(arr, val) {\r\n\t\t\t\t\treturn arr.includes(val);\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tif (Array.prototype.indexOf) {\r\n\t\t\t\treturn function(arr, val) {\r\n\t\t\t\t\treturn arr.indexOf(val) >= 0;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\treturn function(arr, val) {\r\n\t\t\t\tfor (var i = 0; i < arr.length; i++) {\r\n\t\t\t\t\tif (arr[i] === val) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tfunction sanitizeElements(elements) {\r\n\t\t\t/* Unwrap jQuery/Zepto objects. */\r\n\t\t\tif (Type.isWrapped(elements)) {\r\n\t\t\t\telements = _slice.call(elements);\r\n\t\t\t\t/* Wrap a single element in an array so that $.each() can iterate with the element instead of its node's children. */\r\n\t\t\t} else if (Type.isNode(elements)) {\r\n\t\t\t\telements = [elements];\r\n\t\t\t}\r\n\r\n\t\t\treturn elements;\r\n\t\t}\r\n\r\n\t\tvar Type = {\r\n\t\t\tisNumber: function(variable) {\r\n\t\t\t\treturn (typeof variable === \"number\");\r\n\t\t\t},\r\n\t\t\tisString: function(variable) {\r\n\t\t\t\treturn (typeof variable === \"string\");\r\n\t\t\t},\r\n\t\t\tisArray: Array.isArray || function(variable) {\r\n\t\t\t\treturn Object.prototype.toString.call(variable) === \"[object Array]\";\r\n\t\t\t},\r\n\t\t\tisFunction: function(variable) {\r\n\t\t\t\treturn Object.prototype.toString.call(variable) === \"[object Function]\";\r\n\t\t\t},\r\n\t\t\tisNode: function(variable) {\r\n\t\t\t\treturn variable && variable.nodeType;\r\n\t\t\t},\r\n\t\t\t/* Determine if variable is an array-like wrapped jQuery, Zepto or similar element, or even a NodeList etc. */\r\n\t\t\t/* NOTE: HTMLFormElements also have a length. */\r\n\t\t\tisWrapped: function(variable) {\r\n\t\t\t\treturn variable\r\n\t\t\t\t\t\t&& variable !== window\r\n\t\t\t\t\t\t&& Type.isNumber(variable.length)\r\n\t\t\t\t\t\t&& !Type.isString(variable)\r\n\t\t\t\t\t\t&& !Type.isFunction(variable)\r\n\t\t\t\t\t\t&& !Type.isNode(variable)\r\n\t\t\t\t\t\t&& (variable.length === 0 || Type.isNode(variable[0]));\r\n\t\t\t},\r\n\t\t\tisSVG: function(variable) {\r\n\t\t\t\treturn window.SVGElement && (variable instanceof window.SVGElement);\r\n\t\t\t},\r\n\t\t\tisEmptyObject: function(variable) {\r\n\t\t\t\tfor (var name in variable) {\r\n\t\t\t\t\tif (variable.hasOwnProperty(name)) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/*****************\r\n\t\t Dependencies\r\n\t\t *****************/\r\n\r\n\t\tvar $,\r\n\t\t\t\tisJQuery = false;\r\n\r\n\t\tif (global.fn && global.fn.jquery) {\r\n\t\t\t$ = global;\r\n\t\t\tisJQuery = true;\r\n\t\t} else {\r\n\t\t\t$ = window.Velocity.Utilities;\r\n\t\t}\r\n\r\n\t\tif (IE <= 8 && !isJQuery) {\r\n\t\t\tthrow new Error(\"Velocity: IE8 and below require jQuery to be loaded before Velocity.\");\r\n\t\t} else if (IE <= 7) {\r\n\t\t\t/* Revert to jQuery's $.animate(), and lose Velocity's extra features. */\r\n\t\t\tjQuery.fn.velocity = jQuery.fn.animate;\r\n\r\n\t\t\t/* Now that $.fn.velocity is aliased, abort this Velocity declaration. */\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t/*****************\r\n\t\t Constants\r\n\t\t *****************/\r\n\r\n\t\tvar DURATION_DEFAULT = 400,\r\n\t\t\t\tEASING_DEFAULT = \"swing\";\r\n\r\n\t\t/*************\r\n\t\t State\r\n\t\t *************/\r\n\r\n\t\tvar Velocity = {\r\n\t\t\t/* Container for page-wide Velocity state data. */\r\n\t\t\tState: {\r\n\t\t\t\t/* Detect mobile devices to determine if mobileHA should be turned on. */\r\n\t\t\t\tisMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent),\r\n\t\t\t\t/* The mobileHA option's behavior changes on older Android devices (Gingerbread, versions 2.3.3-2.3.7). */\r\n\t\t\t\tisAndroid: /Android/i.test(window.navigator.userAgent),\r\n\t\t\t\tisGingerbread: /Android 2\\.3\\.[3-7]/i.test(window.navigator.userAgent),\r\n\t\t\t\tisChrome: window.chrome,\r\n\t\t\t\tisFirefox: /Firefox/i.test(window.navigator.userAgent),\r\n\t\t\t\t/* Create a cached element for re-use when checking for CSS property prefixes. */\r\n\t\t\t\tprefixElement: document.createElement(\"div\"),\r\n\t\t\t\t/* Cache every prefix match to avoid repeating lookups. */\r\n\t\t\t\tprefixMatches: {},\r\n\t\t\t\t/* Cache the anchor used for animating window scrolling. */\r\n\t\t\t\tscrollAnchor: null,\r\n\t\t\t\t/* Cache the browser-specific property names associated with the scroll anchor. */\r\n\t\t\t\tscrollPropertyLeft: null,\r\n\t\t\t\tscrollPropertyTop: null,\r\n\t\t\t\t/* Keep track of whether our RAF tick is running. */\r\n\t\t\t\tisTicking: false,\r\n\t\t\t\t/* Container for every in-progress call to Velocity. */\r\n\t\t\t\tcalls: [],\r\n\t\t\t\tdelayedElements: {\r\n\t\t\t\t\tcount: 0\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/* Velocity's custom CSS stack. Made global for unit testing. */\r\n\t\t\tCSS: {/* Defined below. */},\r\n\t\t\t/* A shim of the jQuery utility functions used by Velocity -- provided by Velocity's optional jQuery shim. */\r\n\t\t\tUtilities: $,\r\n\t\t\t/* Container for the user's custom animation redirects that are referenced by name in place of the properties map argument. */\r\n\t\t\tRedirects: {/* Manually registered by the user. */},\r\n\t\t\tEasings: {/* Defined below. */},\r\n\t\t\t/* Attempt to use ES6 Promises by default. Users can override this with a third-party promises library. */\r\n\t\t\tPromise: window.Promise,\r\n\t\t\t/* Velocity option defaults, which can be overriden by the user. */\r\n\t\t\tdefaults: {\r\n\t\t\t\tqueue: \"\",\r\n\t\t\t\tduration: DURATION_DEFAULT,\r\n\t\t\t\teasing: EASING_DEFAULT,\r\n\t\t\t\tbegin: undefined,\r\n\t\t\t\tcomplete: undefined,\r\n\t\t\t\tprogress: undefined,\r\n\t\t\t\tdisplay: undefined,\r\n\t\t\t\tvisibility: undefined,\r\n\t\t\t\tloop: false,\r\n\t\t\t\tdelay: false,\r\n\t\t\t\tmobileHA: true,\r\n\t\t\t\t/* Advanced: Set to false to prevent property values from being cached between consecutive Velocity-initiated chain calls. */\r\n\t\t\t\t_cacheValues: true,\r\n\t\t\t\t/* Advanced: Set to false if the promise should always resolve on empty element lists. */\r\n\t\t\t\tpromiseRejectEmpty: true\r\n\t\t\t},\r\n\t\t\t/* A design goal of Velocity is to cache data wherever possible in order to avoid DOM requerying. Accordingly, each element has a data cache. */\r\n\t\t\tinit: function(element) {\r\n\t\t\t\t$.data(element, \"velocity\", {\r\n\t\t\t\t\t/* Store whether this is an SVG element, since its properties are retrieved and updated differently than standard HTML elements. */\r\n\t\t\t\t\tisSVG: Type.isSVG(element),\r\n\t\t\t\t\t/* Keep track of whether the element is currently being animated by Velocity.\r\n\t\t\t\t\t This is used to ensure that property values are not transferred between non-consecutive (stale) calls. */\r\n\t\t\t\t\tisAnimating: false,\r\n\t\t\t\t\t/* A reference to the element's live computedStyle object. Learn more here: https://developer.mozilla.org/en/docs/Web/API/window.getComputedStyle */\r\n\t\t\t\t\tcomputedStyle: null,\r\n\t\t\t\t\t/* Tween data is cached for each animation on the element so that data can be passed across calls --\r\n\t\t\t\t\t in particular, end values are used as subsequent start values in consecutive Velocity calls. */\r\n\t\t\t\t\ttweensContainer: null,\r\n\t\t\t\t\t/* The full root property values of each CSS hook being animated on this element are cached so that:\r\n\t\t\t\t\t 1) Concurrently-animating hooks sharing the same root can have their root values' merged into one while tweening.\r\n\t\t\t\t\t 2) Post-hook-injection root values can be transferred over to consecutively chained Velocity calls as starting root values. */\r\n\t\t\t\t\trootPropertyValueCache: {},\r\n\t\t\t\t\t/* A cache for transform updates, which must be manually flushed via CSS.flushTransformCache(). */\r\n\t\t\t\t\ttransformCache: {}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t/* A parallel to jQuery's $.css(), used for getting/setting Velocity's hooked CSS properties. */\r\n\t\t\thook: null, /* Defined below. */\r\n\t\t\t/* Velocity-wide animation time remapping for testing purposes. */\r\n\t\t\tmock: false,\r\n\t\t\tversion: {major: 1, minor: 5, patch: 2},\r\n\t\t\t/* Set to 1 or 2 (most verbose) to output debug info to console. */\r\n\t\t\tdebug: false,\r\n\t\t\t/* Use rAF high resolution timestamp when available */\r\n\t\t\ttimestamp: true,\r\n\t\t\t/* Pause all animations */\r\n\t\t\tpauseAll: function(queueName) {\r\n\t\t\t\tvar currentTime = (new Date()).getTime();\r\n\r\n\t\t\t\t$.each(Velocity.State.calls, function(i, activeCall) {\r\n\r\n\t\t\t\t\tif (activeCall) {\r\n\r\n\t\t\t\t\t\t/* If we have a queueName and this call is not on that queue, skip */\r\n\t\t\t\t\t\tif (queueName !== undefined && ((activeCall[2].queue !== queueName) || (activeCall[2].queue === false))) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Set call to paused */\r\n\t\t\t\t\t\tactiveCall[5] = {\r\n\t\t\t\t\t\t\tresume: false\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t/* Pause timers on any currently delayed calls */\r\n\t\t\t\t$.each(Velocity.State.delayedElements, function(k, element) {\r\n\t\t\t\t\tif (!element) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpauseDelayOnElement(element, currentTime);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t/* Resume all animations */\r\n\t\t\tresumeAll: function(queueName) {\r\n\t\t\t\tvar currentTime = (new Date()).getTime();\r\n\r\n\t\t\t\t$.each(Velocity.State.calls, function(i, activeCall) {\r\n\r\n\t\t\t\t\tif (activeCall) {\r\n\r\n\t\t\t\t\t\t/* If we have a queueName and this call is not on that queue, skip */\r\n\t\t\t\t\t\tif (queueName !== undefined && ((activeCall[2].queue !== queueName) || (activeCall[2].queue === false))) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Set call to resumed if it was paused */\r\n\t\t\t\t\t\tif (activeCall[5]) {\r\n\t\t\t\t\t\t\tactiveCall[5].resume = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t/* Resume timers on any currently delayed calls */\r\n\t\t\t\t$.each(Velocity.State.delayedElements, function(k, element) {\r\n\t\t\t\t\tif (!element) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tresumeDelayOnElement(element, currentTime);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/* Retrieve the appropriate scroll anchor and property name for the browser: https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY */\r\n\t\tif (window.pageYOffset !== undefined) {\r\n\t\t\tVelocity.State.scrollAnchor = window;\r\n\t\t\tVelocity.State.scrollPropertyLeft = \"pageXOffset\";\r\n\t\t\tVelocity.State.scrollPropertyTop = \"pageYOffset\";\r\n\t\t} else {\r\n\t\t\tVelocity.State.scrollAnchor = document.documentElement || document.body.parentNode || document.body;\r\n\t\t\tVelocity.State.scrollPropertyLeft = \"scrollLeft\";\r\n\t\t\tVelocity.State.scrollPropertyTop = \"scrollTop\";\r\n\t\t}\r\n\r\n\t\t/* Shorthand alias for jQuery's $.data() utility. */\r\n\t\tfunction Data(element) {\r\n\t\t\t/* Hardcode a reference to the plugin name. */\r\n\t\t\tvar response = $.data(element, \"velocity\");\r\n\r\n\t\t\t/* jQuery <=1.4.2 returns null instead of undefined when no match is found. We normalize this behavior. */\r\n\t\t\treturn response === null ? undefined : response;\r\n\t\t}\r\n\r\n\t\t/**************\r\n\t\t Delay Timer\r\n\t\t **************/\r\n\r\n\t\tfunction pauseDelayOnElement(element, currentTime) {\r\n\t\t\t/* Check for any delay timers, and pause the set timeouts (while preserving time data)\r\n\t\t\t to be resumed when the \"resume\" command is issued */\r\n\t\t\tvar data = Data(element);\r\n\t\t\tif (data && data.delayTimer && !data.delayPaused) {\r\n\t\t\t\tdata.delayRemaining = data.delay - currentTime + data.delayBegin;\r\n\t\t\t\tdata.delayPaused = true;\r\n\t\t\t\tclearTimeout(data.delayTimer.setTimeout);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction resumeDelayOnElement(element, currentTime) {\r\n\t\t\t/* Check for any paused timers and resume */\r\n\t\t\tvar data = Data(element);\r\n\t\t\tif (data && data.delayTimer && data.delayPaused) {\r\n\t\t\t\t/* If the element was mid-delay, re initiate the timeout with the remaining delay */\r\n\t\t\t\tdata.delayPaused = false;\r\n\t\t\t\tdata.delayTimer.setTimeout = setTimeout(data.delayTimer.next, data.delayRemaining);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\r\n\t\t/**************\r\n\t\t Easing\r\n\t\t **************/\r\n\r\n\t\t/* Step easing generator. */\r\n\t\tfunction generateStep(steps) {\r\n\t\t\treturn function(p) {\r\n\t\t\t\treturn Math.round(p * steps) * (1 / steps);\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/* Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */\r\n\t\tfunction generateBezier(mX1, mY1, mX2, mY2) {\r\n\t\t\tvar NEWTON_ITERATIONS = 4,\r\n\t\t\t\t\tNEWTON_MIN_SLOPE = 0.001,\r\n\t\t\t\t\tSUBDIVISION_PRECISION = 0.0000001,\r\n\t\t\t\t\tSUBDIVISION_MAX_ITERATIONS = 10,\r\n\t\t\t\t\tkSplineTableSize = 11,\r\n\t\t\t\t\tkSampleStepSize = 1.0 / (kSplineTableSize - 1.0),\r\n\t\t\t\t\tfloat32ArraySupported = \"Float32Array\" in window;\r\n\r\n\t\t\t/* Must contain four arguments. */\r\n\t\t\tif (arguments.length !== 4) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t/* Arguments must be numbers. */\r\n\t\t\tfor (var i = 0; i < 4; ++i) {\r\n\t\t\t\tif (typeof arguments[i] !== \"number\" || isNaN(arguments[i]) || !isFinite(arguments[i])) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/* X values must be in the [0, 1] range. */\r\n\t\t\tmX1 = Math.min(mX1, 1);\r\n\t\t\tmX2 = Math.min(mX2, 1);\r\n\t\t\tmX1 = Math.max(mX1, 0);\r\n\t\t\tmX2 = Math.max(mX2, 0);\r\n\r\n\t\t\tvar mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\r\n\r\n\t\t\tfunction A(aA1, aA2) {\r\n\t\t\t\treturn 1.0 - 3.0 * aA2 + 3.0 * aA1;\r\n\t\t\t}\r\n\t\t\tfunction B(aA1, aA2) {\r\n\t\t\t\treturn 3.0 * aA2 - 6.0 * aA1;\r\n\t\t\t}\r\n\t\t\tfunction C(aA1) {\r\n\t\t\t\treturn 3.0 * aA1;\r\n\t\t\t}\r\n\r\n\t\t\tfunction calcBezier(aT, aA1, aA2) {\r\n\t\t\t\treturn ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\r\n\t\t\t}\r\n\r\n\t\t\tfunction getSlope(aT, aA1, aA2) {\r\n\t\t\t\treturn 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\r\n\t\t\t}\r\n\r\n\t\t\tfunction newtonRaphsonIterate(aX, aGuessT) {\r\n\t\t\t\tfor (var i = 0; i < NEWTON_ITERATIONS; ++i) {\r\n\t\t\t\t\tvar currentSlope = getSlope(aGuessT, mX1, mX2);\r\n\r\n\t\t\t\t\tif (currentSlope === 0.0) {\r\n\t\t\t\t\t\treturn aGuessT;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar currentX = calcBezier(aGuessT, mX1, mX2) - aX;\r\n\t\t\t\t\taGuessT -= currentX / currentSlope;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn aGuessT;\r\n\t\t\t}\r\n\r\n\t\t\tfunction calcSampleValues() {\r\n\t\t\t\tfor (var i = 0; i < kSplineTableSize; ++i) {\r\n\t\t\t\t\tmSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction binarySubdivide(aX, aA, aB) {\r\n\t\t\t\tvar currentX, currentT, i = 0;\r\n\r\n\t\t\t\tdo {\r\n\t\t\t\t\tcurrentT = aA + (aB - aA) / 2.0;\r\n\t\t\t\t\tcurrentX = calcBezier(currentT, mX1, mX2) - aX;\r\n\t\t\t\t\tif (currentX > 0.0) {\r\n\t\t\t\t\t\taB = currentT;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\taA = currentT;\r\n\t\t\t\t\t}\r\n\t\t\t\t} while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\r\n\r\n\t\t\t\treturn currentT;\r\n\t\t\t}\r\n\r\n\t\t\tfunction getTForX(aX) {\r\n\t\t\t\tvar intervalStart = 0.0,\r\n\t\t\t\t\t\tcurrentSample = 1,\r\n\t\t\t\t\t\tlastSample = kSplineTableSize - 1;\r\n\r\n\t\t\t\tfor (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\r\n\t\t\t\t\tintervalStart += kSampleStepSize;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t--currentSample;\r\n\r\n\t\t\t\tvar dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]),\r\n\t\t\t\t\t\tguessForT = intervalStart + dist * kSampleStepSize,\r\n\t\t\t\t\t\tinitialSlope = getSlope(guessForT, mX1, mX2);\r\n\r\n\t\t\t\tif (initialSlope >= NEWTON_MIN_SLOPE) {\r\n\t\t\t\t\treturn newtonRaphsonIterate(aX, guessForT);\r\n\t\t\t\t} else if (initialSlope === 0.0) {\r\n\t\t\t\t\treturn guessForT;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar _precomputed = false;\r\n\r\n\t\t\tfunction precompute() {\r\n\t\t\t\t_precomputed = true;\r\n\t\t\t\tif (mX1 !== mY1 || mX2 !== mY2) {\r\n\t\t\t\t\tcalcSampleValues();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar f = function(aX) {\r\n\t\t\t\tif (!_precomputed) {\r\n\t\t\t\t\tprecompute();\r\n\t\t\t\t}\r\n\t\t\t\tif (mX1 === mY1 && mX2 === mY2) {\r\n\t\t\t\t\treturn aX;\r\n\t\t\t\t}\r\n\t\t\t\tif (aX === 0) {\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t\tif (aX === 1) {\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn calcBezier(getTForX(aX), mY1, mY2);\r\n\t\t\t};\r\n\r\n\t\t\tf.getControlPoints = function() {\r\n\t\t\t\treturn [{x: mX1, y: mY1}, {x: mX2, y: mY2}];\r\n\t\t\t};\r\n\r\n\t\t\tvar str = \"generateBezier(\" + [mX1, mY1, mX2, mY2] + \")\";\r\n\t\t\tf.toString = function() {\r\n\t\t\t\treturn str;\r\n\t\t\t};\r\n\r\n\t\t\treturn f;\r\n\t\t}\r\n\r\n\t\t/* Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */\r\n\t\t/* Given a tension, friction, and duration, a simulation at 60FPS will first run without a defined duration in order to calculate the full path. A second pass\r\n\t\t then adjusts the time delta -- using the relation between actual time and duration -- to calculate the path for the duration-constrained animation. */\r\n\t\tvar generateSpringRK4 = (function() {\r\n\t\t\tfunction springAccelerationForState(state) {\r\n\t\t\t\treturn (-state.tension * state.x) - (state.friction * state.v);\r\n\t\t\t}\r\n\r\n\t\t\tfunction springEvaluateStateWithDerivative(initialState, dt, derivative) {\r\n\t\t\t\tvar state = {\r\n\t\t\t\t\tx: initialState.x + derivative.dx * dt,\r\n\t\t\t\t\tv: initialState.v + derivative.dv * dt,\r\n\t\t\t\t\ttension: initialState.tension,\r\n\t\t\t\t\tfriction: initialState.friction\r\n\t\t\t\t};\r\n\r\n\t\t\t\treturn {dx: state.v, dv: springAccelerationForState(state)};\r\n\t\t\t}\r\n\r\n\t\t\tfunction springIntegrateState(state, dt) {\r\n\t\t\t\tvar a = {\r\n\t\t\t\t\tdx: state.v,\r\n\t\t\t\t\tdv: springAccelerationForState(state)\r\n\t\t\t\t},\r\n\t\t\t\t\t\tb = springEvaluateStateWithDerivative(state, dt * 0.5, a),\r\n\t\t\t\t\t\tc = springEvaluateStateWithDerivative(state, dt * 0.5, b),\r\n\t\t\t\t\t\td = springEvaluateStateWithDerivative(state, dt, c),\r\n\t\t\t\t\t\tdxdt = 1.0 / 6.0 * (a.dx + 2.0 * (b.dx + c.dx) + d.dx),\r\n\t\t\t\t\t\tdvdt = 1.0 / 6.0 * (a.dv + 2.0 * (b.dv + c.dv) + d.dv);\r\n\r\n\t\t\t\tstate.x = state.x + dxdt * dt;\r\n\t\t\t\tstate.v = state.v + dvdt * dt;\r\n\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\r\n\t\t\treturn function springRK4Factory(tension, friction, duration) {\r\n\r\n\t\t\t\tvar initState = {\r\n\t\t\t\t\tx: -1,\r\n\t\t\t\t\tv: 0,\r\n\t\t\t\t\ttension: null,\r\n\t\t\t\t\tfriction: null\r\n\t\t\t\t},\r\n\t\t\t\t\t\tpath = [0],\r\n\t\t\t\t\t\ttime_lapsed = 0,\r\n\t\t\t\t\t\ttolerance = 1 / 10000,\r\n\t\t\t\t\t\tDT = 16 / 1000,\r\n\t\t\t\t\t\thave_duration, dt, last_state;\r\n\r\n\t\t\t\ttension = parseFloat(tension) || 500;\r\n\t\t\t\tfriction = parseFloat(friction) || 20;\r\n\t\t\t\tduration = duration || null;\r\n\r\n\t\t\t\tinitState.tension = tension;\r\n\t\t\t\tinitState.friction = friction;\r\n\r\n\t\t\t\thave_duration = duration !== null;\r\n\r\n\t\t\t\t/* Calculate the actual time it takes for this animation to complete with the provided conditions. */\r\n\t\t\t\tif (have_duration) {\r\n\t\t\t\t\t/* Run the simulation without a duration. */\r\n\t\t\t\t\ttime_lapsed = springRK4Factory(tension, friction);\r\n\t\t\t\t\t/* Compute the adjusted time delta. */\r\n\t\t\t\t\tdt = time_lapsed / duration * DT;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdt = DT;\r\n\t\t\t\t}\r\n\r\n\t\t\t\twhile (true) {\r\n\t\t\t\t\t/* Next/step function .*/\r\n\t\t\t\t\tlast_state = springIntegrateState(last_state || initState, dt);\r\n\t\t\t\t\t/* Store the position. */\r\n\t\t\t\t\tpath.push(1 + last_state.x);\r\n\t\t\t\t\ttime_lapsed += 16;\r\n\t\t\t\t\t/* If the change threshold is reached, break. */\r\n\t\t\t\t\tif (!(Math.abs(last_state.x) > tolerance && Math.abs(last_state.v) > tolerance)) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* If duration is not defined, return the actual time required for completing this animation. Otherwise, return a closure that holds the\r\n\t\t\t\t computed path and returns a snapshot of the position according to a given percentComplete. */\r\n\t\t\t\treturn !have_duration ? time_lapsed : function(percentComplete) {\r\n\t\t\t\t\treturn path[ (percentComplete * (path.length - 1)) | 0 ];\r\n\t\t\t\t};\r\n\t\t\t};\r\n\t\t}());\r\n\r\n\t\t/* jQuery easings. */\r\n\t\tVelocity.Easings = {\r\n\t\t\tlinear: function(p) {\r\n\t\t\t\treturn p;\r\n\t\t\t},\r\n\t\t\tswing: function(p) {\r\n\t\t\t\treturn 0.5 - Math.cos(p * Math.PI) / 2;\r\n\t\t\t},\r\n\t\t\t/* Bonus \"spring\" easing, which is a less exaggerated version of easeInOutElastic. */\r\n\t\t\tspring: function(p) {\r\n\t\t\t\treturn 1 - (Math.cos(p * 4.5 * Math.PI) * Math.exp(-p * 6));\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/* CSS3 and Robert Penner easings. */\r\n\t\t$.each(\r\n\t\t\t\t[\r\n\t\t\t\t\t[\"ease\", [0.25, 0.1, 0.25, 1.0]],\r\n\t\t\t\t\t[\"ease-in\", [0.42, 0.0, 1.00, 1.0]],\r\n\t\t\t\t\t[\"ease-out\", [0.00, 0.0, 0.58, 1.0]],\r\n\t\t\t\t\t[\"ease-in-out\", [0.42, 0.0, 0.58, 1.0]],\r\n\t\t\t\t\t[\"easeInSine\", [0.47, 0, 0.745, 0.715]],\r\n\t\t\t\t\t[\"easeOutSine\", [0.39, 0.575, 0.565, 1]],\r\n\t\t\t\t\t[\"easeInOutSine\", [0.445, 0.05, 0.55, 0.95]],\r\n\t\t\t\t\t[\"easeInQuad\", [0.55, 0.085, 0.68, 0.53]],\r\n\t\t\t\t\t[\"easeOutQuad\", [0.25, 0.46, 0.45, 0.94]],\r\n\t\t\t\t\t[\"easeInOutQuad\", [0.455, 0.03, 0.515, 0.955]],\r\n\t\t\t\t\t[\"easeInCubic\", [0.55, 0.055, 0.675, 0.19]],\r\n\t\t\t\t\t[\"easeOutCubic\", [0.215, 0.61, 0.355, 1]],\r\n\t\t\t\t\t[\"easeInOutCubic\", [0.645, 0.045, 0.355, 1]],\r\n\t\t\t\t\t[\"easeInQuart\", [0.895, 0.03, 0.685, 0.22]],\r\n\t\t\t\t\t[\"easeOutQuart\", [0.165, 0.84, 0.44, 1]],\r\n\t\t\t\t\t[\"easeInOutQuart\", [0.77, 0, 0.175, 1]],\r\n\t\t\t\t\t[\"easeInQuint\", [0.755, 0.05, 0.855, 0.06]],\r\n\t\t\t\t\t[\"easeOutQuint\", [0.23, 1, 0.32, 1]],\r\n\t\t\t\t\t[\"easeInOutQuint\", [0.86, 0, 0.07, 1]],\r\n\t\t\t\t\t[\"easeInExpo\", [0.95, 0.05, 0.795, 0.035]],\r\n\t\t\t\t\t[\"easeOutExpo\", [0.19, 1, 0.22, 1]],\r\n\t\t\t\t\t[\"easeInOutExpo\", [1, 0, 0, 1]],\r\n\t\t\t\t\t[\"easeInCirc\", [0.6, 0.04, 0.98, 0.335]],\r\n\t\t\t\t\t[\"easeOutCirc\", [0.075, 0.82, 0.165, 1]],\r\n\t\t\t\t\t[\"easeInOutCirc\", [0.785, 0.135, 0.15, 0.86]]\r\n\t\t\t\t], function(i, easingArray) {\r\n\t\t\tVelocity.Easings[easingArray[0]] = generateBezier.apply(null, easingArray[1]);\r\n\t\t});\r\n\r\n\t\t/* Determine the appropriate easing type given an easing input. */\r\n\t\tfunction getEasing(value, duration) {\r\n\t\t\tvar easing = value;\r\n\r\n\t\t\t/* The easing option can either be a string that references a pre-registered easing,\r\n\t\t\t or it can be a two-/four-item array of integers to be converted into a bezier/spring function. */\r\n\t\t\tif (Type.isString(value)) {\r\n\t\t\t\t/* Ensure that the easing has been assigned to jQuery's Velocity.Easings object. */\r\n\t\t\t\tif (!Velocity.Easings[value]) {\r\n\t\t\t\t\teasing = false;\r\n\t\t\t\t}\r\n\t\t\t} else if (Type.isArray(value) && value.length === 1) {\r\n\t\t\t\teasing = generateStep.apply(null, value);\r\n\t\t\t} else if (Type.isArray(value) && value.length === 2) {\r\n\t\t\t\t/* springRK4 must be passed the animation's duration. */\r\n\t\t\t\t/* Note: If the springRK4 array contains non-numbers, generateSpringRK4() returns an easing\r\n\t\t\t\t function generated with default tension and friction values. */\r\n\t\t\t\teasing = generateSpringRK4.apply(null, value.concat([duration]));\r\n\t\t\t} else if (Type.isArray(value) && value.length === 4) {\r\n\t\t\t\t/* Note: If the bezier array contains non-numbers, generateBezier() returns false. */\r\n\t\t\t\teasing = generateBezier.apply(null, value);\r\n\t\t\t} else {\r\n\t\t\t\teasing = false;\r\n\t\t\t}\r\n\r\n\t\t\t/* Revert to the Velocity-wide default easing type, or fall back to \"swing\" (which is also jQuery's default)\r\n\t\t\t if the Velocity-wide default has been incorrectly modified. */\r\n\t\t\tif (easing === false) {\r\n\t\t\t\tif (Velocity.Easings[Velocity.defaults.easing]) {\r\n\t\t\t\t\teasing = Velocity.defaults.easing;\r\n\t\t\t\t} else {\r\n\t\t\t\t\teasing = EASING_DEFAULT;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn easing;\r\n\t\t}\r\n\r\n\t\t/*****************\r\n\t\t CSS Stack\r\n\t\t *****************/\r\n\r\n\t\t/* The CSS object is a highly condensed and performant CSS stack that fully replaces jQuery's.\r\n\t\t It handles the validation, getting, and setting of both standard CSS properties and CSS property hooks. */\r\n\t\t/* Note: A \"CSS\" shorthand is aliased so that our code is easier to read. */\r\n\t\tvar CSS = Velocity.CSS = {\r\n\t\t\t/*************\r\n\t\t\t RegEx\r\n\t\t\t *************/\r\n\r\n\t\t\tRegEx: {\r\n\t\t\t\tisHex: /^#([A-f\\d]{3}){1,2}$/i,\r\n\t\t\t\t/* Unwrap a property value's surrounding text, e.g. \"rgba(4, 3, 2, 1)\" ==> \"4, 3, 2, 1\" and \"rect(4px 3px 2px 1px)\" ==> \"4px 3px 2px 1px\". */\r\n\t\t\t\tvalueUnwrap: /^[A-z]+\\((.*)\\)$/i,\r\n\t\t\t\twrappedValueAlreadyExtracted: /[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,\r\n\t\t\t\t/* Split a multi-value property into an array of subvalues, e.g. \"rgba(4, 3, 2, 1) 4px 3px 2px 1px\" ==> [ \"rgba(4, 3, 2, 1)\", \"4px\", \"3px\", \"2px\", \"1px\" ]. */\r\n\t\t\t\tvalueSplit: /([A-z]+\\(.+\\))|(([A-z0-9#-.]+?)(?=\\s|$))/ig\r\n\t\t\t},\r\n\t\t\t/************\r\n\t\t\t Lists\r\n\t\t\t ************/\r\n\r\n\t\t\tLists: {\r\n\t\t\t\tcolors: [\"fill\", \"stroke\", \"stopColor\", \"color\", \"backgroundColor\", \"borderColor\", \"borderTopColor\", \"borderRightColor\", \"borderBottomColor\", \"borderLeftColor\", \"outlineColor\"],\r\n\t\t\t\ttransformsBase: [\"translateX\", \"translateY\", \"scale\", \"scaleX\", \"scaleY\", \"skewX\", \"skewY\", \"rotateZ\"],\r\n\t\t\t\ttransforms3D: [\"transformPerspective\", \"translateZ\", \"scaleZ\", \"rotateX\", \"rotateY\"],\r\n\t\t\t\tunits: [\r\n\t\t\t\t\t\"%\", // relative\r\n\t\t\t\t\t\"em\", \"ex\", \"ch\", \"rem\", // font relative\r\n\t\t\t\t\t\"vw\", \"vh\", \"vmin\", \"vmax\", // viewport relative\r\n\t\t\t\t\t\"cm\", \"mm\", \"Q\", \"in\", \"pc\", \"pt\", \"px\", // absolute lengths\r\n\t\t\t\t\t\"deg\", \"grad\", \"rad\", \"turn\", // angles\r\n\t\t\t\t\t\"s\", \"ms\" // time\r\n\t\t\t\t],\r\n\t\t\t\tcolorNames: {\r\n\t\t\t\t\t\"aliceblue\": \"240,248,255\",\r\n\t\t\t\t\t\"antiquewhite\": \"250,235,215\",\r\n\t\t\t\t\t\"aquamarine\": \"127,255,212\",\r\n\t\t\t\t\t\"aqua\": \"0,255,255\",\r\n\t\t\t\t\t\"azure\": \"240,255,255\",\r\n\t\t\t\t\t\"beige\": \"245,245,220\",\r\n\t\t\t\t\t\"bisque\": \"255,228,196\",\r\n\t\t\t\t\t\"black\": \"0,0,0\",\r\n\t\t\t\t\t\"blanchedalmond\": \"255,235,205\",\r\n\t\t\t\t\t\"blueviolet\": \"138,43,226\",\r\n\t\t\t\t\t\"blue\": \"0,0,255\",\r\n\t\t\t\t\t\"brown\": \"165,42,42\",\r\n\t\t\t\t\t\"burlywood\": \"222,184,135\",\r\n\t\t\t\t\t\"cadetblue\": \"95,158,160\",\r\n\t\t\t\t\t\"chartreuse\": \"127,255,0\",\r\n\t\t\t\t\t\"chocolate\": \"210,105,30\",\r\n\t\t\t\t\t\"coral\": \"255,127,80\",\r\n\t\t\t\t\t\"cornflowerblue\": \"100,149,237\",\r\n\t\t\t\t\t\"cornsilk\": \"255,248,220\",\r\n\t\t\t\t\t\"crimson\": \"220,20,60\",\r\n\t\t\t\t\t\"cyan\": \"0,255,255\",\r\n\t\t\t\t\t\"darkblue\": \"0,0,139\",\r\n\t\t\t\t\t\"darkcyan\": \"0,139,139\",\r\n\t\t\t\t\t\"darkgoldenrod\": \"184,134,11\",\r\n\t\t\t\t\t\"darkgray\": \"169,169,169\",\r\n\t\t\t\t\t\"darkgrey\": \"169,169,169\",\r\n\t\t\t\t\t\"darkgreen\": \"0,100,0\",\r\n\t\t\t\t\t\"darkkhaki\": \"189,183,107\",\r\n\t\t\t\t\t\"darkmagenta\": \"139,0,139\",\r\n\t\t\t\t\t\"darkolivegreen\": \"85,107,47\",\r\n\t\t\t\t\t\"darkorange\": \"255,140,0\",\r\n\t\t\t\t\t\"darkorchid\": \"153,50,204\",\r\n\t\t\t\t\t\"darkred\": \"139,0,0\",\r\n\t\t\t\t\t\"darksalmon\": \"233,150,122\",\r\n\t\t\t\t\t\"darkseagreen\": \"143,188,143\",\r\n\t\t\t\t\t\"darkslateblue\": \"72,61,139\",\r\n\t\t\t\t\t\"darkslategray\": \"47,79,79\",\r\n\t\t\t\t\t\"darkturquoise\": \"0,206,209\",\r\n\t\t\t\t\t\"darkviolet\": \"148,0,211\",\r\n\t\t\t\t\t\"deeppink\": \"255,20,147\",\r\n\t\t\t\t\t\"deepskyblue\": \"0,191,255\",\r\n\t\t\t\t\t\"dimgray\": \"105,105,105\",\r\n\t\t\t\t\t\"dimgrey\": \"105,105,105\",\r\n\t\t\t\t\t\"dodgerblue\": \"30,144,255\",\r\n\t\t\t\t\t\"firebrick\": \"178,34,34\",\r\n\t\t\t\t\t\"floralwhite\": \"255,250,240\",\r\n\t\t\t\t\t\"forestgreen\": \"34,139,34\",\r\n\t\t\t\t\t\"fuchsia\": \"255,0,255\",\r\n\t\t\t\t\t\"gainsboro\": \"220,220,220\",\r\n\t\t\t\t\t\"ghostwhite\": \"248,248,255\",\r\n\t\t\t\t\t\"gold\": \"255,215,0\",\r\n\t\t\t\t\t\"goldenrod\": \"218,165,32\",\r\n\t\t\t\t\t\"gray\": \"128,128,128\",\r\n\t\t\t\t\t\"grey\": \"128,128,128\",\r\n\t\t\t\t\t\"greenyellow\": \"173,255,47\",\r\n\t\t\t\t\t\"green\": \"0,128,0\",\r\n\t\t\t\t\t\"honeydew\": \"240,255,240\",\r\n\t\t\t\t\t\"hotpink\": \"255,105,180\",\r\n\t\t\t\t\t\"indianred\": \"205,92,92\",\r\n\t\t\t\t\t\"indigo\": \"75,0,130\",\r\n\t\t\t\t\t\"ivory\": \"255,255,240\",\r\n\t\t\t\t\t\"khaki\": \"240,230,140\",\r\n\t\t\t\t\t\"lavenderblush\": \"255,240,245\",\r\n\t\t\t\t\t\"lavender\": \"230,230,250\",\r\n\t\t\t\t\t\"lawngreen\": \"124,252,0\",\r\n\t\t\t\t\t\"lemonchiffon\": \"255,250,205\",\r\n\t\t\t\t\t\"lightblue\": \"173,216,230\",\r\n\t\t\t\t\t\"lightcoral\": \"240,128,128\",\r\n\t\t\t\t\t\"lightcyan\": \"224,255,255\",\r\n\t\t\t\t\t\"lightgoldenrodyellow\": \"250,250,210\",\r\n\t\t\t\t\t\"lightgray\": \"211,211,211\",\r\n\t\t\t\t\t\"lightgrey\": \"211,211,211\",\r\n\t\t\t\t\t\"lightgreen\": \"144,238,144\",\r\n\t\t\t\t\t\"lightpink\": \"255,182,193\",\r\n\t\t\t\t\t\"lightsalmon\": \"255,160,122\",\r\n\t\t\t\t\t\"lightseagreen\": \"32,178,170\",\r\n\t\t\t\t\t\"lightskyblue\": \"135,206,250\",\r\n\t\t\t\t\t\"lightslategray\": \"119,136,153\",\r\n\t\t\t\t\t\"lightsteelblue\": \"176,196,222\",\r\n\t\t\t\t\t\"lightyellow\": \"255,255,224\",\r\n\t\t\t\t\t\"limegreen\": \"50,205,50\",\r\n\t\t\t\t\t\"lime\": \"0,255,0\",\r\n\t\t\t\t\t\"linen\": \"250,240,230\",\r\n\t\t\t\t\t\"magenta\": \"255,0,255\",\r\n\t\t\t\t\t\"maroon\": \"128,0,0\",\r\n\t\t\t\t\t\"mediumaquamarine\": \"102,205,170\",\r\n\t\t\t\t\t\"mediumblue\": \"0,0,205\",\r\n\t\t\t\t\t\"mediumorchid\": \"186,85,211\",\r\n\t\t\t\t\t\"mediumpurple\": \"147,112,219\",\r\n\t\t\t\t\t\"mediumseagreen\": \"60,179,113\",\r\n\t\t\t\t\t\"mediumslateblue\": \"123,104,238\",\r\n\t\t\t\t\t\"mediumspringgreen\": \"0,250,154\",\r\n\t\t\t\t\t\"mediumturquoise\": \"72,209,204\",\r\n\t\t\t\t\t\"mediumvioletred\": \"199,21,133\",\r\n\t\t\t\t\t\"midnightblue\": \"25,25,112\",\r\n\t\t\t\t\t\"mintcream\": \"245,255,250\",\r\n\t\t\t\t\t\"mistyrose\": \"255,228,225\",\r\n\t\t\t\t\t\"moccasin\": \"255,228,181\",\r\n\t\t\t\t\t\"navajowhite\": \"255,222,173\",\r\n\t\t\t\t\t\"navy\": \"0,0,128\",\r\n\t\t\t\t\t\"oldlace\": \"253,245,230\",\r\n\t\t\t\t\t\"olivedrab\": \"107,142,35\",\r\n\t\t\t\t\t\"olive\": \"128,128,0\",\r\n\t\t\t\t\t\"orangered\": \"255,69,0\",\r\n\t\t\t\t\t\"orange\": \"255,165,0\",\r\n\t\t\t\t\t\"orchid\": \"218,112,214\",\r\n\t\t\t\t\t\"palegoldenrod\": \"238,232,170\",\r\n\t\t\t\t\t\"palegreen\": \"152,251,152\",\r\n\t\t\t\t\t\"paleturquoise\": \"175,238,238\",\r\n\t\t\t\t\t\"palevioletred\": \"219,112,147\",\r\n\t\t\t\t\t\"papayawhip\": \"255,239,213\",\r\n\t\t\t\t\t\"peachpuff\": \"255,218,185\",\r\n\t\t\t\t\t\"peru\": \"205,133,63\",\r\n\t\t\t\t\t\"pink\": \"255,192,203\",\r\n\t\t\t\t\t\"plum\": \"221,160,221\",\r\n\t\t\t\t\t\"powderblue\": \"176,224,230\",\r\n\t\t\t\t\t\"purple\": \"128,0,128\",\r\n\t\t\t\t\t\"red\": \"255,0,0\",\r\n\t\t\t\t\t\"rosybrown\": \"188,143,143\",\r\n\t\t\t\t\t\"royalblue\": \"65,105,225\",\r\n\t\t\t\t\t\"saddlebrown\": \"139,69,19\",\r\n\t\t\t\t\t\"salmon\": \"250,128,114\",\r\n\t\t\t\t\t\"sandybrown\": \"244,164,96\",\r\n\t\t\t\t\t\"seagreen\": \"46,139,87\",\r\n\t\t\t\t\t\"seashell\": \"255,245,238\",\r\n\t\t\t\t\t\"sienna\": \"160,82,45\",\r\n\t\t\t\t\t\"silver\": \"192,192,192\",\r\n\t\t\t\t\t\"skyblue\": \"135,206,235\",\r\n\t\t\t\t\t\"slateblue\": \"106,90,205\",\r\n\t\t\t\t\t\"slategray\": \"112,128,144\",\r\n\t\t\t\t\t\"snow\": \"255,250,250\",\r\n\t\t\t\t\t\"springgreen\": \"0,255,127\",\r\n\t\t\t\t\t\"steelblue\": \"70,130,180\",\r\n\t\t\t\t\t\"tan\": \"210,180,140\",\r\n\t\t\t\t\t\"teal\": \"0,128,128\",\r\n\t\t\t\t\t\"thistle\": \"216,191,216\",\r\n\t\t\t\t\t\"tomato\": \"255,99,71\",\r\n\t\t\t\t\t\"turquoise\": \"64,224,208\",\r\n\t\t\t\t\t\"violet\": \"238,130,238\",\r\n\t\t\t\t\t\"wheat\": \"245,222,179\",\r\n\t\t\t\t\t\"whitesmoke\": \"245,245,245\",\r\n\t\t\t\t\t\"white\": \"255,255,255\",\r\n\t\t\t\t\t\"yellowgreen\": \"154,205,50\",\r\n\t\t\t\t\t\"yellow\": \"255,255,0\"\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/************\r\n\t\t\t Hooks\r\n\t\t\t ************/\r\n\r\n\t\t\t/* Hooks allow a subproperty (e.g. \"boxShadowBlur\") of a compound-value CSS property\r\n\t\t\t (e.g. \"boxShadow: X Y Blur Spread Color\") to be animated as if it were a discrete property. */\r\n\t\t\t/* Note: Beyond enabling fine-grained property animation, hooking is necessary since Velocity only\r\n\t\t\t tweens properties with single numeric values; unlike CSS transitions, Velocity does not interpolate compound-values. */\r\n\t\t\tHooks: {\r\n\t\t\t\t/********************\r\n\t\t\t\t Registration\r\n\t\t\t\t ********************/\r\n\r\n\t\t\t\t/* Templates are a concise way of indicating which subproperties must be individually registered for each compound-value CSS property. */\r\n\t\t\t\t/* Each template consists of the compound-value's base name, its constituent subproperty names, and those subproperties' default values. */\r\n\t\t\t\ttemplates: {\r\n\t\t\t\t\t\"textShadow\": [\"Color X Y Blur\", \"black 0px 0px 0px\"],\r\n\t\t\t\t\t\"boxShadow\": [\"Color X Y Blur Spread\", \"black 0px 0px 0px 0px\"],\r\n\t\t\t\t\t\"clip\": [\"Top Right Bottom Left\", \"0px 0px 0px 0px\"],\r\n\t\t\t\t\t\"backgroundPosition\": [\"X Y\", \"0% 0%\"],\r\n\t\t\t\t\t\"transformOrigin\": [\"X Y Z\", \"50% 50% 0px\"],\r\n\t\t\t\t\t\"perspectiveOrigin\": [\"X Y\", \"50% 50%\"]\r\n\t\t\t\t},\r\n\t\t\t\t/* A \"registered\" hook is one that has been converted from its template form into a live,\r\n\t\t\t\t tweenable property. It contains data to associate it with its root property. */\r\n\t\t\t\tregistered: {\r\n\t\t\t\t\t/* Note: A registered hook looks like this ==> textShadowBlur: [ \"textShadow\", 3 ],\r\n\t\t\t\t\t which consists of the subproperty's name, the associated root property's name,\r\n\t\t\t\t\t and the subproperty's position in the root's value. */\r\n\t\t\t\t},\r\n\t\t\t\t/* Convert the templates into individual hooks then append them to the registered object above. */\r\n\t\t\t\tregister: function() {\r\n\t\t\t\t\t/* Color hooks registration: Colors are defaulted to white -- as opposed to black -- since colors that are\r\n\t\t\t\t\t currently set to \"transparent\" default to their respective template below when color-animated,\r\n\t\t\t\t\t and white is typically a closer match to transparent than black is. An exception is made for text (\"color\"),\r\n\t\t\t\t\t which is almost always set closer to black than white. */\r\n\t\t\t\t\tfor (var i = 0; i < CSS.Lists.colors.length; i++) {\r\n\t\t\t\t\t\tvar rgbComponents = (CSS.Lists.colors[i] === \"color\") ? \"0 0 0 1\" : \"255 255 255 1\";\r\n\t\t\t\t\t\tCSS.Hooks.templates[CSS.Lists.colors[i]] = [\"Red Green Blue Alpha\", rgbComponents];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar rootProperty,\r\n\t\t\t\t\t\t\thookTemplate,\r\n\t\t\t\t\t\t\thookNames;\r\n\r\n\t\t\t\t\t/* In IE, color values inside compound-value properties are positioned at the end the value instead of at the beginning.\r\n\t\t\t\t\t Thus, we re-arrange the templates accordingly. */\r\n\t\t\t\t\tif (IE) {\r\n\t\t\t\t\t\tfor (rootProperty in CSS.Hooks.templates) {\r\n\t\t\t\t\t\t\tif (!CSS.Hooks.templates.hasOwnProperty(rootProperty)) {\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\thookTemplate = CSS.Hooks.templates[rootProperty];\r\n\t\t\t\t\t\t\thookNames = hookTemplate[0].split(\" \");\r\n\r\n\t\t\t\t\t\t\tvar defaultValues = hookTemplate[1].match(CSS.RegEx.valueSplit);\r\n\r\n\t\t\t\t\t\t\tif (hookNames[0] === \"Color\") {\r\n\t\t\t\t\t\t\t\t/* Reposition both the hook's name and its default value to the end of their respective strings. */\r\n\t\t\t\t\t\t\t\thookNames.push(hookNames.shift());\r\n\t\t\t\t\t\t\t\tdefaultValues.push(defaultValues.shift());\r\n\r\n\t\t\t\t\t\t\t\t/* Replace the existing template for the hook's root property. */\r\n\t\t\t\t\t\t\t\tCSS.Hooks.templates[rootProperty] = [hookNames.join(\" \"), defaultValues.join(\" \")];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Hook registration. */\r\n\t\t\t\t\tfor (rootProperty in CSS.Hooks.templates) {\r\n\t\t\t\t\t\tif (!CSS.Hooks.templates.hasOwnProperty(rootProperty)) {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\thookTemplate = CSS.Hooks.templates[rootProperty];\r\n\t\t\t\t\t\thookNames = hookTemplate[0].split(\" \");\r\n\r\n\t\t\t\t\t\tfor (var j in hookNames) {\r\n\t\t\t\t\t\t\tif (!hookNames.hasOwnProperty(j)) {\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvar fullHookName = rootProperty + hookNames[j],\r\n\t\t\t\t\t\t\t\t\thookPosition = j;\r\n\r\n\t\t\t\t\t\t\t/* For each hook, register its full name (e.g. textShadowBlur) with its root property (e.g. textShadow)\r\n\t\t\t\t\t\t\t and the hook's position in its template's default value string. */\r\n\t\t\t\t\t\t\tCSS.Hooks.registered[fullHookName] = [rootProperty, hookPosition];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t/*****************************\r\n\t\t\t\t Injection and Extraction\r\n\t\t\t\t *****************************/\r\n\r\n\t\t\t\t/* Look up the root property associated with the hook (e.g. return \"textShadow\" for \"textShadowBlur\"). */\r\n\t\t\t\t/* Since a hook cannot be set directly (the browser won't recognize it), style updating for hooks is routed through the hook's root property. */\r\n\t\t\t\tgetRoot: function(property) {\r\n\t\t\t\t\tvar hookData = CSS.Hooks.registered[property];\r\n\r\n\t\t\t\t\tif (hookData) {\r\n\t\t\t\t\t\treturn hookData[0];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* If there was no hook match, return the property name untouched. */\r\n\t\t\t\t\t\treturn property;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tgetUnit: function(str, start) {\r\n\t\t\t\t\tvar unit = (str.substr(start || 0, 5).match(/^[a-z%]+/) || [])[0] || \"\";\r\n\r\n\t\t\t\t\tif (unit && _inArray(CSS.Lists.units, unit)) {\r\n\t\t\t\t\t\treturn unit;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn \"\";\r\n\t\t\t\t},\r\n\t\t\t\tfixColors: function(str) {\r\n\t\t\t\t\treturn str.replace(/(rgba?\\(\\s*)?(\\b[a-z]+\\b)/g, function($0, $1, $2) {\r\n\t\t\t\t\t\tif (CSS.Lists.colorNames.hasOwnProperty($2)) {\r\n\t\t\t\t\t\t\treturn ($1 ? $1 : \"rgba(\") + CSS.Lists.colorNames[$2] + ($1 ? \"\" : \",1)\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn $1 + $2;\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\t/* Convert any rootPropertyValue, null or otherwise, into a space-delimited list of hook values so that\r\n\t\t\t\t the targeted hook can be injected or extracted at its standard position. */\r\n\t\t\t\tcleanRootPropertyValue: function(rootProperty, rootPropertyValue) {\r\n\t\t\t\t\t/* If the rootPropertyValue is wrapped with \"rgb()\", \"clip()\", etc., remove the wrapping to normalize the value before manipulation. */\r\n\t\t\t\t\tif (CSS.RegEx.valueUnwrap.test(rootPropertyValue)) {\r\n\t\t\t\t\t\trootPropertyValue = rootPropertyValue.match(CSS.RegEx.valueUnwrap)[1];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* If rootPropertyValue is a CSS null-value (from which there's inherently no hook value to extract),\r\n\t\t\t\t\t default to the root's default value as defined in CSS.Hooks.templates. */\r\n\t\t\t\t\t/* Note: CSS null-values include \"none\", \"auto\", and \"transparent\". They must be converted into their\r\n\t\t\t\t\t zero-values (e.g. textShadow: \"none\" ==> textShadow: \"0px 0px 0px black\") for hook manipulation to proceed. */\r\n\t\t\t\t\tif (CSS.Values.isCSSNullValue(rootPropertyValue)) {\r\n\t\t\t\t\t\trootPropertyValue = CSS.Hooks.templates[rootProperty][1];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn rootPropertyValue;\r\n\t\t\t\t},\r\n\t\t\t\t/* Extracted the hook's value from its root property's value. This is used to get the starting value of an animating hook. */\r\n\t\t\t\textractValue: function(fullHookName, rootPropertyValue) {\r\n\t\t\t\t\tvar hookData = CSS.Hooks.registered[fullHookName];\r\n\r\n\t\t\t\t\tif (hookData) {\r\n\t\t\t\t\t\tvar hookRoot = hookData[0],\r\n\t\t\t\t\t\t\t\thookPosition = hookData[1];\r\n\r\n\t\t\t\t\t\trootPropertyValue = CSS.Hooks.cleanRootPropertyValue(hookRoot, rootPropertyValue);\r\n\r\n\t\t\t\t\t\t/* Split rootPropertyValue into its constituent hook values then grab the desired hook at its standard position. */\r\n\t\t\t\t\t\treturn rootPropertyValue.toString().match(CSS.RegEx.valueSplit)[hookPosition];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* If the provided fullHookName isn't a registered hook, return the rootPropertyValue that was passed in. */\r\n\t\t\t\t\t\treturn rootPropertyValue;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t/* Inject the hook's value into its root property's value. This is used to piece back together the root property\r\n\t\t\t\t once Velocity has updated one of its individually hooked values through tweening. */\r\n\t\t\t\tinjectValue: function(fullHookName, hookValue, rootPropertyValue) {\r\n\t\t\t\t\tvar hookData = CSS.Hooks.registered[fullHookName];\r\n\r\n\t\t\t\t\tif (hookData) {\r\n\t\t\t\t\t\tvar hookRoot = hookData[0],\r\n\t\t\t\t\t\t\t\thookPosition = hookData[1],\r\n\t\t\t\t\t\t\t\trootPropertyValueParts,\r\n\t\t\t\t\t\t\t\trootPropertyValueUpdated;\r\n\r\n\t\t\t\t\t\trootPropertyValue = CSS.Hooks.cleanRootPropertyValue(hookRoot, rootPropertyValue);\r\n\r\n\t\t\t\t\t\t/* Split rootPropertyValue into its individual hook values, replace the targeted value with hookValue,\r\n\t\t\t\t\t\t then reconstruct the rootPropertyValue string. */\r\n\t\t\t\t\t\trootPropertyValueParts = rootPropertyValue.toString().match(CSS.RegEx.valueSplit);\r\n\t\t\t\t\t\trootPropertyValueParts[hookPosition] = hookValue;\r\n\t\t\t\t\t\trootPropertyValueUpdated = rootPropertyValueParts.join(\" \");\r\n\r\n\t\t\t\t\t\treturn rootPropertyValueUpdated;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* If the provided fullHookName isn't a registered hook, return the rootPropertyValue that was passed in. */\r\n\t\t\t\t\t\treturn rootPropertyValue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/*******************\r\n\t\t\t Normalizations\r\n\t\t\t *******************/\r\n\r\n\t\t\t/* Normalizations standardize CSS property manipulation by pollyfilling browser-specific implementations (e.g. opacity)\r\n\t\t\t and reformatting special properties (e.g. clip, rgba) to look like standard ones. */\r\n\t\t\tNormalizations: {\r\n\t\t\t\t/* Normalizations are passed a normalization target (either the property's name, its extracted value, or its injected value),\r\n\t\t\t\t the targeted element (which may need to be queried), and the targeted property value. */\r\n\t\t\t\tregistered: {\r\n\t\t\t\t\tclip: function(type, element, propertyValue) {\r\n\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\treturn \"clip\";\r\n\t\t\t\t\t\t\t\t/* Clip needs to be unwrapped and stripped of its commas during extraction. */\r\n\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\tvar extracted;\r\n\r\n\t\t\t\t\t\t\t\t/* If Velocity also extracted this value, skip extraction. */\r\n\t\t\t\t\t\t\t\tif (CSS.RegEx.wrappedValueAlreadyExtracted.test(propertyValue)) {\r\n\t\t\t\t\t\t\t\t\textracted = propertyValue;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t/* Remove the \"rect()\" wrapper. */\r\n\t\t\t\t\t\t\t\t\textracted = propertyValue.toString().match(CSS.RegEx.valueUnwrap);\r\n\r\n\t\t\t\t\t\t\t\t\t/* Strip off commas. */\r\n\t\t\t\t\t\t\t\t\textracted = extracted ? extracted[1].replace(/,(\\s+)?/g, \" \") : propertyValue;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn extracted;\r\n\t\t\t\t\t\t\t\t/* Clip needs to be re-wrapped during injection. */\r\n\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\treturn \"rect(\" + propertyValue + \")\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tblur: function(type, element, propertyValue) {\r\n\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\treturn Velocity.State.isFirefox ? \"filter\" : \"-webkit-filter\";\r\n\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\tvar extracted = parseFloat(propertyValue);\r\n\r\n\t\t\t\t\t\t\t\t/* If extracted is NaN, meaning the value isn't already extracted. */\r\n\t\t\t\t\t\t\t\tif (!(extracted || extracted === 0)) {\r\n\t\t\t\t\t\t\t\t\tvar blurComponent = propertyValue.toString().match(/blur\\(([0-9]+[A-z]+)\\)/i);\r\n\r\n\t\t\t\t\t\t\t\t\t/* If the filter string had a blur component, return just the blur value and unit type. */\r\n\t\t\t\t\t\t\t\t\tif (blurComponent) {\r\n\t\t\t\t\t\t\t\t\t\textracted = blurComponent[1];\r\n\t\t\t\t\t\t\t\t\t\t/* If the component doesn't exist, default blur to 0. */\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\textracted = 0;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn extracted;\r\n\t\t\t\t\t\t\t\t/* Blur needs to be re-wrapped during injection. */\r\n\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\t/* For the blur effect to be fully de-applied, it needs to be set to \"none\" instead of 0. */\r\n\t\t\t\t\t\t\t\tif (!parseFloat(propertyValue)) {\r\n\t\t\t\t\t\t\t\t\treturn \"none\";\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\treturn \"blur(\" + propertyValue + \")\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\t/* <=IE8 do not support the standard opacity property. They use filter:alpha(opacity=INT) instead. */\r\n\t\t\t\t\topacity: function(type, element, propertyValue) {\r\n\t\t\t\t\t\tif (IE <= 8) {\r\n\t\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\t\treturn \"filter\";\r\n\t\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\t\t/* <=IE8 return a \"filter\" value of \"alpha(opacity=\\d{1,3})\".\r\n\t\t\t\t\t\t\t\t\t Extract the value and convert it to a decimal value to match the standard CSS opacity property's formatting. */\r\n\t\t\t\t\t\t\t\t\tvar extracted = propertyValue.toString().match(/alpha\\(opacity=(.*)\\)/i);\r\n\r\n\t\t\t\t\t\t\t\t\tif (extracted) {\r\n\t\t\t\t\t\t\t\t\t\t/* Convert to decimal value. */\r\n\t\t\t\t\t\t\t\t\t\tpropertyValue = extracted[1] / 100;\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t/* When extracting opacity, default to 1 since a null value means opacity hasn't been set. */\r\n\t\t\t\t\t\t\t\t\t\tpropertyValue = 1;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\treturn propertyValue;\r\n\t\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\t\t/* Opacified elements are required to have their zoom property set to a non-zero value. */\r\n\t\t\t\t\t\t\t\t\telement.style.zoom = 1;\r\n\r\n\t\t\t\t\t\t\t\t\t/* Setting the filter property on elements with certain font property combinations can result in a\r\n\t\t\t\t\t\t\t\t\t highly unappealing ultra-bolding effect. There's no way to remedy this throughout a tween, but dropping the\r\n\t\t\t\t\t\t\t\t\t value altogether (when opacity hits 1) at leasts ensures that the glitch is gone post-tweening. */\r\n\t\t\t\t\t\t\t\t\tif (parseFloat(propertyValue) >= 1) {\r\n\t\t\t\t\t\t\t\t\t\treturn \"\";\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t/* As per the filter property's spec, convert the decimal value to a whole number and wrap the value. */\r\n\t\t\t\t\t\t\t\t\t\treturn \"alpha(opacity=\" + parseInt(parseFloat(propertyValue) * 100, 10) + \")\";\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t/* With all other browsers, normalization is not required; return the same values that were passed in. */\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\t\treturn \"opacity\";\r\n\t\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\t\treturn propertyValue;\r\n\t\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\t\treturn propertyValue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t/*****************************\r\n\t\t\t\t Batched Registrations\r\n\t\t\t\t *****************************/\r\n\r\n\t\t\t\t/* Note: Batched normalizations extend the CSS.Normalizations.registered object. */\r\n\t\t\t\tregister: function() {\r\n\r\n\t\t\t\t\t/*****************\r\n\t\t\t\t\t Transforms\r\n\t\t\t\t\t *****************/\r\n\r\n\t\t\t\t\t/* Transforms are the subproperties contained by the CSS \"transform\" property. Transforms must undergo normalization\r\n\t\t\t\t\t so that they can be referenced in a properties map by their individual names. */\r\n\t\t\t\t\t/* Note: When transforms are \"set\", they are actually assigned to a per-element transformCache. When all transform\r\n\t\t\t\t\t setting is complete complete, CSS.flushTransformCache() must be manually called to flush the values to the DOM.\r\n\t\t\t\t\t Transform setting is batched in this way to improve performance: the transform style only needs to be updated\r\n\t\t\t\t\t once when multiple transform subproperties are being animated simultaneously. */\r\n\t\t\t\t\t/* Note: IE9 and Android Gingerbread have support for 2D -- but not 3D -- transforms. Since animating unsupported\r\n\t\t\t\t\t transform properties results in the browser ignoring the *entire* transform string, we prevent these 3D values\r\n\t\t\t\t\t from being normalized for these browsers so that tweening skips these properties altogether\r\n\t\t\t\t\t (since it will ignore them as being unsupported by the browser.) */\r\n\t\t\t\t\tif ((!IE || IE > 9) && !Velocity.State.isGingerbread) {\r\n\t\t\t\t\t\t/* Note: Since the standalone CSS \"perspective\" property and the CSS transform \"perspective\" subproperty\r\n\t\t\t\t\t\t share the same name, the latter is given a unique token within Velocity: \"transformPerspective\". */\r\n\t\t\t\t\t\tCSS.Lists.transformsBase = CSS.Lists.transformsBase.concat(CSS.Lists.transforms3D);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfor (var i = 0; i < CSS.Lists.transformsBase.length; i++) {\r\n\t\t\t\t\t\t/* Wrap the dynamically generated normalization function in a new scope so that transformName's value is\r\n\t\t\t\t\t\t paired with its respective function. (Otherwise, all functions would take the final for loop's transformName.) */\r\n\t\t\t\t\t\t(function() {\r\n\t\t\t\t\t\t\tvar transformName = CSS.Lists.transformsBase[i];\r\n\r\n\t\t\t\t\t\t\tCSS.Normalizations.registered[transformName] = function(type, element, propertyValue) {\r\n\t\t\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\t\t\t/* The normalized property name is the parent \"transform\" property -- the property that is actually set in CSS. */\r\n\t\t\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\t\t\treturn \"transform\";\r\n\t\t\t\t\t\t\t\t\t\t/* Transform values are cached onto a per-element transformCache object. */\r\n\t\t\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\t\t\t/* If this transform has yet to be assigned a value, return its null value. */\r\n\t\t\t\t\t\t\t\t\t\tif (Data(element) === undefined || Data(element).transformCache[transformName] === undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t/* Scale CSS.Lists.transformsBase default to 1 whereas all other transform properties default to 0. */\r\n\t\t\t\t\t\t\t\t\t\t\treturn /^scale/i.test(transformName) ? 1 : 0;\r\n\t\t\t\t\t\t\t\t\t\t\t/* When transform values are set, they are wrapped in parentheses as per the CSS spec.\r\n\t\t\t\t\t\t\t\t\t\t\t Thus, when extracting their values (for tween calculations), we strip off the parentheses. */\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn Data(element).transformCache[transformName].replace(/[()]/g, \"\");\r\n\t\t\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\t\t\tvar invalid = false;\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* If an individual transform property contains an unsupported unit type, the browser ignores the *entire* transform property.\r\n\t\t\t\t\t\t\t\t\t\t Thus, protect users from themselves by skipping setting for transform values supplied with invalid unit types. */\r\n\t\t\t\t\t\t\t\t\t\t/* Switch on the base transform type; ignore the axis by removing the last letter from the transform's name. */\r\n\t\t\t\t\t\t\t\t\t\tswitch (transformName.substr(0, transformName.length - 1)) {\r\n\t\t\t\t\t\t\t\t\t\t\t/* Whitelist unit types for each transform. */\r\n\t\t\t\t\t\t\t\t\t\t\tcase \"translate\":\r\n\t\t\t\t\t\t\t\t\t\t\t\tinvalid = !/(%|px|em|rem|vw|vh|\\d)$/i.test(propertyValue);\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\t/* Since an axis-free \"scale\" property is supported as well, a little hack is used here to detect it by chopping off its last letter. */\r\n\t\t\t\t\t\t\t\t\t\t\tcase \"scal\":\r\n\t\t\t\t\t\t\t\t\t\t\tcase \"scale\":\r\n\t\t\t\t\t\t\t\t\t\t\t\t/* Chrome on Android has a bug in which scaled elements blur if their initial scale\r\n\t\t\t\t\t\t\t\t\t\t\t\t value is below 1 (which can happen with forcefeeding). Thus, we detect a yet-unset scale property\r\n\t\t\t\t\t\t\t\t\t\t\t\t and ensure that its first value is always 1. More info: http://stackoverflow.com/questions/10417890/css3-animations-with-transform-causes-blurred-elements-on-webkit/10417962#10417962 */\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (Velocity.State.isAndroid && Data(element).transformCache[transformName] === undefined && propertyValue < 1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpropertyValue = 1;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tinvalid = !/(\\d)$/i.test(propertyValue);\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\tcase \"skew\":\r\n\t\t\t\t\t\t\t\t\t\t\t\tinvalid = !/(deg|\\d)$/i.test(propertyValue);\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\tcase \"rotate\":\r\n\t\t\t\t\t\t\t\t\t\t\t\tinvalid = !/(deg|\\d)$/i.test(propertyValue);\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (!invalid) {\r\n\t\t\t\t\t\t\t\t\t\t\t/* As per the CSS spec, wrap the value in parentheses. */\r\n\t\t\t\t\t\t\t\t\t\t\tData(element).transformCache[transformName] = \"(\" + propertyValue + \")\";\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* Although the value is set on the transformCache object, return the newly-updated value for the calling code to process as normal. */\r\n\t\t\t\t\t\t\t\t\t\treturn Data(element).transformCache[transformName];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t})();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*************\r\n\t\t\t\t\t Colors\r\n\t\t\t\t\t *************/\r\n\r\n\t\t\t\t\t/* Since Velocity only animates a single numeric value per property, color animation is achieved by hooking the individual RGBA components of CSS color properties.\r\n\t\t\t\t\t Accordingly, color values must be normalized (e.g. \"#ff0000\", \"red\", and \"rgb(255, 0, 0)\" ==> \"255 0 0 1\") so that their components can be injected/extracted by CSS.Hooks logic. */\r\n\t\t\t\t\tfor (var j = 0; j < CSS.Lists.colors.length; j++) {\r\n\t\t\t\t\t\t/* Wrap the dynamically generated normalization function in a new scope so that colorName's value is paired with its respective function.\r\n\t\t\t\t\t\t (Otherwise, all functions would take the final for loop's colorName.) */\r\n\t\t\t\t\t\t(function() {\r\n\t\t\t\t\t\t\tvar colorName = CSS.Lists.colors[j];\r\n\r\n\t\t\t\t\t\t\t/* Note: In IE<=8, which support rgb but not rgba, color properties are reverted to rgb by stripping off the alpha component. */\r\n\t\t\t\t\t\t\tCSS.Normalizations.registered[colorName] = function(type, element, propertyValue) {\r\n\t\t\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\t\t\treturn colorName;\r\n\t\t\t\t\t\t\t\t\t\t/* Convert all color values into the rgb format. (Old IE can return hex values and color names instead of rgb/rgba.) */\r\n\t\t\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\t\t\tvar extracted;\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* If the color is already in its hookable form (e.g. \"255 255 255 1\") due to having been previously extracted, skip extraction. */\r\n\t\t\t\t\t\t\t\t\t\tif (CSS.RegEx.wrappedValueAlreadyExtracted.test(propertyValue)) {\r\n\t\t\t\t\t\t\t\t\t\t\textracted = propertyValue;\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tvar converted,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolorNames = {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tblack: \"rgb(0, 0, 0)\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tblue: \"rgb(0, 0, 255)\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgray: \"rgb(128, 128, 128)\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgreen: \"rgb(0, 128, 0)\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tred: \"rgb(255, 0, 0)\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twhite: \"rgb(255, 255, 255)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t/* Convert color names to rgb. */\r\n\t\t\t\t\t\t\t\t\t\t\tif (/^[A-z]+$/i.test(propertyValue)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (colorNames[propertyValue] !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tconverted = colorNames[propertyValue];\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/* If an unmatched color name is provided, default to black. */\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tconverted = colorNames.black;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/* Convert hex values to rgb. */\r\n\t\t\t\t\t\t\t\t\t\t\t} else if (CSS.RegEx.isHex.test(propertyValue)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tconverted = \"rgb(\" + CSS.Values.hexToRgb(propertyValue).join(\" \") + \")\";\r\n\t\t\t\t\t\t\t\t\t\t\t\t/* If the provided color doesn't match any of the accepted color formats, default to black. */\r\n\t\t\t\t\t\t\t\t\t\t\t} else if (!(/^rgba?\\(/i.test(propertyValue))) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tconverted = colorNames.black;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t/* Remove the surrounding \"rgb/rgba()\" string then replace commas with spaces and strip\r\n\t\t\t\t\t\t\t\t\t\t\t repeated spaces (in case the value included spaces to begin with). */\r\n\t\t\t\t\t\t\t\t\t\t\textracted = (converted || propertyValue).toString().match(CSS.RegEx.valueUnwrap)[1].replace(/,(\\s+)?/g, \" \");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* So long as this isn't <=IE8, add a fourth (alpha) component if it's missing and default it to 1 (visible). */\r\n\t\t\t\t\t\t\t\t\t\tif ((!IE || IE > 8) && extracted.split(\" \").length === 3) {\r\n\t\t\t\t\t\t\t\t\t\t\textracted += \" 1\";\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn extracted;\r\n\t\t\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\t\t\t/* If we have a pattern then it might already have the right values */\r\n\t\t\t\t\t\t\t\t\t\tif (/^rgb/.test(propertyValue)) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn propertyValue;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* If this is IE<=8 and an alpha component exists, strip it off. */\r\n\t\t\t\t\t\t\t\t\t\tif (IE <= 8) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (propertyValue.split(\" \").length === 4) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tpropertyValue = propertyValue.split(/\\s+/).slice(0, 3).join(\" \");\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t/* Otherwise, add a fourth (alpha) component if it's missing and default it to 1 (visible). */\r\n\t\t\t\t\t\t\t\t\t\t} else if (propertyValue.split(\" \").length === 3) {\r\n\t\t\t\t\t\t\t\t\t\t\tpropertyValue += \" 1\";\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* Re-insert the browser-appropriate wrapper(\"rgb/rgba()\"), insert commas, and strip off decimal units\r\n\t\t\t\t\t\t\t\t\t\t on all values but the fourth (R, G, and B only accept whole numbers). */\r\n\t\t\t\t\t\t\t\t\t\treturn (IE <= 8 ? \"rgb\" : \"rgba\") + \"(\" + propertyValue.replace(/\\s+/g, \",\").replace(/\\.(\\d)+(?=,)/g, \"\") + \")\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t})();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**************\r\n\t\t\t\t\t Dimensions\r\n\t\t\t\t\t **************/\r\n\t\t\t\t\tfunction augmentDimension(name, element, wantInner) {\r\n\t\t\t\t\t\tvar isBorderBox = CSS.getPropertyValue(element, \"boxSizing\").toString().toLowerCase() === \"border-box\";\r\n\r\n\t\t\t\t\t\tif (isBorderBox === (wantInner || false)) {\r\n\t\t\t\t\t\t\t/* in box-sizing mode, the CSS width / height accessors already give the outerWidth / outerHeight. */\r\n\t\t\t\t\t\t\tvar i,\r\n\t\t\t\t\t\t\t\t\tvalue,\r\n\t\t\t\t\t\t\t\t\taugment = 0,\r\n\t\t\t\t\t\t\t\t\tsides = name === \"width\" ? [\"Left\", \"Right\"] : [\"Top\", \"Bottom\"],\r\n\t\t\t\t\t\t\t\t\tfields = [\"padding\" + sides[0], \"padding\" + sides[1], \"border\" + sides[0] + \"Width\", \"border\" + sides[1] + \"Width\"];\r\n\r\n\t\t\t\t\t\t\tfor (i = 0; i < fields.length; i++) {\r\n\t\t\t\t\t\t\t\tvalue = parseFloat(CSS.getPropertyValue(element, fields[i]));\r\n\t\t\t\t\t\t\t\tif (!isNaN(value)) {\r\n\t\t\t\t\t\t\t\t\taugment += value;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn wantInner ? -augment : augment;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfunction getDimension(name, wantInner) {\r\n\t\t\t\t\t\treturn function(type, element, propertyValue) {\r\n\t\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\t\treturn name;\r\n\t\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\t\treturn parseFloat(propertyValue) + augmentDimension(name, element, wantInner);\r\n\t\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\t\treturn (parseFloat(propertyValue) - augmentDimension(name, element, wantInner)) + \"px\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tCSS.Normalizations.registered.innerWidth = getDimension(\"width\", true);\r\n\t\t\t\t\tCSS.Normalizations.registered.innerHeight = getDimension(\"height\", true);\r\n\t\t\t\t\tCSS.Normalizations.registered.outerWidth = getDimension(\"width\");\r\n\t\t\t\t\tCSS.Normalizations.registered.outerHeight = getDimension(\"height\");\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/************************\r\n\t\t\t CSS Property Names\r\n\t\t\t ************************/\r\n\r\n\t\t\tNames: {\r\n\t\t\t\t/* Camelcase a property name into its JavaScript notation (e.g. \"background-color\" ==> \"backgroundColor\").\r\n\t\t\t\t Camelcasing is used to normalize property names between and across calls. */\r\n\t\t\t\tcamelCase: function(property) {\r\n\t\t\t\t\treturn property.replace(/-(\\w)/g, function(match, subMatch) {\r\n\t\t\t\t\t\treturn subMatch.toUpperCase();\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\t/* For SVG elements, some properties (namely, dimensional ones) are GET/SET via the element's HTML attributes (instead of via CSS styles). */\r\n\t\t\t\tSVGAttribute: function(property) {\r\n\t\t\t\t\tvar SVGAttributes = \"width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2\";\r\n\r\n\t\t\t\t\t/* Certain browsers require an SVG transform to be applied as an attribute. (Otherwise, application via CSS is preferable due to 3D support.) */\r\n\t\t\t\t\tif (IE || (Velocity.State.isAndroid && !Velocity.State.isChrome)) {\r\n\t\t\t\t\t\tSVGAttributes += \"|transform\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn new RegExp(\"^(\" + SVGAttributes + \")$\", \"i\").test(property);\r\n\t\t\t\t},\r\n\t\t\t\t/* Determine whether a property should be set with a vendor prefix. */\r\n\t\t\t\t/* If a prefixed version of the property exists, return it. Otherwise, return the original property name.\r\n\t\t\t\t If the property is not at all supported by the browser, return a false flag. */\r\n\t\t\t\tprefixCheck: function(property) {\r\n\t\t\t\t\t/* If this property has already been checked, return the cached value. */\r\n\t\t\t\t\tif (Velocity.State.prefixMatches[property]) {\r\n\t\t\t\t\t\treturn [Velocity.State.prefixMatches[property], true];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar vendors = [\"\", \"Webkit\", \"Moz\", \"ms\", \"O\"];\r\n\r\n\t\t\t\t\t\tfor (var i = 0, vendorsLength = vendors.length; i < vendorsLength; i++) {\r\n\t\t\t\t\t\t\tvar propertyPrefixed;\r\n\r\n\t\t\t\t\t\t\tif (i === 0) {\r\n\t\t\t\t\t\t\t\tpropertyPrefixed = property;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t/* Capitalize the first letter of the property to conform to JavaScript vendor prefix notation (e.g. webkitFilter). */\r\n\t\t\t\t\t\t\t\tpropertyPrefixed = vendors[i] + property.replace(/^\\w/, function(match) {\r\n\t\t\t\t\t\t\t\t\treturn match.toUpperCase();\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Check if the browser supports this property as prefixed. */\r\n\t\t\t\t\t\t\tif (Type.isString(Velocity.State.prefixElement.style[propertyPrefixed])) {\r\n\t\t\t\t\t\t\t\t/* Cache the match. */\r\n\t\t\t\t\t\t\t\tVelocity.State.prefixMatches[property] = propertyPrefixed;\r\n\r\n\t\t\t\t\t\t\t\treturn [propertyPrefixed, true];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* If the browser doesn't support this property in any form, include a false flag so that the caller can decide how to proceed. */\r\n\t\t\t\t\t\treturn [property, false];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/************************\r\n\t\t\t CSS Property Values\r\n\t\t\t ************************/\r\n\r\n\t\t\tValues: {\r\n\t\t\t\t/* Hex to RGB conversion. Copyright Tim Down: http://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb */\r\n\t\t\t\thexToRgb: function(hex) {\r\n\t\t\t\t\tvar shortformRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i,\r\n\t\t\t\t\t\t\tlongformRegex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i,\r\n\t\t\t\t\t\t\trgbParts;\r\n\r\n\t\t\t\t\thex = hex.replace(shortformRegex, function(m, r, g, b) {\r\n\t\t\t\t\t\treturn r + r + g + g + b + b;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\trgbParts = longformRegex.exec(hex);\r\n\r\n\t\t\t\t\treturn rgbParts ? [parseInt(rgbParts[1], 16), parseInt(rgbParts[2], 16), parseInt(rgbParts[3], 16)] : [0, 0, 0];\r\n\t\t\t\t},\r\n\t\t\t\tisCSSNullValue: function(value) {\r\n\t\t\t\t\t/* The browser defaults CSS values that have not been set to either 0 or one of several possible null-value strings.\r\n\t\t\t\t\t Thus, we check for both falsiness and these special strings. */\r\n\t\t\t\t\t/* Null-value checking is performed to default the special strings to 0 (for the sake of tweening) or their hook\r\n\t\t\t\t\t templates as defined as CSS.Hooks (for the sake of hook injection/extraction). */\r\n\t\t\t\t\t/* Note: Chrome returns \"rgba(0, 0, 0, 0)\" for an undefined color whereas IE returns \"transparent\". */\r\n\t\t\t\t\treturn (!value || /^(none|auto|transparent|(rgba\\(0, ?0, ?0, ?0\\)))$/i.test(value));\r\n\t\t\t\t},\r\n\t\t\t\t/* Retrieve a property's default unit type. Used for assigning a unit type when one is not supplied by the user. */\r\n\t\t\t\tgetUnitType: function(property) {\r\n\t\t\t\t\tif (/^(rotate|skew)/i.test(property)) {\r\n\t\t\t\t\t\treturn \"deg\";\r\n\t\t\t\t\t} else if (/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(property)) {\r\n\t\t\t\t\t\t/* The above properties are unitless. */\r\n\t\t\t\t\t\treturn \"\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* Default to px for all other properties. */\r\n\t\t\t\t\t\treturn \"px\";\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t/* HTML elements default to an associated display type when they're not set to display:none. */\r\n\t\t\t\t/* Note: This function is used for correctly setting the non-\"none\" display value in certain Velocity redirects, such as fadeIn/Out. */\r\n\t\t\t\tgetDisplayType: function(element) {\r\n\t\t\t\t\tvar tagName = element && element.tagName.toString().toLowerCase();\r\n\r\n\t\t\t\t\tif (/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(tagName)) {\r\n\t\t\t\t\t\treturn \"inline\";\r\n\t\t\t\t\t} else if (/^(li)$/i.test(tagName)) {\r\n\t\t\t\t\t\treturn \"list-item\";\r\n\t\t\t\t\t} else if (/^(tr)$/i.test(tagName)) {\r\n\t\t\t\t\t\treturn \"table-row\";\r\n\t\t\t\t\t} else if (/^(table)$/i.test(tagName)) {\r\n\t\t\t\t\t\treturn \"table\";\r\n\t\t\t\t\t} else if (/^(tbody)$/i.test(tagName)) {\r\n\t\t\t\t\t\treturn \"table-row-group\";\r\n\t\t\t\t\t\t/* Default to \"block\" when no match is found. */\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn \"block\";\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t/* The class add/remove functions are used to temporarily apply a \"velocity-animating\" class to elements while they're animating. */\r\n\t\t\t\taddClass: function(element, className) {\r\n\t\t\t\t\tif (element) {\r\n\t\t\t\t\t\tif (element.classList) {\r\n\t\t\t\t\t\t\telement.classList.add(className);\r\n\t\t\t\t\t\t} else if (Type.isString(element.className)) {\r\n\t\t\t\t\t\t\t// Element.className is around 15% faster then set/getAttribute\r\n\t\t\t\t\t\t\telement.className += (element.className.length ? \" \" : \"\") + className;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// Work around for IE strict mode animating SVG - and anything else that doesn't behave correctly - the same way jQuery does it\r\n\t\t\t\t\t\t\tvar currentClass = element.getAttribute(IE <= 7 ? \"className\" : \"class\") || \"\";\r\n\r\n\t\t\t\t\t\t\telement.setAttribute(\"class\", currentClass + (currentClass ? \" \" : \"\") + className);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tremoveClass: function(element, className) {\r\n\t\t\t\t\tif (element) {\r\n\t\t\t\t\t\tif (element.classList) {\r\n\t\t\t\t\t\t\telement.classList.remove(className);\r\n\t\t\t\t\t\t} else if (Type.isString(element.className)) {\r\n\t\t\t\t\t\t\t// Element.className is around 15% faster then set/getAttribute\r\n\t\t\t\t\t\t\t// TODO: Need some jsperf tests on performance - can we get rid of the regex and maybe use split / array manipulation?\r\n\t\t\t\t\t\t\telement.className = element.className.toString().replace(new RegExp(\"(^|\\\\s)\" + className.split(\" \").join(\"|\") + \"(\\\\s|$)\", \"gi\"), \" \");\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// Work around for IE strict mode animating SVG - and anything else that doesn't behave correctly - the same way jQuery does it\r\n\t\t\t\t\t\t\tvar currentClass = element.getAttribute(IE <= 7 ? \"className\" : \"class\") || \"\";\r\n\r\n\t\t\t\t\t\t\telement.setAttribute(\"class\", currentClass.replace(new RegExp(\"(^|\\s)\" + className.split(\" \").join(\"|\") + \"(\\s|$)\", \"gi\"), \" \"));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/****************************\r\n\t\t\t Style Getting & Setting\r\n\t\t\t ****************************/\r\n\r\n\t\t\t/* The singular getPropertyValue, which routes the logic for all normalizations, hooks, and standard CSS properties. */\r\n\t\t\tgetPropertyValue: function(element, property, rootPropertyValue, forceStyleLookup) {\r\n\t\t\t\t/* Get an element's computed property value. */\r\n\t\t\t\t/* Note: Retrieving the value of a CSS property cannot simply be performed by checking an element's\r\n\t\t\t\t style attribute (which only reflects user-defined values). Instead, the browser must be queried for a property's\r\n\t\t\t\t *computed* value. You can read more about getComputedStyle here: https://developer.mozilla.org/en/docs/Web/API/window.getComputedStyle */\r\n\t\t\t\tfunction computePropertyValue(element, property) {\r\n\t\t\t\t\t/* When box-sizing isn't set to border-box, height and width style values are incorrectly computed when an\r\n\t\t\t\t\t element's scrollbars are visible (which expands the element's dimensions). Thus, we defer to the more accurate\r\n\t\t\t\t\t offsetHeight/Width property, which includes the total dimensions for interior, border, padding, and scrollbar.\r\n\t\t\t\t\t We subtract border and padding to get the sum of interior + scrollbar. */\r\n\t\t\t\t\tvar computedValue = 0;\r\n\r\n\t\t\t\t\t/* IE<=8 doesn't support window.getComputedStyle, thus we defer to jQuery, which has an extensive array\r\n\t\t\t\t\t of hacks to accurately retrieve IE8 property values. Re-implementing that logic here is not worth bloating the\r\n\t\t\t\t\t codebase for a dying browser. The performance repercussions of using jQuery here are minimal since\r\n\t\t\t\t\t Velocity is optimized to rarely (and sometimes never) query the DOM. Further, the $.css() codepath isn't that slow. */\r\n\t\t\t\t\tif (IE <= 8) {\r\n\t\t\t\t\t\tcomputedValue = $.css(element, property); /* GET */\r\n\t\t\t\t\t\t/* All other browsers support getComputedStyle. The returned live object reference is cached onto its\r\n\t\t\t\t\t\t associated element so that it does not need to be refetched upon every GET. */\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* Browsers do not return height and width values for elements that are set to display:\"none\". Thus, we temporarily\r\n\t\t\t\t\t\t toggle display to the element type's default value. */\r\n\t\t\t\t\t\tvar toggleDisplay = false;\r\n\r\n\t\t\t\t\t\tif (/^(width|height)$/.test(property) && CSS.getPropertyValue(element, \"display\") === 0) {\r\n\t\t\t\t\t\t\ttoggleDisplay = true;\r\n\t\t\t\t\t\t\tCSS.setPropertyValue(element, \"display\", CSS.Values.getDisplayType(element));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar revertDisplay = function() {\r\n\t\t\t\t\t\t\tif (toggleDisplay) {\r\n\t\t\t\t\t\t\t\tCSS.setPropertyValue(element, \"display\", \"none\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tif (!forceStyleLookup) {\r\n\t\t\t\t\t\t\tif (property === \"height\" && CSS.getPropertyValue(element, \"boxSizing\").toString().toLowerCase() !== \"border-box\") {\r\n\t\t\t\t\t\t\t\tvar contentBoxHeight = element.offsetHeight - (parseFloat(CSS.getPropertyValue(element, \"borderTopWidth\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"borderBottomWidth\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"paddingTop\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"paddingBottom\")) || 0);\r\n\t\t\t\t\t\t\t\trevertDisplay();\r\n\r\n\t\t\t\t\t\t\t\treturn contentBoxHeight;\r\n\t\t\t\t\t\t\t} else if (property === \"width\" && CSS.getPropertyValue(element, \"boxSizing\").toString().toLowerCase() !== \"border-box\") {\r\n\t\t\t\t\t\t\t\tvar contentBoxWidth = element.offsetWidth - (parseFloat(CSS.getPropertyValue(element, \"borderLeftWidth\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"borderRightWidth\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"paddingLeft\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"paddingRight\")) || 0);\r\n\t\t\t\t\t\t\t\trevertDisplay();\r\n\r\n\t\t\t\t\t\t\t\treturn contentBoxWidth;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar computedStyle;\r\n\r\n\t\t\t\t\t\t/* For elements that Velocity hasn't been called on directly (e.g. when Velocity queries the DOM on behalf\r\n\t\t\t\t\t\t of a parent of an element its animating), perform a direct getComputedStyle lookup since the object isn't cached. */\r\n\t\t\t\t\t\tif (Data(element) === undefined) {\r\n\t\t\t\t\t\t\tcomputedStyle = window.getComputedStyle(element, null); /* GET */\r\n\t\t\t\t\t\t\t/* If the computedStyle object has yet to be cached, do so now. */\r\n\t\t\t\t\t\t} else if (!Data(element).computedStyle) {\r\n\t\t\t\t\t\t\tcomputedStyle = Data(element).computedStyle = window.getComputedStyle(element, null); /* GET */\r\n\t\t\t\t\t\t\t/* If computedStyle is cached, use it. */\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcomputedStyle = Data(element).computedStyle;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* IE and Firefox do not return a value for the generic borderColor -- they only return individual values for each border side's color.\r\n\t\t\t\t\t\t Also, in all browsers, when border colors aren't all the same, a compound value is returned that Velocity isn't setup to parse.\r\n\t\t\t\t\t\t So, as a polyfill for querying individual border side colors, we just return the top border's color and animate all borders from that value. */\r\n\t\t\t\t\t\tif (property === \"borderColor\") {\r\n\t\t\t\t\t\t\tproperty = \"borderTopColor\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* IE9 has a bug in which the \"filter\" property must be accessed from computedStyle using the getPropertyValue method\r\n\t\t\t\t\t\t instead of a direct property lookup. The getPropertyValue method is slower than a direct lookup, which is why we avoid it by default. */\r\n\t\t\t\t\t\tif (IE === 9 && property === \"filter\") {\r\n\t\t\t\t\t\t\tcomputedValue = computedStyle.getPropertyValue(property); /* GET */\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcomputedValue = computedStyle[property];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Fall back to the property's style value (if defined) when computedValue returns nothing,\r\n\t\t\t\t\t\t which can happen when the element hasn't been painted. */\r\n\t\t\t\t\t\tif (computedValue === \"\" || computedValue === null) {\r\n\t\t\t\t\t\t\tcomputedValue = element.style[property];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\trevertDisplay();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* For top, right, bottom, and left (TRBL) values that are set to \"auto\" on elements of \"fixed\" or \"absolute\" position,\r\n\t\t\t\t\t defer to jQuery for converting \"auto\" to a numeric value. (For elements with a \"static\" or \"relative\" position, \"auto\" has the same\r\n\t\t\t\t\t effect as being set to 0, so no conversion is necessary.) */\r\n\t\t\t\t\t/* An example of why numeric conversion is necessary: When an element with \"position:absolute\" has an untouched \"left\"\r\n\t\t\t\t\t property, which reverts to \"auto\", left's value is 0 relative to its parent element, but is often non-zero relative\r\n\t\t\t\t\t to its *containing* (not parent) element, which is the nearest \"position:relative\" ancestor or the viewport (and always the viewport in the case of \"position:fixed\"). */\r\n\t\t\t\t\tif (computedValue === \"auto\" && /^(top|right|bottom|left)$/i.test(property)) {\r\n\t\t\t\t\t\tvar position = computePropertyValue(element, \"position\"); /* GET */\r\n\r\n\t\t\t\t\t\t/* For absolute positioning, jQuery's $.position() only returns values for top and left;\r\n\t\t\t\t\t\t right and bottom will have their \"auto\" value reverted to 0. */\r\n\t\t\t\t\t\t/* Note: A jQuery object must be created here since jQuery doesn't have a low-level alias for $.position().\r\n\t\t\t\t\t\t Not a big deal since we're currently in a GET batch anyway. */\r\n\t\t\t\t\t\tif (position === \"fixed\" || (position === \"absolute\" && /top|left/i.test(property))) {\r\n\t\t\t\t\t\t\t/* Note: jQuery strips the pixel unit from its returned values; we re-add it here to conform with computePropertyValue's behavior. */\r\n\t\t\t\t\t\t\tcomputedValue = $(element).position()[property] + \"px\"; /* GET */\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn computedValue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar propertyValue;\r\n\r\n\t\t\t\t/* If this is a hooked property (e.g. \"clipLeft\" instead of the root property of \"clip\"),\r\n\t\t\t\t extract the hook's value from a normalized rootPropertyValue using CSS.Hooks.extractValue(). */\r\n\t\t\t\tif (CSS.Hooks.registered[property]) {\r\n\t\t\t\t\tvar hook = property,\r\n\t\t\t\t\t\t\thookRoot = CSS.Hooks.getRoot(hook);\r\n\r\n\t\t\t\t\t/* If a cached rootPropertyValue wasn't passed in (which Velocity always attempts to do in order to avoid requerying the DOM),\r\n\t\t\t\t\t query the DOM for the root property's value. */\r\n\t\t\t\t\tif (rootPropertyValue === undefined) {\r\n\t\t\t\t\t\t/* Since the browser is now being directly queried, use the official post-prefixing property name for this lookup. */\r\n\t\t\t\t\t\trootPropertyValue = CSS.getPropertyValue(element, CSS.Names.prefixCheck(hookRoot)[0]); /* GET */\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* If this root has a normalization registered, peform the associated normalization extraction. */\r\n\t\t\t\t\tif (CSS.Normalizations.registered[hookRoot]) {\r\n\t\t\t\t\t\trootPropertyValue = CSS.Normalizations.registered[hookRoot](\"extract\", element, rootPropertyValue);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Extract the hook's value. */\r\n\t\t\t\t\tpropertyValue = CSS.Hooks.extractValue(hook, rootPropertyValue);\r\n\r\n\t\t\t\t\t/* If this is a normalized property (e.g. \"opacity\" becomes \"filter\" in <=IE8) or \"translateX\" becomes \"transform\"),\r\n\t\t\t\t\t normalize the property's name and value, and handle the special case of transforms. */\r\n\t\t\t\t\t/* Note: Normalizing a property is mutually exclusive from hooking a property since hook-extracted values are strictly\r\n\t\t\t\t\t numerical and therefore do not require normalization extraction. */\r\n\t\t\t\t} else if (CSS.Normalizations.registered[property]) {\r\n\t\t\t\t\tvar normalizedPropertyName,\r\n\t\t\t\t\t\t\tnormalizedPropertyValue;\r\n\r\n\t\t\t\t\tnormalizedPropertyName = CSS.Normalizations.registered[property](\"name\", element);\r\n\r\n\t\t\t\t\t/* Transform values are calculated via normalization extraction (see below), which checks against the element's transformCache.\r\n\t\t\t\t\t At no point do transform GETs ever actually query the DOM; initial stylesheet values are never processed.\r\n\t\t\t\t\t This is because parsing 3D transform matrices is not always accurate and would bloat our codebase;\r\n\t\t\t\t\t thus, normalization extraction defaults initial transform values to their zero-values (e.g. 1 for scaleX and 0 for translateX). */\r\n\t\t\t\t\tif (normalizedPropertyName !== \"transform\") {\r\n\t\t\t\t\t\tnormalizedPropertyValue = computePropertyValue(element, CSS.Names.prefixCheck(normalizedPropertyName)[0]); /* GET */\r\n\r\n\t\t\t\t\t\t/* If the value is a CSS null-value and this property has a hook template, use that zero-value template so that hooks can be extracted from it. */\r\n\t\t\t\t\t\tif (CSS.Values.isCSSNullValue(normalizedPropertyValue) && CSS.Hooks.templates[property]) {\r\n\t\t\t\t\t\t\tnormalizedPropertyValue = CSS.Hooks.templates[property][1];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tpropertyValue = CSS.Normalizations.registered[property](\"extract\", element, normalizedPropertyValue);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* If a (numeric) value wasn't produced via hook extraction or normalization, query the DOM. */\r\n\t\t\t\tif (!/^[\\d-]/.test(propertyValue)) {\r\n\t\t\t\t\t/* For SVG elements, dimensional properties (which SVGAttribute() detects) are tweened via\r\n\t\t\t\t\t their HTML attribute values instead of their CSS style values. */\r\n\t\t\t\t\tvar data = Data(element);\r\n\r\n\t\t\t\t\tif (data && data.isSVG && CSS.Names.SVGAttribute(property)) {\r\n\t\t\t\t\t\t/* Since the height/width attribute values must be set manually, they don't reflect computed values.\r\n\t\t\t\t\t\t Thus, we use use getBBox() to ensure we always get values for elements with undefined height/width attributes. */\r\n\t\t\t\t\t\tif (/^(height|width)$/i.test(property)) {\r\n\t\t\t\t\t\t\t/* Firefox throws an error if .getBBox() is called on an SVG that isn't attached to the DOM. */\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tpropertyValue = element.getBBox()[property];\r\n\t\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\t\tpropertyValue = 0;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t/* Otherwise, access the attribute value directly. */\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tpropertyValue = element.getAttribute(property);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpropertyValue = computePropertyValue(element, CSS.Names.prefixCheck(property)[0]); /* GET */\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* Since property lookups are for animation purposes (which entails computing the numeric delta between start and end values),\r\n\t\t\t\t convert CSS null-values to an integer of value 0. */\r\n\t\t\t\tif (CSS.Values.isCSSNullValue(propertyValue)) {\r\n\t\t\t\t\tpropertyValue = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (Velocity.debug >= 2) {\r\n\t\t\t\t\tconsole.log(\"Get \" + property + \": \" + propertyValue);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn propertyValue;\r\n\t\t\t},\r\n\t\t\t/* The singular setPropertyValue, which routes the logic for all normalizations, hooks, and standard CSS properties. */\r\n\t\t\tsetPropertyValue: function(element, property, propertyValue, rootPropertyValue, scrollData) {\r\n\t\t\t\tvar propertyName = property;\r\n\r\n\t\t\t\t/* In order to be subjected to call options and element queueing, scroll animation is routed through Velocity as if it were a standard CSS property. */\r\n\t\t\t\tif (property === \"scroll\") {\r\n\t\t\t\t\t/* If a container option is present, scroll the container instead of the browser window. */\r\n\t\t\t\t\tif (scrollData.container) {\r\n\t\t\t\t\t\tscrollData.container[\"scroll\" + scrollData.direction] = propertyValue;\r\n\t\t\t\t\t\t/* Otherwise, Velocity defaults to scrolling the browser window. */\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (scrollData.direction === \"Left\") {\r\n\t\t\t\t\t\t\twindow.scrollTo(propertyValue, scrollData.alternateValue);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\twindow.scrollTo(scrollData.alternateValue, propertyValue);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t/* Transforms (translateX, rotateZ, etc.) are applied to a per-element transformCache object, which is manually flushed via flushTransformCache().\r\n\t\t\t\t\t Thus, for now, we merely cache transforms being SET. */\r\n\t\t\t\t\tif (CSS.Normalizations.registered[property] && CSS.Normalizations.registered[property](\"name\", element) === \"transform\") {\r\n\t\t\t\t\t\t/* Perform a normalization injection. */\r\n\t\t\t\t\t\t/* Note: The normalization logic handles the transformCache updating. */\r\n\t\t\t\t\t\tCSS.Normalizations.registered[property](\"inject\", element, propertyValue);\r\n\r\n\t\t\t\t\t\tpropertyName = \"transform\";\r\n\t\t\t\t\t\tpropertyValue = Data(element).transformCache[property];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* Inject hooks. */\r\n\t\t\t\t\t\tif (CSS.Hooks.registered[property]) {\r\n\t\t\t\t\t\t\tvar hookName = property,\r\n\t\t\t\t\t\t\t\t\thookRoot = CSS.Hooks.getRoot(property);\r\n\r\n\t\t\t\t\t\t\t/* If a cached rootPropertyValue was not provided, query the DOM for the hookRoot's current value. */\r\n\t\t\t\t\t\t\trootPropertyValue = rootPropertyValue || CSS.getPropertyValue(element, hookRoot); /* GET */\r\n\r\n\t\t\t\t\t\t\tpropertyValue = CSS.Hooks.injectValue(hookName, propertyValue, rootPropertyValue);\r\n\t\t\t\t\t\t\tproperty = hookRoot;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Normalize names and values. */\r\n\t\t\t\t\t\tif (CSS.Normalizations.registered[property]) {\r\n\t\t\t\t\t\t\tpropertyValue = CSS.Normalizations.registered[property](\"inject\", element, propertyValue);\r\n\t\t\t\t\t\t\tproperty = CSS.Normalizations.registered[property](\"name\", element);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Assign the appropriate vendor prefix before performing an official style update. */\r\n\t\t\t\t\t\tpropertyName = CSS.Names.prefixCheck(property)[0];\r\n\r\n\t\t\t\t\t\t/* A try/catch is used for IE<=8, which throws an error when \"invalid\" CSS values are set, e.g. a negative width.\r\n\t\t\t\t\t\t Try/catch is avoided for other browsers since it incurs a performance overhead. */\r\n\t\t\t\t\t\tif (IE <= 8) {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\telement.style[propertyName] = propertyValue;\r\n\t\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\t\t\tconsole.log(\"Browser does not support [\" + propertyValue + \"] for [\" + propertyName + \"]\");\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t/* SVG elements have their dimensional properties (width, height, x, y, cx, etc.) applied directly as attributes instead of as styles. */\r\n\t\t\t\t\t\t\t/* Note: IE8 does not support SVG elements, so it's okay that we skip it for SVG animation. */\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvar data = Data(element);\r\n\r\n\t\t\t\t\t\t\tif (data && data.isSVG && CSS.Names.SVGAttribute(property)) {\r\n\t\t\t\t\t\t\t\t/* Note: For SVG attributes, vendor-prefixed property names are never used. */\r\n\t\t\t\t\t\t\t\t/* Note: Not all CSS properties can be animated via attributes, but the browser won't throw an error for unsupported properties. */\r\n\t\t\t\t\t\t\t\telement.setAttribute(property, propertyValue);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\telement.style[propertyName] = propertyValue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (Velocity.debug >= 2) {\r\n\t\t\t\t\t\t\tconsole.log(\"Set \" + property + \" (\" + propertyName + \"): \" + propertyValue);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* Return the normalized property name and value in case the caller wants to know how these values were modified before being applied to the DOM. */\r\n\t\t\t\treturn [propertyName, propertyValue];\r\n\t\t\t},\r\n\t\t\t/* To increase performance by batching transform updates into a single SET, transforms are not directly applied to an element until flushTransformCache() is called. */\r\n\t\t\t/* Note: Velocity applies transform properties in the same order that they are chronogically introduced to the element's CSS styles. */\r\n\t\t\tflushTransformCache: function(element) {\r\n\t\t\t\tvar transformString = \"\",\r\n\t\t\t\t\t\tdata = Data(element);\r\n\r\n\t\t\t\t/* Certain browsers require that SVG transforms be applied as an attribute. However, the SVG transform attribute takes a modified version of CSS's transform string\r\n\t\t\t\t (units are dropped and, except for skewX/Y, subproperties are merged into their master property -- e.g. scaleX and scaleY are merged into scale(X Y). */\r\n\t\t\t\tif ((IE || (Velocity.State.isAndroid && !Velocity.State.isChrome)) && data && data.isSVG) {\r\n\t\t\t\t\t/* Since transform values are stored in their parentheses-wrapped form, we use a helper function to strip out their numeric values.\r\n\t\t\t\t\t Further, SVG transform properties only take unitless (representing pixels) values, so it's okay that parseFloat() strips the unit suffixed to the float value. */\r\n\t\t\t\t\tvar getTransformFloat = function(transformProperty) {\r\n\t\t\t\t\t\treturn parseFloat(CSS.getPropertyValue(element, transformProperty));\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/* Create an object to organize all the transforms that we'll apply to the SVG element. To keep the logic simple,\r\n\t\t\t\t\t we process *all* transform properties -- even those that may not be explicitly applied (since they default to their zero-values anyway). */\r\n\t\t\t\t\tvar SVGTransforms = {\r\n\t\t\t\t\t\ttranslate: [getTransformFloat(\"translateX\"), getTransformFloat(\"translateY\")],\r\n\t\t\t\t\t\tskewX: [getTransformFloat(\"skewX\")], skewY: [getTransformFloat(\"skewY\")],\r\n\t\t\t\t\t\t/* If the scale property is set (non-1), use that value for the scaleX and scaleY values\r\n\t\t\t\t\t\t (this behavior mimics the result of animating all these properties at once on HTML elements). */\r\n\t\t\t\t\t\tscale: getTransformFloat(\"scale\") !== 1 ? [getTransformFloat(\"scale\"), getTransformFloat(\"scale\")] : [getTransformFloat(\"scaleX\"), getTransformFloat(\"scaleY\")],\r\n\t\t\t\t\t\t/* Note: SVG's rotate transform takes three values: rotation degrees followed by the X and Y values\r\n\t\t\t\t\t\t defining the rotation's origin point. We ignore the origin values (default them to 0). */\r\n\t\t\t\t\t\trotate: [getTransformFloat(\"rotateZ\"), 0, 0]\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/* Iterate through the transform properties in the user-defined property map order.\r\n\t\t\t\t\t (This mimics the behavior of non-SVG transform animation.) */\r\n\t\t\t\t\t$.each(Data(element).transformCache, function(transformName) {\r\n\t\t\t\t\t\t/* Except for with skewX/Y, revert the axis-specific transform subproperties to their axis-free master\r\n\t\t\t\t\t\t properties so that they match up with SVG's accepted transform properties. */\r\n\t\t\t\t\t\tif (/^translate/i.test(transformName)) {\r\n\t\t\t\t\t\t\ttransformName = \"translate\";\r\n\t\t\t\t\t\t} else if (/^scale/i.test(transformName)) {\r\n\t\t\t\t\t\t\ttransformName = \"scale\";\r\n\t\t\t\t\t\t} else if (/^rotate/i.test(transformName)) {\r\n\t\t\t\t\t\t\ttransformName = \"rotate\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Check that we haven't yet deleted the property from the SVGTransforms container. */\r\n\t\t\t\t\t\tif (SVGTransforms[transformName]) {\r\n\t\t\t\t\t\t\t/* Append the transform property in the SVG-supported transform format. As per the spec, surround the space-delimited values in parentheses. */\r\n\t\t\t\t\t\t\ttransformString += transformName + \"(\" + SVGTransforms[transformName].join(\" \") + \")\" + \" \";\r\n\r\n\t\t\t\t\t\t\t/* After processing an SVG transform property, delete it from the SVGTransforms container so we don't\r\n\t\t\t\t\t\t\t re-insert the same master property if we encounter another one of its axis-specific properties. */\r\n\t\t\t\t\t\t\tdelete SVGTransforms[transformName];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar transformValue,\r\n\t\t\t\t\t\t\tperspective;\r\n\r\n\t\t\t\t\t/* Transform properties are stored as members of the transformCache object. Concatenate all the members into a string. */\r\n\t\t\t\t\t$.each(Data(element).transformCache, function(transformName) {\r\n\t\t\t\t\t\ttransformValue = Data(element).transformCache[transformName];\r\n\r\n\t\t\t\t\t\t/* Transform's perspective subproperty must be set first in order to take effect. Store it temporarily. */\r\n\t\t\t\t\t\tif (transformName === \"transformPerspective\") {\r\n\t\t\t\t\t\t\tperspective = transformValue;\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* IE9 only supports one rotation type, rotateZ, which it refers to as \"rotate\". */\r\n\t\t\t\t\t\tif (IE === 9 && transformName === \"rotateZ\") {\r\n\t\t\t\t\t\t\ttransformName = \"rotate\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttransformString += transformName + transformValue + \" \";\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* If present, set the perspective subproperty first. */\r\n\t\t\t\t\tif (perspective) {\r\n\t\t\t\t\t\ttransformString = \"perspective\" + perspective + \" \" + transformString;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tCSS.setPropertyValue(element, \"transform\", transformString);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/* Register hooks and normalizations. */\r\n\t\tCSS.Hooks.register();\r\n\t\tCSS.Normalizations.register();\r\n\r\n\t\t/* Allow hook setting in the same fashion as jQuery's $.css(). */\r\n\t\tVelocity.hook = function(elements, arg2, arg3) {\r\n\t\t\tvar value;\r\n\r\n\t\t\telements = sanitizeElements(elements);\r\n\r\n\t\t\t$.each(elements, function(i, element) {\r\n\t\t\t\t/* Initialize Velocity's per-element data cache if this element hasn't previously been animated. */\r\n\t\t\t\tif (Data(element) === undefined) {\r\n\t\t\t\t\tVelocity.init(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* Get property value. If an element set was passed in, only return the value for the first element. */\r\n\t\t\t\tif (arg3 === undefined) {\r\n\t\t\t\t\tif (value === undefined) {\r\n\t\t\t\t\t\tvalue = CSS.getPropertyValue(element, arg2);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t/* Set property value. */\r\n\t\t\t\t} else {\r\n\t\t\t\t\t/* sPV returns an array of the normalized propertyName/propertyValue pair used to update the DOM. */\r\n\t\t\t\t\tvar adjustedSet = CSS.setPropertyValue(element, arg2, arg3);\r\n\r\n\t\t\t\t\t/* Transform properties don't automatically set. They have to be flushed to the DOM. */\r\n\t\t\t\t\tif (adjustedSet[0] === \"transform\") {\r\n\t\t\t\t\t\tVelocity.CSS.flushTransformCache(element);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvalue = adjustedSet;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn value;\r\n\t\t};\r\n\r\n\t\t/*****************\r\n\t\t Animation\r\n\t\t *****************/\r\n\r\n\t\tvar animate = function() {\r\n\t\t\tvar opts;\r\n\r\n\t\t\t/******************\r\n\t\t\t Call Chain\r\n\t\t\t ******************/\r\n\r\n\t\t\t/* Logic for determining what to return to the call stack when exiting out of Velocity. */\r\n\t\t\tfunction getChain() {\r\n\t\t\t\t/* If we are using the utility function, attempt to return this call's promise. If no promise library was detected,\r\n\t\t\t\t default to null instead of returning the targeted elements so that utility function's return value is standardized. */\r\n\t\t\t\tif (isUtility) {\r\n\t\t\t\t\treturn promiseData.promise || null;\r\n\t\t\t\t\t/* Otherwise, if we're using $.fn, return the jQuery-/Zepto-wrapped element set. */\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn elementsWrapped;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/*************************\r\n\t\t\t Arguments Assignment\r\n\t\t\t *************************/\r\n\r\n\t\t\t/* To allow for expressive CoffeeScript code, Velocity supports an alternative syntax in which \"elements\" (or \"e\"), \"properties\" (or \"p\"), and \"options\" (or \"o\")\r\n\t\t\t objects are defined on a container object that's passed in as Velocity's sole argument. */\r\n\t\t\t/* Note: Some browsers automatically populate arguments with a \"properties\" object. We detect it by checking for its default \"names\" property. */\r\n\t\t\tvar syntacticSugar = (arguments[0] && (arguments[0].p || (($.isPlainObject(arguments[0].properties) && !arguments[0].properties.names) || Type.isString(arguments[0].properties)))),\r\n\t\t\t\t\t/* Whether Velocity was called via the utility function (as opposed to on a jQuery/Zepto object). */\r\n\t\t\t\t\tisUtility,\r\n\t\t\t\t\t/* When Velocity is called via the utility function ($.Velocity()/Velocity()), elements are explicitly\r\n\t\t\t\t\t passed in as the first parameter. Thus, argument positioning varies. We normalize them here. */\r\n\t\t\t\t\telementsWrapped,\r\n\t\t\t\t\targumentIndex;\r\n\r\n\t\t\tvar elements,\r\n\t\t\t\t\tpropertiesMap,\r\n\t\t\t\t\toptions;\r\n\r\n\t\t\t/* Detect jQuery/Zepto elements being animated via the $.fn method. */\r\n\t\t\tif (Type.isWrapped(this)) {\r\n\t\t\t\tisUtility = false;\r\n\r\n\t\t\t\targumentIndex = 0;\r\n\t\t\t\telements = this;\r\n\t\t\t\telementsWrapped = this;\r\n\t\t\t\t/* Otherwise, raw elements are being animated via the utility function. */\r\n\t\t\t} else {\r\n\t\t\t\tisUtility = true;\r\n\r\n\t\t\t\targumentIndex = 1;\r\n\t\t\t\telements = syntacticSugar ? (arguments[0].elements || arguments[0].e) : arguments[0];\r\n\t\t\t}\r\n\r\n\t\t\t/***************\r\n\t\t\t Promises\r\n\t\t\t ***************/\r\n\r\n\t\t\tvar promiseData = {\r\n\t\t\t\tpromise: null,\r\n\t\t\t\tresolver: null,\r\n\t\t\t\trejecter: null\r\n\t\t\t};\r\n\r\n\t\t\t/* If this call was made via the utility function (which is the default method of invocation when jQuery/Zepto are not being used), and if\r\n\t\t\t promise support was detected, create a promise object for this call and store references to its resolver and rejecter methods. The resolve\r\n\t\t\t method is used when a call completes naturally or is prematurely stopped by the user. In both cases, completeCall() handles the associated\r\n\t\t\t call cleanup and promise resolving logic. The reject method is used when an invalid set of arguments is passed into a Velocity call. */\r\n\t\t\t/* Note: Velocity employs a call-based queueing architecture, which means that stopping an animating element actually stops the full call that\r\n\t\t\t triggered it -- not that one element exclusively. Similarly, there is one promise per call, and all elements targeted by a Velocity call are\r\n\t\t\t grouped together for the purposes of resolving and rejecting a promise. */\r\n\t\t\tif (isUtility && Velocity.Promise) {\r\n\t\t\t\tpromiseData.promise = new Velocity.Promise(function(resolve, reject) {\r\n\t\t\t\t\tpromiseData.resolver = resolve;\r\n\t\t\t\t\tpromiseData.rejecter = reject;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (syntacticSugar) {\r\n\t\t\t\tpropertiesMap = arguments[0].properties || arguments[0].p;\r\n\t\t\t\toptions = arguments[0].options || arguments[0].o;\r\n\t\t\t} else {\r\n\t\t\t\tpropertiesMap = arguments[argumentIndex];\r\n\t\t\t\toptions = arguments[argumentIndex + 1];\r\n\t\t\t}\r\n\r\n\t\t\telements = sanitizeElements(elements);\r\n\r\n\t\t\tif (!elements) {\r\n\t\t\t\tif (promiseData.promise) {\r\n\t\t\t\t\tif (!propertiesMap || !options || options.promiseRejectEmpty !== false) {\r\n\t\t\t\t\t\tpromiseData.rejecter();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpromiseData.resolver();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t/* The length of the element set (in the form of a nodeList or an array of elements) is defaulted to 1 in case a\r\n\t\t\t single raw DOM element is passed in (which doesn't contain a length property). */\r\n\t\t\tvar elementsLength = elements.length,\r\n\t\t\t\t\telementsIndex = 0;\r\n\r\n\t\t\t/***************************\r\n\t\t\t Argument Overloading\r\n\t\t\t ***************************/\r\n\r\n\t\t\t/* Support is included for jQuery's argument overloading: $.animate(propertyMap [, duration] [, easing] [, complete]).\r\n\t\t\t Overloading is detected by checking for the absence of an object being passed into options. */\r\n\t\t\t/* Note: The stop/finish/pause/resume actions do not accept animation options, and are therefore excluded from this check. */\r\n\t\t\tif (!/^(stop|finish|finishAll|pause|resume)$/i.test(propertiesMap) && !$.isPlainObject(options)) {\r\n\t\t\t\t/* The utility function shifts all arguments one position to the right, so we adjust for that offset. */\r\n\t\t\t\tvar startingArgumentPosition = argumentIndex + 1;\r\n\r\n\t\t\t\toptions = {};\r\n\r\n\t\t\t\t/* Iterate through all options arguments */\r\n\t\t\t\tfor (var i = startingArgumentPosition; i < arguments.length; i++) {\r\n\t\t\t\t\t/* Treat a number as a duration. Parse it out. */\r\n\t\t\t\t\t/* Note: The following RegEx will return true if passed an array with a number as its first item.\r\n\t\t\t\t\t Thus, arrays are skipped from this check. */\r\n\t\t\t\t\tif (!Type.isArray(arguments[i]) && (/^(fast|normal|slow)$/i.test(arguments[i]) || /^\\d/.test(arguments[i]))) {\r\n\t\t\t\t\t\toptions.duration = arguments[i];\r\n\t\t\t\t\t\t/* Treat strings and arrays as easings. */\r\n\t\t\t\t\t} else if (Type.isString(arguments[i]) || Type.isArray(arguments[i])) {\r\n\t\t\t\t\t\toptions.easing = arguments[i];\r\n\t\t\t\t\t\t/* Treat a function as a complete callback. */\r\n\t\t\t\t\t} else if (Type.isFunction(arguments[i])) {\r\n\t\t\t\t\t\toptions.complete = arguments[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/*********************\r\n\t\t\t Action Detection\r\n\t\t\t *********************/\r\n\r\n\t\t\t/* Velocity's behavior is categorized into \"actions\": Elements can either be specially scrolled into view,\r\n\t\t\t or they can be started, stopped, paused, resumed, or reversed . If a literal or referenced properties map is passed in as Velocity's\r\n\t\t\t first argument, the associated action is \"start\". Alternatively, \"scroll\", \"reverse\", \"pause\", \"resume\" or \"stop\" can be passed in \r\n\t\t\t instead of a properties map. */\r\n\t\t\tvar action;\r\n\r\n\t\t\tswitch (propertiesMap) {\r\n\t\t\t\tcase \"scroll\":\r\n\t\t\t\t\taction = \"scroll\";\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"reverse\":\r\n\t\t\t\t\taction = \"reverse\";\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"pause\":\r\n\r\n\t\t\t\t\t/*******************\r\n\t\t\t\t\t Action: Pause\r\n\t\t\t\t\t *******************/\r\n\r\n\t\t\t\t\tvar currentTime = (new Date()).getTime();\r\n\r\n\t\t\t\t\t/* Handle delay timers */\r\n\t\t\t\t\t$.each(elements, function(i, element) {\r\n\t\t\t\t\t\tpauseDelayOnElement(element, currentTime);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* Pause and Resume are call-wide (not on a per element basis). Thus, calling pause or resume on a \r\n\t\t\t\t\t single element will cause any calls that containt tweens for that element to be paused/resumed\r\n\t\t\t\t\t as well. */\r\n\r\n\t\t\t\t\t/* Iterate through all calls and pause any that contain any of our elements */\r\n\t\t\t\t\t$.each(Velocity.State.calls, function(i, activeCall) {\r\n\r\n\t\t\t\t\t\tvar found = false;\r\n\t\t\t\t\t\t/* Inactive calls are set to false by the logic inside completeCall(). Skip them. */\r\n\t\t\t\t\t\tif (activeCall) {\r\n\t\t\t\t\t\t\t/* Iterate through the active call's targeted elements. */\r\n\t\t\t\t\t\t\t$.each(activeCall[1], function(k, activeElement) {\r\n\t\t\t\t\t\t\t\tvar queueName = (options === undefined) ? \"\" : options;\r\n\r\n\t\t\t\t\t\t\t\tif (queueName !== true && (activeCall[2].queue !== queueName) && !(options === undefined && activeCall[2].queue === false)) {\r\n\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* Iterate through the calls targeted by the stop command. */\r\n\t\t\t\t\t\t\t\t$.each(elements, function(l, element) {\r\n\t\t\t\t\t\t\t\t\t/* Check that this call was applied to the target element. */\r\n\t\t\t\t\t\t\t\t\tif (element === activeElement) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* Set call to paused */\r\n\t\t\t\t\t\t\t\t\t\tactiveCall[5] = {\r\n\t\t\t\t\t\t\t\t\t\t\tresume: false\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* Once we match an element, we can bounce out to the next call entirely */\r\n\t\t\t\t\t\t\t\t\t\tfound = true;\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t/* Proceed to check next call if we have already matched */\r\n\t\t\t\t\t\t\t\tif (found) {\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* Since pause creates no new tweens, exit out of Velocity. */\r\n\t\t\t\t\treturn getChain();\r\n\r\n\t\t\t\tcase \"resume\":\r\n\r\n\t\t\t\t\t/*******************\r\n\t\t\t\t\t Action: Resume\r\n\t\t\t\t\t *******************/\r\n\r\n\t\t\t\t\t/* Handle delay timers */\r\n\t\t\t\t\t$.each(elements, function(i, element) {\r\n\t\t\t\t\t\tresumeDelayOnElement(element, currentTime);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* Pause and Resume are call-wide (not on a per elemnt basis). Thus, calling pause or resume on a \r\n\t\t\t\t\t single element will cause any calls that containt tweens for that element to be paused/resumed\r\n\t\t\t\t\t as well. */\r\n\r\n\t\t\t\t\t/* Iterate through all calls and pause any that contain any of our elements */\r\n\t\t\t\t\t$.each(Velocity.State.calls, function(i, activeCall) {\r\n\t\t\t\t\t\tvar found = false;\r\n\t\t\t\t\t\t/* Inactive calls are set to false by the logic inside completeCall(). Skip them. */\r\n\t\t\t\t\t\tif (activeCall) {\r\n\t\t\t\t\t\t\t/* Iterate through the active call's targeted elements. */\r\n\t\t\t\t\t\t\t$.each(activeCall[1], function(k, activeElement) {\r\n\t\t\t\t\t\t\t\tvar queueName = (options === undefined) ? \"\" : options;\r\n\r\n\t\t\t\t\t\t\t\tif (queueName !== true && (activeCall[2].queue !== queueName) && !(options === undefined && activeCall[2].queue === false)) {\r\n\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* Skip any calls that have never been paused */\r\n\t\t\t\t\t\t\t\tif (!activeCall[5]) {\r\n\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* Iterate through the calls targeted by the stop command. */\r\n\t\t\t\t\t\t\t\t$.each(elements, function(l, element) {\r\n\t\t\t\t\t\t\t\t\t/* Check that this call was applied to the target element. */\r\n\t\t\t\t\t\t\t\t\tif (element === activeElement) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* Flag a pause object to be resumed, which will occur during the next tick. In\r\n\t\t\t\t\t\t\t\t\t\t addition, the pause object will at that time be deleted */\r\n\t\t\t\t\t\t\t\t\t\tactiveCall[5].resume = true;\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* Once we match an element, we can bounce out to the next call entirely */\r\n\t\t\t\t\t\t\t\t\t\tfound = true;\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t/* Proceed to check next call if we have already matched */\r\n\t\t\t\t\t\t\t\tif (found) {\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* Since resume creates no new tweens, exit out of Velocity. */\r\n\t\t\t\t\treturn getChain();\r\n\r\n\t\t\t\tcase \"finish\":\r\n\t\t\t\tcase \"finishAll\":\r\n\t\t\t\tcase \"stop\":\r\n\t\t\t\t\t/*******************\r\n\t\t\t\t\t Action: Stop\r\n\t\t\t\t\t *******************/\r\n\r\n\t\t\t\t\t/* Clear the currently-active delay on each targeted element. */\r\n\t\t\t\t\t$.each(elements, function(i, element) {\r\n\t\t\t\t\t\tif (Data(element) && Data(element).delayTimer) {\r\n\t\t\t\t\t\t\t/* Stop the timer from triggering its cached next() function. */\r\n\t\t\t\t\t\t\tclearTimeout(Data(element).delayTimer.setTimeout);\r\n\r\n\t\t\t\t\t\t\t/* Manually call the next() function so that the subsequent queue items can progress. */\r\n\t\t\t\t\t\t\tif (Data(element).delayTimer.next) {\r\n\t\t\t\t\t\t\t\tData(element).delayTimer.next();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tdelete Data(element).delayTimer;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* If we want to finish everything in the queue, we have to iterate through it\r\n\t\t\t\t\t\t and call each function. This will make them active calls below, which will\r\n\t\t\t\t\t\t cause them to be applied via the duration setting. */\r\n\t\t\t\t\t\tif (propertiesMap === \"finishAll\" && (options === true || Type.isString(options))) {\r\n\t\t\t\t\t\t\t/* Iterate through the items in the element's queue. */\r\n\t\t\t\t\t\t\t$.each($.queue(element, Type.isString(options) ? options : \"\"), function(_, item) {\r\n\t\t\t\t\t\t\t\t/* The queue array can contain an \"inprogress\" string, which we skip. */\r\n\t\t\t\t\t\t\t\tif (Type.isFunction(item)) {\r\n\t\t\t\t\t\t\t\t\titem();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t/* Clearing the $.queue() array is achieved by resetting it to []. */\r\n\t\t\t\t\t\t\t$.queue(element, Type.isString(options) ? options : \"\", []);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tvar callsToStop = [];\r\n\r\n\t\t\t\t\t/* When the stop action is triggered, the elements' currently active call is immediately stopped. The active call might have\r\n\t\t\t\t\t been applied to multiple elements, in which case all of the call's elements will be stopped. When an element\r\n\t\t\t\t\t is stopped, the next item in its animation queue is immediately triggered. */\r\n\t\t\t\t\t/* An additional argument may be passed in to clear an element's remaining queued calls. Either true (which defaults to the \"fx\" queue)\r\n\t\t\t\t\t or a custom queue string can be passed in. */\r\n\t\t\t\t\t/* Note: The stop command runs prior to Velocity's Queueing phase since its behavior is intended to take effect *immediately*,\r\n\t\t\t\t\t regardless of the element's current queue state. */\r\n\r\n\t\t\t\t\t/* Iterate through every active call. */\r\n\t\t\t\t\t$.each(Velocity.State.calls, function(i, activeCall) {\r\n\t\t\t\t\t\t/* Inactive calls are set to false by the logic inside completeCall(). Skip them. */\r\n\t\t\t\t\t\tif (activeCall) {\r\n\t\t\t\t\t\t\t/* Iterate through the active call's targeted elements. */\r\n\t\t\t\t\t\t\t$.each(activeCall[1], function(k, activeElement) {\r\n\t\t\t\t\t\t\t\t/* If true was passed in as a secondary argument, clear absolutely all calls on this element. Otherwise, only\r\n\t\t\t\t\t\t\t\t clear calls associated with the relevant queue. */\r\n\t\t\t\t\t\t\t\t/* Call stopping logic works as follows:\r\n\t\t\t\t\t\t\t\t - options === true --> stop current default queue calls (and queue:false calls), including remaining queued ones.\r\n\t\t\t\t\t\t\t\t - options === undefined --> stop current queue:\"\" call and all queue:false calls.\r\n\t\t\t\t\t\t\t\t - options === false --> stop only queue:false calls.\r\n\t\t\t\t\t\t\t\t - options === \"custom\" --> stop current queue:\"custom\" call, including remaining queued ones (there is no functionality to only clear the currently-running queue:\"custom\" call). */\r\n\t\t\t\t\t\t\t\tvar queueName = (options === undefined) ? \"\" : options;\r\n\r\n\t\t\t\t\t\t\t\tif (queueName !== true && (activeCall[2].queue !== queueName) && !(options === undefined && activeCall[2].queue === false)) {\r\n\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* Iterate through the calls targeted by the stop command. */\r\n\t\t\t\t\t\t\t\t$.each(elements, function(l, element) {\r\n\t\t\t\t\t\t\t\t\t/* Check that this call was applied to the target element. */\r\n\t\t\t\t\t\t\t\t\tif (element === activeElement) {\r\n\t\t\t\t\t\t\t\t\t\t/* Optionally clear the remaining queued calls. If we're doing \"finishAll\" this won't find anything,\r\n\t\t\t\t\t\t\t\t\t\t due to the queue-clearing above. */\r\n\t\t\t\t\t\t\t\t\t\tif (options === true || Type.isString(options)) {\r\n\t\t\t\t\t\t\t\t\t\t\t/* Iterate through the items in the element's queue. */\r\n\t\t\t\t\t\t\t\t\t\t\t$.each($.queue(element, Type.isString(options) ? options : \"\"), function(_, item) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t/* The queue array can contain an \"inprogress\" string, which we skip. */\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (Type.isFunction(item)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/* Pass the item's callback a flag indicating that we want to abort from the queue call.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t (Specifically, the queue will resolve the call's associated promise then abort.) */\r\n\t\t\t\t\t\t\t\t\t\t\t\t\titem(null, true);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t/* Clearing the $.queue() array is achieved by resetting it to []. */\r\n\t\t\t\t\t\t\t\t\t\t\t$.queue(element, Type.isString(options) ? options : \"\", []);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (propertiesMap === \"stop\") {\r\n\t\t\t\t\t\t\t\t\t\t\t/* Since \"reverse\" uses cached start values (the previous call's endValues), these values must be\r\n\t\t\t\t\t\t\t\t\t\t\t changed to reflect the final value that the elements were actually tweened to. */\r\n\t\t\t\t\t\t\t\t\t\t\t/* Note: If only queue:false/queue:\"custom\" animations are currently running on an element, it won't have a tweensContainer\r\n\t\t\t\t\t\t\t\t\t\t\t object. Also, queue:false/queue:\"custom\" animations can't be reversed. */\r\n\t\t\t\t\t\t\t\t\t\t\tvar data = Data(element);\r\n\t\t\t\t\t\t\t\t\t\t\tif (data && data.tweensContainer && (queueName === true || queueName === \"\")) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t$.each(data.tweensContainer, function(m, activeTween) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tactiveTween.endValue = activeTween.currentValue;\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tcallsToStop.push(i);\r\n\t\t\t\t\t\t\t\t\t\t} else if (propertiesMap === \"finish\" || propertiesMap === \"finishAll\") {\r\n\t\t\t\t\t\t\t\t\t\t\t/* To get active tweens to finish immediately, we forcefully shorten their durations to 1ms so that\r\n\t\t\t\t\t\t\t\t\t\t\t they finish upon the next rAf tick then proceed with normal call completion logic. */\r\n\t\t\t\t\t\t\t\t\t\t\tactiveCall[2].duration = 1;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* Prematurely call completeCall() on each matched active call. Pass an additional flag for \"stop\" to indicate\r\n\t\t\t\t\t that the complete callback and display:none setting should be skipped since we're completing prematurely. */\r\n\t\t\t\t\tif (propertiesMap === \"stop\") {\r\n\t\t\t\t\t\t$.each(callsToStop, function(i, j) {\r\n\t\t\t\t\t\t\tcompleteCall(j, true);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tif (promiseData.promise) {\r\n\t\t\t\t\t\t\t/* Immediately resolve the promise associated with this stop call since stop runs synchronously. */\r\n\t\t\t\t\t\t\tpromiseData.resolver(elements);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Since we're stopping, and not proceeding with queueing, exit out of Velocity. */\r\n\t\t\t\t\treturn getChain();\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t/* Treat a non-empty plain object as a literal properties map. */\r\n\t\t\t\t\tif ($.isPlainObject(propertiesMap) && !Type.isEmptyObject(propertiesMap)) {\r\n\t\t\t\t\t\taction = \"start\";\r\n\r\n\t\t\t\t\t\t/****************\r\n\t\t\t\t\t\t Redirects\r\n\t\t\t\t\t\t ****************/\r\n\r\n\t\t\t\t\t\t/* Check if a string matches a registered redirect (see Redirects above). */\r\n\t\t\t\t\t} else if (Type.isString(propertiesMap) && Velocity.Redirects[propertiesMap]) {\r\n\t\t\t\t\t\topts = $.extend({}, options);\r\n\r\n\t\t\t\t\t\tvar durationOriginal = opts.duration,\r\n\t\t\t\t\t\t\t\tdelayOriginal = opts.delay || 0;\r\n\r\n\t\t\t\t\t\t/* If the backwards option was passed in, reverse the element set so that elements animate from the last to the first. */\r\n\t\t\t\t\t\tif (opts.backwards === true) {\r\n\t\t\t\t\t\t\telements = $.extend(true, [], elements).reverse();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Individually trigger the redirect for each element in the set to prevent users from having to handle iteration logic in their redirect. */\r\n\t\t\t\t\t\t$.each(elements, function(elementIndex, element) {\r\n\t\t\t\t\t\t\t/* If the stagger option was passed in, successively delay each element by the stagger value (in ms). Retain the original delay value. */\r\n\t\t\t\t\t\t\tif (parseFloat(opts.stagger)) {\r\n\t\t\t\t\t\t\t\topts.delay = delayOriginal + (parseFloat(opts.stagger) * elementIndex);\r\n\t\t\t\t\t\t\t} else if (Type.isFunction(opts.stagger)) {\r\n\t\t\t\t\t\t\t\topts.delay = delayOriginal + opts.stagger.call(element, elementIndex, elementsLength);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* If the drag option was passed in, successively increase/decrease (depending on the presense of opts.backwards)\r\n\t\t\t\t\t\t\t the duration of each element's animation, using floors to prevent producing very short durations. */\r\n\t\t\t\t\t\t\tif (opts.drag) {\r\n\t\t\t\t\t\t\t\t/* Default the duration of UI pack effects (callouts and transitions) to 1000ms instead of the usual default duration of 400ms. */\r\n\t\t\t\t\t\t\t\topts.duration = parseFloat(durationOriginal) || (/^(callout|transition)/.test(propertiesMap) ? 1000 : DURATION_DEFAULT);\r\n\r\n\t\t\t\t\t\t\t\t/* For each element, take the greater duration of: A) animation completion percentage relative to the original duration,\r\n\t\t\t\t\t\t\t\t B) 75% of the original duration, or C) a 200ms fallback (in case duration is already set to a low value).\r\n\t\t\t\t\t\t\t\t The end result is a baseline of 75% of the redirect's duration that increases/decreases as the end of the element set is approached. */\r\n\t\t\t\t\t\t\t\topts.duration = Math.max(opts.duration * (opts.backwards ? 1 - elementIndex / elementsLength : (elementIndex + 1) / elementsLength), opts.duration * 0.75, 200);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Pass in the call's opts object so that the redirect can optionally extend it. It defaults to an empty object instead of null to\r\n\t\t\t\t\t\t\t reduce the opts checking logic required inside the redirect. */\r\n\t\t\t\t\t\t\tVelocity.Redirects[propertiesMap].call(element, element, opts || {}, elementIndex, elementsLength, elements, promiseData.promise ? promiseData : undefined);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t/* Since the animation logic resides within the redirect's own code, abort the remainder of this call.\r\n\t\t\t\t\t\t (The performance overhead up to this point is virtually non-existant.) */\r\n\t\t\t\t\t\t/* Note: The jQuery call chain is kept intact by returning the complete element set. */\r\n\t\t\t\t\t\treturn getChain();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar abortError = \"Velocity: First argument (\" + propertiesMap + \") was not a property map, a known action, or a registered redirect. Aborting.\";\r\n\r\n\t\t\t\t\t\tif (promiseData.promise) {\r\n\t\t\t\t\t\t\tpromiseData.rejecter(new Error(abortError));\r\n\t\t\t\t\t\t} else if (window.console) {\r\n\t\t\t\t\t\t\tconsole.log(abortError);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn getChain();\r\n\t\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/**************************\r\n\t\t\t Call-Wide Variables\r\n\t\t\t **************************/\r\n\r\n\t\t\t/* A container for CSS unit conversion ratios (e.g. %, rem, and em ==> px) that is used to cache ratios across all elements\r\n\t\t\t being animated in a single Velocity call. Calculating unit ratios necessitates DOM querying and updating, and is therefore\r\n\t\t\t avoided (via caching) wherever possible. This container is call-wide instead of page-wide to avoid the risk of using stale\r\n\t\t\t conversion metrics across Velocity animations that are not immediately consecutively chained. */\r\n\t\t\tvar callUnitConversionData = {\r\n\t\t\t\tlastParent: null,\r\n\t\t\t\tlastPosition: null,\r\n\t\t\t\tlastFontSize: null,\r\n\t\t\t\tlastPercentToPxWidth: null,\r\n\t\t\t\tlastPercentToPxHeight: null,\r\n\t\t\t\tlastEmToPx: null,\r\n\t\t\t\tremToPx: null,\r\n\t\t\t\tvwToPx: null,\r\n\t\t\t\tvhToPx: null\r\n\t\t\t};\r\n\r\n\t\t\t/* A container for all the ensuing tween data and metadata associated with this call. This container gets pushed to the page-wide\r\n\t\t\t Velocity.State.calls array that is processed during animation ticking. */\r\n\t\t\tvar call = [];\r\n\r\n\t\t\t/************************\r\n\t\t\t Element Processing\r\n\t\t\t ************************/\r\n\r\n\t\t\t/* Element processing consists of three parts -- data processing that cannot go stale and data processing that *can* go stale (i.e. third-party style modifications):\r\n\t\t\t 1) Pre-Queueing: Element-wide variables, including the element's data storage, are instantiated. Call options are prepared. If triggered, the Stop action is executed.\r\n\t\t\t 2) Queueing: The logic that runs once this call has reached its point of execution in the element's $.queue() stack. Most logic is placed here to avoid risking it becoming stale.\r\n\t\t\t 3) Pushing: Consolidation of the tween data followed by its push onto the global in-progress calls container.\r\n\t\t\t `elementArrayIndex` allows passing index of the element in the original array to value functions.\r\n\t\t\t If `elementsIndex` were used instead the index would be determined by the elements' per-element queue.\r\n\t\t\t */\r\n\t\t\tfunction processElement(element, elementArrayIndex) {\r\n\r\n\t\t\t\t/*************************\r\n\t\t\t\t Part I: Pre-Queueing\r\n\t\t\t\t *************************/\r\n\r\n\t\t\t\t/***************************\r\n\t\t\t\t Element-Wide Variables\r\n\t\t\t\t ***************************/\r\n\r\n\t\t\t\tvar /* The runtime opts object is the extension of the current call's options and Velocity's page-wide option defaults. */\r\n\t\t\t\t\t\topts = $.extend({}, Velocity.defaults, options),\r\n\t\t\t\t\t\t/* A container for the processed data associated with each property in the propertyMap.\r\n\t\t\t\t\t\t (Each property in the map produces its own \"tween\".) */\r\n\t\t\t\t\t\ttweensContainer = {},\r\n\t\t\t\t\t\telementUnitConversionData;\r\n\r\n\t\t\t\t/******************\r\n\t\t\t\t Element Init\r\n\t\t\t\t ******************/\r\n\r\n\t\t\t\tif (Data(element) === undefined) {\r\n\t\t\t\t\tVelocity.init(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/******************\r\n\t\t\t\t Option: Delay\r\n\t\t\t\t ******************/\r\n\r\n\t\t\t\t/* Since queue:false doesn't respect the item's existing queue, we avoid injecting its delay here (it's set later on). */\r\n\t\t\t\t/* Note: Velocity rolls its own delay function since jQuery doesn't have a utility alias for $.fn.delay()\r\n\t\t\t\t (and thus requires jQuery element creation, which we avoid since its overhead includes DOM querying). */\r\n\t\t\t\tif (parseFloat(opts.delay) && opts.queue !== false) {\r\n\t\t\t\t\t$.queue(element, opts.queue, function(next, clearQueue) {\r\n\t\t\t\t\t\tif (clearQueue === true) {\r\n\t\t\t\t\t\t\t/* Do not continue with animation queueing. */\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* This is a flag used to indicate to the upcoming completeCall() function that this queue entry was initiated by Velocity. See completeCall() for further details. */\r\n\t\t\t\t\t\tVelocity.velocityQueueEntryFlag = true;\r\n\r\n\t\t\t\t\t\t/* The ensuing queue item (which is assigned to the \"next\" argument that $.queue() automatically passes in) will be triggered after a setTimeout delay.\r\n\t\t\t\t\t\t The setTimeout is stored so that it can be subjected to clearTimeout() if this animation is prematurely stopped via Velocity's \"stop\" command, and\r\n\t\t\t\t\t\t delayBegin/delayTime is used to ensure we can \"pause\" and \"resume\" a tween that is still mid-delay. */\r\n\r\n\t\t\t\t\t\t/* Temporarily store delayed elements to facilite access for global pause/resume */\r\n\t\t\t\t\t\tvar callIndex = Velocity.State.delayedElements.count++;\r\n\t\t\t\t\t\tVelocity.State.delayedElements[callIndex] = element;\r\n\r\n\t\t\t\t\t\tvar delayComplete = (function(index) {\r\n\t\t\t\t\t\t\treturn function() {\r\n\t\t\t\t\t\t\t\t/* Clear the temporary element */\r\n\t\t\t\t\t\t\t\tVelocity.State.delayedElements[index] = false;\r\n\r\n\t\t\t\t\t\t\t\t/* Finally, issue the call */\r\n\t\t\t\t\t\t\t\tnext();\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t})(callIndex);\r\n\r\n\r\n\t\t\t\t\t\tData(element).delayBegin = (new Date()).getTime();\r\n\t\t\t\t\t\tData(element).delay = parseFloat(opts.delay);\r\n\t\t\t\t\t\tData(element).delayTimer = {\r\n\t\t\t\t\t\t\tsetTimeout: setTimeout(next, parseFloat(opts.delay)),\r\n\t\t\t\t\t\t\tnext: delayComplete\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*********************\r\n\t\t\t\t Option: Duration\r\n\t\t\t\t *********************/\r\n\r\n\t\t\t\t/* Support for jQuery's named durations. */\r\n\t\t\t\tswitch (opts.duration.toString().toLowerCase()) {\r\n\t\t\t\t\tcase \"fast\":\r\n\t\t\t\t\t\topts.duration = 200;\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"normal\":\r\n\t\t\t\t\t\topts.duration = DURATION_DEFAULT;\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"slow\":\r\n\t\t\t\t\t\topts.duration = 600;\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t/* Remove the potential \"ms\" suffix and default to 1 if the user is attempting to set a duration of 0 (in order to produce an immediate style change). */\r\n\t\t\t\t\t\topts.duration = parseFloat(opts.duration) || 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/************************\r\n\t\t\t\t Global Option: Mock\r\n\t\t\t\t ************************/\r\n\r\n\t\t\t\tif (Velocity.mock !== false) {\r\n\t\t\t\t\t/* In mock mode, all animations are forced to 1ms so that they occur immediately upon the next rAF tick.\r\n\t\t\t\t\t Alternatively, a multiplier can be passed in to time remap all delays and durations. */\r\n\t\t\t\t\tif (Velocity.mock === true) {\r\n\t\t\t\t\t\topts.duration = opts.delay = 1;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\topts.duration *= parseFloat(Velocity.mock) || 1;\r\n\t\t\t\t\t\topts.delay *= parseFloat(Velocity.mock) || 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*******************\r\n\t\t\t\t Option: Easing\r\n\t\t\t\t *******************/\r\n\r\n\t\t\t\topts.easing = getEasing(opts.easing, opts.duration);\r\n\r\n\t\t\t\t/**********************\r\n\t\t\t\t Option: Callbacks\r\n\t\t\t\t **********************/\r\n\r\n\t\t\t\t/* Callbacks must functions. Otherwise, default to null. */\r\n\t\t\t\tif (opts.begin && !Type.isFunction(opts.begin)) {\r\n\t\t\t\t\topts.begin = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (opts.progress && !Type.isFunction(opts.progress)) {\r\n\t\t\t\t\topts.progress = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (opts.complete && !Type.isFunction(opts.complete)) {\r\n\t\t\t\t\topts.complete = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*********************************\r\n\t\t\t\t Option: Display & Visibility\r\n\t\t\t\t *********************************/\r\n\r\n\t\t\t\t/* Refer to Velocity's documentation (VelocityJS.org/#displayAndVisibility) for a description of the display and visibility options' behavior. */\r\n\t\t\t\t/* Note: We strictly check for undefined instead of falsiness because display accepts an empty string value. */\r\n\t\t\t\tif (opts.display !== undefined && opts.display !== null) {\r\n\t\t\t\t\topts.display = opts.display.toString().toLowerCase();\r\n\r\n\t\t\t\t\t/* Users can pass in a special \"auto\" value to instruct Velocity to set the element to its default display value. */\r\n\t\t\t\t\tif (opts.display === \"auto\") {\r\n\t\t\t\t\t\topts.display = Velocity.CSS.Values.getDisplayType(element);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (opts.visibility !== undefined && opts.visibility !== null) {\r\n\t\t\t\t\topts.visibility = opts.visibility.toString().toLowerCase();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/**********************\r\n\t\t\t\t Option: mobileHA\r\n\t\t\t\t **********************/\r\n\r\n\t\t\t\t/* When set to true, and if this is a mobile device, mobileHA automatically enables hardware acceleration (via a null transform hack)\r\n\t\t\t\t on animating elements. HA is removed from the element at the completion of its animation. */\r\n\t\t\t\t/* Note: Android Gingerbread doesn't support HA. If a null transform hack (mobileHA) is in fact set, it will prevent other tranform subproperties from taking effect. */\r\n\t\t\t\t/* Note: You can read more about the use of mobileHA in Velocity's documentation: VelocityJS.org/#mobileHA. */\r\n\t\t\t\topts.mobileHA = (opts.mobileHA && Velocity.State.isMobile && !Velocity.State.isGingerbread);\r\n\r\n\t\t\t\t/***********************\r\n\t\t\t\t Part II: Queueing\r\n\t\t\t\t ***********************/\r\n\r\n\t\t\t\t/* When a set of elements is targeted by a Velocity call, the set is broken up and each element has the current Velocity call individually queued onto it.\r\n\t\t\t\t In this way, each element's existing queue is respected; some elements may already be animating and accordingly should not have this current Velocity call triggered immediately. */\r\n\t\t\t\t/* In each queue, tween data is processed for each animating property then pushed onto the call-wide calls array. When the last element in the set has had its tweens processed,\r\n\t\t\t\t the call array is pushed to Velocity.State.calls for live processing by the requestAnimationFrame tick. */\r\n\t\t\t\tfunction buildQueue(next) {\r\n\t\t\t\t\tvar data, lastTweensContainer;\r\n\r\n\t\t\t\t\t/*******************\r\n\t\t\t\t\t Option: Begin\r\n\t\t\t\t\t *******************/\r\n\r\n\t\t\t\t\t/* The begin callback is fired once per call -- not once per elemenet -- and is passed the full raw DOM element set as both its context and its first argument. */\r\n\t\t\t\t\tif (opts.begin && elementsIndex === 0) {\r\n\t\t\t\t\t\t/* We throw callbacks in a setTimeout so that thrown errors don't halt the execution of Velocity itself. */\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\topts.begin.call(elements, elements);\r\n\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t\t\tthrow error;\r\n\t\t\t\t\t\t\t}, 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*****************************************\r\n\t\t\t\t\t Tween Data Construction (for Scroll)\r\n\t\t\t\t\t *****************************************/\r\n\r\n\t\t\t\t\t/* Note: In order to be subjected to chaining and animation options, scroll's tweening is routed through Velocity as if it were a standard CSS property animation. */\r\n\t\t\t\t\tif (action === \"scroll\") {\r\n\t\t\t\t\t\t/* The scroll action uniquely takes an optional \"offset\" option -- specified in pixels -- that offsets the targeted scroll position. */\r\n\t\t\t\t\t\tvar scrollDirection = (/^x$/i.test(opts.axis) ? \"Left\" : \"Top\"),\r\n\t\t\t\t\t\t\t\tscrollOffset = parseFloat(opts.offset) || 0,\r\n\t\t\t\t\t\t\t\tscrollPositionCurrent,\r\n\t\t\t\t\t\t\t\tscrollPositionCurrentAlternate,\r\n\t\t\t\t\t\t\t\tscrollPositionEnd;\r\n\r\n\t\t\t\t\t\t/* Scroll also uniquely takes an optional \"container\" option, which indicates the parent element that should be scrolled --\r\n\t\t\t\t\t\t as opposed to the browser window itself. This is useful for scrolling toward an element that's inside an overflowing parent element. */\r\n\t\t\t\t\t\tif (opts.container) {\r\n\t\t\t\t\t\t\t/* Ensure that either a jQuery object or a raw DOM element was passed in. */\r\n\t\t\t\t\t\t\tif (Type.isWrapped(opts.container) || Type.isNode(opts.container)) {\r\n\t\t\t\t\t\t\t\t/* Extract the raw DOM element from the jQuery wrapper. */\r\n\t\t\t\t\t\t\t\topts.container = opts.container[0] || opts.container;\r\n\t\t\t\t\t\t\t\t/* Note: Unlike other properties in Velocity, the browser's scroll position is never cached since it so frequently changes\r\n\t\t\t\t\t\t\t\t (due to the user's natural interaction with the page). */\r\n\t\t\t\t\t\t\t\tscrollPositionCurrent = opts.container[\"scroll\" + scrollDirection]; /* GET */\r\n\r\n\t\t\t\t\t\t\t\t/* $.position() values are relative to the container's currently viewable area (without taking into account the container's true dimensions\r\n\t\t\t\t\t\t\t\t -- say, for example, if the container was not overflowing). Thus, the scroll end value is the sum of the child element's position *and*\r\n\t\t\t\t\t\t\t\t the scroll container's current scroll position. */\r\n\t\t\t\t\t\t\t\tscrollPositionEnd = (scrollPositionCurrent + $(element).position()[scrollDirection.toLowerCase()]) + scrollOffset; /* GET */\r\n\t\t\t\t\t\t\t\t/* If a value other than a jQuery object or a raw DOM element was passed in, default to null so that this option is ignored. */\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\topts.container = null;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t/* If the window itself is being scrolled -- not a containing element -- perform a live scroll position lookup using\r\n\t\t\t\t\t\t\t the appropriate cached property names (which differ based on browser type). */\r\n\t\t\t\t\t\t\tscrollPositionCurrent = Velocity.State.scrollAnchor[Velocity.State[\"scrollProperty\" + scrollDirection]]; /* GET */\r\n\t\t\t\t\t\t\t/* When scrolling the browser window, cache the alternate axis's current value since window.scrollTo() doesn't let us change only one value at a time. */\r\n\t\t\t\t\t\t\tscrollPositionCurrentAlternate = Velocity.State.scrollAnchor[Velocity.State[\"scrollProperty\" + (scrollDirection === \"Left\" ? \"Top\" : \"Left\")]]; /* GET */\r\n\r\n\t\t\t\t\t\t\t/* Unlike $.position(), $.offset() values are relative to the browser window's true dimensions -- not merely its currently viewable area --\r\n\t\t\t\t\t\t\t and therefore end values do not need to be compounded onto current values. */\r\n\t\t\t\t\t\t\tscrollPositionEnd = $(element).offset()[scrollDirection.toLowerCase()] + scrollOffset; /* GET */\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Since there's only one format that scroll's associated tweensContainer can take, we create it manually. */\r\n\t\t\t\t\t\ttweensContainer = {\r\n\t\t\t\t\t\t\tscroll: {\r\n\t\t\t\t\t\t\t\trootPropertyValue: false,\r\n\t\t\t\t\t\t\t\tstartValue: scrollPositionCurrent,\r\n\t\t\t\t\t\t\t\tcurrentValue: scrollPositionCurrent,\r\n\t\t\t\t\t\t\t\tendValue: scrollPositionEnd,\r\n\t\t\t\t\t\t\t\tunitType: \"\",\r\n\t\t\t\t\t\t\t\teasing: opts.easing,\r\n\t\t\t\t\t\t\t\tscrollData: {\r\n\t\t\t\t\t\t\t\t\tcontainer: opts.container,\r\n\t\t\t\t\t\t\t\t\tdirection: scrollDirection,\r\n\t\t\t\t\t\t\t\t\talternateValue: scrollPositionCurrentAlternate\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\telement: element\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\tconsole.log(\"tweensContainer (scroll): \", tweensContainer.scroll, element);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/******************************************\r\n\t\t\t\t\t\t Tween Data Construction (for Reverse)\r\n\t\t\t\t\t\t ******************************************/\r\n\r\n\t\t\t\t\t\t/* Reverse acts like a \"start\" action in that a property map is animated toward. The only difference is\r\n\t\t\t\t\t\t that the property map used for reverse is the inverse of the map used in the previous call. Thus, we manipulate\r\n\t\t\t\t\t\t the previous call to construct our new map: use the previous map's end values as our new map's start values. Copy over all other data. */\r\n\t\t\t\t\t\t/* Note: Reverse can be directly called via the \"reverse\" parameter, or it can be indirectly triggered via the loop option. (Loops are composed of multiple reverses.) */\r\n\t\t\t\t\t\t/* Note: Reverse calls do not need to be consecutively chained onto a currently-animating element in order to operate on cached values;\r\n\t\t\t\t\t\t there is no harm to reverse being called on a potentially stale data cache since reverse's behavior is simply defined\r\n\t\t\t\t\t\t as reverting to the element's values as they were prior to the previous *Velocity* call. */\r\n\t\t\t\t\t} else if (action === \"reverse\") {\r\n\t\t\t\t\t\tdata = Data(element);\r\n\r\n\t\t\t\t\t\t/* Abort if there is no prior animation data to reverse to. */\r\n\t\t\t\t\t\tif (!data) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!data.tweensContainer) {\r\n\t\t\t\t\t\t\t/* Dequeue the element so that this queue entry releases itself immediately, allowing subsequent queue entries to run. */\r\n\t\t\t\t\t\t\t$.dequeue(element, opts.queue);\r\n\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t/*********************\r\n\t\t\t\t\t\t\t Options Parsing\r\n\t\t\t\t\t\t\t *********************/\r\n\r\n\t\t\t\t\t\t\t/* If the element was hidden via the display option in the previous call,\r\n\t\t\t\t\t\t\t revert display to \"auto\" prior to reversal so that the element is visible again. */\r\n\t\t\t\t\t\t\tif (data.opts.display === \"none\") {\r\n\t\t\t\t\t\t\t\tdata.opts.display = \"auto\";\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (data.opts.visibility === \"hidden\") {\r\n\t\t\t\t\t\t\t\tdata.opts.visibility = \"visible\";\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* If the loop option was set in the previous call, disable it so that \"reverse\" calls aren't recursively generated.\r\n\t\t\t\t\t\t\t Further, remove the previous call's callback options; typically, users do not want these to be refired. */\r\n\t\t\t\t\t\t\tdata.opts.loop = false;\r\n\t\t\t\t\t\t\tdata.opts.begin = null;\r\n\t\t\t\t\t\t\tdata.opts.complete = null;\r\n\r\n\t\t\t\t\t\t\t/* Since we're extending an opts object that has already been extended with the defaults options object,\r\n\t\t\t\t\t\t\t we remove non-explicitly-defined properties that are auto-assigned values. */\r\n\t\t\t\t\t\t\tif (!options.easing) {\r\n\t\t\t\t\t\t\t\tdelete opts.easing;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!options.duration) {\r\n\t\t\t\t\t\t\t\tdelete opts.duration;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* The opts object used for reversal is an extension of the options object optionally passed into this\r\n\t\t\t\t\t\t\t reverse call plus the options used in the previous Velocity call. */\r\n\t\t\t\t\t\t\topts = $.extend({}, data.opts, opts);\r\n\r\n\t\t\t\t\t\t\t/*************************************\r\n\t\t\t\t\t\t\t Tweens Container Reconstruction\r\n\t\t\t\t\t\t\t *************************************/\r\n\r\n\t\t\t\t\t\t\t/* Create a deepy copy (indicated via the true flag) of the previous call's tweensContainer. */\r\n\t\t\t\t\t\t\tlastTweensContainer = $.extend(true, {}, data ? data.tweensContainer : null);\r\n\r\n\t\t\t\t\t\t\t/* Manipulate the previous tweensContainer by replacing its end values and currentValues with its start values. */\r\n\t\t\t\t\t\t\tfor (var lastTween in lastTweensContainer) {\r\n\t\t\t\t\t\t\t\t/* In addition to tween data, tweensContainers contain an element property that we ignore here. */\r\n\t\t\t\t\t\t\t\tif (lastTweensContainer.hasOwnProperty(lastTween) && lastTween !== \"element\") {\r\n\t\t\t\t\t\t\t\t\tvar lastStartValue = lastTweensContainer[lastTween].startValue;\r\n\r\n\t\t\t\t\t\t\t\t\tlastTweensContainer[lastTween].startValue = lastTweensContainer[lastTween].currentValue = lastTweensContainer[lastTween].endValue;\r\n\t\t\t\t\t\t\t\t\tlastTweensContainer[lastTween].endValue = lastStartValue;\r\n\r\n\t\t\t\t\t\t\t\t\t/* Easing is the only option that embeds into the individual tween data (since it can be defined on a per-property basis).\r\n\t\t\t\t\t\t\t\t\t Accordingly, every property's easing value must be updated when an options object is passed in with a reverse call.\r\n\t\t\t\t\t\t\t\t\t The side effect of this extensibility is that all per-property easing values are forcefully reset to the new value. */\r\n\t\t\t\t\t\t\t\t\tif (!Type.isEmptyObject(options)) {\r\n\t\t\t\t\t\t\t\t\t\tlastTweensContainer[lastTween].easing = opts.easing;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\t\t\t\tconsole.log(\"reverse tweensContainer (\" + lastTween + \"): \" + JSON.stringify(lastTweensContainer[lastTween]), element);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\ttweensContainer = lastTweensContainer;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/*****************************************\r\n\t\t\t\t\t\t Tween Data Construction (for Start)\r\n\t\t\t\t\t\t *****************************************/\r\n\r\n\t\t\t\t\t} else if (action === \"start\") {\r\n\r\n\t\t\t\t\t\t/*************************\r\n\t\t\t\t\t\t Value Transferring\r\n\t\t\t\t\t\t *************************/\r\n\r\n\t\t\t\t\t\t/* If this queue entry follows a previous Velocity-initiated queue entry *and* if this entry was created\r\n\t\t\t\t\t\t while the element was in the process of being animated by Velocity, then this current call is safe to use\r\n\t\t\t\t\t\t the end values from the prior call as its start values. Velocity attempts to perform this value transfer\r\n\t\t\t\t\t\t process whenever possible in order to avoid requerying the DOM. */\r\n\t\t\t\t\t\t/* If values aren't transferred from a prior call and start values were not forcefed by the user (more on this below),\r\n\t\t\t\t\t\t then the DOM is queried for the element's current values as a last resort. */\r\n\t\t\t\t\t\t/* Note: Conversely, animation reversal (and looping) *always* perform inter-call value transfers; they never requery the DOM. */\r\n\r\n\t\t\t\t\t\tdata = Data(element);\r\n\r\n\t\t\t\t\t\t/* The per-element isAnimating flag is used to indicate whether it's safe (i.e. the data isn't stale)\r\n\t\t\t\t\t\t to transfer over end values to use as start values. If it's set to true and there is a previous\r\n\t\t\t\t\t\t Velocity call to pull values from, do so. */\r\n\t\t\t\t\t\tif (data && data.tweensContainer && data.isAnimating === true) {\r\n\t\t\t\t\t\t\tlastTweensContainer = data.tweensContainer;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/***************************\r\n\t\t\t\t\t\t Tween Data Calculation\r\n\t\t\t\t\t\t ***************************/\r\n\r\n\t\t\t\t\t\t/* This function parses property data and defaults endValue, easing, and startValue as appropriate. */\r\n\t\t\t\t\t\t/* Property map values can either take the form of 1) a single value representing the end value,\r\n\t\t\t\t\t\t or 2) an array in the form of [ endValue, [, easing] [, startValue] ].\r\n\t\t\t\t\t\t The optional third parameter is a forcefed startValue to be used instead of querying the DOM for\r\n\t\t\t\t\t\t the element's current value. Read Velocity's docmentation to learn more about forcefeeding: VelocityJS.org/#forcefeeding */\r\n\t\t\t\t\t\tvar parsePropertyValue = function(valueData, skipResolvingEasing) {\r\n\t\t\t\t\t\t\tvar endValue, easing, startValue;\r\n\r\n\t\t\t\t\t\t\t/* If we have a function as the main argument then resolve it first, in case it returns an array that needs to be split */\r\n\t\t\t\t\t\t\tif (Type.isFunction(valueData)) {\r\n\t\t\t\t\t\t\t\tvalueData = valueData.call(element, elementArrayIndex, elementsLength);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Handle the array format, which can be structured as one of three potential overloads:\r\n\t\t\t\t\t\t\t A) [ endValue, easing, startValue ], B) [ endValue, easing ], or C) [ endValue, startValue ] */\r\n\t\t\t\t\t\t\tif (Type.isArray(valueData)) {\r\n\t\t\t\t\t\t\t\t/* endValue is always the first item in the array. Don't bother validating endValue's value now\r\n\t\t\t\t\t\t\t\t since the ensuing property cycling logic does that. */\r\n\t\t\t\t\t\t\t\tendValue = valueData[0];\r\n\r\n\t\t\t\t\t\t\t\t/* Two-item array format: If the second item is a number, function, or hex string, treat it as a\r\n\t\t\t\t\t\t\t\t start value since easings can only be non-hex strings or arrays. */\r\n\t\t\t\t\t\t\t\tif ((!Type.isArray(valueData[1]) && /^[\\d-]/.test(valueData[1])) || Type.isFunction(valueData[1]) || CSS.RegEx.isHex.test(valueData[1])) {\r\n\t\t\t\t\t\t\t\t\tstartValue = valueData[1];\r\n\t\t\t\t\t\t\t\t\t/* Two or three-item array: If the second item is a non-hex string easing name or an array, treat it as an easing. */\r\n\t\t\t\t\t\t\t\t} else if ((Type.isString(valueData[1]) && !CSS.RegEx.isHex.test(valueData[1]) && Velocity.Easings[valueData[1]]) || Type.isArray(valueData[1])) {\r\n\t\t\t\t\t\t\t\t\teasing = skipResolvingEasing ? valueData[1] : getEasing(valueData[1], opts.duration);\r\n\r\n\t\t\t\t\t\t\t\t\t/* Don't bother validating startValue's value now since the ensuing property cycling logic inherently does that. */\r\n\t\t\t\t\t\t\t\t\tstartValue = valueData[2];\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tstartValue = valueData[1] || valueData[2];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/* Handle the single-value format. */\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tendValue = valueData;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Default to the call's easing if a per-property easing type was not defined. */\r\n\t\t\t\t\t\t\tif (!skipResolvingEasing) {\r\n\t\t\t\t\t\t\t\teasing = easing || opts.easing;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* If functions were passed in as values, pass the function the current element as its context,\r\n\t\t\t\t\t\t\t plus the element's index and the element set's size as arguments. Then, assign the returned value. */\r\n\t\t\t\t\t\t\tif (Type.isFunction(endValue)) {\r\n\t\t\t\t\t\t\t\tendValue = endValue.call(element, elementArrayIndex, elementsLength);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (Type.isFunction(startValue)) {\r\n\t\t\t\t\t\t\t\tstartValue = startValue.call(element, elementArrayIndex, elementsLength);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Allow startValue to be left as undefined to indicate to the ensuing code that its value was not forcefed. */\r\n\t\t\t\t\t\t\treturn [endValue || 0, easing, startValue];\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tvar fixPropertyValue = function(property, valueData) {\r\n\t\t\t\t\t\t\t/* In case this property is a hook, there are circumstances where we will intend to work on the hook's root property and not the hooked subproperty. */\r\n\t\t\t\t\t\t\tvar rootProperty = CSS.Hooks.getRoot(property),\r\n\t\t\t\t\t\t\t\t\trootPropertyValue = false,\r\n\t\t\t\t\t\t\t\t\t/* Parse out endValue, easing, and startValue from the property's data. */\r\n\t\t\t\t\t\t\t\t\tendValue = valueData[0],\r\n\t\t\t\t\t\t\t\t\teasing = valueData[1],\r\n\t\t\t\t\t\t\t\t\tstartValue = valueData[2],\r\n\t\t\t\t\t\t\t\t\tpattern;\r\n\r\n\t\t\t\t\t\t\t/**************************\r\n\t\t\t\t\t\t\t Start Value Sourcing\r\n\t\t\t\t\t\t\t **************************/\r\n\r\n\t\t\t\t\t\t\t/* Other than for the dummy tween property, properties that are not supported by the browser (and do not have an associated normalization) will\r\n\t\t\t\t\t\t\t inherently produce no style changes when set, so they are skipped in order to decrease animation tick overhead.\r\n\t\t\t\t\t\t\t Property support is determined via prefixCheck(), which returns a false flag when no supported is detected. */\r\n\t\t\t\t\t\t\t/* Note: Since SVG elements have some of their properties directly applied as HTML attributes,\r\n\t\t\t\t\t\t\t there is no way to check for their explicit browser support, and so we skip skip this check for them. */\r\n\t\t\t\t\t\t\tif ((!data || !data.isSVG) && rootProperty !== \"tween\" && CSS.Names.prefixCheck(rootProperty)[1] === false && CSS.Normalizations.registered[rootProperty] === undefined) {\r\n\t\t\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\t\t\tconsole.log(\"Skipping [\" + rootProperty + \"] due to a lack of browser support.\");\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* If the display option is being set to a non-\"none\" (e.g. \"block\") and opacity (filter on IE<=8) is being\r\n\t\t\t\t\t\t\t animated to an endValue of non-zero, the user's intention is to fade in from invisible, thus we forcefeed opacity\r\n\t\t\t\t\t\t\t a startValue of 0 if its startValue hasn't already been sourced by value transferring or prior forcefeeding. */\r\n\t\t\t\t\t\t\tif (((opts.display !== undefined && opts.display !== null && opts.display !== \"none\") || (opts.visibility !== undefined && opts.visibility !== \"hidden\")) && /opacity|filter/.test(property) && !startValue && endValue !== 0) {\r\n\t\t\t\t\t\t\t\tstartValue = 0;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* If values have been transferred from the previous Velocity call, extract the endValue and rootPropertyValue\r\n\t\t\t\t\t\t\t for all of the current call's properties that were *also* animated in the previous call. */\r\n\t\t\t\t\t\t\t/* Note: Value transferring can optionally be disabled by the user via the _cacheValues option. */\r\n\t\t\t\t\t\t\tif (opts._cacheValues && lastTweensContainer && lastTweensContainer[property]) {\r\n\t\t\t\t\t\t\t\tif (startValue === undefined) {\r\n\t\t\t\t\t\t\t\t\tstartValue = lastTweensContainer[property].endValue + lastTweensContainer[property].unitType;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* The previous call's rootPropertyValue is extracted from the element's data cache since that's the\r\n\t\t\t\t\t\t\t\t instance of rootPropertyValue that gets freshly updated by the tweening process, whereas the rootPropertyValue\r\n\t\t\t\t\t\t\t\t attached to the incoming lastTweensContainer is equal to the root property's value prior to any tweening. */\r\n\t\t\t\t\t\t\t\trootPropertyValue = data.rootPropertyValueCache[rootProperty];\r\n\t\t\t\t\t\t\t\t/* If values were not transferred from a previous Velocity call, query the DOM as needed. */\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t/* Handle hooked properties. */\r\n\t\t\t\t\t\t\t\tif (CSS.Hooks.registered[property]) {\r\n\t\t\t\t\t\t\t\t\tif (startValue === undefined) {\r\n\t\t\t\t\t\t\t\t\t\trootPropertyValue = CSS.getPropertyValue(element, rootProperty); /* GET */\r\n\t\t\t\t\t\t\t\t\t\t/* Note: The following getPropertyValue() call does not actually trigger a DOM query;\r\n\t\t\t\t\t\t\t\t\t\t getPropertyValue() will extract the hook from rootPropertyValue. */\r\n\t\t\t\t\t\t\t\t\t\tstartValue = CSS.getPropertyValue(element, property, rootPropertyValue);\r\n\t\t\t\t\t\t\t\t\t\t/* If startValue is already defined via forcefeeding, do not query the DOM for the root property's value;\r\n\t\t\t\t\t\t\t\t\t\t just grab rootProperty's zero-value template from CSS.Hooks. This overwrites the element's actual\r\n\t\t\t\t\t\t\t\t\t\t root property value (if one is set), but this is acceptable since the primary reason users forcefeed is\r\n\t\t\t\t\t\t\t\t\t\t to avoid DOM queries, and thus we likewise avoid querying the DOM for the root property's value. */\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t/* Grab this hook's zero-value template, e.g. \"0px 0px 0px black\". */\r\n\t\t\t\t\t\t\t\t\t\trootPropertyValue = CSS.Hooks.templates[rootProperty][1];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t/* Handle non-hooked properties that haven't already been defined via forcefeeding. */\r\n\t\t\t\t\t\t\t\t} else if (startValue === undefined) {\r\n\t\t\t\t\t\t\t\t\tstartValue = CSS.getPropertyValue(element, property); /* GET */\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/**************************\r\n\t\t\t\t\t\t\t Value Data Extraction\r\n\t\t\t\t\t\t\t **************************/\r\n\r\n\t\t\t\t\t\t\tvar separatedValue,\r\n\t\t\t\t\t\t\t\t\tendValueUnitType,\r\n\t\t\t\t\t\t\t\t\tstartValueUnitType,\r\n\t\t\t\t\t\t\t\t\toperator = false;\r\n\r\n\t\t\t\t\t\t\t/* Separates a property value into its numeric value and its unit type. */\r\n\t\t\t\t\t\t\tvar separateValue = function(property, value) {\r\n\t\t\t\t\t\t\t\tvar unitType,\r\n\t\t\t\t\t\t\t\t\t\tnumericValue;\r\n\r\n\t\t\t\t\t\t\t\tnumericValue = (value || \"0\")\r\n\t\t\t\t\t\t\t\t\t\t.toString()\r\n\t\t\t\t\t\t\t\t\t\t.toLowerCase()\r\n\t\t\t\t\t\t\t\t\t\t/* Match the unit type at the end of the value. */\r\n\t\t\t\t\t\t\t\t\t\t.replace(/[%A-z]+$/, function(match) {\r\n\t\t\t\t\t\t\t\t\t\t\t/* Grab the unit type. */\r\n\t\t\t\t\t\t\t\t\t\t\tunitType = match;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t/* Strip the unit type off of value. */\r\n\t\t\t\t\t\t\t\t\t\t\treturn \"\";\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t/* If no unit type was supplied, assign one that is appropriate for this property (e.g. \"deg\" for rotateZ or \"px\" for width). */\r\n\t\t\t\t\t\t\t\tif (!unitType) {\r\n\t\t\t\t\t\t\t\t\tunitType = CSS.Values.getUnitType(property);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn [numericValue, unitType];\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tif (startValue !== endValue && Type.isString(startValue) && Type.isString(endValue)) {\r\n\t\t\t\t\t\t\t\tpattern = \"\";\r\n\t\t\t\t\t\t\t\tvar iStart = 0, // index in startValue\r\n\t\t\t\t\t\t\t\t\t\tiEnd = 0, // index in endValue\r\n\t\t\t\t\t\t\t\t\t\taStart = [], // array of startValue numbers\r\n\t\t\t\t\t\t\t\t\t\taEnd = [], // array of endValue numbers\r\n\t\t\t\t\t\t\t\t\t\tinCalc = 0, // Keep track of being inside a \"calc()\" so we don't duplicate it\r\n\t\t\t\t\t\t\t\t\t\tinRGB = 0, // Keep track of being inside an RGB as we can't use fractional values\r\n\t\t\t\t\t\t\t\t\t\tinRGBA = 0; // Keep track of being inside an RGBA as we must pass fractional for the alpha channel\r\n\r\n\t\t\t\t\t\t\t\tstartValue = CSS.Hooks.fixColors(startValue);\r\n\t\t\t\t\t\t\t\tendValue = CSS.Hooks.fixColors(endValue);\r\n\t\t\t\t\t\t\t\twhile (iStart < startValue.length && iEnd < endValue.length) {\r\n\t\t\t\t\t\t\t\t\tvar cStart = startValue[iStart],\r\n\t\t\t\t\t\t\t\t\t\t\tcEnd = endValue[iEnd];\r\n\r\n\t\t\t\t\t\t\t\t\tif (/[\\d\\.-]/.test(cStart) && /[\\d\\.-]/.test(cEnd)) {\r\n\t\t\t\t\t\t\t\t\t\tvar tStart = cStart, // temporary character buffer\r\n\t\t\t\t\t\t\t\t\t\t\t\ttEnd = cEnd, // temporary character buffer\r\n\t\t\t\t\t\t\t\t\t\t\t\tdotStart = \".\", // Make sure we can only ever match a single dot in a decimal\r\n\t\t\t\t\t\t\t\t\t\t\t\tdotEnd = \".\"; // Make sure we can only ever match a single dot in a decimal\r\n\r\n\t\t\t\t\t\t\t\t\t\twhile (++iStart < startValue.length) {\r\n\t\t\t\t\t\t\t\t\t\t\tcStart = startValue[iStart];\r\n\t\t\t\t\t\t\t\t\t\t\tif (cStart === dotStart) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tdotStart = \"..\"; // Can never match two characters\r\n\t\t\t\t\t\t\t\t\t\t\t} else if (!/\\d/.test(cStart)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\ttStart += cStart;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\twhile (++iEnd < endValue.length) {\r\n\t\t\t\t\t\t\t\t\t\t\tcEnd = endValue[iEnd];\r\n\t\t\t\t\t\t\t\t\t\t\tif (cEnd === dotEnd) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tdotEnd = \"..\"; // Can never match two characters\r\n\t\t\t\t\t\t\t\t\t\t\t} else if (!/\\d/.test(cEnd)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\ttEnd += cEnd;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tvar uStart = CSS.Hooks.getUnit(startValue, iStart), // temporary unit type\r\n\t\t\t\t\t\t\t\t\t\t\t\tuEnd = CSS.Hooks.getUnit(endValue, iEnd); // temporary unit type\r\n\r\n\t\t\t\t\t\t\t\t\t\tiStart += uStart.length;\r\n\t\t\t\t\t\t\t\t\t\tiEnd += uEnd.length;\r\n\t\t\t\t\t\t\t\t\t\tif (uStart === uEnd) {\r\n\t\t\t\t\t\t\t\t\t\t\t// Same units\r\n\t\t\t\t\t\t\t\t\t\t\tif (tStart === tEnd) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Same numbers, so just copy over\r\n\t\t\t\t\t\t\t\t\t\t\t\tpattern += tStart + uStart;\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Different numbers, so store them\r\n\t\t\t\t\t\t\t\t\t\t\t\tpattern += \"{\" + aStart.length + (inRGB ? \"!\" : \"\") + \"}\" + uStart;\r\n\t\t\t\t\t\t\t\t\t\t\t\taStart.push(parseFloat(tStart));\r\n\t\t\t\t\t\t\t\t\t\t\t\taEnd.push(parseFloat(tEnd));\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t// Different units, so put into a \"calc(from + to)\" and animate each side to/from zero\r\n\t\t\t\t\t\t\t\t\t\t\tvar nStart = parseFloat(tStart),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnEnd = parseFloat(tEnd);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tpattern += (inCalc < 5 ? \"calc\" : \"\") + \"(\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t+ (nStart ? \"{\" + aStart.length + (inRGB ? \"!\" : \"\") + \"}\" : \"0\") + uStart\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t+ \" + \"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t+ (nEnd ? \"{\" + (aStart.length + (nStart ? 1 : 0)) + (inRGB ? \"!\" : \"\") + \"}\" : \"0\") + uEnd\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t+ \")\";\r\n\t\t\t\t\t\t\t\t\t\t\tif (nStart) {\r\n\t\t\t\t\t\t\t\t\t\t\t\taStart.push(nStart);\r\n\t\t\t\t\t\t\t\t\t\t\t\taEnd.push(0);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tif (nEnd) {\r\n\t\t\t\t\t\t\t\t\t\t\t\taStart.push(0);\r\n\t\t\t\t\t\t\t\t\t\t\t\taEnd.push(nEnd);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t} else if (cStart === cEnd) {\r\n\t\t\t\t\t\t\t\t\t\tpattern += cStart;\r\n\t\t\t\t\t\t\t\t\t\tiStart++;\r\n\t\t\t\t\t\t\t\t\t\tiEnd++;\r\n\t\t\t\t\t\t\t\t\t\t// Keep track of being inside a calc()\r\n\t\t\t\t\t\t\t\t\t\tif (inCalc === 0 && cStart === \"c\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inCalc === 1 && cStart === \"a\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inCalc === 2 && cStart === \"l\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inCalc === 3 && cStart === \"c\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inCalc >= 4 && cStart === \"(\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\tinCalc++;\r\n\t\t\t\t\t\t\t\t\t\t} else if ((inCalc && inCalc < 5)\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inCalc >= 4 && cStart === \")\" && --inCalc < 5) {\r\n\t\t\t\t\t\t\t\t\t\t\tinCalc = 0;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t// Keep track of being inside an rgb() / rgba()\r\n\t\t\t\t\t\t\t\t\t\tif (inRGB === 0 && cStart === \"r\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inRGB === 1 && cStart === \"g\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inRGB === 2 && cStart === \"b\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inRGB === 3 && cStart === \"a\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inRGB >= 3 && cStart === \"(\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (inRGB === 3 && cStart === \"a\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\tinRGBA = 1;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tinRGB++;\r\n\t\t\t\t\t\t\t\t\t\t} else if (inRGBA && cStart === \",\") {\r\n\t\t\t\t\t\t\t\t\t\t\tif (++inRGBA > 3) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tinRGB = inRGBA = 0;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t} else if ((inRGBA && inRGB < (inRGBA ? 5 : 4))\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inRGB >= (inRGBA ? 4 : 3) && cStart === \")\" && --inRGB < (inRGBA ? 5 : 4)) {\r\n\t\t\t\t\t\t\t\t\t\t\tinRGB = inRGBA = 0;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tinCalc = 0;\r\n\t\t\t\t\t\t\t\t\t\t// TODO: changing units, fixing colours\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (iStart !== startValue.length || iEnd !== endValue.length) {\r\n\t\t\t\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\t\t\t\tconsole.error(\"Trying to pattern match mis-matched strings [\\\"\" + endValue + \"\\\", \\\"\" + startValue + \"\\\"]\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tpattern = undefined;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (pattern) {\r\n\t\t\t\t\t\t\t\t\tif (aStart.length) {\r\n\t\t\t\t\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Pattern found \\\"\" + pattern + \"\\\" -> \", aStart, aEnd, \"[\" + startValue + \",\" + endValue + \"]\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tstartValue = aStart;\r\n\t\t\t\t\t\t\t\t\t\tendValue = aEnd;\r\n\t\t\t\t\t\t\t\t\t\tendValueUnitType = startValueUnitType = \"\";\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tpattern = undefined;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!pattern) {\r\n\t\t\t\t\t\t\t\t/* Separate startValue. */\r\n\t\t\t\t\t\t\t\tseparatedValue = separateValue(property, startValue);\r\n\t\t\t\t\t\t\t\tstartValue = separatedValue[0];\r\n\t\t\t\t\t\t\t\tstartValueUnitType = separatedValue[1];\r\n\r\n\t\t\t\t\t\t\t\t/* Separate endValue, and extract a value operator (e.g. \"+=\", \"-=\") if one exists. */\r\n\t\t\t\t\t\t\t\tseparatedValue = separateValue(property, endValue);\r\n\t\t\t\t\t\t\t\tendValue = separatedValue[0].replace(/^([+-\\/*])=/, function(match, subMatch) {\r\n\t\t\t\t\t\t\t\t\toperator = subMatch;\r\n\r\n\t\t\t\t\t\t\t\t\t/* Strip the operator off of the value. */\r\n\t\t\t\t\t\t\t\t\treturn \"\";\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tendValueUnitType = separatedValue[1];\r\n\r\n\t\t\t\t\t\t\t\t/* Parse float values from endValue and startValue. Default to 0 if NaN is returned. */\r\n\t\t\t\t\t\t\t\tstartValue = parseFloat(startValue) || 0;\r\n\t\t\t\t\t\t\t\tendValue = parseFloat(endValue) || 0;\r\n\r\n\t\t\t\t\t\t\t\t/***************************************\r\n\t\t\t\t\t\t\t\t Property-Specific Value Conversion\r\n\t\t\t\t\t\t\t\t ***************************************/\r\n\r\n\t\t\t\t\t\t\t\t/* Custom support for properties that don't actually accept the % unit type, but where pollyfilling is trivial and relatively foolproof. */\r\n\t\t\t\t\t\t\t\tif (endValueUnitType === \"%\") {\r\n\t\t\t\t\t\t\t\t\t/* A %-value fontSize/lineHeight is relative to the parent's fontSize (as opposed to the parent's dimensions),\r\n\t\t\t\t\t\t\t\t\t which is identical to the em unit's behavior, so we piggyback off of that. */\r\n\t\t\t\t\t\t\t\t\tif (/^(fontSize|lineHeight)$/.test(property)) {\r\n\t\t\t\t\t\t\t\t\t\t/* Convert % into an em decimal value. */\r\n\t\t\t\t\t\t\t\t\t\tendValue = endValue / 100;\r\n\t\t\t\t\t\t\t\t\t\tendValueUnitType = \"em\";\r\n\t\t\t\t\t\t\t\t\t\t/* For scaleX and scaleY, convert the value into its decimal format and strip off the unit type. */\r\n\t\t\t\t\t\t\t\t\t} else if (/^scale/.test(property)) {\r\n\t\t\t\t\t\t\t\t\t\tendValue = endValue / 100;\r\n\t\t\t\t\t\t\t\t\t\tendValueUnitType = \"\";\r\n\t\t\t\t\t\t\t\t\t\t/* For RGB components, take the defined percentage of 255 and strip off the unit type. */\r\n\t\t\t\t\t\t\t\t\t} else if (/(Red|Green|Blue)$/i.test(property)) {\r\n\t\t\t\t\t\t\t\t\t\tendValue = (endValue / 100) * 255;\r\n\t\t\t\t\t\t\t\t\t\tendValueUnitType = \"\";\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/***************************\r\n\t\t\t\t\t\t\t Unit Ratio Calculation\r\n\t\t\t\t\t\t\t ***************************/\r\n\r\n\t\t\t\t\t\t\t/* When queried, the browser returns (most) CSS property values in pixels. Therefore, if an endValue with a unit type of\r\n\t\t\t\t\t\t\t %, em, or rem is animated toward, startValue must be converted from pixels into the same unit type as endValue in order\r\n\t\t\t\t\t\t\t for value manipulation logic (increment/decrement) to proceed. Further, if the startValue was forcefed or transferred\r\n\t\t\t\t\t\t\t from a previous call, startValue may also not be in pixels. Unit conversion logic therefore consists of two steps:\r\n\t\t\t\t\t\t\t 1) Calculating the ratio of %/em/rem/vh/vw relative to pixels\r\n\t\t\t\t\t\t\t 2) Converting startValue into the same unit of measurement as endValue based on these ratios. */\r\n\t\t\t\t\t\t\t/* Unit conversion ratios are calculated by inserting a sibling node next to the target node, copying over its position property,\r\n\t\t\t\t\t\t\t setting values with the target unit type then comparing the returned pixel value. */\r\n\t\t\t\t\t\t\t/* Note: Even if only one of these unit types is being animated, all unit ratios are calculated at once since the overhead\r\n\t\t\t\t\t\t\t of batching the SETs and GETs together upfront outweights the potential overhead\r\n\t\t\t\t\t\t\t of layout thrashing caused by re-querying for uncalculated ratios for subsequently-processed properties. */\r\n\t\t\t\t\t\t\t/* Todo: Shift this logic into the calls' first tick instance so that it's synced with RAF. */\r\n\t\t\t\t\t\t\tvar calculateUnitRatios = function() {\r\n\r\n\t\t\t\t\t\t\t\t/************************\r\n\t\t\t\t\t\t\t\t Same Ratio Checks\r\n\t\t\t\t\t\t\t\t ************************/\r\n\r\n\t\t\t\t\t\t\t\t/* The properties below are used to determine whether the element differs sufficiently from this call's\r\n\t\t\t\t\t\t\t\t previously iterated element to also differ in its unit conversion ratios. If the properties match up with those\r\n\t\t\t\t\t\t\t\t of the prior element, the prior element's conversion ratios are used. Like most optimizations in Velocity,\r\n\t\t\t\t\t\t\t\t this is done to minimize DOM querying. */\r\n\t\t\t\t\t\t\t\tvar sameRatioIndicators = {\r\n\t\t\t\t\t\t\t\t\tmyParent: element.parentNode || document.body, /* GET */\r\n\t\t\t\t\t\t\t\t\tposition: CSS.getPropertyValue(element, \"position\"), /* GET */\r\n\t\t\t\t\t\t\t\t\tfontSize: CSS.getPropertyValue(element, \"fontSize\") /* GET */\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t/* Determine if the same % ratio can be used. % is based on the element's position value and its parent's width and height dimensions. */\r\n\t\t\t\t\t\t\t\t\t\tsamePercentRatio = ((sameRatioIndicators.position === callUnitConversionData.lastPosition) && (sameRatioIndicators.myParent === callUnitConversionData.lastParent)),\r\n\t\t\t\t\t\t\t\t\t\t/* Determine if the same em ratio can be used. em is relative to the element's fontSize. */\r\n\t\t\t\t\t\t\t\t\t\tsameEmRatio = (sameRatioIndicators.fontSize === callUnitConversionData.lastFontSize);\r\n\r\n\t\t\t\t\t\t\t\t/* Store these ratio indicators call-wide for the next element to compare against. */\r\n\t\t\t\t\t\t\t\tcallUnitConversionData.lastParent = sameRatioIndicators.myParent;\r\n\t\t\t\t\t\t\t\tcallUnitConversionData.lastPosition = sameRatioIndicators.position;\r\n\t\t\t\t\t\t\t\tcallUnitConversionData.lastFontSize = sameRatioIndicators.fontSize;\r\n\r\n\t\t\t\t\t\t\t\t/***************************\r\n\t\t\t\t\t\t\t\t Element-Specific Units\r\n\t\t\t\t\t\t\t\t ***************************/\r\n\r\n\t\t\t\t\t\t\t\t/* Note: IE8 rounds to the nearest pixel when returning CSS values, thus we perform conversions using a measurement\r\n\t\t\t\t\t\t\t\t of 100 (instead of 1) to give our ratios a precision of at least 2 decimal values. */\r\n\t\t\t\t\t\t\t\tvar measurement = 100,\r\n\t\t\t\t\t\t\t\t\t\tunitRatios = {};\r\n\r\n\t\t\t\t\t\t\t\tif (!sameEmRatio || !samePercentRatio) {\r\n\t\t\t\t\t\t\t\t\tvar dummy = data && data.isSVG ? document.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\") : document.createElement(\"div\");\r\n\r\n\t\t\t\t\t\t\t\t\tVelocity.init(dummy);\r\n\t\t\t\t\t\t\t\t\tsameRatioIndicators.myParent.appendChild(dummy);\r\n\r\n\t\t\t\t\t\t\t\t\t/* To accurately and consistently calculate conversion ratios, the element's cascaded overflow and box-sizing are stripped.\r\n\t\t\t\t\t\t\t\t\t Similarly, since width/height can be artificially constrained by their min-/max- equivalents, these are controlled for as well. */\r\n\t\t\t\t\t\t\t\t\t/* Note: Overflow must be also be controlled for per-axis since the overflow property overwrites its per-axis values. */\r\n\t\t\t\t\t\t\t\t\t$.each([\"overflow\", \"overflowX\", \"overflowY\"], function(i, property) {\r\n\t\t\t\t\t\t\t\t\t\tVelocity.CSS.setPropertyValue(dummy, property, \"hidden\");\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tVelocity.CSS.setPropertyValue(dummy, \"position\", sameRatioIndicators.position);\r\n\t\t\t\t\t\t\t\t\tVelocity.CSS.setPropertyValue(dummy, \"fontSize\", sameRatioIndicators.fontSize);\r\n\t\t\t\t\t\t\t\t\tVelocity.CSS.setPropertyValue(dummy, \"boxSizing\", \"content-box\");\r\n\r\n\t\t\t\t\t\t\t\t\t/* width and height act as our proxy properties for measuring the horizontal and vertical % ratios. */\r\n\t\t\t\t\t\t\t\t\t$.each([\"minWidth\", \"maxWidth\", \"width\", \"minHeight\", \"maxHeight\", \"height\"], function(i, property) {\r\n\t\t\t\t\t\t\t\t\t\tVelocity.CSS.setPropertyValue(dummy, property, measurement + \"%\");\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t/* paddingLeft arbitrarily acts as our proxy property for the em ratio. */\r\n\t\t\t\t\t\t\t\t\tVelocity.CSS.setPropertyValue(dummy, \"paddingLeft\", measurement + \"em\");\r\n\r\n\t\t\t\t\t\t\t\t\t/* Divide the returned value by the measurement to get the ratio between 1% and 1px. Default to 1 since working with 0 can produce Infinite. */\r\n\t\t\t\t\t\t\t\t\tunitRatios.percentToPxWidth = callUnitConversionData.lastPercentToPxWidth = (parseFloat(CSS.getPropertyValue(dummy, \"width\", null, true)) || 1) / measurement; /* GET */\r\n\t\t\t\t\t\t\t\t\tunitRatios.percentToPxHeight = callUnitConversionData.lastPercentToPxHeight = (parseFloat(CSS.getPropertyValue(dummy, \"height\", null, true)) || 1) / measurement; /* GET */\r\n\t\t\t\t\t\t\t\t\tunitRatios.emToPx = callUnitConversionData.lastEmToPx = (parseFloat(CSS.getPropertyValue(dummy, \"paddingLeft\")) || 1) / measurement; /* GET */\r\n\r\n\t\t\t\t\t\t\t\t\tsameRatioIndicators.myParent.removeChild(dummy);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tunitRatios.emToPx = callUnitConversionData.lastEmToPx;\r\n\t\t\t\t\t\t\t\t\tunitRatios.percentToPxWidth = callUnitConversionData.lastPercentToPxWidth;\r\n\t\t\t\t\t\t\t\t\tunitRatios.percentToPxHeight = callUnitConversionData.lastPercentToPxHeight;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/***************************\r\n\t\t\t\t\t\t\t\t Element-Agnostic Units\r\n\t\t\t\t\t\t\t\t ***************************/\r\n\r\n\t\t\t\t\t\t\t\t/* Whereas % and em ratios are determined on a per-element basis, the rem unit only needs to be checked\r\n\t\t\t\t\t\t\t\t once per call since it's exclusively dependant upon document.body's fontSize. If this is the first time\r\n\t\t\t\t\t\t\t\t that calculateUnitRatios() is being run during this call, remToPx will still be set to its default value of null,\r\n\t\t\t\t\t\t\t\t so we calculate it now. */\r\n\t\t\t\t\t\t\t\tif (callUnitConversionData.remToPx === null) {\r\n\t\t\t\t\t\t\t\t\t/* Default to browsers' default fontSize of 16px in the case of 0. */\r\n\t\t\t\t\t\t\t\t\tcallUnitConversionData.remToPx = parseFloat(CSS.getPropertyValue(document.body, \"fontSize\")) || 16; /* GET */\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* Similarly, viewport units are %-relative to the window's inner dimensions. */\r\n\t\t\t\t\t\t\t\tif (callUnitConversionData.vwToPx === null) {\r\n\t\t\t\t\t\t\t\t\tcallUnitConversionData.vwToPx = parseFloat(window.innerWidth) / 100; /* GET */\r\n\t\t\t\t\t\t\t\t\tcallUnitConversionData.vhToPx = parseFloat(window.innerHeight) / 100; /* GET */\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tunitRatios.remToPx = callUnitConversionData.remToPx;\r\n\t\t\t\t\t\t\t\tunitRatios.vwToPx = callUnitConversionData.vwToPx;\r\n\t\t\t\t\t\t\t\tunitRatios.vhToPx = callUnitConversionData.vhToPx;\r\n\r\n\t\t\t\t\t\t\t\tif (Velocity.debug >= 1) {\r\n\t\t\t\t\t\t\t\t\tconsole.log(\"Unit ratios: \" + JSON.stringify(unitRatios), element);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn unitRatios;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t/********************\r\n\t\t\t\t\t\t\t Unit Conversion\r\n\t\t\t\t\t\t\t ********************/\r\n\r\n\t\t\t\t\t\t\t/* The * and / operators, which are not passed in with an associated unit, inherently use startValue's unit. Skip value and unit conversion. */\r\n\t\t\t\t\t\t\tif (/[\\/*]/.test(operator)) {\r\n\t\t\t\t\t\t\t\tendValueUnitType = startValueUnitType;\r\n\t\t\t\t\t\t\t\t/* If startValue and endValue differ in unit type, convert startValue into the same unit type as endValue so that if endValueUnitType\r\n\t\t\t\t\t\t\t\t is a relative unit (%, em, rem), the values set during tweening will continue to be accurately relative even if the metrics they depend\r\n\t\t\t\t\t\t\t\t on are dynamically changing during the course of the animation. Conversely, if we always normalized into px and used px for setting values, the px ratio\r\n\t\t\t\t\t\t\t\t would become stale if the original unit being animated toward was relative and the underlying metrics change during the animation. */\r\n\t\t\t\t\t\t\t\t/* Since 0 is 0 in any unit type, no conversion is necessary when startValue is 0 -- we just start at 0 with endValueUnitType. */\r\n\t\t\t\t\t\t\t} else if ((startValueUnitType !== endValueUnitType) && startValue !== 0) {\r\n\t\t\t\t\t\t\t\t/* Unit conversion is also skipped when endValue is 0, but *startValueUnitType* must be used for tween values to remain accurate. */\r\n\t\t\t\t\t\t\t\t/* Note: Skipping unit conversion here means that if endValueUnitType was originally a relative unit, the animation won't relatively\r\n\t\t\t\t\t\t\t\t match the underlying metrics if they change, but this is acceptable since we're animating toward invisibility instead of toward visibility,\r\n\t\t\t\t\t\t\t\t which remains past the point of the animation's completion. */\r\n\t\t\t\t\t\t\t\tif (endValue === 0) {\r\n\t\t\t\t\t\t\t\t\tendValueUnitType = startValueUnitType;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t/* By this point, we cannot avoid unit conversion (it's undesirable since it causes layout thrashing).\r\n\t\t\t\t\t\t\t\t\t If we haven't already, we trigger calculateUnitRatios(), which runs once per element per call. */\r\n\t\t\t\t\t\t\t\t\telementUnitConversionData = elementUnitConversionData || calculateUnitRatios();\r\n\r\n\t\t\t\t\t\t\t\t\t/* The following RegEx matches CSS properties that have their % values measured relative to the x-axis. */\r\n\t\t\t\t\t\t\t\t\t/* Note: W3C spec mandates that all of margin and padding's properties (even top and bottom) are %-relative to the *width* of the parent element. */\r\n\t\t\t\t\t\t\t\t\tvar axis = (/margin|padding|left|right|width|text|word|letter/i.test(property) || /X$/.test(property) || property === \"x\") ? \"x\" : \"y\";\r\n\r\n\t\t\t\t\t\t\t\t\t/* In order to avoid generating n^2 bespoke conversion functions, unit conversion is a two-step process:\r\n\t\t\t\t\t\t\t\t\t 1) Convert startValue into pixels. 2) Convert this new pixel value into endValue's unit type. */\r\n\t\t\t\t\t\t\t\t\tswitch (startValueUnitType) {\r\n\t\t\t\t\t\t\t\t\t\tcase \"%\":\r\n\t\t\t\t\t\t\t\t\t\t\t/* Note: translateX and translateY are the only properties that are %-relative to an element's own dimensions -- not its parent's dimensions.\r\n\t\t\t\t\t\t\t\t\t\t\t Velocity does not include a special conversion process to account for this behavior. Therefore, animating translateX/Y from a % value\r\n\t\t\t\t\t\t\t\t\t\t\t to a non-% value will produce an incorrect start value. Fortunately, this sort of cross-unit conversion is rarely done by users in practice. */\r\n\t\t\t\t\t\t\t\t\t\t\tstartValue *= (axis === \"x\" ? elementUnitConversionData.percentToPxWidth : elementUnitConversionData.percentToPxHeight);\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\t\t\tcase \"px\":\r\n\t\t\t\t\t\t\t\t\t\t\t/* px acts as our midpoint in the unit conversion process; do nothing. */\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t\t\t\tstartValue *= elementUnitConversionData[startValueUnitType + \"ToPx\"];\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t/* Invert the px ratios to convert into to the target unit. */\r\n\t\t\t\t\t\t\t\t\tswitch (endValueUnitType) {\r\n\t\t\t\t\t\t\t\t\t\tcase \"%\":\r\n\t\t\t\t\t\t\t\t\t\t\tstartValue *= 1 / (axis === \"x\" ? elementUnitConversionData.percentToPxWidth : elementUnitConversionData.percentToPxHeight);\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\t\t\tcase \"px\":\r\n\t\t\t\t\t\t\t\t\t\t\t/* startValue is already in px, do nothing; we're done. */\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t\t\t\tstartValue *= 1 / elementUnitConversionData[endValueUnitType + \"ToPx\"];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/*********************\r\n\t\t\t\t\t\t\t Relative Values\r\n\t\t\t\t\t\t\t *********************/\r\n\r\n\t\t\t\t\t\t\t/* Operator logic must be performed last since it requires unit-normalized start and end values. */\r\n\t\t\t\t\t\t\t/* Note: Relative *percent values* do not behave how most people think; while one would expect \"+=50%\"\r\n\t\t\t\t\t\t\t to increase the property 1.5x its current value, it in fact increases the percent units in absolute terms:\r\n\t\t\t\t\t\t\t 50 points is added on top of the current % value. */\r\n\t\t\t\t\t\t\tswitch (operator) {\r\n\t\t\t\t\t\t\t\tcase \"+\":\r\n\t\t\t\t\t\t\t\t\tendValue = startValue + endValue;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase \"-\":\r\n\t\t\t\t\t\t\t\t\tendValue = startValue - endValue;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase \"*\":\r\n\t\t\t\t\t\t\t\t\tendValue = startValue * endValue;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase \"/\":\r\n\t\t\t\t\t\t\t\t\tendValue = startValue / endValue;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/**************************\r\n\t\t\t\t\t\t\t tweensContainer Push\r\n\t\t\t\t\t\t\t **************************/\r\n\r\n\t\t\t\t\t\t\t/* Construct the per-property tween object, and push it to the element's tweensContainer. */\r\n\t\t\t\t\t\t\ttweensContainer[property] = {\r\n\t\t\t\t\t\t\t\trootPropertyValue: rootPropertyValue,\r\n\t\t\t\t\t\t\t\tstartValue: startValue,\r\n\t\t\t\t\t\t\t\tcurrentValue: startValue,\r\n\t\t\t\t\t\t\t\tendValue: endValue,\r\n\t\t\t\t\t\t\t\tunitType: endValueUnitType,\r\n\t\t\t\t\t\t\t\teasing: easing\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\tif (pattern) {\r\n\t\t\t\t\t\t\t\ttweensContainer[property].pattern = pattern;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\t\tconsole.log(\"tweensContainer (\" + property + \"): \" + JSON.stringify(tweensContainer[property]), element);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t/* Create a tween out of each property, and append its associated data to tweensContainer. */\r\n\t\t\t\t\t\tfor (var property in propertiesMap) {\r\n\r\n\t\t\t\t\t\t\tif (!propertiesMap.hasOwnProperty(property)) {\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t/* The original property name's format must be used for the parsePropertyValue() lookup,\r\n\t\t\t\t\t\t\t but we then use its camelCase styling to normalize it for manipulation. */\r\n\t\t\t\t\t\t\tvar propertyName = CSS.Names.camelCase(property),\r\n\t\t\t\t\t\t\t\t\tvalueData = parsePropertyValue(propertiesMap[property]);\r\n\r\n\t\t\t\t\t\t\t/* Find shorthand color properties that have been passed a hex string. */\r\n\t\t\t\t\t\t\t/* Would be quicker to use CSS.Lists.colors.includes() if possible */\r\n\t\t\t\t\t\t\tif (_inArray(CSS.Lists.colors, propertyName)) {\r\n\t\t\t\t\t\t\t\t/* Parse the value data for each shorthand. */\r\n\t\t\t\t\t\t\t\tvar endValue = valueData[0],\r\n\t\t\t\t\t\t\t\t\t\teasing = valueData[1],\r\n\t\t\t\t\t\t\t\t\t\tstartValue = valueData[2];\r\n\r\n\t\t\t\t\t\t\t\tif (CSS.RegEx.isHex.test(endValue)) {\r\n\t\t\t\t\t\t\t\t\t/* Convert the hex strings into their RGB component arrays. */\r\n\t\t\t\t\t\t\t\t\tvar colorComponents = [\"Red\", \"Green\", \"Blue\"],\r\n\t\t\t\t\t\t\t\t\t\t\tendValueRGB = CSS.Values.hexToRgb(endValue),\r\n\t\t\t\t\t\t\t\t\t\t\tstartValueRGB = startValue ? CSS.Values.hexToRgb(startValue) : undefined;\r\n\r\n\t\t\t\t\t\t\t\t\t/* Inject the RGB component tweens into propertiesMap. */\r\n\t\t\t\t\t\t\t\t\tfor (var i = 0; i < colorComponents.length; i++) {\r\n\t\t\t\t\t\t\t\t\t\tvar dataArray = [endValueRGB[i]];\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (easing) {\r\n\t\t\t\t\t\t\t\t\t\t\tdataArray.push(easing);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (startValueRGB !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\tdataArray.push(startValueRGB[i]);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tfixPropertyValue(propertyName + colorComponents[i], dataArray);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t/* If we have replaced a shortcut color value then don't update the standard property name */\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tfixPropertyValue(propertyName, valueData);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Along with its property data, store a reference to the element itself onto tweensContainer. */\r\n\t\t\t\t\t\ttweensContainer.element = element;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*****************\r\n\t\t\t\t\t Call Push\r\n\t\t\t\t\t *****************/\r\n\r\n\t\t\t\t\t/* Note: tweensContainer can be empty if all of the properties in this call's property map were skipped due to not\r\n\t\t\t\t\t being supported by the browser. The element property is used for checking that the tweensContainer has been appended to. */\r\n\t\t\t\t\tif (tweensContainer.element) {\r\n\t\t\t\t\t\t/* Apply the \"velocity-animating\" indicator class. */\r\n\t\t\t\t\t\tCSS.Values.addClass(element, \"velocity-animating\");\r\n\r\n\t\t\t\t\t\t/* The call array houses the tweensContainers for each element being animated in the current call. */\r\n\t\t\t\t\t\tcall.push(tweensContainer);\r\n\r\n\t\t\t\t\t\tdata = Data(element);\r\n\r\n\t\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\t\t/* Store the tweensContainer and options if we're working on the default effects queue, so that they can be used by the reverse command. */\r\n\t\t\t\t\t\t\tif (opts.queue === \"\") {\r\n\r\n\t\t\t\t\t\t\t\tdata.tweensContainer = tweensContainer;\r\n\t\t\t\t\t\t\t\tdata.opts = opts;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Switch on the element's animating flag. */\r\n\t\t\t\t\t\t\tdata.isAnimating = true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Once the final element in this call's element set has been processed, push the call array onto\r\n\t\t\t\t\t\t Velocity.State.calls for the animation tick to immediately begin processing. */\r\n\t\t\t\t\t\tif (elementsIndex === elementsLength - 1) {\r\n\t\t\t\t\t\t\t/* Add the current call plus its associated metadata (the element set and the call's options) onto the global call container.\r\n\t\t\t\t\t\t\t Anything on this call container is subjected to tick() processing. */\r\n\t\t\t\t\t\t\tVelocity.State.calls.push([call, elements, opts, null, promiseData.resolver, null, 0]);\r\n\r\n\t\t\t\t\t\t\t/* If the animation tick isn't running, start it. (Velocity shuts it off when there are no active calls to process.) */\r\n\t\t\t\t\t\t\tif (Velocity.State.isTicking === false) {\r\n\t\t\t\t\t\t\t\tVelocity.State.isTicking = true;\r\n\r\n\t\t\t\t\t\t\t\t/* Start the tick loop. */\r\n\t\t\t\t\t\t\t\ttick();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\telementsIndex++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* When the queue option is set to false, the call skips the element's queue and fires immediately. */\r\n\t\t\t\tif (opts.queue === false) {\r\n\t\t\t\t\t/* Since this buildQueue call doesn't respect the element's existing queue (which is where a delay option would have been appended),\r\n\t\t\t\t\t we manually inject the delay property here with an explicit setTimeout. */\r\n\t\t\t\t\tif (opts.delay) {\r\n\r\n\t\t\t\t\t\t/* Temporarily store delayed elements to facilitate access for global pause/resume */\r\n\t\t\t\t\t\tvar callIndex = Velocity.State.delayedElements.count++;\r\n\t\t\t\t\t\tVelocity.State.delayedElements[callIndex] = element;\r\n\r\n\t\t\t\t\t\tvar delayComplete = (function(index) {\r\n\t\t\t\t\t\t\treturn function() {\r\n\t\t\t\t\t\t\t\t/* Clear the temporary element */\r\n\t\t\t\t\t\t\t\tVelocity.State.delayedElements[index] = false;\r\n\r\n\t\t\t\t\t\t\t\t/* Finally, issue the call */\r\n\t\t\t\t\t\t\t\tbuildQueue();\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t})(callIndex);\r\n\r\n\t\t\t\t\t\tData(element).delayBegin = (new Date()).getTime();\r\n\t\t\t\t\t\tData(element).delay = parseFloat(opts.delay);\r\n\t\t\t\t\t\tData(element).delayTimer = {\r\n\t\t\t\t\t\t\tsetTimeout: setTimeout(buildQueue, parseFloat(opts.delay)),\r\n\t\t\t\t\t\t\tnext: delayComplete\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tbuildQueue();\r\n\t\t\t\t\t}\r\n\t\t\t\t\t/* Otherwise, the call undergoes element queueing as normal. */\r\n\t\t\t\t\t/* Note: To interoperate with jQuery, Velocity uses jQuery's own $.queue() stack for queuing logic. */\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$.queue(element, opts.queue, function(next, clearQueue) {\r\n\t\t\t\t\t\t/* If the clearQueue flag was passed in by the stop command, resolve this call's promise. (Promises can only be resolved once,\r\n\t\t\t\t\t\t so it's fine if this is repeatedly triggered for each element in the associated call.) */\r\n\t\t\t\t\t\tif (clearQueue === true) {\r\n\t\t\t\t\t\t\tif (promiseData.promise) {\r\n\t\t\t\t\t\t\t\tpromiseData.resolver(elements);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Do not continue with animation queueing. */\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* This flag indicates to the upcoming completeCall() function that this queue entry was initiated by Velocity.\r\n\t\t\t\t\t\t See completeCall() for further details. */\r\n\t\t\t\t\t\tVelocity.velocityQueueEntryFlag = true;\r\n\r\n\t\t\t\t\t\tbuildQueue(next);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*********************\r\n\t\t\t\t Auto-Dequeuing\r\n\t\t\t\t *********************/\r\n\r\n\t\t\t\t/* As per jQuery's $.queue() behavior, to fire the first non-custom-queue entry on an element, the element\r\n\t\t\t\t must be dequeued if its queue stack consists *solely* of the current call. (This can be determined by checking\r\n\t\t\t\t for the \"inprogress\" item that jQuery prepends to active queue stack arrays.) Regardless, whenever the element's\r\n\t\t\t\t queue is further appended with additional items -- including $.delay()'s or even $.animate() calls, the queue's\r\n\t\t\t\t first entry is automatically fired. This behavior contrasts that of custom queues, which never auto-fire. */\r\n\t\t\t\t/* Note: When an element set is being subjected to a non-parallel Velocity call, the animation will not begin until\r\n\t\t\t\t each one of the elements in the set has reached the end of its individually pre-existing queue chain. */\r\n\t\t\t\t/* Note: Unfortunately, most people don't fully grasp jQuery's powerful, yet quirky, $.queue() function.\r\n\t\t\t\t Lean more here: http://stackoverflow.com/questions/1058158/can-somebody-explain-jquery-queue-to-me */\r\n\t\t\t\tif ((opts.queue === \"\" || opts.queue === \"fx\") && $.queue(element)[0] !== \"inprogress\") {\r\n\t\t\t\t\t$.dequeue(element);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/**************************\r\n\t\t\t Element Set Iteration\r\n\t\t\t **************************/\r\n\r\n\t\t\t/* If the \"nodeType\" property exists on the elements variable, we're animating a single element.\r\n\t\t\t Place it in an array so that $.each() can iterate over it. */\r\n\t\t\t$.each(elements, function(i, element) {\r\n\t\t\t\t/* Ensure each element in a set has a nodeType (is a real element) to avoid throwing errors. */\r\n\t\t\t\tif (Type.isNode(element)) {\r\n\t\t\t\t\tprocessElement(element, i);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t/******************\r\n\t\t\t Option: Loop\r\n\t\t\t ******************/\r\n\r\n\t\t\t/* The loop option accepts an integer indicating how many times the element should loop between the values in the\r\n\t\t\t current call's properties map and the element's property values prior to this call. */\r\n\t\t\t/* Note: The loop option's logic is performed here -- after element processing -- because the current call needs\r\n\t\t\t to undergo its queue insertion prior to the loop option generating its series of constituent \"reverse\" calls,\r\n\t\t\t which chain after the current call. Two reverse calls (two \"alternations\") constitute one loop. */\r\n\t\t\topts = $.extend({}, Velocity.defaults, options);\r\n\t\t\topts.loop = parseInt(opts.loop, 10);\r\n\t\t\tvar reverseCallsCount = (opts.loop * 2) - 1;\r\n\r\n\t\t\tif (opts.loop) {\r\n\t\t\t\t/* Double the loop count to convert it into its appropriate number of \"reverse\" calls.\r\n\t\t\t\t Subtract 1 from the resulting value since the current call is included in the total alternation count. */\r\n\t\t\t\tfor (var x = 0; x < reverseCallsCount; x++) {\r\n\t\t\t\t\t/* Since the logic for the reverse action occurs inside Queueing and therefore this call's options object\r\n\t\t\t\t\t isn't parsed until then as well, the current call's delay option must be explicitly passed into the reverse\r\n\t\t\t\t\t call so that the delay logic that occurs inside *Pre-Queueing* can process it. */\r\n\t\t\t\t\tvar reverseOptions = {\r\n\t\t\t\t\t\tdelay: opts.delay,\r\n\t\t\t\t\t\tprogress: opts.progress\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/* If a complete callback was passed into this call, transfer it to the loop redirect's final \"reverse\" call\r\n\t\t\t\t\t so that it's triggered when the entire redirect is complete (and not when the very first animation is complete). */\r\n\t\t\t\t\tif (x === reverseCallsCount - 1) {\r\n\t\t\t\t\t\treverseOptions.display = opts.display;\r\n\t\t\t\t\t\treverseOptions.visibility = opts.visibility;\r\n\t\t\t\t\t\treverseOptions.complete = opts.complete;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tanimate(elements, \"reverse\", reverseOptions);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/***************\r\n\t\t\t Chaining\r\n\t\t\t ***************/\r\n\r\n\t\t\t/* Return the elements back to the call chain, with wrapped elements taking precedence in case Velocity was called via the $.fn. extension. */\r\n\t\t\treturn getChain();\r\n\t\t};\r\n\r\n\t\t/* Turn Velocity into the animation function, extended with the pre-existing Velocity object. */\r\n\t\tVelocity = $.extend(animate, Velocity);\r\n\t\t/* For legacy support, also expose the literal animate method. */\r\n\t\tVelocity.animate = animate;\r\n\r\n\t\t/**************\r\n\t\t Timing\r\n\t\t **************/\r\n\r\n\t\t/* Ticker function. */\r\n\t\tvar ticker = window.requestAnimationFrame || rAFShim;\r\n\r\n\t\t/* Inactive browser tabs pause rAF, which results in all active animations immediately sprinting to their completion states when the tab refocuses.\r\n\t\t To get around this, we dynamically switch rAF to setTimeout (which the browser *doesn't* pause) when the tab loses focus. We skip this for mobile\r\n\t\t devices to avoid wasting battery power on inactive tabs. */\r\n\t\t/* Note: Tab focus detection doesn't work on older versions of IE, but that's okay since they don't support rAF to begin with. */\r\n\t\tif (!Velocity.State.isMobile && document.hidden !== undefined) {\r\n\t\t\tvar updateTicker = function() {\r\n\t\t\t\t/* Reassign the rAF function (which the global tick() function uses) based on the tab's focus state. */\r\n\t\t\t\tif (document.hidden) {\r\n\t\t\t\t\tticker = function(callback) {\r\n\t\t\t\t\t\t/* The tick function needs a truthy first argument in order to pass its internal timestamp check. */\r\n\t\t\t\t\t\treturn setTimeout(function() {\r\n\t\t\t\t\t\t\tcallback(true);\r\n\t\t\t\t\t\t}, 16);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/* The rAF loop has been paused by the browser, so we manually restart the tick. */\r\n\t\t\t\t\ttick();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tticker = window.requestAnimationFrame || rAFShim;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\t/* Page could be sitting in the background at this time (i.e. opened as new tab) so making sure we use correct ticker from the start */\r\n\t\t\tupdateTicker();\r\n\r\n\t\t\t/* And then run check again every time visibility changes */\r\n\t\t\tdocument.addEventListener(\"visibilitychange\", updateTicker);\r\n\t\t}\r\n\r\n\t\t/************\r\n\t\t Tick\r\n\t\t ************/\r\n\r\n\t\t/* Note: All calls to Velocity are pushed to the Velocity.State.calls array, which is fully iterated through upon each tick. */\r\n\t\tfunction tick(timestamp) {\r\n\t\t\t/* An empty timestamp argument indicates that this is the first tick occurence since ticking was turned on.\r\n\t\t\t We leverage this metadata to fully ignore the first tick pass since RAF's initial pass is fired whenever\r\n\t\t\t the browser's next tick sync time occurs, which results in the first elements subjected to Velocity\r\n\t\t\t calls being animated out of sync with any elements animated immediately thereafter. In short, we ignore\r\n\t\t\t the first RAF tick pass so that elements being immediately consecutively animated -- instead of simultaneously animated\r\n\t\t\t by the same Velocity call -- are properly batched into the same initial RAF tick and consequently remain in sync thereafter. */\r\n\t\t\tif (timestamp) {\r\n\t\t\t\t/* We normally use RAF's high resolution timestamp but as it can be significantly offset when the browser is\r\n\t\t\t\t under high stress we give the option for choppiness over allowing the browser to drop huge chunks of frames.\r\n\t\t\t\t We use performance.now() and shim it if it doesn't exist for when the tab is hidden. */\r\n\t\t\t\tvar timeCurrent = Velocity.timestamp && timestamp !== true ? timestamp : performance.now();\r\n\r\n\t\t\t\t/********************\r\n\t\t\t\t Call Iteration\r\n\t\t\t\t ********************/\r\n\r\n\t\t\t\tvar callsLength = Velocity.State.calls.length;\r\n\r\n\t\t\t\t/* To speed up iterating over this array, it is compacted (falsey items -- calls that have completed -- are removed)\r\n\t\t\t\t when its length has ballooned to a point that can impact tick performance. This only becomes necessary when animation\r\n\t\t\t\t has been continuous with many elements over a long period of time; whenever all active calls are completed, completeCall() clears Velocity.State.calls. */\r\n\t\t\t\tif (callsLength > 10000) {\r\n\t\t\t\t\tVelocity.State.calls = compactSparseArray(Velocity.State.calls);\r\n\t\t\t\t\tcallsLength = Velocity.State.calls.length;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* Iterate through each active call. */\r\n\t\t\t\tfor (var i = 0; i < callsLength; i++) {\r\n\t\t\t\t\t/* When a Velocity call is completed, its Velocity.State.calls entry is set to false. Continue on to the next call. */\r\n\t\t\t\t\tif (!Velocity.State.calls[i]) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/************************\r\n\t\t\t\t\t Call-Wide Variables\r\n\t\t\t\t\t ************************/\r\n\r\n\t\t\t\t\tvar callContainer = Velocity.State.calls[i],\r\n\t\t\t\t\t\t\tcall = callContainer[0],\r\n\t\t\t\t\t\t\topts = callContainer[2],\r\n\t\t\t\t\t\t\ttimeStart = callContainer[3],\r\n\t\t\t\t\t\t\tfirstTick = !timeStart,\r\n\t\t\t\t\t\t\ttweenDummyValue = null,\r\n\t\t\t\t\t\t\tpauseObject = callContainer[5],\r\n\t\t\t\t\t\t\tmillisecondsEllapsed = callContainer[6];\r\n\r\n\r\n\r\n\t\t\t\t\t/* If timeStart is undefined, then this is the first time that this call has been processed by tick().\r\n\t\t\t\t\t We assign timeStart now so that its value is as close to the real animation start time as possible.\r\n\t\t\t\t\t (Conversely, had timeStart been defined when this call was added to Velocity.State.calls, the delay\r\n\t\t\t\t\t between that time and now would cause the first few frames of the tween to be skipped since\r\n\t\t\t\t\t percentComplete is calculated relative to timeStart.) */\r\n\t\t\t\t\t/* Further, subtract 16ms (the approximate resolution of RAF) from the current time value so that the\r\n\t\t\t\t\t first tick iteration isn't wasted by animating at 0% tween completion, which would produce the\r\n\t\t\t\t\t same style value as the element's current value. */\r\n\t\t\t\t\tif (!timeStart) {\r\n\t\t\t\t\t\ttimeStart = Velocity.State.calls[i][3] = timeCurrent - 16;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* If a pause object is present, skip processing unless it has been set to resume */\r\n\t\t\t\t\tif (pauseObject) {\r\n\t\t\t\t\t\tif (pauseObject.resume === true) {\r\n\t\t\t\t\t\t\t/* Update the time start to accomodate the paused completion amount */\r\n\t\t\t\t\t\t\ttimeStart = callContainer[3] = Math.round(timeCurrent - millisecondsEllapsed - 16);\r\n\r\n\t\t\t\t\t\t\t/* Remove pause object after processing */\r\n\t\t\t\t\t\t\tcallContainer[5] = null;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tmillisecondsEllapsed = callContainer[6] = timeCurrent - timeStart;\r\n\r\n\t\t\t\t\t/* The tween's completion percentage is relative to the tween's start time, not the tween's start value\r\n\t\t\t\t\t (which would result in unpredictable tween durations since JavaScript's timers are not particularly accurate).\r\n\t\t\t\t\t Accordingly, we ensure that percentComplete does not exceed 1. */\r\n\t\t\t\t\tvar percentComplete = Math.min((millisecondsEllapsed) / opts.duration, 1);\r\n\r\n\t\t\t\t\t/**********************\r\n\t\t\t\t\t Element Iteration\r\n\t\t\t\t\t **********************/\r\n\r\n\t\t\t\t\t/* For every call, iterate through each of the elements in its set. */\r\n\t\t\t\t\tfor (var j = 0, callLength = call.length; j < callLength; j++) {\r\n\t\t\t\t\t\tvar tweensContainer = call[j],\r\n\t\t\t\t\t\t\t\telement = tweensContainer.element;\r\n\r\n\t\t\t\t\t\t/* Check to see if this element has been deleted midway through the animation by checking for the\r\n\t\t\t\t\t\t continued existence of its data cache. If it's gone, or the element is currently paused, skip animating this element. */\r\n\t\t\t\t\t\tif (!Data(element)) {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar transformPropertyExists = false;\r\n\r\n\t\t\t\t\t\t/**********************************\r\n\t\t\t\t\t\t Display & Visibility Toggling\r\n\t\t\t\t\t\t **********************************/\r\n\r\n\t\t\t\t\t\t/* If the display option is set to non-\"none\", set it upfront so that the element can become visible before tweening begins.\r\n\t\t\t\t\t\t (Otherwise, display's \"none\" value is set in completeCall() once the animation has completed.) */\r\n\t\t\t\t\t\tif (opts.display !== undefined && opts.display !== null && opts.display !== \"none\") {\r\n\t\t\t\t\t\t\tif (opts.display === \"flex\") {\r\n\t\t\t\t\t\t\t\tvar flexValues = [\"-webkit-box\", \"-moz-box\", \"-ms-flexbox\", \"-webkit-flex\"];\r\n\r\n\t\t\t\t\t\t\t\t$.each(flexValues, function(i, flexValue) {\r\n\t\t\t\t\t\t\t\t\tCSS.setPropertyValue(element, \"display\", flexValue);\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tCSS.setPropertyValue(element, \"display\", opts.display);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Same goes with the visibility option, but its \"none\" equivalent is \"hidden\". */\r\n\t\t\t\t\t\tif (opts.visibility !== undefined && opts.visibility !== \"hidden\") {\r\n\t\t\t\t\t\t\tCSS.setPropertyValue(element, \"visibility\", opts.visibility);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/************************\r\n\t\t\t\t\t\t Property Iteration\r\n\t\t\t\t\t\t ************************/\r\n\r\n\t\t\t\t\t\t/* For every element, iterate through each property. */\r\n\t\t\t\t\t\tfor (var property in tweensContainer) {\r\n\t\t\t\t\t\t\t/* Note: In addition to property tween data, tweensContainer contains a reference to its associated element. */\r\n\t\t\t\t\t\t\tif (tweensContainer.hasOwnProperty(property) && property !== \"element\") {\r\n\t\t\t\t\t\t\t\tvar tween = tweensContainer[property],\r\n\t\t\t\t\t\t\t\t\t\tcurrentValue,\r\n\t\t\t\t\t\t\t\t\t\t/* Easing can either be a pre-genereated function or a string that references a pre-registered easing\r\n\t\t\t\t\t\t\t\t\t\t on the Velocity.Easings object. In either case, return the appropriate easing *function*. */\r\n\t\t\t\t\t\t\t\t\t\teasing = Type.isString(tween.easing) ? Velocity.Easings[tween.easing] : tween.easing;\r\n\r\n\t\t\t\t\t\t\t\t/******************************\r\n\t\t\t\t\t\t\t\t Current Value Calculation\r\n\t\t\t\t\t\t\t\t ******************************/\r\n\r\n\t\t\t\t\t\t\t\tif (Type.isString(tween.pattern)) {\r\n\t\t\t\t\t\t\t\t\tvar patternReplace = percentComplete === 1 ?\r\n\t\t\t\t\t\t\t\t\t\t\tfunction($0, index, round) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvar result = tween.endValue[index];\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn round ? Math.round(result) : result;\r\n\t\t\t\t\t\t\t\t\t\t\t} :\r\n\t\t\t\t\t\t\t\t\t\t\tfunction($0, index, round) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvar startValue = tween.startValue[index],\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttweenDelta = tween.endValue[index] - startValue,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult = startValue + (tweenDelta * easing(percentComplete, opts, tweenDelta));\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn round ? Math.round(result) : result;\r\n\t\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t\tcurrentValue = tween.pattern.replace(/{(\\d+)(!)?}/g, patternReplace);\r\n\t\t\t\t\t\t\t\t} else if (percentComplete === 1) {\r\n\t\t\t\t\t\t\t\t\t/* If this is the last tick pass (if we've reached 100% completion for this tween),\r\n\t\t\t\t\t\t\t\t\t ensure that currentValue is explicitly set to its target endValue so that it's not subjected to any rounding. */\r\n\t\t\t\t\t\t\t\t\tcurrentValue = tween.endValue;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t/* Otherwise, calculate currentValue based on the current delta from startValue. */\r\n\t\t\t\t\t\t\t\t\tvar tweenDelta = tween.endValue - tween.startValue;\r\n\r\n\t\t\t\t\t\t\t\t\tcurrentValue = tween.startValue + (tweenDelta * easing(percentComplete, opts, tweenDelta));\r\n\t\t\t\t\t\t\t\t\t/* If no value change is occurring, don't proceed with DOM updating. */\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (!firstTick && (currentValue === tween.currentValue)) {\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\ttween.currentValue = currentValue;\r\n\r\n\t\t\t\t\t\t\t\t/* If we're tweening a fake 'tween' property in order to log transition values, update the one-per-call variable so that\r\n\t\t\t\t\t\t\t\t it can be passed into the progress callback. */\r\n\t\t\t\t\t\t\t\tif (property === \"tween\") {\r\n\t\t\t\t\t\t\t\t\ttweenDummyValue = currentValue;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t/******************\r\n\t\t\t\t\t\t\t\t\t Hooks: Part I\r\n\t\t\t\t\t\t\t\t\t ******************/\r\n\t\t\t\t\t\t\t\t\tvar hookRoot;\r\n\r\n\t\t\t\t\t\t\t\t\t/* For hooked properties, the newly-updated rootPropertyValueCache is cached onto the element so that it can be used\r\n\t\t\t\t\t\t\t\t\t for subsequent hooks in this call that are associated with the same root property. If we didn't cache the updated\r\n\t\t\t\t\t\t\t\t\t rootPropertyValue, each subsequent update to the root property in this tick pass would reset the previous hook's\r\n\t\t\t\t\t\t\t\t\t updates to rootPropertyValue prior to injection. A nice performance byproduct of rootPropertyValue caching is that\r\n\t\t\t\t\t\t\t\t\t subsequently chained animations using the same hookRoot but a different hook can use this cached rootPropertyValue. */\r\n\t\t\t\t\t\t\t\t\tif (CSS.Hooks.registered[property]) {\r\n\t\t\t\t\t\t\t\t\t\thookRoot = CSS.Hooks.getRoot(property);\r\n\r\n\t\t\t\t\t\t\t\t\t\tvar rootPropertyValueCache = Data(element).rootPropertyValueCache[hookRoot];\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (rootPropertyValueCache) {\r\n\t\t\t\t\t\t\t\t\t\t\ttween.rootPropertyValue = rootPropertyValueCache;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t/*****************\r\n\t\t\t\t\t\t\t\t\t DOM Update\r\n\t\t\t\t\t\t\t\t\t *****************/\r\n\r\n\t\t\t\t\t\t\t\t\t/* setPropertyValue() returns an array of the property name and property value post any normalization that may have been performed. */\r\n\t\t\t\t\t\t\t\t\t/* Note: To solve an IE<=8 positioning bug, the unit type is dropped when setting a property value of 0. */\r\n\t\t\t\t\t\t\t\t\tvar adjustedSetData = CSS.setPropertyValue(element, /* SET */\r\n\t\t\t\t\t\t\t\t\t\t\tproperty,\r\n\t\t\t\t\t\t\t\t\t\t\ttween.currentValue + (IE < 9 && parseFloat(currentValue) === 0 ? \"\" : tween.unitType),\r\n\t\t\t\t\t\t\t\t\t\t\ttween.rootPropertyValue,\r\n\t\t\t\t\t\t\t\t\t\t\ttween.scrollData);\r\n\r\n\t\t\t\t\t\t\t\t\t/*******************\r\n\t\t\t\t\t\t\t\t\t Hooks: Part II\r\n\t\t\t\t\t\t\t\t\t *******************/\r\n\r\n\t\t\t\t\t\t\t\t\t/* Now that we have the hook's updated rootPropertyValue (the post-processed value provided by adjustedSetData), cache it onto the element. */\r\n\t\t\t\t\t\t\t\t\tif (CSS.Hooks.registered[property]) {\r\n\t\t\t\t\t\t\t\t\t\t/* Since adjustedSetData contains normalized data ready for DOM updating, the rootPropertyValue needs to be re-extracted from its normalized form. ?? */\r\n\t\t\t\t\t\t\t\t\t\tif (CSS.Normalizations.registered[hookRoot]) {\r\n\t\t\t\t\t\t\t\t\t\t\tData(element).rootPropertyValueCache[hookRoot] = CSS.Normalizations.registered[hookRoot](\"extract\", null, adjustedSetData[1]);\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tData(element).rootPropertyValueCache[hookRoot] = adjustedSetData[1];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t/***************\r\n\t\t\t\t\t\t\t\t\t Transforms\r\n\t\t\t\t\t\t\t\t\t ***************/\r\n\r\n\t\t\t\t\t\t\t\t\t/* Flag whether a transform property is being animated so that flushTransformCache() can be triggered once this tick pass is complete. */\r\n\t\t\t\t\t\t\t\t\tif (adjustedSetData[0] === \"transform\") {\r\n\t\t\t\t\t\t\t\t\t\ttransformPropertyExists = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/****************\r\n\t\t\t\t\t\t mobileHA\r\n\t\t\t\t\t\t ****************/\r\n\r\n\t\t\t\t\t\t/* If mobileHA is enabled, set the translate3d transform to null to force hardware acceleration.\r\n\t\t\t\t\t\t It's safe to override this property since Velocity doesn't actually support its animation (hooks are used in its place). */\r\n\t\t\t\t\t\tif (opts.mobileHA) {\r\n\t\t\t\t\t\t\t/* Don't set the null transform hack if we've already done so. */\r\n\t\t\t\t\t\t\tif (Data(element).transformCache.translate3d === undefined) {\r\n\t\t\t\t\t\t\t\t/* All entries on the transformCache object are later concatenated into a single transform string via flushTransformCache(). */\r\n\t\t\t\t\t\t\t\tData(element).transformCache.translate3d = \"(0px, 0px, 0px)\";\r\n\r\n\t\t\t\t\t\t\t\ttransformPropertyExists = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (transformPropertyExists) {\r\n\t\t\t\t\t\t\tCSS.flushTransformCache(element);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* The non-\"none\" display value is only applied to an element once -- when its associated call is first ticked through.\r\n\t\t\t\t\t Accordingly, it's set to false so that it isn't re-processed by this call in the next tick. */\r\n\t\t\t\t\tif (opts.display !== undefined && opts.display !== \"none\") {\r\n\t\t\t\t\t\tVelocity.State.calls[i][2].display = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (opts.visibility !== undefined && opts.visibility !== \"hidden\") {\r\n\t\t\t\t\t\tVelocity.State.calls[i][2].visibility = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Pass the elements and the timing data (percentComplete, msRemaining, timeStart, tweenDummyValue) into the progress callback. */\r\n\t\t\t\t\tif (opts.progress) {\r\n\t\t\t\t\t\topts.progress.call(callContainer[1],\r\n\t\t\t\t\t\t\t\tcallContainer[1],\r\n\t\t\t\t\t\t\t\tpercentComplete,\r\n\t\t\t\t\t\t\t\tMath.max(0, (timeStart + opts.duration) - timeCurrent),\r\n\t\t\t\t\t\t\t\ttimeStart,\r\n\t\t\t\t\t\t\t\ttweenDummyValue);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* If this call has finished tweening, pass its index to completeCall() to handle call cleanup. */\r\n\t\t\t\t\tif (percentComplete === 1) {\r\n\t\t\t\t\t\tcompleteCall(i);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/* Note: completeCall() sets the isTicking flag to false when the last call on Velocity.State.calls has completed. */\r\n\t\t\tif (Velocity.State.isTicking) {\r\n\t\t\t\tticker(tick);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**********************\r\n\t\t Call Completion\r\n\t\t **********************/\r\n\r\n\t\t/* Note: Unlike tick(), which processes all active calls at once, call completion is handled on a per-call basis. */\r\n\t\tfunction completeCall(callIndex, isStopped) {\r\n\t\t\t/* Ensure the call exists. */\r\n\t\t\tif (!Velocity.State.calls[callIndex]) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t/* Pull the metadata from the call. */\r\n\t\t\tvar call = Velocity.State.calls[callIndex][0],\r\n\t\t\t\t\telements = Velocity.State.calls[callIndex][1],\r\n\t\t\t\t\topts = Velocity.State.calls[callIndex][2],\r\n\t\t\t\t\tresolver = Velocity.State.calls[callIndex][4];\r\n\r\n\t\t\tvar remainingCallsExist = false;\r\n\r\n\t\t\t/*************************\r\n\t\t\t Element Finalization\r\n\t\t\t *************************/\r\n\r\n\t\t\tfor (var i = 0, callLength = call.length; i < callLength; i++) {\r\n\t\t\t\tvar element = call[i].element;\r\n\r\n\t\t\t\t/* If the user set display to \"none\" (intending to hide the element), set it now that the animation has completed. */\r\n\t\t\t\t/* Note: display:none isn't set when calls are manually stopped (via Velocity(\"stop\"). */\r\n\t\t\t\t/* Note: Display gets ignored with \"reverse\" calls and infinite loops, since this behavior would be undesirable. */\r\n\t\t\t\tif (!isStopped && !opts.loop) {\r\n\t\t\t\t\tif (opts.display === \"none\") {\r\n\t\t\t\t\t\tCSS.setPropertyValue(element, \"display\", opts.display);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (opts.visibility === \"hidden\") {\r\n\t\t\t\t\t\tCSS.setPropertyValue(element, \"visibility\", opts.visibility);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* If the element's queue is empty (if only the \"inprogress\" item is left at position 0) or if its queue is about to run\r\n\t\t\t\t a non-Velocity-initiated entry, turn off the isAnimating flag. A non-Velocity-initiatied queue entry's logic might alter\r\n\t\t\t\t an element's CSS values and thereby cause Velocity's cached value data to go stale. To detect if a queue entry was initiated by Velocity,\r\n\t\t\t\t we check for the existence of our special Velocity.queueEntryFlag declaration, which minifiers won't rename since the flag\r\n\t\t\t\t is assigned to jQuery's global $ object and thus exists out of Velocity's own scope. */\r\n\t\t\t\tvar data = Data(element);\r\n\r\n\t\t\t\tif (opts.loop !== true && ($.queue(element)[1] === undefined || !/\\.velocityQueueEntryFlag/i.test($.queue(element)[1]))) {\r\n\t\t\t\t\t/* The element may have been deleted. Ensure that its data cache still exists before acting on it. */\r\n\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\tdata.isAnimating = false;\r\n\t\t\t\t\t\t/* Clear the element's rootPropertyValueCache, which will become stale. */\r\n\t\t\t\t\t\tdata.rootPropertyValueCache = {};\r\n\r\n\t\t\t\t\t\tvar transformHAPropertyExists = false;\r\n\t\t\t\t\t\t/* If any 3D transform subproperty is at its default value (regardless of unit type), remove it. */\r\n\t\t\t\t\t\t$.each(CSS.Lists.transforms3D, function(i, transformName) {\r\n\t\t\t\t\t\t\tvar defaultValue = /^scale/.test(transformName) ? 1 : 0,\r\n\t\t\t\t\t\t\t\t\tcurrentValue = data.transformCache[transformName];\r\n\r\n\t\t\t\t\t\t\tif (data.transformCache[transformName] !== undefined && new RegExp(\"^\\\\(\" + defaultValue + \"[^.]\").test(currentValue)) {\r\n\t\t\t\t\t\t\t\ttransformHAPropertyExists = true;\r\n\r\n\t\t\t\t\t\t\t\tdelete data.transformCache[transformName];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t/* Mobile devices have hardware acceleration removed at the end of the animation in order to avoid hogging the GPU's memory. */\r\n\t\t\t\t\t\tif (opts.mobileHA) {\r\n\t\t\t\t\t\t\ttransformHAPropertyExists = true;\r\n\t\t\t\t\t\t\tdelete data.transformCache.translate3d;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Flush the subproperty removals to the DOM. */\r\n\t\t\t\t\t\tif (transformHAPropertyExists) {\r\n\t\t\t\t\t\t\tCSS.flushTransformCache(element);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Remove the \"velocity-animating\" indicator class. */\r\n\t\t\t\t\t\tCSS.Values.removeClass(element, \"velocity-animating\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*********************\r\n\t\t\t\t Option: Complete\r\n\t\t\t\t *********************/\r\n\r\n\t\t\t\t/* Complete is fired once per call (not once per element) and is passed the full raw DOM element set as both its context and its first argument. */\r\n\t\t\t\t/* Note: Callbacks aren't fired when calls are manually stopped (via Velocity(\"stop\"). */\r\n\t\t\t\tif (!isStopped && opts.complete && !opts.loop && (i === callLength - 1)) {\r\n\t\t\t\t\t/* We throw callbacks in a setTimeout so that thrown errors don't halt the execution of Velocity itself. */\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\topts.complete.call(elements, elements);\r\n\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t\tthrow error;\r\n\t\t\t\t\t\t}, 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/**********************\r\n\t\t\t\t Promise Resolving\r\n\t\t\t\t **********************/\r\n\r\n\t\t\t\t/* Note: Infinite loops don't return promises. */\r\n\t\t\t\tif (resolver && opts.loop !== true) {\r\n\t\t\t\t\tresolver(elements);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/****************************\r\n\t\t\t\t Option: Loop (Infinite)\r\n\t\t\t\t ****************************/\r\n\r\n\t\t\t\tif (data && opts.loop === true && !isStopped) {\r\n\t\t\t\t\t/* If a rotateX/Y/Z property is being animated by 360 deg with loop:true, swap tween start/end values to enable\r\n\t\t\t\t\t continuous iterative rotation looping. (Otherise, the element would just rotate back and forth.) */\r\n\t\t\t\t\t$.each(data.tweensContainer, function(propertyName, tweenContainer) {\r\n\t\t\t\t\t\tif (/^rotate/.test(propertyName) && ((parseFloat(tweenContainer.startValue) - parseFloat(tweenContainer.endValue)) % 360 === 0)) {\r\n\t\t\t\t\t\t\tvar oldStartValue = tweenContainer.startValue;\r\n\r\n\t\t\t\t\t\t\ttweenContainer.startValue = tweenContainer.endValue;\r\n\t\t\t\t\t\t\ttweenContainer.endValue = oldStartValue;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (/^backgroundPosition/.test(propertyName) && parseFloat(tweenContainer.endValue) === 100 && tweenContainer.unitType === \"%\") {\r\n\t\t\t\t\t\t\ttweenContainer.endValue = 0;\r\n\t\t\t\t\t\t\ttweenContainer.startValue = 100;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tVelocity(element, \"reverse\", {loop: true, delay: opts.delay});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/***************\r\n\t\t\t\t Dequeueing\r\n\t\t\t\t ***************/\r\n\r\n\t\t\t\t/* Fire the next call in the queue so long as this call's queue wasn't set to false (to trigger a parallel animation),\r\n\t\t\t\t which would have already caused the next call to fire. Note: Even if the end of the animation queue has been reached,\r\n\t\t\t\t $.dequeue() must still be called in order to completely clear jQuery's animation queue. */\r\n\t\t\t\tif (opts.queue !== false) {\r\n\t\t\t\t\t$.dequeue(element, opts.queue);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/************************\r\n\t\t\t Calls Array Cleanup\r\n\t\t\t ************************/\r\n\r\n\t\t\t/* Since this call is complete, set it to false so that the rAF tick skips it. This array is later compacted via compactSparseArray().\r\n\t\t\t (For performance reasons, the call is set to false instead of being deleted from the array: http://www.html5rocks.com/en/tutorials/speed/v8/) */\r\n\t\t\tVelocity.State.calls[callIndex] = false;\r\n\r\n\t\t\t/* Iterate through the calls array to determine if this was the final in-progress animation.\r\n\t\t\t If so, set a flag to end ticking and clear the calls array. */\r\n\t\t\tfor (var j = 0, callsLength = Velocity.State.calls.length; j < callsLength; j++) {\r\n\t\t\t\tif (Velocity.State.calls[j] !== false) {\r\n\t\t\t\t\tremainingCallsExist = true;\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (remainingCallsExist === false) {\r\n\t\t\t\t/* tick() will detect this flag upon its next iteration and subsequently turn itself off. */\r\n\t\t\t\tVelocity.State.isTicking = false;\r\n\r\n\t\t\t\t/* Clear the calls array so that its length is reset. */\r\n\t\t\t\tdelete Velocity.State.calls;\r\n\t\t\t\tVelocity.State.calls = [];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/******************\r\n\t\t Frameworks\r\n\t\t ******************/\r\n\r\n\t\t/* Both jQuery and Zepto allow their $.fn object to be extended to allow wrapped elements to be subjected to plugin calls.\r\n\t\t If either framework is loaded, register a \"velocity\" extension pointing to Velocity's core animate() method. Velocity\r\n\t\t also registers itself onto a global container (window.jQuery || window.Zepto || window) so that certain features are\r\n\t\t accessible beyond just a per-element scope. This master object contains an .animate() method, which is later assigned to $.fn\r\n\t\t (if jQuery or Zepto are present). Accordingly, Velocity can both act on wrapped DOM elements and stand alone for targeting raw DOM elements. */\r\n\t\tglobal.Velocity = Velocity;\r\n\r\n\t\tif (global !== window) {\r\n\t\t\t/* Assign the element function to Velocity's core animate() method. */\r\n\t\t\tglobal.fn.velocity = animate;\r\n\t\t\t/* Assign the object function's defaults to Velocity's global defaults object. */\r\n\t\t\tglobal.fn.velocity.defaults = Velocity.defaults;\r\n\t\t}\r\n\r\n\t\t/***********************\r\n\t\t Packaged Redirects\r\n\t\t ***********************/\r\n\r\n\t\t/* slideUp, slideDown */\r\n\t\t$.each([\"Down\", \"Up\"], function(i, direction) {\r\n\t\t\tVelocity.Redirects[\"slide\" + direction] = function(element, options, elementsIndex, elementsSize, elements, promiseData) {\r\n\t\t\t\tvar opts = $.extend({}, options),\r\n\t\t\t\t\t\tbegin = opts.begin,\r\n\t\t\t\t\t\tcomplete = opts.complete,\r\n\t\t\t\t\t\tinlineValues = {},\r\n\t\t\t\t\t\tcomputedValues = {height: \"\", marginTop: \"\", marginBottom: \"\", paddingTop: \"\", paddingBottom: \"\"};\r\n\r\n\t\t\t\tif (opts.display === undefined) {\r\n\t\t\t\t\t/* Show the element before slideDown begins and hide the element after slideUp completes. */\r\n\t\t\t\t\t/* Note: Inline elements cannot have dimensions animated, so they're reverted to inline-block. */\r\n\t\t\t\t\topts.display = (direction === \"Down\" ? (Velocity.CSS.Values.getDisplayType(element) === \"inline\" ? \"inline-block\" : \"block\") : \"none\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\topts.begin = function() {\r\n\t\t\t\t\t/* If the user passed in a begin callback, fire it now. */\r\n\t\t\t\t\tif (elementsIndex === 0 && begin) {\r\n\t\t\t\t\t\tbegin.call(elements, elements);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Cache the elements' original vertical dimensional property values so that we can animate back to them. */\r\n\t\t\t\t\tfor (var property in computedValues) {\r\n\t\t\t\t\t\tif (!computedValues.hasOwnProperty(property)) {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tinlineValues[property] = element.style[property];\r\n\r\n\t\t\t\t\t\t/* For slideDown, use forcefeeding to animate all vertical properties from 0. For slideUp,\r\n\t\t\t\t\t\t use forcefeeding to start from computed values and animate down to 0. */\r\n\t\t\t\t\t\tvar propertyValue = CSS.getPropertyValue(element, property);\r\n\t\t\t\t\t\tcomputedValues[property] = (direction === \"Down\") ? [propertyValue, 0] : [0, propertyValue];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Force vertical overflow content to clip so that sliding works as expected. */\r\n\t\t\t\t\tinlineValues.overflow = element.style.overflow;\r\n\t\t\t\t\telement.style.overflow = \"hidden\";\r\n\t\t\t\t};\r\n\r\n\t\t\t\topts.complete = function() {\r\n\t\t\t\t\t/* Reset element to its pre-slide inline values once its slide animation is complete. */\r\n\t\t\t\t\tfor (var property in inlineValues) {\r\n\t\t\t\t\t\tif (inlineValues.hasOwnProperty(property)) {\r\n\t\t\t\t\t\t\telement.style[property] = inlineValues[property];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* If the user passed in a complete callback, fire it now. */\r\n\t\t\t\t\tif (elementsIndex === elementsSize - 1) {\r\n\t\t\t\t\t\tif (complete) {\r\n\t\t\t\t\t\t\tcomplete.call(elements, elements);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (promiseData) {\r\n\t\t\t\t\t\t\tpromiseData.resolver(elements);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tVelocity(element, computedValues, opts);\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\t/* fadeIn, fadeOut */\r\n\t\t$.each([\"In\", \"Out\"], function(i, direction) {\r\n\t\t\tVelocity.Redirects[\"fade\" + direction] = function(element, options, elementsIndex, elementsSize, elements, promiseData) {\r\n\t\t\t\tvar opts = $.extend({}, options),\r\n\t\t\t\t\t\tcomplete = opts.complete,\r\n\t\t\t\t\t\tpropertiesMap = {opacity: (direction === \"In\") ? 1 : 0};\r\n\r\n\t\t\t\t/* Since redirects are triggered individually for each element in the animated set, avoid repeatedly triggering\r\n\t\t\t\t callbacks by firing them only when the final element has been reached. */\r\n\t\t\t\tif (elementsIndex !== 0) {\r\n\t\t\t\t\topts.begin = null;\r\n\t\t\t\t}\r\n\t\t\t\tif (elementsIndex !== elementsSize - 1) {\r\n\t\t\t\t\topts.complete = null;\r\n\t\t\t\t} else {\r\n\t\t\t\t\topts.complete = function() {\r\n\t\t\t\t\t\tif (complete) {\r\n\t\t\t\t\t\t\tcomplete.call(elements, elements);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (promiseData) {\r\n\t\t\t\t\t\t\tpromiseData.resolver(elements);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* If a display was passed in, use it. Otherwise, default to \"none\" for fadeOut or the element-specific default for fadeIn. */\r\n\t\t\t\t/* Note: We allow users to pass in \"null\" to skip display setting altogether. */\r\n\t\t\t\tif (opts.display === undefined) {\r\n\t\t\t\t\topts.display = (direction === \"In\" ? \"auto\" : \"none\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tVelocity(this, propertiesMap, opts);\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\treturn Velocity;\r\n\t}((window.jQuery || window.Zepto || window), window, (window ? window.document : undefined));\r\n}));\r\n\r\n/******************\r\n Known Issues\r\n ******************/\r\n\r\n/* The CSS spec mandates that the translateX/Y/Z transforms are %-relative to the element itself -- not its parent.\r\n Velocity, however, doesn't make this distinction. Thus, converting to or from the % unit with these subproperties\r\n will produce an inaccurate conversion value. The same issue exists with the cx/cy attributes of SVG circles and ellipses. */\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/velocity-animate/velocity.js\n// module id = 949\n// module chunks = 0","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*\nCopyright (c) 2015 Twitter, Inc. and other contributors\n\nComponent to add Velocity animations to one or more children. Wraps a single child without adding\nadditional DOM nodes.\n\nThe API attempts to be as declarative as possible. A single animation property declares what\nanimation the child should have. If that property changes, this component applies the new animation\nto the child on the next tick.\n\nBy default, the animation is not run when the component is mounted. Instead, Velocity's \"finish\"\ncommand is used to jump to the animation's end state. For a component that animates out of and\nback in to a default state, this allows the parent to specify the \"animate into\" animation as\nthe default, and therefore not have to distinguish between the initial state and the state to\nreturn to after animating away.\n\nProperties:\n animation: Either an animation key or hash defining the animation. See Velocity's documentation\n for what this can be. (It is passed to Velocity exactly.)\n runOnMount: If true, runs the animation even when the component is first mounted.\n targetQuerySelector: By default, this component's single child is animated. If targetQuerySelector\n is provided, it is used to select descendants to apply the animation to. Use with caution, only\n when you're confident that React's reconciliation will preserve these nodes during animation.\n Also note querySelectorAll's silly behavior w.r.t. pruning results when being called on a node.\n A special value of \"children\" will use the direct children of the node, since there isn't a\n great way to specify that to querySelectorAll.\n interruptBehavior: Sets how the previous animation should behave when the \"animation\" prop is\n changed before it’s done. Default is \"stop\", which halts the animation where it is. \"finish\"\n will jump the animation to its completed appearance. \"queue\" will run the new animation after\n the previous one has finished.\n\nUnrecognized properties are passed as options to Velocity (e.g. \"duration\", \"delay\", \"loop\").\n\nMethods:\n runAnimation: Triggers the animation immediately. Useful for when you want an animation that\n corresponds to an event but not a particular model state change (e.g. a \"bump\" when a click\n occurs).\n*/\n/* eslint react/no-find-dom-node: 0 */\n\nvar _ = {\n forEach: require('lodash/forEach'),\n isEqual: require('lodash/isEqual'),\n keys: require('lodash/keys'),\n omit: require('lodash/omit')\n};\n\nvar React = require('react');\nvar ReactDOM = require('react-dom');\nvar PropTypes = require('prop-types');\nvar Velocity = require('./lib/velocity-animate-shim');\n\nvar VelocityComponent = function (_React$Component) {\n _inherits(VelocityComponent, _React$Component);\n\n function VelocityComponent(props) {\n _classCallCheck(this, VelocityComponent);\n\n var _this = _possibleConstructorReturn(this, (VelocityComponent.__proto__ || Object.getPrototypeOf(VelocityComponent)).call(this, props));\n\n _this._animationTimeout = null;\n\n // This public method is kept as self-bound to maintain compatibility with the React.createClass\n // version of the component.\n _this.runAnimation = _this.runAnimation.bind(_this);\n return _this;\n }\n\n _createClass(VelocityComponent, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.runAnimation();\n\n // Jump to the end so that the component has the visual appearance of the animation having\n // been run to completion.\n if (this.props.runOnMount !== true) {\n this._finishAnimation();\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(oldProps) {\n if (!_.isEqual(oldProps.animation, this.props.animation)) {\n if (this.props.interruptBehavior === 'stop') {\n this._stopAnimation();\n } else if (this.props.interruptBehavior === 'finish') {\n this._finishAnimation();\n }\n\n this._scheduleAnimation();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this._stopAnimation();\n this._clearVelocityCache(this._getDOMTarget());\n\n if (this._animationTimeout) {\n clearTimeout(this._animationTimeout);\n }\n }\n\n // It's ok to call this externally! By default the animation will be queued up. Pass stop: true in\n // to stop the current animation before running. Pass finish: true to finish the current animation\n // before running.\n\n }, {\n key: 'runAnimation',\n value: function runAnimation(config) {\n config = config || {};\n\n this._animationTimeout = null;\n\n if (this.props.animation == null) {\n return;\n }\n\n if (config.stop) {\n Velocity(this._getDOMTarget(), 'stop', true);\n } else if (config.finish) {\n Velocity(this._getDOMTarget(), 'finishAll', true);\n }\n\n // Delegate all props except for the ones that we have specified as our own via propTypes.\n var opts = _.omit(this.props, _.keys(VelocityComponent.propTypes));\n Velocity(this._getDOMTarget(), this.props.animation, opts);\n }\n\n // We trigger animations on a new tick because of a Velocity bug where adding a\n // multi-step animation from within a complete callback causes the first 2 animations to run\n // simultaneously.\n\n }, {\n key: '_scheduleAnimation',\n value: function _scheduleAnimation() {\n if (this._animationTimeout) {\n return;\n }\n\n this._animationTimeout = setTimeout(this.runAnimation, 0);\n }\n\n // Returns one or more DOM nodes to apply the animation to. This is checked every time we start\n // or stop an animation, which means that if an animation is proceeding but the element is removed\n // from the page, it will run its course rather than ever being stopped. (We go this route\n // because of difficulty in tracking what animations are currently being animated, due to both\n // chained animations and the need to be able to \"stop\" an animation before it begins.)\n\n }, {\n key: '_getDOMTarget',\n value: function _getDOMTarget() {\n var node = ReactDOM.findDOMNode(this);\n\n if (this.props.targetQuerySelector === 'children') {\n return node.children;\n } else if (this.props.targetQuerySelector != null) {\n return node.querySelectorAll(this.props.targetQuerySelector);\n } else {\n return node;\n }\n }\n }, {\n key: '_finishAnimation',\n value: function _finishAnimation() {\n Velocity(this._getDOMTarget(), 'finishAll', true);\n }\n }, {\n key: '_stopAnimation',\n value: function _stopAnimation() {\n Velocity(this._getDOMTarget(), 'stop', true);\n }\n\n // Velocity keeps extensive caches for all animated elements to minimize layout thrashing.\n // This can cause a serious memory leak, keeping references to unmounted elements as well\n // completion handlers and associated react objects. This crudely clears these references.\n\n }, {\n key: '_clearVelocityCache',\n value: function _clearVelocityCache(target) {\n if (target.length) {\n _.forEach(target, this._clearVelocityCache);\n } else {\n Velocity.Utilities.removeData(target, ['velocity', 'fxqueue']);\n }\n }\n\n // This component does not include any DOM footprint of its own, so instead we return our\n // child out of render(). (Render must only return a single element, which restricts us to\n // one child. If you want to animate multiple children, provide your own wrapper element and\n // use the \"targetQuerySelector\" prop to target its children.)\n\n }, {\n key: 'render',\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return VelocityComponent;\n}(React.Component);\n\nVelocityComponent.propTypes = {\n animation: PropTypes.any,\n children: PropTypes.element.isRequired,\n runOnMount: PropTypes.bool,\n targetQuerySelector: PropTypes.string,\n interruptBehavior: PropTypes.string\n // Any additional properties will be sent as options to Velocity\n};\n\nVelocityComponent.defaultProps = {\n animation: null,\n runOnMount: false,\n targetQuerySelector: null,\n interruptBehavior: 'stop'\n};\n\nmodule.exports = VelocityComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/velocity-react/velocity-component.js\n// module id = 950\n// module chunks = 0","'use strict';\n\n// Copyright (c) 2015 Twitter, Inc. and other contributors\n\nvar _ = {\n isObject: require('lodash/isObject')\n};\nvar Velocity = require('./lib/velocity-animate-shim');\n\nvar effectCounter = 0;\n\n// Takes a Velocity \"UI pack effect\" definition and registers it with a unique key, returning that\n// key (to later pass as a value for the \"animation\" property). Takes an optional suffix, which can\n// be \"In\" or \"Out\" to modify UI Pack's behavior.\n//\n// Unlike what you get from passing a style hash to VelocityComponent's \"animation\" property,\n// Velocity \"UI pack effects\" can have chained animation calls and specify a \"defaultDuration\", and\n// also can take advantage of \"stagger\" and \"reverse\" options on the VelocityComponent.\n//\n// You will need to manually register the UI Pack with the global Velocity in your application with:\n//\n// require('velocity');\n// require('velocity-animate/velocity.ui');\n//\n// See: http://julian.com/research/velocity/#uiPack\n//\n// Typical usage:\n//\n// var Animations = {\n// down: VelocityHelpers.registerEffect({\n// defaultDuration: 1100,\n// calls: [\n// [{\n// transformOriginX: [ '50%', '50%' ],\n// transformOriginY: [ 0, 0 ],\n// rotateX: [0, 'spring'],\n// }, 1, {\n// delay: 100,\n// easing: 'ease-in',\n// }]\n// ],\n// }),\n//\n// up: VelocityHelpers.registerEffect({\n// defaultDuration: 200,\n// calls: [\n// [{\n// transformOriginX: [ '50%', '50%' ],\n// transformOriginY: [ 0, 0 ],\n// rotateX: 160,\n// }]\n// ],\n// }),\n// };\n// ...\n// \n// ...\n// \nfunction registerEffect(suffix, animation) {\n if (_.isObject(suffix)) {\n animation = suffix;\n suffix = '';\n }\n\n var key = 'VelocityHelper.animation.' + effectCounter++ + suffix;\n\n // No-op on the server for now.\n if (Velocity.velocityReactServerShim) {\n return key;\n }\n\n if (Velocity.RegisterEffect === undefined) {\n throw \"Velocity.RegisterEffect not found. You need to require 'velocity-animate/velocity.ui' at a top level for UI Pack.\";\n }\n\n Velocity.RegisterEffect(key, animation);\n return key;\n}\n\nmodule.exports = {\n registerEffect: registerEffect\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/velocity-react/velocity-helpers.js\n// module id = 951\n// module chunks = 0","'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*\nCopyright (c) 2015 Twitter, Inc. and other contributors\n\nComponent to add Velocity animations around React transitions. Delegates to the React TransitionGroup\naddon.\n\nProperties\n enter: Animation to run on a child component being added\n leave: Animation to run on a child component leaving\n runOnMount: if true, runs the \"enter\" animation on the elements that exist as children when this\n component is mounted.\n enterHideStyle/enterShowStyle: see below.\n\nAny additional properties (e.g. \"className\", \"component\") will be passed to the internal\nTransitionGroup.\n\n\"enter\" and \"leave\" should either be a string naming an animation, or a hash with an\n\"animation\" key that can either be a string itself, or a hash of style attributes to animate (this\nvalue is passed to Velocity its the first arg).\n\nIf \"enter\" or \"leave\" is a hash, it can additionally have a \"style\" value that is applied the tick\nbefore the Velocity animation starts. Use this for non-animating properties (like \"position\") that\nare prerequisites for correct animation. The style value is applied using Velocity's JS -> CSS\nroutines, which may differ from React's.\n\nAny hash entries beyond \"animation\" and \"style\" are passed in an options hash to Velocity. Use this\nfor options like \"stagger\", \"reverse\", &tc.\n\nBy default, this component will immediately hide all entering children with display: 'none', and\nunhide them one tick later with display: ''. This is done so that we can coalesce multiple enters\ninto a single animation, and we want to avoid any popping of elements in while they're collected. If\nyou prefer a different way of hiding these elements so that e.g. geometry can be immediately\ncalculated, use the enterHideStyle and enterShowStyle props to provide alternate style hashes for\nhiding and revealing entering elements.\n\nStatics\n disabledForTest: Set this to true globally to turn off all custom animation logic. Instead, this\n component will behave like a vanilla TransitionGroup.\n\nInspired by https://gist.github.com/tkafka/0d94c6ec94297bb67091\n*/\n/* eslint react/no-find-dom-node: 0 */\n\nvar _ = {\n each: require('lodash/each'),\n extend: require('lodash/extend'),\n forEach: require('lodash/forEach'),\n isEqual: require('lodash/isEqual'),\n keys: require('lodash/keys'),\n omit: require('lodash/omit'),\n map: require('lodash/map')\n};\nvar React = require('react');\nvar ReactDOM = require('react-dom');\nvar PropTypes = require('prop-types');\nvar TransitionGroup = require('react-transition-group/TransitionGroup');\nvar Transition = require('react-transition-group/Transition').default;\nvar Velocity = require('./lib/velocity-animate-shim');\n\n// Shim requestAnimationFrame for browsers that don't support it, in particular IE 9.\nvar shimRequestAnimationFrame = typeof window !== 'undefined' && (window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (callback) {\n window.setTimeout(callback, 0);\n});\n\n// Fix 'Invalid calling object' error in IE\nshimRequestAnimationFrame = typeof window !== 'undefined' && shimRequestAnimationFrame.bind(window);\n\nvar shimCancelAnimationFrame = typeof window !== 'undefined' && (window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function (timeout) {\n window.clearTimeout(timeout);\n});\n\nshimCancelAnimationFrame = typeof window !== 'undefined' && shimCancelAnimationFrame.bind(window);\n\n// Internal wrapper for the transitioned elements. Delegates all child lifecycle events to the\n// parent VelocityTransitionGroup so that it can co-ordinate animating all of the elements at once.\n\nvar VelocityTransitionGroupChild = function (_React$Component) {\n _inherits(VelocityTransitionGroupChild, _React$Component);\n\n function VelocityTransitionGroupChild() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, VelocityTransitionGroupChild);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = VelocityTransitionGroupChild.__proto__ || Object.getPrototypeOf(VelocityTransitionGroupChild)).call.apply(_ref, [this].concat(args))), _this), _this.lastState = 'appear', _this.componentWillEnter = function (node, appearing) {\n _this.lastState = appearing ? 'appear' : 'enter';\n }, _this.componentWillExit = function () {\n _this.lastState = 'exit';\n }, _this.endListener = function (node, done) {\n switch (_this.lastState) {\n case 'appear':\n _this.props.willAppearFunc(node, done);\n break;\n case 'enter':\n _this.props.willEnterFunc(node, done);\n break;\n case 'exit':\n _this.props.willLeaveFunc(node, done);\n break;\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n // We trigger our transitions out of endListener because that gives us access to the done callback\n // we can use to tell the Transition that the animation has completed.\n\n\n _createClass(VelocityTransitionGroupChild, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n // Clear references from velocity cache.\n Velocity.Utilities.removeData(ReactDOM.findDOMNode(this), ['velocity', 'fxqueue']);\n }\n }, {\n key: 'render',\n value: function render() {\n var transitionProps = _.omit(this.props, _.keys(VelocityTransitionGroupChild.propTypes));\n\n return React.createElement(Transition, _extends({}, transitionProps, {\n timeout: null,\n addEndListener: this.endListener,\n appear: true,\n onEnter: this.componentWillEnter,\n onExit: this.componentWillExit\n }), this.props.children);\n }\n }]);\n\n return VelocityTransitionGroupChild;\n}(React.Component);\n\nVelocityTransitionGroupChild.propTypes = {\n children: PropTypes.element.isRequired,\n willAppearFunc: PropTypes.func.isRequired,\n willEnterFunc: PropTypes.func.isRequired,\n willLeaveFunc: PropTypes.func.isRequired\n};\n\nvar VelocityTransitionGroup = function (_React$Component2) {\n _inherits(VelocityTransitionGroup, _React$Component2);\n\n function VelocityTransitionGroup(props) {\n _classCallCheck(this, VelocityTransitionGroup);\n\n var _this2 = _possibleConstructorReturn(this, (VelocityTransitionGroup.__proto__ || Object.getPrototypeOf(VelocityTransitionGroup)).call(this, props));\n\n _this2._scheduledAnimationFrame = null;\n _this2._scheduledAnimationRunFrames = [];\n _this2._entering = [];\n _this2._leaving = [];\n\n _this2._timers = [];\n _this2._unmounted = false;\n\n _this2.childWillAppear = _this2.childWillAppear.bind(_this2);\n _this2.childWillEnter = _this2.childWillEnter.bind(_this2);\n _this2.childWillLeave = _this2.childWillLeave.bind(_this2);\n\n _this2._runAnimations = _this2._runAnimations.bind(_this2);\n _this2._wrapChild = _this2._wrapChild.bind(_this2);\n return _this2;\n }\n\n _createClass(VelocityTransitionGroup, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this._scheduledAnimationFrame) {\n shimCancelAnimationFrame(this._scheduledAnimationFrame);\n }\n\n _.forEach(this._timers, function (timer) {\n clearTimeout(timer);\n });\n\n _.forEach(this._scheduledAnimationRunFrames, function (frame) {\n shimCancelAnimationFrame(frame);\n });\n\n // We don't cancel all the in-process animations, so we use this to know if the component\n // is gone when an animation is over.\n this._unmounted = true;\n }\n }, {\n key: 'render',\n value: function render() {\n // Pass any props that are not our own on into the TransitionGroup delegate.\n var transitionGroupProps = _.omit(this.props, _.keys(VelocityTransitionGroup.propTypes));\n\n return React.createElement(TransitionGroup, transitionGroupProps, !this.constructor.disabledForTest && !Velocity.velocityReactServerShim ? React.Children.map(this.props.children, this._wrapChild) : React.Children.map(this.props.children,\n // Wrapping in a no-op Transition to consume the props that\n // TransitionGroup gives its children. Fixes react-dom warnings\n // in test for those props appearing on divs and such.\n function (child) {\n return child && React.createElement(Transition, { timeout: 0 }, child);\n }));\n }\n }, {\n key: 'childWillAppear',\n value: function childWillAppear(node, doneFn) {\n var _this3 = this;\n\n if (this.props.runOnMount) {\n this.childWillEnter(node, doneFn);\n } else {\n this._finishAnimation(node, this.props.enter);\n\n // Important to tick over so that any callbacks due to finishing the animation complete first.\n //\n // Using setTimeout so that doneFn gets called even when the tab is hidden.\n var t = setTimeout(function () {\n var idx = _this3._timers.indexOf(t);\n if (idx >= 0) {\n _this3._timers.splice(idx, 1);\n }\n\n doneFn();\n }, 0);\n this._timers.push(t);\n }\n }\n }, {\n key: 'childWillEnter',\n value: function childWillEnter(node, doneFn) {\n if (this._shortCircuitAnimation(this.props.enter, doneFn)) return;\n\n // By finishing a \"leave\" on the element, we put it in the right state to be animated in. Useful\n // if \"leave\" includes a rotation or something that we'd like to have as our starting point, for\n // symmetry.\n // We use overrideOpts to prevent any \"begin\" or \"complete\" callback from triggering in this case, since\n // it doesn't make a ton of sense.\n this._finishAnimation(node, this.props.leave, {\n begin: undefined,\n complete: undefined\n });\n\n // We're not going to start the animation for a tick, so set the node's display to none (or any\n // custom \"hide\" style provided) so that it doesn't flash in.\n _.forEach(this.props.enterHideStyle, function (val, key) {\n Velocity.CSS.setPropertyValue(node, key, val);\n });\n\n this._entering.push({\n node: node,\n doneFn: doneFn\n });\n\n this._schedule();\n }\n }, {\n key: 'childWillLeave',\n value: function childWillLeave(node, doneFn) {\n if (this._shortCircuitAnimation(this.props.leave, doneFn)) return;\n\n this._leaving.push({\n node: node,\n doneFn: doneFn\n });\n\n this._schedule();\n }\n\n // document.hidden check is there because animation completion callbacks won't fire (due to\n // chaining off of rAF), which would prevent entering / leaving DOM nodes from being cleaned up\n // while the tab is hidden.\n //\n // Returns true if this did short circuit, false if lifecycle methods should continue with\n // their animations.\n\n }, {\n key: '_shortCircuitAnimation',\n value: function _shortCircuitAnimation(animationProp, doneFn) {\n if (document.hidden || this._parseAnimationProp(animationProp).animation == null) {\n doneFn();\n\n return true;\n } else {\n return false;\n }\n }\n }, {\n key: '_schedule',\n value: function _schedule() {\n if (this._scheduledAnimationFrame) {\n return;\n }\n\n // Need rAF to make sure we're in the same event queue as Velocity from here out. Important\n // for avoiding getting wrong interleaving with Velocity callbacks.\n this._scheduledAnimationFrame = shimRequestAnimationFrame(this._runAnimations);\n }\n\n // arrow function because this is used as an rAF callback\n\n }, {\n key: '_runAnimations',\n value: function _runAnimations() {\n this._scheduledAnimationFrame = null;\n\n this._runAnimation(true, this._entering, this.props.enter);\n this._runAnimation(false, this._leaving, this.props.leave);\n\n this._entering = [];\n this._leaving = [];\n }\n\n // Used to parse out the 'enter' and 'leave' properties. Handles cases where they are omitted\n // as well as when they are just strings and not hashes of animation and options.\n\n }, {\n key: '_parseAnimationProp',\n value: function _parseAnimationProp(animationProp) {\n var animation, opts, style;\n\n if (typeof animationProp === 'string') {\n animation = animationProp;\n style = null;\n opts = {};\n } else {\n animation = animationProp != null ? animationProp.animation : null;\n style = animationProp != null ? animationProp.style : null;\n opts = _.omit(animationProp, 'animation', 'style');\n }\n\n return {\n animation: animation,\n style: style,\n opts: opts\n };\n }\n }, {\n key: '_runAnimation',\n value: function _runAnimation(entering, queue, animationProp) {\n var _this4 = this;\n\n if (queue.length === 0) {\n return;\n }\n\n var nodes = _.map(queue, 'node');\n var doneFns = _.map(queue, 'doneFn');\n\n var parsedAnimation = this._parseAnimationProp(animationProp);\n var animation = parsedAnimation.animation;\n var style = parsedAnimation.style;\n var opts = parsedAnimation.opts;\n\n // Clearing display reverses the behavior from childWillAppear where all elements are added with\n // display: none to prevent them from flashing in before the animation starts. We don't do this\n // for the fade/slide animations or any animation that ends in \"In,\" since Velocity will handle\n // it for us.\n //\n // If a custom \"enterShowStyle\" prop is passed, (i.e. not one that just reverses display: none)\n // we always run it, regardless of the animation, since it's probably doing something around\n // opacity or positioning that Velocity will not necessarily reset.\n if (entering) {\n if (!_.isEqual(this.props.enterShowStyle, { display: '' }) || !(/^(fade|slide)/.test(animation) || /In$/.test(animation))) {\n style = _.extend({}, this.props.enterShowStyle, style);\n }\n }\n\n // Because Safari can synchronously repaint when CSS \"display\" is reset, we set styles for all\n // browsers before the rAF tick below that starts the animation. This way you know in all\n // cases that you need to support your static styles being visible on the element before\n // the animation begins.\n if (style != null) {\n _.each(style, function (value, key) {\n Velocity.hook(nodes, key, value);\n });\n }\n\n var doneFn = function doneFn() {\n // calling doneFns after the parent has unmounted leads to errors\n if (_this4._unmounted) {\n return;\n }\n\n doneFns.map(function (doneFn) {\n doneFn();\n });\n };\n\n // For nodes that are entering, we tell the TransitionGroup that we're done with them\n // immediately. That way, they can be removed later before their entering animations complete.\n // If we're leaving, we stop current animations (which may be partially-completed enter\n // animations) so that we can then animate out. Velocity typically makes these transitions\n // very smooth, correctly animating from whatever state the element is currently in.\n if (entering) {\n doneFn();\n doneFn = null;\n } else {\n Velocity(nodes, 'stop');\n }\n\n var combinedCompleteFn;\n if (doneFn && opts.complete) {\n var optsCompleteFn = opts.complete;\n combinedCompleteFn = function combinedCompleteFn() {\n doneFn();\n // preserve this / args from Velocity so the complete function has context for what completed\n optsCompleteFn.apply(this, arguments);\n };\n } else {\n // One or the other or neither.\n combinedCompleteFn = doneFn || opts.complete;\n }\n\n // Bit of a hack. Without this rAF, sometimes an enter animation doesn't start running, or is\n // stopped before getting anywhere. This should get us on the other side of both completeFn and\n // any _finishAnimation that's happening.\n var t = shimRequestAnimationFrame(function () {\n var idx = _this4._scheduledAnimationRunFrames.indexOf(t);\n if (idx >= 0) {\n _this4._scheduledAnimationRunFrames.splice(idx, 1);\n }\n\n Velocity(nodes, animation, _.extend({}, opts, {\n complete: combinedCompleteFn\n }));\n });\n\n this._scheduledAnimationRunFrames.push(t);\n }\n }, {\n key: '_finishAnimation',\n value: function _finishAnimation(node, animationProp, overrideOpts) {\n var parsedAnimation = this._parseAnimationProp(animationProp);\n var animation = parsedAnimation.animation;\n var style = parsedAnimation.style;\n var opts = _.extend({}, parsedAnimation.opts, overrideOpts);\n\n if (style != null) {\n _.each(style, function (value, key) {\n Velocity.hook(node, key, value);\n });\n }\n\n if (animation != null) {\n // Opts are relevant even though we're immediately finishing, since things like \"display\"\n // can affect the animation outcome.\n\n Velocity(node, animation, opts);\n Velocity(node, 'finishAll', true);\n }\n }\n }, {\n key: '_wrapChild',\n value: function _wrapChild(child) {\n // Need to guard against falsey children, which React will sometimes pass\n // in.\n if (!child) {\n return null;\n }\n\n return React.createElement(VelocityTransitionGroupChild, {\n key: child.key,\n willAppearFunc: this.childWillAppear,\n willEnterFunc: this.childWillEnter,\n willLeaveFunc: this.childWillLeave\n }, child);\n }\n }]);\n\n return VelocityTransitionGroup;\n}(React.Component);\n\nVelocityTransitionGroup.disabledForTest = false; // global, mutable, for disabling animations during test\n\nVelocityTransitionGroup.propTypes = {\n runOnMount: PropTypes.bool,\n enter: PropTypes.any,\n leave: PropTypes.any,\n children: PropTypes.any,\n enterHideStyle: PropTypes.object,\n enterShowStyle: PropTypes.object\n};\n\nVelocityTransitionGroup.defaultProps = {\n runOnMount: false,\n enter: null,\n leave: null,\n enterHideStyle: {\n display: 'none'\n },\n enterShowStyle: {\n display: ''\n }\n};\n\nmodule.exports = VelocityTransitionGroup;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/velocity-react/velocity-transition-group.js\n// module id = 952\n// module chunks = 0","module.exports = get_blob()\n\nfunction get_blob() {\n if(global.Blob) {\n try {\n new Blob(['asdf'], {type: 'text/plain'})\n return Blob\n } catch(err) {}\n }\n\n var Builder = global.WebKitBlobBuilder ||\n global.MozBlobBuilder ||\n global.MSBlobBuilder\n\n return function(parts, bag) {\n var builder = new Builder\n , endings = bag.endings\n , type = bag.type\n\n if(endings) for(var i = 0, len = parts.length; i < len; ++i) {\n builder.append(parts[i], endings)\n } else for(var i = 0, len = parts.length; i < len; ++i) {\n builder.append(parts[i])\n }\n\n return type ? builder.getBlob(type) : builder.getBlob()\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/w3c-blob/browser.js\n// module id = 953\n// module chunks = 0"],"sourceRoot":""}